The brilliant thing about communities is that they solve both of these problems. When you’re surrounded by mentors and other learners, you have both peer pressure to keep you motivated and a set of people to tell you what tools you should be learning in order to get hired. What’s more, having a community is fun and meeting other developers has been one of the best things about learning to code for me.
If you’re trying to find a community to join, there are two paths you can take. Firstly, you can join a group in your local town or city. Meetup.com has more groups and events than you could possibly have time to attend and is without a doubt the best way to find other developers in your area. As well as giving me access to loads of free workshops, talks and pizza, Meetup introduced me to a bi-weekly group of other learners who would keep each other accountable and share valuable knowledge with each other.
The second option is to join an online community. There’s a much broader range of ways you can get involved with communities online, ranging from popping a quick question on StackOverflow, to participating in public Slack groups, to joining an ongoing, community-based course like Treehouse’s Techdegree or Lambda School. It took me a little while to work out how to leverage the power of these communities properly, but once I did, they’ve been as affective as the real-life communities I’ve joined.
If you’re serious about getting good, I’d advise participating in both kinds of community.
The advice that you should learn to code from doing projects is thrown around a lot. Don’t get me wrong, this advice is good, but it misses some important details. When I was starting out, the idea that I should simply build a whole app was, quite frankly, frustrating. When you’re a beginner, building an app is daunting, if not an impossibility.
But the truth is if you’re going to learn to code, you do have to learn by doing. There’s only so far tutorials will get you towards your goal of becoming a real developer and, without proper practice, you’ll never truly grasp what you watched that video on.
The way I overcame the challenge of doing real projects whilst only having only rudimentary coding skills was to follow along with Treehouse’s Techdegree. Treehouse give you access to a bunch of tutorials but more importantly they also follow up those tutorials with little projects that implement those newly-learnt skills in a real-world setting.
Even if you don’t use Treehouse, you can apply the same method to your learning. If you’re lucky enough to have meet someone who knows how to code (see step 1), get them to quickly draw up a basic project for your current skill level that you can add to your portfolio. If you haven’t yet found a mentor, see if you can think up a basic page you can make to test your ideas on. The trick is to interpret ‘project’ broadly. Your project doesn’t have to be the next Airbnb, just something fun that you can whip up over an evening or two.
‘Learn to code’ is not a bad goal. ‘Know enough React and JS to get a job in 6 months’ is much better. If you’re committed to getting a job as a developer, you need to give yourself a way of enforcing this kind of time-constraint. For me, it was ‘get a job by the time you graduate’, the fear of being unemployed driving me forwards. You’re time-limit is going to be unique to you, but make sure you have one. If you’re stuck, Beeminder, Go Fucking Do It and Stickk.com are all great ways to give yourself some time pressure.
As you progress through your learning, you’ll encounter a range of frameworks and tools to help you build. Many of them you’ll use again, but a lot of them you won’t. One thing you will undoubtedly use time after time, however, is the actual language. By no means should you neglect using frameworks and libraries completely, but it’s more important to set aside some dedicated time to learn the nuances of your language of choice.
When learning to code, you should focus on knowledge that compounds over time to give yourself an exponential rate of growth over your career. This is why you should learn fundamentals over frameworks (the former is evergreen, the latter is not) and it’s also why you should focus some of your time on the skill of learning itself.
Understanding some basic learning concepts such as chunking, focus vs diffuse thinking and forgetting curves will have a force-multiplying effect on everythign else you do.
More than anything, my advice to learners is just to stick at it. When you’re in the thick of it it’s sometime hard to see progress but stay strong and know that in 6 months’ time, that problem you’re stuck on now will feel like a piece of cake.
I’m always happy to help other learners and if you’re welcome to drop me a line on Twitter over at @mulholio or on my personal site jmulholland.com.
If there’s anything else you’ve found useful, pop it in the comments.
Practical things to practice
Time limit enforcers
Create your free account to unlock your custom reading experience.