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?

Step 1:

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.

Personally, after lots of google searches, I decided that for the things I wanted to create I would need 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 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.

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 those Facebook notifications, YouTube and e-mail tabs. If you are 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 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:

screen-shot-googlesearch

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!

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 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.

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 work and how to set-up servers. This took me more time than creating the actual website since I had literally no idea what this was, where to start and which plan would fit my needs. I will try to write more on this topic at another how-to guide, but until then I would like to know how did you learn or are you learning to code? If you wish to share your story, visit the Get Involved page!