For you, the ambitious student lost in the endless scroll of Google results, I’ve provided some tips that will serve you well as you begin your journey to learn today’s most popular programming language.
1. Use Structured, Guided Resources
The trouble with cobbling together your own curriculum from the myriad resources scattered across the Web is that you don’t know what you don’t know. Some resources assume years of programming experience while others are so niche that they’re incomprehensible to any beginner. Where do you start?
Shameless plug aside, the important part is that you receive some guidance. One-on-one mentoring is another great option. We have all tried to teach ourselves something without the benefit of guidance and structure. The results are predictable. We end up discouraged, and we often quit.
2. Build a Project
Many resources, including those above, teach you concepts through example projects. Project-based learning helps you master common ways to dissect and solve challenges. The knowledge and practice you gain from coursework are important, but you must wobble along without the training wheels at some point.
Whether you contribute to an open-source project, design your own website, or make an LED blink on a microcontroller, struggling to solve a puzzle with pieces that you must fabricate will improve your learning like nothing else.
I find that my programming projects spawn from my non-programming hobbies. What do you enjoy? Sports, board games, music? What would you like to see in the world that doesn’t exist? What already exists that you could improve?
To be clear, this does not mean you must solve problems in a vacuum. Read the documentation on the Mozilla Developer Network. Browse Stack Overflow. Google when you’re stuck. Learning to research is part of learning to solve your own problems.
3. Make a Commitment, Form a Habit
At some point, as you learn, frustrations will threaten to extinguish every spark of motivation you can generate. You may want to give up on this stupid-doesn’t-make-any-sense-language. If you’re not struggling, you’re not pushing yourself hard enough. Keep your head up.
The trick to busting through sticking points and trekking across plateaus is to make learning a habit and a practice. People often say that starting is the hardest part. I disagree. The hardest part is sticking with something when you feel stagnant and can’t find a good reason to keep going. That’s why you should work to make learning a habit—a regular action that no longer relies on visits from the fickle emotion we call motivation.
Whatever your struggle, it’s a war of attrition. Don’t exhaust yourself with coding binges and quit when your wheels fly off. Keep moving forward a bit at a time. The two tools I’ve found most useful while changing some of my own habits are the StickK app and the 100 Days of Code Challenge.
4. Listen to Podcasts
I treat podcasts like continuing education credits. Unlike formal coursework, podcasts offer a high-level overview of technologies that you can digest while doing the dishes or running.
Conversations between experts on your subject provide a great launching pad for further learning. Sometimes the conversation will be above your level of understanding (this is often true for me). That’s a good thing too. You now know what you don’t know. Progress.
5. Attend a Meetup (or Several)
Much like podcasts, Meetups provide exposure to new topics, tools and ideas. More importantly, they’re social events. Meetups attract senior developers, new learners like yourself, and everyone in between. A Meetup is a great place to seek advice, find a mentor or share your own learning.