Ingredients Books for a computer science curriculum from a top university Computer Headphones Internet Stress ball Pillow Lighter fluid Food Directions Cover computer science books with lighter fluid Light books on fire Use flames to cook an energy-rich meal for the thousands of hours ahead Pick an editor Choose a project beyond current capabilities. Good ways to push boundaries: Unfamiliar domain (e.g. large scale data processing, UI programming, high performance computing, games) Exotic programming language Larger in scope than any project before Shut up about your editor Attempt to build Stop procrastinating on Hacker News Re-attempt to build Squeeze stress ball and scream into pillow as necessary to keep sanity When stuck: Paste stack traces into Google Find appropriate mailing list to get guidance Realize that real learning happens when you are stuck, uncomfortable, and/or frustrated Seek out books, classes, or other resources AFTER you have a good understanding of your deficiencies Repeat #4 to #10 for at least 10 years Results guaranteed! (to the same extent static types guarantee bug-free programs).
Tradução livre de: http://nathanmarz.com/blog/recipe-for-a-great-programmer.html