In this article I want to discuss different types of training for software developers. Most of what I say here is purely subjective and forms my own view of the best types of training, but I would like to hear what you think on this, including the training resources that work for you..

There are different types of training that as a software developer you can make use of. They are Classroom / Teacher led courses, Online video training, Books (both electronic and dead tree), and writing lots of code and good old experimentation.

Classroom / Instructor Led Courses

Class Room  and Instructor Led Training
Class Room and Instructor Led Training

I have always had a problem with technical courses where you have to learn in a group. I personally don’t find it an effective way to learn a technology. Don’t get me wrong, non-technical courses like leadership training, personal skills etc work very well as an instructor led course as these are all about working with people, but for technical courses I don’t find them very good. Also they are very expensive, you can end up paying thousands of pounds for a 5 day course and that doesn’t even include travel and expenses.

I do think conferences are a good thing though. I have been to a number of these before including Microsoft’s TechED and find these very valuable as you get to see what new technologies are coming along and mix/socialise with other engineers from different companies and industries.

I am sure people will disagree with me on this and prefer instructor led courses to online videos and books, and that is fine as everyone has different learning styles. Personally I find learning a new technology a solitary thing. I just like to sit down by myself, watch some videos, read some articles and then just fire up the compiler and dig in.

Reading Books

I have to admit, I am a complete book worm. I love reading whether it is a technical book, business book or fiction. Ever since I moved house back in 2011, I decided to move away from dead tree format books. I did this for a number of reasons; I didn’t want my new house cluttered with books, and carrying programming books around in my laptop bag was getting very heavy, so I switched to electronic books.

I have found using Amazon’s Kindle a godsend. The devices are very well made and the user experience of the Amazon Kindle store is very good. It was getting quite expensive though buying technical books all the time. That was until I discovered Safari Books Online.

Safari Books Online : Online book library
Safari Books Online : Online book library

Safari Books is an online library of technical books. In fact, it isn’t just technical (computing) books. It has a wide range of business books, media /design books and engineering books. There are also a wide range of training videos available on the site too. The list of publishers who add their books to the site is staggering. From a software development point of view you get most books by Addison Wesley, AdobePress, Apress, Manning, Microsoft Press, New Riders, Peachpit, O’Reilly, Prentice Hall, QUE, SAMS, Wiley an Wrox. This is not an exhaustive list either.

Safari Books Online - Online book library
Safari Books Online – Online book library

For Me, Safari has been a revelation, primarily because my Amazon addiction meant I was spending a fortune on books.   The killer feature of Safari though is its reading app for IPhone/IPad and Android devices. The application lets you access the full library on your tablet and they have a feature called the ‘Offline Book Bag‘ which means you can download 3 books at a time for offline reading when you don’t have a WIFI connection to use. This is a bit like the experience of borrowing books from your local library. Even though it costs to subscribe to safari, the power of this app and the off line book bag has meant I have stopped buying as many books from the Kindle store. I even went out and bought a new tablet (Google Nexus 7) just because of this app.

Safari Books Online - Reading App
Safari Books Online – Reading App

How Much Does Safari Books Online Cost?

Unlimited Access to all books and Videos

£29.99 per month.

£329.89 per year.

Access to 10 Books and Videos Per Month

£14.99 per month.

£219.89 per Year.

Reading on the Train
Reading on the Train

I went for the £329.89 per year option and I feel it is one of the best decisions I have ever made when it comes to an online training resource. To commute to work takes me about an hour each way on the train, so generally I sit down on the train with a coffee and the Safari Reading App. The only down side is trying to decide what book to read next as there are so many really good books available.

Online Video Training

Another resource that I feel is excellent as a training resource for developers is online video training sites. There are 2 particularly good subscription sites that I want to mention. The first is Pluralsight, and the second is LearnDevNow. I personally subscribe to Pluralsight.

Pluralsight

Pluralsight is a paid for subscription service that contains a huge quantity of very high quality training videos for developers. The site is mostly steered towards .NET training, but they have started adding lots of courses for other non .NET technologies too.

Pluralsight - Hardcode Developer Training
Pluralsight – Hardcode Developer Training

The format of the videos is more presentational (i.e. slides) with a narrator talking over the top. When the course needs to show something more practical then the video switches to screen recordings of the trainers desktop machine so you can watch them apply the material. If you take out the more advanced subscription then you can download the slides and all the sample source code for each course. Having access to the sample code is an invaluable resource if you need to learn a new technical library quickly and want to grab a readymade example to play with. The quality of the courses on Pluralsight is excellent. The courses will either be badged as beginner, intermediate, or advanced, and the courses in each category are definitely pitched at the right level so you will find material here that suits every skill level in a development team.

Pluralsight - Developer Assessment
Pluralsight – Developer Assessment

As part of the advanced subscription you can also take Assessments which help reinforce that the course content has sunk in. These consist of a series of timed questions. If you get a question wrong you are presented with a link to the relevant video to help remind you of the answer. These assessments are not official certifications but they are a great way of helping to reinforce what you have seen on the course.

Pluralsight - Mobile Application
Pluralsight – Mobile Application

Like Safari Books, Pluralsight comes with a great mobile app for IOS, Android and Windows Mobile. I frequently watch videos on my tablet whilst commuting to work. If you have the full subscription you can even download videos for offline viewing if you don’t have a WIFI connection available.

How Much Does Pluralsight Cost?

Basic Subscription

$29 per month.

$299 per year. Saves you $49 per year over a monthly subscription.

Full Subscription (Includes Exercise Files, Assessments, Offline viewing)

$49 per month.

$499 per year. Saves you $89 per year over a monthly subscription.

Learn Dev Now

Learn Dev Now is another online video library similar to Pluralsight. I have not used it personally, but some members of my team have used it when making use of a special offer code and they seem to like it, but the consensus seems to be that Pluralsight is a much better offering, but then again, it is more expensive. You can pay extra on top of your basic subscription for sample source code, course-ware and hands on labs.

LearnDevNow - Online Video Training
LearnDevNow – Online Video Training

How Much Does LearnDevNow Cost?

Standard Subscription

$199 per year.

Extras

$29.99 per year for the sample source code.

$69.99 per year for online course-ware and hands on labs exercises.

YouTube and Channel 9

Another excellent source of training videos is YouTube. Generally you will find anything you are looking for on here and this is also the case with software development videos. The material may not be as well structured and high quality as something found on Pluralsight, but generally you can find very useful videos here.

Channel9 at the Microsoft Developer Network
Channel9 at the Microsoft Developer Network

Channel9 is another great source of free videos. This is Microsoft’s own development TV channel. These videos are typically presented by Microsoft staff / developers and you can get some pretty niche and interesting videos here, particularly the videos from their TechED conferences which are also posted here.

Writing Code and Experimenting

The final training method I am going to discuss here is good old fashioned fingers to the keyboard and writing code. This is still the best way to learn. Nothing beats having some time set aside to sit down, undisturbed, and write something. I find having a small pet project is the best idea. It doesn’t matter what the project is as long as you get to write code. This means you can practice writing code in technologies that you wouldn’t ordinarily get to use day to day in the office. This is good as it will give you a depth of knowledge in other areas outside of your specialism.

Summary

That concludes this article on software development training. To recap my thoughts, and these are my own opinion, I find classroom based and instructor led courses to be less valuable than other training methods such as video sites and book reading. Taking instructor led courses can be very expensive once you have factored in travel costs, hotels and expenses.

I personally like to read lots of books on my Kindle or using my Safari Books Online subscription. I also subscribe to a yearly pass for Pluralsight. If I want to learn particular .NET technologies then I tend to watch the Pluralsight video for it, but if I am learning something less technology specific, say architecture or business related, then I prefer to read a book.

I am sure there are lots of other great ways of training developers out there that I have not used. If you have other ideas, then please leave a comment on this post letting me know about your ideas.

Participate with Coding in the Trenches on Facebook
Participate with Coding in the Trenches on Facebook by Click the button above.
Advertisements

7 comments

  1. I absolutely could not agree more about coding as a means to learn. The more challenges you give yourself, the more you’ll research and the more you’ll learn about the language and the ‘technical ecosystem’ you’re coding around, be it WCF, Windows Services, ASP, MVC, XNA or mobile. It might be that you’re doing a lot of data manipulation or mathematics, for example, in which case you should be trying to find ways to optimise the speed or memory usage. The more times you want to do the same thing, the more you’ll start to think about how you can simplify the development process, so you don’t need to do as much work next time.

    Alongside this, however, tools like Resharper can also push you towards general technical approaches to problems. Resharper will sometimes offer to convert part (or all) of a foreach loop into a LINQ statement. By doing that, you’ll get exposure to LINQ methods you might not have known about – although I’ve not found an instance in which Resharper would use the Intersection method. You can learn a lot about lambda expressions and passing them between classes, and the Jetbrains website will tell you about why Resharper made a suggestion or raised a warning – and it’s usually pretty detailed. Prior to the later versions, it would warn about “access to modified closure” (which is explained well), now it seems Microsoft have changed the compiler so that the same code might behave differently – and they have an explanation for that, too.

    It’s also worth reading the explanations offered by Microsoft for their Code Analysis warnings. Some may have questionable validity, but there will be technical nuggets in there that would otherwise have escaped your attention.

    And, of course, Google is your friend. There are often jokes around the office that “I got the code off Google” but it’s sometimes not that far from the truth. The code might not do exactly what you wanted “out of the box,” but it could well become the framework for something more specialised or more appropriate to the job at hand.

  2. Actually you raise some good points. Resharper / CodeRush as a developer assistance and training tool. Also I might add Google and StackOverflow to the list of training resources.

  3. How about a few more for you?
    I feel that Dojos should not be over looked. Pair programming, code reviews and just generally being around enthusiastic skilled individuals.
    It’s not that the practices themselves are good training methods. I think it’s more the fact that in all of these situations you are discussing your code with others, and learning from their ways of doing things. To me this has been invaluable in my learning and progression as a developer. There is a lot to be said for being in the right environment.

    1. Cheers Mark. Some good points there. I am planning a 2nd training article that will include these ideas as well as discussing the Knowledge/Skills/Behavior matrix.

  4. Very good suggestions…There’s also Moocs (massive open online courses) which are are usually free or low cost such edX, a nonprofit start-up backed by Harvard, MIT, and Coursera. These courses or tutorials can be massive. You have to decide how much time you are willing to put into any one topic –

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s