I’ve Built a Project and Decided I Like Programming, What Next?




There are a number of possibilities for expanding your programming knowledge:

Learn While Doing 

Do you want to really learn to code? Get a job writing it. Even if you only make $10 an hour; you will progress more in 1 month as a full-time developer than you will in a year of hobby programming. There’s no better way to learn to program than to do it.

 Books 

Books have been critical in my quest for programming knowledge. When I’ve apprenticed developers in the past, I use books as their primary source of basic knowledge, having them read 1-2 programming books per month (see the resources chapters at the end of this book), while teaching them more advanced techniques in person.

Online 

The web is a good resource for answering programming questions, but I’ve found that when learning new concepts from scratch I need something I can read and digest. If the web works for you, great. Sites like http://www.php.net, http://www.asp.net, and http://java.sun.com/ are the places to start for their respective languages.

 A Software Apprenticeship

 If you haven’t read my article on Software Apprenticeships, I recommend you do. The best (and I would argue the quickest) way to become a good programmer is to write code under the wing of an experienced developer who will teach you not only the basics, but the in-depth knowledge that takes years of experience to learn. I consider this option leaps and bounds above the others. The trick? Finding a programming apprenticeship is very difficult.

 College 

Having gone this route myself I am well aware of the limitations of the University system in preparing students for a career in computer programming. Preparing them for a career in determining little-o and big-O notation, sure, but actually writing code from the get go? Nope. College is great for high-level theory (which you will want as you become a more senior developer), but work experience trounces it in the first few years of becoming a software developer.

Tech school 

I’ve only worked with one programmer who went to a technical school and she had good knowledge of language and coding concepts, but not a ton of theory or design knowledge. As a result, her code was utilitarian and used a lot of brute-force, but was often not well-designed or easily maintainable. There’s obviously a balance between not enough practical knowledge.
(college) and not enough theoretical knowledge (tech school). I am using a very narrow sample, so don’t take this as a blanket judgment of tech schools. As an aside, the network administrators I’ve worked with from tech school have been well-trained and great to work with. Perhaps the nuts and bolts of networking are better suited for such a practical teaching approach.

Comments

Popular Posts