img by Coba

How to Become a Good C# Programmer, Part 5

This is Part 5 in my series on How to Become a Good C# Developer. You can find Part 1 at here, Part 2 (Steps 1 and 2) here, Part 3 (Steps 3 and 4) here, and Part 4 (Step 5) here. If you need to reference the full list of steps to take to be a good C# programmer, you can find those here.

Step 6: Post your questions in an online forum dedicated to the language

While you go through the difficult Step 5 ("Implement your project while you are reading/taking the class"), you will:

  • Get excited about the possibilities that C# has to offer
  • Become dazed and confused
  • Get utterly frustrated with how vast C# and the .NET Framework are
  • Get utterly frustrated with how complex software engineering is
  • Mess up royally by either overwriting changes that took you hours to complete, forget to backup your files, or need a complete refactor

You know what? It's all - as you guessed it - normal.

Your life as a C# programmer will follow the Gartner Hype Cycle:


In the graphic above:

  • The "Technology Trigger" is your deciding to learn C# or to become a good C# programmer
  • The "Peak of Inflated Expectations" is what happens when you start seeing C# as the solution to everything
  • The "Trough of Disillusionment" is when you realize that (a) C# isn't the solution to everything, (b) that C# is massive,(c) that writing software is hard, (d) that there is so much to learn, and (e) that this isn't going to be as easy as you thought
  • The "Slope of Enlightenment" is when you start to "get it"
  • The "Plateau of Productivity" is when you become a good C# programmer!

Your Goal: To Minimize Your Time in the Trough of Disillusionment

Let me tell you: it absolutely sucks to be bitterly disappointed with what you've chosen to do. "This is way too hard for me - there's just so much to learn that I'll never learn it all!" While you may not be able to "learn it all", you can learn enough to be a good C# programmer, I promise you. There are several techniques to minimize your time in the Trough of Disillusionment, a few of which are listed here:

  1. Read/study more (i.e. the brute force technique)
  2. Find a mentor
  3. Ask for help

If you have a friend to ask for help, then your life is made just a bit easier. Most newbies aren't so lucky - they may not know any programmers or, if they do, the programmers may be at their job and if the newbie lets on how much they don't know, they could get in trouble at work. That leaves the internet!

Find an Online Forum and Ask Questions

We "good programmers" expect you to do this and, if you don't (or don't follow forum etiquette), we think far less of you. It shouldn't be difficult to find a friendly online C# forum - in fact, Microsoft hosts one of the best over at And I can't say this enough: learn how to post! Learn how to ask questions by reviewing how others have asked questions. There are several good articles on netiquette:

You Will Get Stuck in Your Pet Project

Ask questions in the forum so that you get out of the Trough of Disillusionment and on the path to the Slope of Enlightenment!

Next up

Let's take a look at Part 6! Of course, you are welcome to go ahead and dive into my C# training class online at any time!

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?
scott whigham
grant moyle
chad weaver