tags:

views:

360

answers:

7

I've often heard that the best way to learn programming is by actually doing it. I've gone through some tutorials but it seems that in the absence of real application they're not too helpful. What in depth projects could an individual work on to really learn the basics? Specifically, I'm trying to learn C#.

Thanks for your help.

+2  A: 

You can search for an open source project that sounds interesting to you and uses the technologies you wish to learn and try to participate.

Assaf Lavie
+7  A: 

Why not just do something that you're interested in. Do you like to run, cook, etc? How about a running log to track your progress or a cookbook program.

+2  A: 

When in a similar situation to you a while back what I did was think of an idea for a project be it a forum, storefront, blog etc and just do it.

Sure you will make a ton of mistakes but if you follow that up with as a previous poster suggested looking at an open source project the steps they have taken to avoid mistakes will be more obvious and easier for you to implement the next project you start on. Plus its always a good feeling to build something yourself from scratch, no matter how poor the code might be.

Luke Lowrey
+5  A: 

When it comes to Django or Ruby on Rails the first app most people attempt is a simple blog. This gets you up and running on the basic MVC concepts as well as the Create/Retrieve/Update/Delete (CRUD) mechanics of an Object Relational Model (ORM, aka Data Access Layer).

The nice part about the simple blog is it can be expanded easily using the same principles learned. A properly designed blog application in just about any framework should be easy to add tags, comments, voting, permalinks and social network (Digg, Redit, etc.) integration.

The closest framework in C# you're going to get to what Django and Rails do is ASP.NET MVC.

Soviut
A: 

I would suggest you try to find a simple open source project or sample C# program - as long as it's something that interests you and is not too complex (OSS projects could be a bit daunting though as they tend to be pretty large). Then start tweaking the code by trying to change/add some functionality to the program.

You then have advantage to learn from others, learn how to get an existing project compiled and by asking while working on the project you learn more.

Anders K.
+1  A: 

I think the new standard for learning web development is creating a blog system. I know, it may seem a bit cliche. In the end it covers a lot of the edge cases you will run into while developing web applications. I would take a look at http://codeplex.com they have lots of great open source web applications to get you started.

Chad Moran
A: 

When I am looking for a project to learn a concept, new language, or just for fun I browse sites like Elance and Rentacoder. I find projects that look a bit interesting and develop some set of requirements, and try to code them for myself.

Note that I am not talking about actually bidding on the project, but only look at these sites for ideas, sparks.

Jay Woods