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
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.
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 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.
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.
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.
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 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.
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.
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.
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?
$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.
How Much Does LearnDevNow Cost?
$199 per year.
$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 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.
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.