Saturday, July 01, 2006
Learn to Program in .NetAs probably happens to most professional developers, I have been asked many times how someone new to programming can learn .Net and get a job as a professional developer. The great thing is that Microsoft makes it fairly easy (you still do have to work at it, both by studying and writing your own code and applications), and with the Express editions of the .Net development languages, they make it free!
There are four free .Net development languages: Visual Basic 2005 Express Edition, Visual C# 2005 Express Edition, Visual C++ 2005 Express Edition and Visual J# 2005 Express Edition. The most commonly used .Net languages, and the most commonly hired for, are Visual Basic and C# so my recommendations revolve around those.
To get Visual Basic .Net Express Edition and Visual C# .Net Express Edition, respectively, go to:
A lot of people like to start with VB but many that start with VB never move to C#. C# has a slightly higher initial learning curve but I think it is worth it. Either way is good.
Next, after completing the free book and videos for one or both of those, get Visual Web Developer 2005 Express Edition and go through the free book and videos for it.
On each of the above three pages, there’s a button that says "Easy to Learn". Click that for free learning videos.
If you install any of those products and register them at http://msdn.microsoft.com/vstudio/express/register/you will be able to download a free e-book with more training.
After the express editions, the I recommend is these Microsoft’s Step-by-step books:
To get the most benefit from the Step-By-Step books, it’s now time to move beyond the Express Editions and go for the big time. Go to http://msdn.microsoft.com/vstudio/products/trial/ and get the 90-day trial of Visual Studio 2005 Professional or the 180-day trial of Visual Studio Team Suite. I suggest doing the VB and the C# Step-By-Steps as well as the ASP version. No matter which language you prefer, more advanced studies and your future professional work are going to require at least a fundamental knowledge of both languages and ASP.Net even if you regularly only use one language and only do Windows forms applications.
After doing the Step-By-Step course, you will have had a good introduction to the language of your choice. Now it is time to expand your studies to a broader and more advanced view of .Net. I see two general approaches to rounding out your knowledge of .Net, both of which mean hitting the books even more. The two options I am referring to are to either go to Amazon.com and pick a highly rated .Net 2.0 book or to go to http://www.microsoft.com/learning/mcp/mcpd/and learn about the Microsoft Certified Technology Specialist (MCTS) program and the Microsoft Certified Professional Developer (MCPD) program. Once you’ve learned about the program, go to Amazon.com and pick a book that is highly rated for your choice of exams in the MCTS/MCPD program you prefer.
So, what’s the difference? Why go the MCTS/MCPD route instead of some other, perhaps more highly rated, books from Amazon? Basically, assuming similar levels of accuracy and similar writing quality, two books of 1000 pages will present you with about the same amount of information. If you can measure learning as an amount of information and measure the books by the amount of time and effort required to obtain that information, they’re both the same. So why not study the one that has the added benefit of leading you towards Microsoft certification?
Most developers I know who do not hold any Microsoft professional certifications are staunchly against the whole certification process. I, on the other hand, think it’s a good thing, as long as you and prospective employers understand what it really is and what it really says.
Microsoft certifications, at least those I hold, really represent what should be the minimum set of knowledge required to do a job. They do not demonstrate expertise. But since you’re just learning .Net and programming anyway, that’s ok, right? What certification provides is a broader perspective on .Net. Because the certification exams cover a broad set of requirements, your studies will be broad.
Some say that the exams don’t cover real-world working requirements but, in actuality, they do – only they also cover a lot more than that. Thus the broader set of knowledge from studying exam-oriented books versus real-world oriented books. Having that broader perspective means that, when something comes up in the real world that your peers don’t know how to solve, even if you don’t remember the details, you will think to yourself, "Hey. Wasn’t there something about that in my exam studies?" With that broader perspective, you’ll know more options to solve most problems than many people with years more experience in .Net than you have. So, considering that, the exams do cover the real world working requirements of the certified developer.
And the final benefit is that when struggling to get an interview for those highly-coveted entry level .Net developer positions, both the recruiters you may be working with and the perspective employers will give enough weight to your certifications so that, all other things being equal, you’ll be much more likely to get the interview. Of course, then it is all up to you.