CHAPTER 5

Tips for Success

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

- Kent Beck

  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 gatherings I didn’t want to attend: It’s not what you know – it’s who you know.

  2. 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 it work.

  3. 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…

  4. 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.

  5. Build A Hacker’s Bookshelf. 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.

  6. 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.

  7. Have a playful attitude. Be curious. 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.

  8. Ignore complexity when trying to make software work. 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. A common mantra along these lines is: “Make it work. Make it right. Make it fast.” Another is “Move fast and break things.”

  9. 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.”

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

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

  12. 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.

  13. Get a physical notebook and write stuff down. Physically writing things down more strongly engrains knowledge and skills in your mind. Take notes and make plans and 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.

    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.

  14. Your first interview should not be for your dream job. Practice interviewing at places you have less interest in first.

  15. Buy into the process. 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.

  17. Don’t hesitate to skip a chapter.

  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.