Clive Thompson (@pomeranian99) discusses the most important lessons he learned teaching himself to code after interviewing 200+ programmers for his new book Coders: The Making of a New Tribe and the Remaking of the World, a book about technology and science for two decades.
Join the club!
Software is taking over the world, and people who know how to program can make things happen. Could you learn to code?
- You can, but it’s not for the money or time. Learn from people who did.
- Learn from those who teach programming and those who taught themselves
Prepare for constant, grinding frustration
Coding is brutally, punishingly frustrating
- The computer will do whatever you say-but only if you are perfectly, utterly precise in your instructions
- Programming is a constant stream of failures thrown at you by a computer that does not care how you feel
- Being logical and systematic is not at heart what makes someone good at programming
- Do not compare yourself to others, and do not take online criticism personally
“View Source”:
Take other people’s code, pick it apart, and reuse it
- You don’t need to start from scratch when building stuff, you can grab things that already exist and rip them apart to see how they work
- Starting with an existing app and making it do something new, something you uniquely want can help prime your pump and make it less intimidating to begin coding
Learn how to learn
When you learn to code, your core skill is going to be constantly learning and constantly relearning.
- Over the years, new languages and frameworks always emerge, and old ones evolve.
- Being a programmer basically means you’ll be an eternal student.
Code every day
Fluency comes from constant use
- Take the time you normally allocate for something fun-watching TV, going out with friends, video games, watching sports-and use it instead to code daily
- It is better to do one hour a day then ten hours on Saturday
- If you can do more, do more
- For sheer density of learning, one option to consider-if you have the money and time-is a bootcamp
Reach out to other coders
Hang out with other developers at conferences and hackathons to make valuable connections and stay motivated during the long process of learning to code.
- If you live in a remote region or don’t have the mobility to find people face-to-face, try them online.
Automate your life
Computers are great at repetitive tasks, and humans are terrible at dull tasks and quite bad at being precise.
- Learn to code so you can become much more valuable at your existing career and maybe move up in pay
- Code makes you more efficient, more empowered, at your job and in everyday life
Build things
When learning to code, you need to start trying to build things-real pieces of code you can use.
- Do little, tangible things-start with small, tangible projects to get the feel for the code and the quicker you’ll learn to do more complex things.
The online world is your friend. Start there.
There are dozens of free-or-cheap courses online. Start with the JavaScript lessons at Codeacademy, which begin very much at zero, assuming a newbie knows essentially nothing about programming concepts.
- After a few weeks, try freeCodeCamp, a different site for newbies, which integrates JavaScript alongside learning HTML and CSS.
Don’t stress over what language to pick
The goal in the early days is just to become familiar with the basic concepts of coding, which are similar across all languages.
- Pick a language you like and stick with it
- Stop looking for the perfect coding course and just pick a curriculum
- Match your choice of language to market needs
Build things for you-code you need and want
One of the best ways to motivate yourself to learn coding is to build little apps that actually do something you need done.
- If you’re coding in an abstract way, doing tutorials, it’s easy to think, ah, screw it, and stop. But if you’re actually building a tool you’re going to use? It pushes you to go further.