img by Coba

How to Become a Good C# Programmer, Part 6

This is Part 6 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, Part 4 (Step 5) here, and Part 5 (Step 6) 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 7: Find some sample apps written in your language and review how they did things differently

Chances are that, while completing your class/book (from Steps 3 and 4) and your pet project (from Step 5), you will come across at least one sizable sample project written in your chosen language. Let me offer a bit of advice:

  1. Look for complete applications
    • In my experience, complete applications tend to be better vetted, contain better code, and have less errors than just quick "How to" example code.
  2. Check out the author(s)
    • Authors often contribute on multiple projects so, when you find a good contributor/author, check out what else they have that you can download! You also might wish to see if the author/contributor has a blog, a book, a class, etc.

For the Microsoft community, http://www.codeplex.com/ is generally the hosting site of choice for "sample" apps and general release apps alike. For many applications, you can download both a compiled version and the source (often in both C# and Visual Basic). There are literally hundreds of high quality sample applications to choose from - here are a few that have C# source code included:

CodePlex.com has literally thousands of apps - check it out: http://www.codeplex.com/ 

Just Be Wary

Just because the code works and has pretty graphics doesn't mean that it is well-written code...

What to Look For

You're really wanting to see the big picture - the "how" of why the authors/contributors did it the way they did. You aren't so much looking for specific code examples as much as you are looking to see how professionals ship code. Look for things like:

  • How did they create the solution: one project or multiple projects?
    • If multiple projects, why?
  • How did they handle class design?
    • It's often handy to pick a problem and try to decide how you would've designed the OOAD and then compare it to how the authors did it.
  • Do you get any compiler bugs?
    • Can you fix them?
  • Did they do things the way that your book/class author (from Step 3) showed you?
    • What is different?

Don't be surprised if you have much difficulty answering the above questions - after all, the people who contributed to the sample app you just downloaded probably have several more years of experience than you do. But that's okay - you're well on your way to becoming a good C# programmer!

Step 8: Finish your book/class and buy another book/class that is specific to your language of a beginner/intermediate level

You've finished your C# pet project and you've finished your first C# book/class - now it's time to continue your education! You have two choices:

  1. Continue with domain-specific knowledge (i.e. get another C# book/course)
  2. Branch out to software engineering topics like OOAD or design patterns

Personally, at this stage, I think you're better off going with option #1: getting a C# specific book/course. I know there are tons of folks who would disagree - and you might should listen to them! - but I think that, at this point in your career, it is quite difficult to wrap your head around abstract concepts for months at a time; instead I've found that people learn better when they can apply what they are learning to their language of choice. There are plenty of Software Engineering cum C# books and courses out there that combine the two as well ("Head First C# Design Patters" is a great one BTW).

However, I would suggest you pick a next-level book that helps you acquire specific skills that you can use to get a job. Learning design patterns in C# is great but they won't open files, make web service calls, do type conversion, or teach you boxing/unboxing. Right now you should be 1-2 months into your C# career and, in my opinion, you still need to learn more of the basics of C# before getting into topics like design patterns and OOAD specific topics.

So focus on finding a beginner/intermediate level book that helps you accomplish something that you can get paid to do:

  • ASP.NET (now's a good time to start with web apps incidentally)
  • How to work with SQL databases
  • Working with Silverlight
  • Pick up a comprehensive course/book on the .NET Framework

I'm sure that this advice is just "crazy" to some people but look: I'm just one guy who knows C# and knows training. By no means does that mean I know how to train everyone because not everyone learns the same way or at the same pace. Take my advice with a grain of salt - does it make sense to you? Then I hope it helps. If it doesn't make sense, don't do it!

What to Look For

Since Step 10 is coming up and it is all about picking another pet project, pick something that can help you towards that goal.

Next up

Let's take a look at Part 7! Of course, you are welcome to go ahead and dive into my C# training videos 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?
authors
scott whigham
grant moyle
chad weaver
recent comments
  • Crystal Powers: I enjoyed this article but I don't fully understand exactly read more
  • shaiya gold: Well, the post is actually the freshest on this laudable read more
  • wow gold: Thanks for your helpful Post, I hope you have a read more
  • Robin Hone: Wow, did you write this yourself or pull it from read more
  • How to Lose 10 Pounds in 3 Days: Considerably, one of the best article l have come across read more
  • exercises to help lose 15 pounds: Great piece of post, l will subscribe to your rss read more
  • Lose 20 Pounds a Week: Fisrt of all, l love your template, and will subscribe read more
  • the diet solution program reviews: Well, one of the best article l have come across read more
  • The Love Calculator: You certainly deserve a round of applause for your post read more
  • Love Calculator: Should I buy steel golf clubs or graphite ? read more