img by Coba

How to Become a Good C# Programmer, Part 1

I get questions through email (through the LearnItFirst.com website) all the time from people who watch my .NET training videos asking things like this recent email:

Hi Scott -

I really like your C# training course and would like to ask you if you have any tips on how can I become a better C# developer?

Along with this type of email, I also commonly get questions like this:

I'm a student at university and would like to know how to become a good programmer. What's the best way to learn to be good C# programmer?

I think I can help - and in a pretty standardized way that just about anyone with any aptitude for computer programming can follow.

My System to Help Anyone Become a Good Programmer

Let's get the hard part out of the way: this isn't going to happen overnight. It probably won't happen in only a year and it might take 2-3 years. But if you follow the steps below, I promise that you will become what you ask for: a good programmer. You may not become a great programmer but I believe that anyone who diligently follows this system can become a good programmer. Let's take a look at the (long) list of steps:

  1. Pick a language
  2. Pick a pet project
  3. Buy a few starter-level books or take a few online classes that are on your chosen language
  4. Begin reading the book/taking the class
  5. Implement your project while you are reading/taking the class
  6. Post your questions in an online forum dedicated to the language
  7. Find some sample apps written in your language and review how they did things differently
  8. Finish your book/class and buy another book/class that is specific to your language of a beginner/intermediate level
  9. Begin answering other people's questions in forums
  10. Pick a new pet project and implement it
  11. Review some open source apps written in your language
  12. Contribute to open source apps
  13. Write a few articles on subjects you enjoy
  14. (Bonus step listed on last page!)


Whew - 14 steps is a lot! In this ten-part series on How to Be a Good C# Programmer, I'll step through each step and explain a little about each step. And while I'm sure that any sufficiently advanced developer could add several items to this list, in my opinion as a professional developer and educator of developers, if you follow this system, you will be able to start from scratch and become a highly paid, highly successful developer who enjoys what they do.

What You Do Not Need

A lot of people think that they need to have a Computer Science degree to be a good programmer but I disagree. I don't have such a degree and I fancy myself a more-than-able developer. Computer Science degrees are wonderful things but they aren't required to be a "good developer". Will it help you be a better developer? Yes, I think that having such a degree would make anyone a better developer. But I don't think it's a requirement to be a good or even a great programmer. Now don't misunderstand me: I think it's great to take computer science classes but I don't think that, in 2009/2010, having a computer science degree automatically makes you a "good programmer." You could, I suppose, make the case that a Software Engineering degree would fill that gap and I might be more inclined to agree.

I also see people wondering about whether they have to be math gurus and again I say, "No." It helps to know complex mathematical structures but I've made a career out of being a programmer and I failed Trigonometry three times (well, "failed" is perhaps the wrong word - "dropped out", "stopped going to class", "couldn't get up in time" all might be more appropriate).

"Yes, but Scott you don't need Trigonometry to be a good programmer; you need to know Calculus!" Oh. Okay, if you say so. I've never taken a Calculus class so I wouldn't know.

Next up

Let's walk through the steps of my system, starting with Part 2 of this article. That is, unless you're ready to start learning C# with my online C# training course!



Article Index:

  • Part 1 - Overview of a System for Becoming a Good C# Programmer
  • Part 2 - Steps 1 and 2: Picking a Language and Picking a Pet Project
  • Part 3 - Steps 3 and 4: Picking a Book or Class to Get Started
  • Part 4 - Step 5: Implementing Your Pet Project
  • Part 5 - Step 6: Minimizing the Trough of Disillusionment
  • Part 6 - Steps 7 and 8: Finish your Book/Class and Start a New One
  • Part 7 - Steps 9 and 10: Begin Answering Questions and Pick a New Project
  • Part 8 - Steps 11 and 12: Review more apps and Start Contributing!
  • Part 9 - Steps 13 and 14: Write a few articles and the Bonus Step
  • Part 10 - Next Steps and What Does It Take to Be a Great C# Programmer?
authors
scott whigham
grant moyle
chad weaver
recent comments
  • Love Calculator: Which golf clubs will be the best for beginner ? read more
  • Love Calculator: I just sent this post to a bunch of my read more
  • Lenard Tenny: I watched something about this on television last night. Thanks read more
  • Scuba Diving: Should I buy steel golf clubs or graphite ? read more
  • Noni Juice: You certainly have some agreeable opinions and views. Your blog read more
  • Tahitian Noni Juice: I just book marked your blog on Digg and StumbleUpon.I read more
  • Kosmetyki: You certainly have some agreeable opinions and views. Your blog read more
  • Noni: I find myself coming to your blog more and more read more
  • Noni: You certainly deserve a round of applause for your post read more
  • Wczasy: I just book marked your blog on Digg and StumbleUpon.I read more