I've been teaching myself how to write code with the help of a very talented friend, who unfortunately is talented enough that he has never free time. I've read and worked out of a couple books, but I feel more like I'm going through motions, rather than elegantly solving real world problems. What did you guys do to get out of your larval stage?

Is there a course or educational product out there that isn't quite the $1500 all encompassing lecture, but more than just a dry,"regurgitate this example," type book?

  • 1
    Find something that seems challenging to you. Like 3D graphics for example. – Coder Sep 27 '11 at 22:33
  • 5
    3D graphics for a guy in the larval stage? You're talking crazy sir. :) – Brian MacKay Sep 28 '11 at 0:03
  • 1
    If you wanted to learn German, you could take a bunch of classes in the comfort of your home, or you could travel to Germany and immerse yourself in the situation where you can't do jack unless you can read signs. You have done your reading. Now, try to find a .Net task that will induce some stress, such as a real job or an open source .Net project. Which language btw? – Job Jan 15 '12 at 2:21

Programming is hard enough that few people elegantly solve real world problems until they spend quite some time learning. Try solving small real world problems in a painfully ugly way first, then go back and try to make it more elegant.


New developers go through a larval stage where they haven't yet assimilated the skills necessary to solve problems using basic constructs like loops.

Reading a book will not get you over this hump any more than reading a book on karate will make you a yellow belt. It's about repetition. Working the muscles. You have to burn the patterns into your head by doing it over and over and over.

So I hope you like programming! :)

My advice is to play. Find some simple, fun projects to work on and just hack away at them. If you're mathy, you could try Project Euler or you could go to Rosetta Code and find some simple, linear problems to work through.

Good luck. The work will pay off, I promise!


I would try out the c# book from headstart. It takes a fun and humorous approach, that may be just what you are looking for.

Also, I would start working on some projects that are meaningful to you. Even the most dry text will seem interesting when it contains the next puzzle piece to an interestingproblem you are working on.


Look into a refactoring book on your language of choice. Here's one: Professional Refactoring in C# & ASP.NET I recommend. Goes beyond basic coding and shows you how to elevate your existing code. You'll get exposed to a little theory, OOP, design paterns, and a way to develop this skill.


If you have the basics ironed out, why don't you try building something with what you know. Get serious about a small project and see where you get stuck, then find out how to solve your 'real life problem'. I am sure you will get a handful of those. Without hands on experience, you may read books forever and still not learn how to do things.

Make sure that your objectives are: realistic, simple (but not trivial), clear and short.

After you finish this project, start criticizing it and think how it could be made better, add features and solve more problems. When you have done this few times, you will be able to assess your real show stoppers (database design, coding logic, HTML, etc.). Once you identify those problems, you can find books, courses, etc. that could help you overcome them.


You need something forgiving, cheap, ubiquitous that will allow you to write cool stuff fast and learn OO principles without involving a lot of libraries, which are a mountain to climb in themselves.

The answer is Javascript and the DOM. The challenge is, write your own windowing/control system from scratch. No helper libraries. Once you have written the sizable, draggable, minimizable, etc window, implement all the standard controls. If you get this far you should have a decent grasp of OO and architecture and be itching to do something "real" where all the controls are provided for you (C#). If not, you might continue making a GUI designer for all your controls, and give them persistence.

You will stumble, you will fall, you will bleed and be scarred -- but you will know the minefield now, the WHY and not just the HOW.

Sure, you can steal bits of code from the net, but be sure to make it your own, make it something other than what it was, better, more integrated, more intelligent.

Once you feel at ease with JS, moving to C# is much more fluid.

Another approach if this sounds too cheesy for your abilities, is to go into ActionScript, try to build the same spec I have given on that platform.

Not the answer you're looking for? Browse other questions tagged or ask your own question.