Step 2 – Learn iteratively

There are many ways to learn. Attending a presentation or live webcast is great because you get what I call “condensed knowledge”. You get the results of someone else spending thirty to forty hours of learning and working to condense it into a one to two hour presentation. You also get immediate feedback, you can interact with the presenter and ask questions. On the downside, if you missed something, you missed it (unless the presentation is recorded). These are great for getting an overview, however you won’t really get deep technical understanding out of a presentation like this.

The next step beyond a live presentation is a recorded webcast or video, such as those produced by DNRTV. These are great because you can pause them, rewind, and listen multiple times. However, you lose the ability to get immediate feedback from the presenter, and like live presentations it’s condensed knowledge.

Online reading is the next area available to us for learning. Blogs, MSDN, TechNet, etc. These have a much deeper level of information than previously mentioned formats. Plus they tend to be updated as changes are made. However, there do tend to be some limitations. Content is not quite as polished as a book as often it does not go through professional editors. Also, while the content will be more in depth than a presentation, it will still be limited in scope. It will be rare to find the equivalent of a book given out for free in a blog. Most of the time it will be equivalent to a really long magazine article.

This then, brings us to good old fashioned books. For true topical mastery, there’s nothing like a good thick book filled with code examples for learning. Some pundits are already predicting the death of the print book. However, in my opinion print is simply a medium. Books could be read online, or downloaded to something like a Kindle. Whatever the form, it’s still an in depth presentation of content.

So does this mean you should favor books over other forms of learning? Absolutely not. If you recall yesterday’s post, I mentioned being able to keep up your base. Podcasts, webcasts, user groups, and blogs can be great ways of doing just that, while using books for honing your expert skills in some topic.

Deciding on a delivery mechanism for your learning is the first step. Now you need to decide the process. Learning is a gradual process. It takes learning a little something every day for it to take hold. Even as little as 20 minutes a day can rapidly bring your understanding up to new levels. Avoid cramming, cramming works for short term but studies show long term retention is not good. For ultimate learning, start with a goal. Decide what you want to know. Then gather the materials you’ll need: books, articles, manuals, blogs, etc. Next, schedule the time. As I mentioned you want at least 20 minutes a day devoted to learning. Turn off your e-mail, close your twitter, turn off the radio, close the home office door, and focus on the material.

Practice what you read as well. Type in the code samples, run them, debug them, step through the code line by line. Make changes and see how it affects the flow of the code. Find the patterns and practices for your environment and try them out.

Using an iterative process you will soon be on your way to expert level knowledge.

Step 1 – Become an expert

Last week I did a presentation on “How to become a more marketable software developer”. I thought I would spend this week going over each of the five steps. Today we’ll discuss the first step toward becoming more marketable, “Become an expert”.

image While “Become an expert” sounds obvious, there are several things to consider. First, you need to pick an area that is viable. I don’t see much call these days for Microsoft BOB experts. For me, it is a mix of SQL Server Full Text Searching and SQL Server Compact Edition. For a friend of mine, Shawn Wildermuth it is Silverlight and his Silverlight Tour that is his current expertise. But Shawn’s story is one that beautifully exemplifies my next point: don’t be afraid to change your expertise!

While Shawn is known today for Silverlight, it wasn’t that long ago he was known as “The ADO.NET Guy”. Before that he was known as a co-author to many of the .Net MCTS/MCPD study guides. You need to constantly be flexible and react to the needs of the market. Don’t be afraid to retool your skill sets as new technologies emerge on the marketplace.

While you focus on an area of expertise, don’t forget your base skills. I recently heard someone describe your skills as a pyramid. Your expertise is right at the top, but it’s built upon a broad, wide foundation. Don’t forget to take some time on a regular basis to work with the basics, write some code, listen to some podcasts, read a “general programming” book so you keep in touch with the core development skills in your area.

How to be a more marketable software developer

On Thursday I am presenting a quick talk at the Internet Professional Society of Alabama. This is part of an event called Idea Spark, where multiple individuals give five minute talks. I thought it’d be fun to steer away from the normal tech talks and talk about something near and dear to all of our hearts: money!

My talk will give a few quick points on some basic, inexpensive things you can do to make yourself more valuable, and thus command a larger salary in the marketplace. I can testify these things work, having done them myself. However it’s not with out a lot of sweat equity. You’ll need to invest a fair amount of time to achieve success, but everything worth doing is worth taking the time to do right.

Here’s the slide deck in PDF format: how-to-be-a-more-marketable-software-developer

I have to give thanks and much credit to Doug Turnure, a content architect for Microsoft. He first gave a very similar presentation some time back and was gracious enough to share the slides. I took them, did some rearranging, trimming, and additions to achieve this current version which is a blend of his thoughts and mine.

I hope you find the talk and the slides valuable as you give yourself the edge in this competitive marketplace.