How to Become a Good C# Programmer, Part 5
- by Scott Whigham on September 1, 2009 11:16 AMThis is Part 5 in my series on How to Become a Good C# Developer. You can find Part 1 at TechUrbia.com 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:
- Read/study more (i.e. the brute force technique)
- Find a mentor
- 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 http://social.msdn.microsoft.com/Forums/en-US/category/netdevelopment. 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:
- Tips for Posting Data and Code (and a good SQL forum BTW)
- Tips for Posting Questions in a Forum (which features my favorite topic: don't hijack the thread!)
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?




Awesome blog post, thanks for keeping me busy!
I can not believe the amount of quality material that exists on this site. The site is extremely eye catching and pulls the reader straight in, the articles are great quality and are very professionally written. I have seen too many of these sites where it looks like they pay an 8 year old to do the writing - Not this one. Your site is easily the best that I have seen in a long while.
Nice post. Thank you for information ! Please keep posting.
In fact, some of the Swiss luxury watch, in appearance and identity numbers are there, and done a lot of anti-counterfeiting
measures,. For example, Rolex has 5 numbers, they are: (1) case models, (2) Watch production sequence number
movement and on the number, (4) the movement and on the production sequence number, (5) the band number. In addition to the
band number in the band discount out surface, the rest are hidden, not to remove the watch strap or open the rear door in order to
see it.
Have you ever thought concerning the processes from which a book is passed before coming into your hands? It is not a stolid course to write down a book as well publishing it. Writing in itself is a laborious job. So why not we talk together on the obstacles and hurdles in the way of writing a book? Why don't we harangue on getting help from book writing software?
Good stuff, as always.