Want to learn to code? Smart move. Coding is one of the most valuable skills in the 21st century economy. The technology sector is growing and, simply put, the number of jobs outnumbers the number of people who can do them. Teaching yourself to code can be the ticket to a new career, or to improving your career, or simply a way to expand your mind, and challenge your existing ways of approaching problems.
Anyway, let’s assume that you do want to learn to code. The million dollar question, then, is how? In this article, I’ll outline 5 tips for teaching yourself to code.
- Create a learning pathway
As Stephen Covey says in his book The Seven Habits of Highly Successful People, it makes sense to ‘begin with the end in mind’. Before you embark on your learning journey, take some time to think about where you are going and how you are going to get there.
A learning pathway is simply a how-to manual for what you will do. Begin with your goal. Where do you want to be in one year’s time, for instance? Let’s say your goal is to be able to create a mobile app from scratch. If that’s your goal, then you need to do a bit of research first. What languages allow me to create mobile apps? How long do they take to learn? What are the basic functions of a mobile app? Etc.
A helpful device when goal setting is the SMART acronym. Your goals should be Specific, Measurable, Attainable, Realistic and Time-bound. You can use these criteria when mapping out your own learning pathway.
2. Create a (small) list of essential resources
The information age that we are living in brings with it blessings and curses. It is truly a blessing, and not one to be taken for granted, that we have access to so much learning content, freely, via the web. It’s hard to think of a topic that can’t be mastered via online articles, YouTube tutorials and free courses. But on the flip side, the sheer quantity of information out there can be somewhat overwhelming. The problem with being faced with so much choice is that it often leads to inaction.
Here’s where you’ve got to be smart. There’s way too much information out there for you to effectively engage with it all, so you have to be highly selective in the resources you choose. When choosing the resources that will form the bedrock of your self-authored coding curriculum, I suggest the following:
- Go for quality over quantity. Be picky. Choose only a few of the very best resources out there.
- Choose a variety of different types of learning resource. Actual, physical books, for one. YouTube tutorials, for another. Online courses, for a third. All the different formats of learning resources come with their own strengths and weaknesses. Diversify your learning portfolio.
- Take some time when choosing your resources, but then trust your research. There may come a time when you hit a brick wall with resource A and start thinking to yourself, maybe I should have a quick google and see if there’s another book/course/video out there. Don’t do this, unless the resource is actual trash! You will be wasting precious energy and time looking for additional resources, rather than actually learning, which is the primary goal.
As for how many resources you choose to use, that’s up to you. But I would make a case here for less is more. If you have a list of 30 books, 100 articles, 63 YouTube tutorials and 19 online courses, you will be utterly swamped. Be as focused and as limited as you can be. This is an example of what your resource list could look like:
- 3 books.
- 10 blog posts/articles, bookmarked or printed out.
- 3 YouTube tutorials.
- 1 online course.
And that’s it. Let’s say you wanted to learn how to code in Python. Imagine if you chose 3 highly rated books, 10 widely shared articles, 3 well-received YouTube tutorials and 1 online course with glowing recommendations, and just stuck with them. Day after day, week after week, ploughing on. By the time you had exhausted your learning resources, you’d be a veritable Python pro. And then you’d simply pick a new topic and start the process afresh.
3. Make a timetable, and stick to it
I’m busy. You’re busy. We’re all busy. That’s just the way it is. So if you want to get something done, particularly something hard, you’ve got to carve out time for it. Emphasis on the word carve. It’s not going to land in your hands, like a gift from the heavens. You are going to have to fight for it.
If you are self-learning to code, one of the reasons may be that you are already employed, and cannot take the time out to attend a traditional academic course or a coding bootcamp. You may have family commitments as well. Whoever you are, you probably have some demands on your time.
So, take a bird’s eye view of your average week. What are your non-negotiables? What are the things that you wouldn’t want to drop from your weekly routine, no matter what? Where is the dead time? When is it that you spend the most idle time, just mindlessly browsing on your phone? It’s time to reclaim those hours.
Be realistic with how many hours you can give to learning per week, and then put them in your diary. Don’t just say to yourself ‘I will spend three hours per week learning to code’. Be more specific. Where exactly are those three hours going to come from? Put them in your diary and treat them as sacrosanct. Commit to those learning hours, come what may. When it comes to learning, long term persistence trumps short term enthusiasm, every time.
4. Track your progress
Make sure you track your progress as you go. You may wish to do this via social media, by sharing with others what you have learnt/made. The twitter tag 100daysofcoding has made a community out of self-taught coders. Putting yourself out there gives you some accountability to others, and added motivation of knowing that there are people out there who have your back.
Another simple way of tracking your progress is by creating ‘confidence bars’ of topics that you are studying. Simply draw a rectangle, made up of 10 squares, and give it the title of the topic you are studying. Then, shade in how confident you are feeling about that topic, on a scale of 1–10. Keep hold of your progress bars, and update them every month or so. It’s a purely subjective measure, of course, but there’s still something to be said for your own feeling of where you’re at.
5. Commit to the long-haul
If you want this, if you really want this, then you are signing up to a life-time’s worth of learning. No topic is ever truly ‘mastered’, and that’s more true of coding than it is of many other things. The sector is growing, expanding and evolving everyday, and you’ll need to as well. So ditch the paradigm of ‘study, then coast’ and adopt the paradigm of ‘always learning’. It’s a healthy way to approach life anyway, and it will certainly help you on your learning journey.