So You Want to Learn to Program

Maybe you’ve been dabbling in HTML and JavaScript and now you’re thinking about taking programming a bit more seriously.  Or perhaps you have an idea for the next “killer” app—now you just need to learn how to create it.  So you’ve been doing some research on the Web and decided to check out C#, you’ve been reading about Visual Studio, and you’ve even been perusing the pages of MSDN Magazine.

But then you quickly noticed that MSDN Magazine contains mostly intermediate to advanced content.  It’s a community where professional and skilled developers share advanced techniques with other adept developers.

As an editor at MSDN Magazine, I understand. While I know my way around a computer and can usually help fix my family’s various computer problems, I know very little about programming.  And working with the experts that write our articles only reminds me every day of how little I know about the topic. 

Now don’t get me wrong.  I’m familiar with classes, I understand the concepts around multithreading, and I can explain what an “application block” is. But all this knowledge is on a very academic level. I’m far away from putting these concepts into practice. Right now, I open Visual Studio and don’t know where to begin. 

So what do you do if you’re just getting started?  What if you’re looking to learn some basic C# techniques on your own?  

Finding good information to get started is difficult.  I’ve looked at a number of books recently and found that many of them weren’t answering my basic questions—at least not before I got frustrated and intimidated (and decided instead to set down the book and watch a rerun of Futurama).  Fortunately, though, there are some really good resources out there.  A lot really has to do with how you like to learn.  I, personally, am an active learner.  Rather than first sitting down and reading a manual, I want to be hands-on immediately. One book I found that is good for this approach is “Build a Program Now”. I picked up the Microsoft Visual C# 2005 Express Edition, which includes the necessary software on disc, and jumped right in. 

For those of you who are checking out the site, but don’t know where to begin, I thought I’d share a few handy resources: 
– As I mentioned, there’s the “Build a Program Now” book ( There is also a Visual Basic edition.
– Microsoft just launched the Beginner Developer Learning Center ( This starts with the rudimentary concepts and steps you through the entire learning process.
– Visual Studio Express Editions ( These are free, lightweight environments designed for novices and hobbyists.  We also ran an article on the Express Editions in our September 2004 issue of MSDN Magazine.

How many of you visiting our site are just getting started?  What has your learning experience been so far?

matt graven
Developmental Editor
MSDN Magazine  |  TechNet Magazine

Comments (6)

  1. Nancy Michell says:

    I have to agree with Matt,

    (I mean I’m required to because we’re both developmental editors here (just kidding (really)))

    Note the nested parens. They are very useful in programming.

    I too fall in an undefined category of maybe programmers. It’s like forgetting English at age 40.

    I know "how to program" but don’t currently know any languages. So I’m back in school, and I can say for sure that all the beginner help we can get is a very good thing. Language references are excellent. Especially for me because I’ll know there will be a function in most languages, say, to get the length of a string, for example, or to check for end of file, etc. But I won’t know the name of the function, so finding it in a language reference is great.

    But then I usually have a little problem figuring out the syntax. See, it can be very hard to tell when you’re new to a language which are the reserved words and which are just variables that the person writing the example made up.

    There are so many other little things like that that an experienced programmer may not immediately recognize as something a beginner needs to know.

    So I’m off to check out Matt’s recommendations, and may even recommend them to the other students in my classes.

    I also agree with Matt that it would be so great to hear from other beginners.

  2. cmroanirgo says:

    As a developer of old, I really must mention Charles Petzold. For those of you that don’t know, Charles has been writing books for Microsoft Developers for nearly as long as I have been developing (15-20yrs)!!! That said, there is a book commonly referred to as the "Win32 Bible". The title is actually "Programming Windows", by you guessed it, Charles Petzold.

    Unfortunately, it’s not for absolute noobs (newbies), although it is a beginner’s book.

    My point is that Charles has release a free ‘online’ book called ".NET Book Zero" that would probably be well worth reading. Charles has an amazing ability to focus on what’s actually important as opposed to many authors who go through the online help and try to cover as many topics as possible.

    Check it out here: ""

    Typically, he doesn’t even have a PayPal donate button.

  3. Nancy Michell says:

    Hey that really is a great tip. Charles Petzold writes for MSDN Magazine every now and then. But I personally didn’t know about the online book you mentioned (.NET Book Zero).

    Beginner resources are always a problem, I think, because, as Matt said, everyone learns differently. It can be hard to find the resource or resources that strike just the right balance: explanations that are clear, projects that are fun and challenging–not too simple and not too advanced. Enough of a focus on the language itself, but hints on using the visual environment as well, without making it all about clicking and dragging controls (IMO)!

    thanks for your recommendation.


  4. WP says:

    I enjoyed the article and have to say I agree.  I am an engineer not a programmer.  I like programming but I am typically interested in getting a job done and recognize that I am never going to be a .NET guru.  Findings some to the point, "beginner" articles is difficult.  They’re either too simple (I don’t want to read a 50 page article about classes and how to apply them to dogs), or too advanced (jump directly to multithreaded this that or the other thing).  I write simple desktop applications that gathers data from USB data acquistion(I can do that), process it, present it on a Windows form, and save it to a CSV file for later processing.  As simple as it sounds this must be very uncommon because there are no articles like this. I don’t want to use my crutch and go back to VB6.

    Thanks for the good read.  I now know I’m not the only one.

  5. Ravi says:

    I have been looking for something like this on MS website and glad to see this now. I hope this new resource will fasten my learning. Thanks for sharing this info

  6. Ravi says:

    Do you guys have any plans to put some content on starting VC++ also?