The evolution of software developer learning

posted by Jeff | Sunday, November 4, 2012, 9:05 PM | comments: 0

With last week's BUILD conference, I'm reminded how much I've loved attending Microsoft conferences. I only attended one as an employee (Mix11), but I've been to four overall, and I love drinking that delicious Kool-Aid. Each one has been exciting and inspiring, from meeting people from all over the world who do interesting things, to meeting people who build my favorite products.

But with the availability of all of the sessions in video form online, the ability to learn isn't just reserved for on-site attendees. (Being on-site is still better, because of the people factor, obviously.) I've got 20 hours of video from that conference, and obviously I'll have to prioritize a bit because there's zero chance I'll ever have time to watch it all.

Earlier today, since Diana rearranged the furniture in my personal office/Simon's playroom, I was looking at the stacks of books I have on the shelf. In an honest moment, I realized that it's completely unlikely that I'll ever open any of those books again. When it comes time to move again, it would be ridiculous to bring those with me.

That my books are obsolete makes me sad. I have many fond memories of a book arriving via Amazon, cracking it open to the new book smell, and diving in. Most of my career, over a decade, was advanced this way. I mean, I wrote a book for that purpose.

Things have changed. For example, when I went to replace my C# 4.0 In a Nutshell book with the 5.0 version, I bought it on Kindle. I can now view it on my Suface, iPad, Kindle or phone. That I bought it at all has more to do with the handy nature of the series as a reference than anything else. The technology moves fast enough that most of the information I consume now comes via Internet sources, including the conference video, blog posts and ever-improving documentation.

Books used to give greater context. A well-written book gave you the end-to-end story that went beyond simple cookbook nonsense and enabled learning. That depth comes in different forms now. Part of it is that some things just aren't as complicated as they used to be. Asynchronous programming in C#, for example, is stupid easy now because of language features. You still need to understand the underlying process, but there are more than enough documents and blog posts with adequate depth.

The other big change is that I've been in the habit of taking what's new and figuring out some real world reason to use it. This really started in earnest for me in 2009, when I couldn't find a job until landing at Microsoft. I can't remember any time in my professional life that I learned as much as I did that summer. Even as I've been continuously working since that time, I've stuck to that pattern. Even now, I'm building a Windows 8 app, and will port another to Windows Phone 8, just because I can. It's what I do now.

The unfortunate thing about this is that I'm probably more of an exception than a rule. Not enough people in my line of work do this, which is why I'm constantly encouraging young people who are looking for something to do for a living to consider writing software. Rising above the pool of mediocrity would not be hard, and you could be making six figures before you know it. I would add, however, that actually enjoying it has to be a part of it. The people who plateau on their skill set clearly do not enjoy the ongoing learning process, and they hold the entire profession back.


Post your comment: