I’m not a great programmer; I’m just a good programmer with great habits.

- Kent Beck, software luminary

18 Rock-Solid Tips for Success

  1. Go to meetups. Meetups are great places to gain knowledge, mentors, peers, friends, and job offers. These are all essential. As my mother always said when forcing me to go to social events I didn’t want to attend: It’s not what you know – it’s who you know.

  2. Get an actual paper notebook and take notes and make diagrams by hand. Humans learn faster when actually writing things out by hand. Take notes and make diagrams while you are learning and coding! Keep notes about commands from the command line. Take notes about software requirements. Keep a list of all of the HTML elements and CSS properties you learn. Draw diagrams of software systems. Do whatever you want! These notes only need to make sense to you.

    I carry an 8x11, graph-paper Moleskine notebook almost all of the time when I am coding and/or learning. I think and work through problems much faster as a result. I also forget fewer things.

  3. Type out all (most) of the code. Coders type code for a living, so… get started. Nothing enhances your understanding of software more than actually making some of it work.

  4. Build an active GitHub profile. Practice using git software from the command line. Sign up for the GitHub service, and build a GitHub profile full of projects. Even if the projects seem simplistic, keep pushing them to GitHub. This is all to say…

  5. Try to code 5 or 6 days a week. New coders need to code very frequently in the beginning. The continuity tremendously reduces the cognitive overhead costs of learning. Even if you can only spare 15 minutes one day, try to build continuity into your learning/practice habits first few months (or year) you are coding. But only 5 or 6 days. It’s important to give yourself rest days. Push code to GitHub almost everyday.

  6. Invest in a few programming books. Go read Appendix A: A Hacker’s Bookshelf. If you can afford it, buy physical copies of the books on CSS and Linux that are listed there. Research and has shown that people retain a lot more information from physical books than electronic ones. Real books are more interactive - easier to flip back and forth between pages, easier to take notes - and that helps you learn faster.

  7. Be kind to yourself. Coding is hard, especially at first! Every coder has had months of disillusionment in their career. Just keep coding!

  8. Make small, achievable goals. They add up. Resolving to read 5 pages a day of the CSS book is much less daunting than declaring you’re going to read it cover to cover in a month. And even if you miss a couple days a week or only read 3 pages some days, you will have a stronger grounding in CSS than many CSS developers within a few months of doing this. Hell, if you just read 5 pages of a book on CSS a week, you’ll have read 260 pages of CSS knowledge in a year, and that’s not bad!

  9. Have a playful attitude. Cultivate your curiosity! Experiment with code that you read about, both here and in external resources! Try to break things and then fix them. Trying using code you read about in tutorials and documentation. Create your own 1-day projects using tutorials.

  10. Ignore complexity whenever you can. You do not need to understand why all of your code works. In fact, your success hinges on you frequently accepting your ignorance – so that you can move on to the next task. Although it is incredibly easy and intellectually satisfying to dive down a rabbit hole of internet research and understanding, this should be the exception, not the rule. Just make it work.

  11. Perfect is the enemy of done. Stop trying to make your code or a page look perfect. Just move on to the next thing. As Salvador Dali said, “Have no fear of perfection - you’ll never reach it.”

  12. RTFM. See the Glossary, which is an important source of lingo you should get familiar with.

  13. Be specific when talking about code. Use specific nouns to describe things. “I can’t get it to work” is not a helpful sentence. “When I click on the Submit button on the Sign Up form, the Submit event is not firing” is.

  14. Your first interview should not be for your dream job. Interviewing is less far off than you think it is (if you want!). Practice interviewing at places you have less interest in first. It can be incredibly liberating to do a practice interview at a place you don’t actually want to work. Even if it isn’t liberating, it’s very informative.

  15. Buy into the process. Never give up. You will learn how to code, so long as you just don’t give up.

  16. Don’t hesitate to skim a page and move on. Sometimes I know I should read a particular page or section of a book, but I just don’t want to. In these situations, I use what I call the Eyes On Every Page Method. I spend about 10 seconds letting my eye rove around each page, then turn to the next one. This keeps you moving without losing too much continuity. Just keep moving!

  17. Don’t hesitate to skip a chapter. Do not be a “completionist”.

  18. Don’t hesitate to re-do a chapter. I often learn the most on the second pass of some information. In the first pass, you are being bombarded with new material. When you come back later, especially if you have taken notes, it is like greeting an old friend, which can be a real confidence boost.