How to Become a Good C# Programmer, Part 8
- by Scott Whigham on September 1, 2009 1:51 PMThis is part 8 in my 10-part series on How to Become a Good C# Developer. If you need to reference the full list of steps to take to be a good C# programmer, you can find those here.
- 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 Programmer?
Step 11: Review some open source apps written in your language
This is similar to Step 7 in which you reviewed several sample applications. The difference here is that you want to go with a little more "upscale" applications - more fully implemented apps and more apps written by a community. Here are a few:
Open Source ASP.NET Website Apps:
- http://www.asp.net/community/projects/ - ASP.NET Starter Kits are a great resource for this stage in your development
- http://www.yetanotherforum.net/ - YetAnotherForum is a quality ASP.NET forum site
- http://cartrackr.codeplex.com/ - Car Trackr is an ASP.NET MVC app
- http://www.codeplex.com/Kigg - Kigg is an ASP.NET digg copy using the MSFT Enterprise Library and LINQ to SQL
- http://www.codeplex.com/oxite - Oxite is an ASP.NET MVC CMS
- http://bugnetproject.com/ - Bugnet is an open source, ASP.NET bug tracking system
Open Source C# Windows Forms Apps:
- http://www.nunit.org/ - NUnit is essential for all Windows-based developers
- http://sharpdevelop.codeplex.com/ - SharpDevelop (a.k.a. #develop) is a free, open source IDE for C#, VB.NET, IronPython, Boo and F#
- http://code.google.com/p/iphonebrowser/- iPhone developer
- http://xmlexplorer.codeplex.com/ - XML Explorer
- http://turtle.codeplex.com/ - turtle SQL helps you generate SQL Server database documentation
- http://terminals.codeplex.com/ - Terminals is a complete replacement for the default Terminal Services client
- http://sourceforge.net/projects/keepass/ - KeePass is a combo C++/C# app
The two "biggies" for open source for the .NET Framework tend to be http://www.codeplex.com/ and http://sourceforge.net. CodePlex, because it is run by Microsoft, is a more tightly focused (and possibly more targeted) group of .NET apps whereas I find SourceForge to be a difficult site to navigate and find something interesting.
Step 12: Contribute to open source apps
You can't just be a leech (i.e. someone who takes but provides nothing in return) - now it's your turn to help out. Contributing to open source applications has many benefits:
- You'll learn to integrate with a pre-existing team
- Your knowledge and comfort levels will be expanded
- You'll learn the style of others (everyone has their own coding style) - example
- You will be exposed to technologies/techniques that you would not have otherwise seen
- You'll feel good that you helped make a product better in some way
- You may receive a level of notoriety by being on the team
- Many companies will not hire people who have not contributed to open source projects
- Being a developer on open source projects is often seen as showing passion for development
Here are a few good resources as well:
What to Look For in an Open Source Project
You want an active community and by "active" I mean that you want to see a steady history of changes, new features, modifications and so forth. Seeing a road map is nice too.
Also, you want something that you care about. Look - we're all volunteers in the open source world. If you don't care about bug tracking then don't join a bug tracking application - you'll end up quitting or getting booted out because you aren't spending the time. Also, that road map I mentioned earlier is important - if you see that the application is due to take a turn into a technology that you don't care to learn, then don't join.
I also would like to see that the tasks needed to be performed would interest me. If the task list is, "Provide documentation for all classes" well, I might skip that one... Sure it needs to be done but I'm not likely to learn as much performing that task as I am performing a task like, "FTP download routine has a bug - find it and fix it".
What Not to Look For
Don't look for polish everywhere - that's not that important. I worked on YetAnotherForum for literally years and it was poorly documented, the SQL Server database was a joke, the class design was w-e-a-k, and so forth - but I learned a great deal working on it. The guys on the project are great guys and they learned as they went too. If I was looking for polish then I would've looked elsewhere. However, what I saw was that this software did what I wanted, that I felt I could improve upon it, and that it was in an area that I had a passion for. So don't get hung up on logos, prettiness of buttons, great descriptions, full-blown documentation - look for places where you can add value.
Next up
Let's take a look at Part 9 of 10! Of course, you are welcome to go ahead and dive into my C# video tutorials 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?




Really thought provoking post, thank you for sharing. I love your suggestions, will be interesting to see precisely how this evolves. All the best. John
Superb posting, is going to be insightful to discover how this turns out. Will take a note of your blogging site to keep up-to-date. Bye. Joe
Great and clean site you have! I have created a new site, if you are interested in PC Game Torrents you most likely digg it! the address is Games-ISO.com. NO registration required
AT&T unquestionably has hold of the market with the iPhone and that’s what SHOULD be looked at…not Apple. Do you believe Apple really cares whether Google offers Google Voice on its platform…. as long as masses are purchasing their phones – and they’re buying these life-changing devices! I love mine! The dropped phone calls are one too many another (AT&T), but the telephone is amazing! One thing I wish it would have is Flash to run videos from certain web sites!
Have no cash to buy a car? Worry not, just because this is possible to get the loan to work out such kind of problems. So take a term loan to buy everything you need.
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.
That comment keeps going for much too long in a manner just tangentially pertinent to the subject matter, in many cases veering towards personal particulars of the commenter's existence which are really much better not shared in a general public message board.
Great site and nice text.
really i thought that
hm, understand:)
Nice post. Thanks
This is exactly what I was looking for! Thanks!
That was interesting but I can`t agree at all.