Almost two and a half years ago, I had an idea that I wanted to turn into a website or an 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 there are organizations that 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 in order to create a website or a program isn’t very easy (whoever states the opposite will be lying), it is, though, 100% doable! Being a math expert is not necessary, as many are afraid of, but patience and observation certainly are. For as long as I have been involved with coding, it was never necessary for me to resort to mathematical calculations. What has been necessary, however, is to learn how to organize my thoughts in a sequential manner, 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, for instance, we want to cook, and I don’t think that anyone would ever say that you should know math to be able to cook!
Nevertheless, when you start learning to code, you should have at least decided what you would like to achieve with this new skill. 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 sending people to the moon (see Margaret Hamilton, the woman who along with her team sent the human species to the moon ). Obviously, the amount of knowledge, effort and time to learn how to do the first is not the same as for the second. The first thing you need to do is to think what you would like to know how to make. Based on this decision you will then choose what your first coding language is going to be (there are many, and you should start with one). Do you want to build sites or develop apps? If you’re going to build apps, on what operating systems and devices do you want them to run? These are the first crucial questions.
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 art, activity or job, 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?
The first thing that I did was to try and understand whether learning how to code was something I would really like to do. Attention! Usually, the things we like are those we feel we are good at, meaning those that seem easy to us. 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 went to Codecademy and began with the introductory tutorials there. Codecademy is a good starting point to get introduced to a range of coding languages, and I strongly recommend it for beginners.
After getting an idea of what writing code looks like, I started searching 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 we established Code it Like a Girl and Geek Islands.
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 those Facebook notifications, YouTube and e-mail tabs. If you are like me, this is the only way to really focus on a task!
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 it. Practice is the best way to acquire and become better at a new skill, and this is more accurate when it comes to coding. By practicing, you will find what your weakest points are, fix common errors and come up with new ideas about what you would like to create or new features you could add to an already existing site or 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 or problem correctly. You will probably need to experiment with several search terms until you find what you are looking for. For example, if you want to make the images of a website appear circular, you will need to google something like this:
Using this method, you learn as you go and you will soon find out that there are no stupid questions because everything has been asked before. It feels relieving and reassuring. Try it!
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 that 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.