I originally posted this article on Medium in December 2018 and thought it would be nice to share it here too. Hope you enjoy this read!
Given that you decided to read this article, I assume that you have recently made the decision (or are in the process of deciding) to expand your current skill set and learn how to code. Perhaps you’re here to find some structure or to see recommended approaches others have taken. That’s exactly what I did when I first started to learn how to code: I tried to find the most efficient way and would only try out the most popular resources in order to optimize my learning journey.
Two years down the road, I have learned a whole bunch of things that I would like to share with those who are at the beginning of their coding journey now. Things that I wish I had known before I started learning.
Now, I am not planning on telling you which websites, books and tutorials to use or which languages and frameworks to pick up first. Instead, I aim to put you in the starting block equipped with the right mindset and knowledge to make these decisions on your own and to eventually help you reach your most ambitious developer goals.
Let’s do this.
This is the first and most valuable tip I can share with those who decide to learn how to code on their own. It’s something that took me quite a while to realize.
If you are new to the world of code, it is tempting to follow the opinion of the masses. A quick “learning how to code” Google search brings up more than 2.5 billion results! It is safe to say that coding is gaining popularity and there are tons of platforms and resources, but also millions of opinions on how to start learning. Before you commit to a certain platform that you select based on popularity, first ask yourself the following question: What is the most effective way for me to learn new concepts?
Are you someone who likes to dive into the theory first before getting your hands dirty and therefore might enjoy books as a learning medium? Or do you prefer video tutorials where someone shows you how something is done while talking you through it? Perhaps you are someone who likes to learn by doing: familiarize yourself with a topic by reading just a couple of sentences of theory, studying an example, and then immediately applying your brand new knowledge to an exercise.
If you’re not sure about your preferences, feel free to experiment with this and try out different kinds of styles. Are you not enjoying or learning anything from a course that seems to be loved by everyone else? Don’t criticize or doubt your competence, or get stuck on a resource that you dislike. Don’t stick with it too long just because others praise this specific resource or platform. Learning a new topic on your own offers you the luxury that you can fully personalize and customize your journey — use this to your advantage and find something that works for you!
If you’re like me and don’t like to leave things unfinished, this can be a hard thing to do. I lost count of how many resources I tried just because they were heavily recommended. As a result, I ended up wasting a lot of time listening to poor explanations and skimming tutorials far above my skill level. Not to mention that some tutorials or instructors, in my opinion, were downright boring.
Don’t make the same mistake I did. Drop a resource (or save it for later) if you feel it’s just introducing more questions rather than answering them. Don’t get caught up thinking “maybe it will get better towards the end”, thereby prolonging your suffering. There are always plenty of alternatives!
This is one you may have heard many times before, but it’s worth mentioning again. If you have a laptop, a working internet connection, and an editor, then you’re good to go.
If you’re at the beginning of your coding journey, there is no need to invest in the latest, newest, most powerful tools as these will not make you grasp concepts any faster. I often get asked whether people should get a Macbook or a Windows laptop to learn how to code. My answer is: it doesn’t matter. Use what you have and what you prefer. An expensive camera will not necessarily help an amateur photographer take better pictures. Similarly, a programmer’s knowledge and skill is far more important than the laptop or computer he or she is using. See if coding is really for you and focus on expanding your knowledge first — the rest will come in due time.
Programming is not always easy. Apply a growth mindset (“I can’t do this” vs. “I can’t do this yet”) and find the real reason(s) you want to learn how to code. What is it that you enjoy about it the most? What would you like to use your new skills for? Having your motivation clear will not only make learning more fun, but it will also make you more resilient in times when you’re frustrated because your code is not working the way you want it to.
I have studied alongside people who only choose web development because there is high demand for it in the labor market. Similarly, I know people who are in it just for the money as such jobs pay well in their country. It’s fine if these things drive you — but from my experience, these specific people aren’t as driven as those who pursue web development with passion and a purpose. They won’t feel the extra motivation to really understand a concept 100% or to figure out why something isn’t working.
Learn to persist through hard times. Know when to take a break, and when to push yourself just a little further. Don’t be afraid to reach out for help, but don’t forget to try things on your own first.
Never compare yourself to other learners as everyone has their own timeline and techniques when it comes to learning how to code. Keep looking forward focused on your goals, but don’t forget to stand still sometimes and see how far you have already come. This may sound straightforward and obvious, but your progress may not be immediately visible as learning how to code by yourself can take quite some time. Don’t be too harsh on yourself and enjoy the ride!
If you’re a self-taught developer, what are some things you wish you knew before you started? What are some of the greatest lessons you learned?