Are you determined to learn to program but not very sure of where to start? It’s probably one of the most common feelings in people that are interested in tech but don’t have any previous experience.

Pom on computer by gySMaocSdgs

I found myself feeling very lost when I started doing this transition. There are thousands and thousands of resources out there, some of them you have to pay for, many others are free, so costs do not really become a constraint. But, which ones are worth spending your time (and potentially money) on?

Unfortunately, I do not have the absolute answer to that question, but I do have experience with some of them, and I thought it might be of use to someone looking to start this journey.

Please, bear in mind that a resource that wasn’t particularly helpful to me might be very useful to you and vice-versa. Some people will find it easier to follow and pay attention to a video than some static text on a website. In most cases, the best way of learning is to put what little you know into practice as soon as possible, as otherwise, the knowledge you acquire may not be very useful or transferable to real-life situations.

At the beginning, when I was exploring the different languages available, I decided to give Python a go, as it seemed very popular, versatile and easy to learn.

If you are interested on any of these resources, please press the image to be redirected to their website. I will not get any commision for this, it is just for your own convenience :)

Udemy logo

My first baby steps consisted of getting a lot of Udemy courses, mainly video based. This was a relatively low cost option (around £5 to £30 each), but I must admit that the video format didn’t quite work for me. It meant that it took quite a long time to go through the videos and I would have to stop them every few seconds to do an exercise or because I hadn’t quite caught what the teacher was saying. In any case, I don’t think I dedicated enough time to these courses to do a full review on them, but that was my experience as far as it went. They were good quality materials and easily accessible, just not the right kind for me (but they may be for you!).

Jetbrains logo

A friend of mine recommended Jetbrains Academy (hyperskill.org) and I decided to give it a go. Being referred by a friend meant that you get a few months free, which are extended if you finish one of their projects. In total, I think I got around 6 months of using the platform for free, which is usually enough to learn the basics. After that, the subscription costs around £250 a year I believe. Advantages of this platform is that, unlike videos, you receive a lot of feedback and are constantly practising what you learn. Feedback is considered one of the most important learning tools, as it helps you figure out what areas you need to put some more effort on and what you can do to improve, as well as keeping you motivated. They give you some theory and walk you through the basics and then they set problems for you to solve. Once you finish, you can check other people’s solutions and learn about best practices or other clever ways of solving the problem. I think from all the resources I have tried so far, this was one of my favourites.

Once I was feeling a bit more confident with my Python writing, I decided to go ahead and try to write a slightly more complicated script, and I managed! This is obviously something free to try, that gives you a more realistic view of what being a programmer will consist of (let me tell you, a lot of googling, debugging and thinking the thing you are trying to build will never work!).

The Odin Project logo

Another resource I tried more recently was “The Odin project” (https://www.theodinproject.com/) which is a completely free to use website made by volunteers which proposes quite an elaborated and structured learning experience. They set small real-life projects and explain how to complete them, using a mix of videos and theory from various other resources. In my case, I started with the web developer pathway which taught me to use the command line, git and github, and then I did a basic website project. It is quite a good resource and has a lot of extra information and links in case you want to dive in more in a particular subject.

As you probably know, there are quite a few different learning styles and every person is different in this sense. I have always functioned better with a schedule and a certain level of mentoring and directed learning. After hearing one of my best friends’ story of how she got into tech from zero and how much the bootcamp she did with Makers Academy helped her with this transition, I decided that it was worth a go.

Codeacademy logo

Before applying for their interview, they asked me to complete the Codeacademy Ruby course. Codeacademy gives you some theory and easy exercises to practice the basics of the chosen language, and it was quite good as an introduction to Ruby which can be completed in around 15 hours. Don’t expect to finish being able to come up with very creative solutions, but it’s a decent place to start.

Sololearn logo

I used the mobile app Sololearn while I was learning Ruby in Codeacademy as a way to review and consolidate some concepts. It is one of the most complete coding apps that I have found so far, and although it is not good enough as a primary resource, it is very convenient to complement your learning on the go.

Codewars logo

Once I finished Codeacademy, they asked me to move on to Codewars, warning me that the transition from one to the other could be quite steep. In my case and having studied some Python in the past, it didn’t feel too bad, but I am not sure of how it would be for someone starting from zero. Codewars basically presents you with problems organised in different levels of difficulty that you need to solve without any hints or guidance in order to get points and level up. I found this very challenging but also very good fun. Once you are done, you can check other people’s solutions and find that there are always more efficient and creative ways of solving problems.

I have now started the pre-course on Makers academy, so I will try to use this blog to solidify what I learn, writing small articles about each topic. I hope you have enjoyed this article and see you soon!