How to teach yourself to code
By Maria Dermentzi
13 Nov, 2016
Almost two and a half years ago, I had an idea for a website or a mobile app. Paying someone to do it for me would be overly expensive (at least for my budget), but the good news was that I could learn how to do it on my own, at home, right away and, therefore, having to pay only for the operating costs (domain name & hosting), which are relatively low. Of course, today in Greece some organizations do offer programming courses, but back then that was not an option, and so the subject of this article is how you can achieve it on your own.
Before I begin, I wish to share my thoughts on the entire process, so that no misunderstandings arise. Learning how to code isn’t the easiest thing ever (whoever states the opposite is lying). It is, however, 100% achievable! Being a math expert is not necessary, as many are afraid of, but patience and attention to detail certainly are. For as long as I've been coding, it was never necessary for me to resort to complex mathematical calculations. What has been necessary though, is to learn how to organize my thoughts sequentially, meaning to break down the desired outcome into logical steps according to the chronological order they should be performed at (algorithm). Well, this is not so different from the procedure that we follow when we, for instance, want to cook. Now I don’t think anyone would ever say that you should be a math expert to be able to cook! Yes, it helps — but it's not necessary.
Nevertheless, when you start learning how to code, you should have at least decided what you would like to achieve with this new skill of yours. With coding, you can create all sorts of things, ranging from something extremely simple, such as a static website, to something exceptionally complicated, such as an algorithm that sends people to the moon (see Margaret Hamilton, the woman who along with her team sent the human species to the moon). Of course, the amount of knowledge, effort and time needed to be able to perform the first task is not the same as in the second. The first thing you need to do is to think about what you would like to build. Based on this decision you will then choose what your first programming language should be (there are SO MANY, and you should start with one). Do you wish to build a website or a mobile app? If you're going to build mobile apps, on what operating systems and devices do you want them to run? These are the first crucial questions. Horses for courses!
As this introduction comes to an end, I want to reassure you that yes, you can quickly learn how to make something pretty good on your own, but it would be naive if I told you that you could for example in just one month deliver projects of professional quality. As with any other skill, it takes time to reach an advanced, professional level. But this is reasonable and should not discourage you from trying because, as I said earlier, learning to code is absolutely doable! How?
Step 1:
The first thing that I did was to try and understand whether learning how to code was something I would really enjoy. The catch here is that, usually, the things we like to do are those that we feel we are already good at, meaning those that we find easy. If something seems hard in the beginning and you dislike it, this doesn’t mean that there is no way you will start liking it in the future. Maybe what you need is a bit more time and effort! To better understand what I was getting into, I used Codecademy and took a shot at the free introductory tutorials that exist on their platform. Codecademy is a good starting point to get introduced to a range of coding languages, and I strongly recommend it for beginners.
Personally, after a lot of Google searches, I decided that for the things I wanted to create I would need to learn HTML, CSS and Javascript. So, I started with the HTML and CSS tutorials, which are the easiest ones.
Step 2:
After getting an idea of what writing code looks like, I looked for relevant bibliography on the languages that I was interested in. Of course, when searching for literature on a coding language, because they're getting updated regularly, it might be hard to find something up-to-date in your native language (if this is other than English). It is worth noting that, unfortunately, if you are not a native speaker, your level of English is a factor that could define how far your coding skills can get. The lack of information is, in my opinion, an obstacle that contributes a lot to my country’s digital divide and it is the main reason why I co-founded initiatives such as Code it Like a Girl and Geek Islands in the past.
The book that gained internet's consensus on being the best introductory manual for HTML & CSS was HTML and CSS: Design and Build Websites. The same author has also written an equally good sequel JavaScript and JQuery: Interactive Front-End Web Development.
Reading a book about the language that interests you is usually more productive, since you are (perhaps) away from your browser, and so you're away from all the distractions that come with it. If you are anything like me, this is the only way to really focus on a task!
Step 3:
At this stage, you have already learned enough to start creating something on your own from scratch. You don’t need to know everything by heart since you will always be able to refer back to books, tutorials or just Google. Practice is the best way to acquire and become better at a new skill, and this is even more accurate when it comes to coding. Through practice, you will discover what your weakest points are, fix common errors and come up with new ideas about what you would like to make or new features you could add to an already existing web or mobile app. Coding usually means endless Google searches, which most of the times will lead you to the forum StackOverflow. At this point, the most critical part is being able to articulate your question correctly. You will probably need to experiment with several search terms until you find what you are looking for. This is all part of a process in which you learn as you go. You will be surprised to find out that there are no stupid questions as there will always be someone who has asked the same question before and there is a truly helpful programming community out there who is eager to help. It feels relieving and reassuring. Try it!
Step 4:
Continuous education and improvement. An incredible amount of information is available out there! There are academic courses offered by famous educational institutions through MOOC platforms (see edX, Coursera etc.) and then there are more technical and project-oriented tutorials such as those provided by the amazing Treehouse. Some of these are completely free and others charge one-off fees or subscriptions. One of the mistakes a lot of people make at least once in their life is waiting to feel 100% ready before they start building something. This feeling will probably never come. Start whenever you feel ready enough to write some code even if it is to create something really simple and then just build on that.
Within almost a month of self-teaching, I was able to create a website using HTML, CSS, Bootstrap and Javascript. The website looked pretty modern and included all of the current web design trends. Of course, following this process, I had to learn how hosting plans worked and how to set-up servers. This took me more time than creating the actual website since I had literally no idea about where to start and which plan would fit my needs. On that front, things have gotten a lot easier and cheaper now (in many cases even copletely free), but this is a topic worthy of another how-to guide. In the meantime, just try these steps and I promise you, it's not that hard and you'll figure it out as you go. And if it's not something for you, then that's ok as well! At least you tried and you now have a better understanding of technology!
This article was originally published on codeitlikeagirl.com in November 2016 and was updated in June 2020 when I uploaded it to my personal website.
Liked this piece?
You can let me know on Twitter.