How The Odin Project Changed the Way I Learn Code
I started learning programming exactly a year ago. At first, I didn’t know if coding would be for me, so I decided to ask my friend, who is a programmer, some questions.
He learned how to code in college and then at university, eventually landing a job.
My Early Journey Into Programming
Why did I want to learn how to code in the first place? Well, I am tired of working in different companies doing mostly the same things every day—fixing machines, operating them, making products on various kinds of machines, and so on.
I have always wanted to start my own business and build my own projects or serve clients. I used to be a real estate agent, and I really enjoyed that kind of work—serving customers and more.
Figuring Out Where to Begin
Anyway, after asking my friend a couple of questions and comparing them with the skills I already have, we both concluded that learning programming shouldn’t be so difficult for me. The next step was coming up with some resources. He didn’t know much beyond Udemy and bootcamps, but he promised to contact another friend who’s also a programmer with much more experience. I said I would also do my own research, and then we’d try to find something great together.
After about two weeks, we called each other with some results. It looked like bootcamps were overpriced, and we thought that most of them were more about taking money from participants rather than truly teaching them how to program. Moreover, many of them tried to teach as fast as possible and seemed focused on keeping people accountable. That wasn’t a big deal for me because when I say that I’ll do something, I will do it no matter what.
I figured I might not be able to pull three hours a day of learning, but I am sure I can do one or two hours a day for a longer period than a bootcamp would last. On top of that, we claimed that for the price of bootcamps, the same knowledge might be found in courses on Udemy. So we stuck to Udemy.
Starting With Udemy
I found three teachers who seemed interesting for learning JavaScript with, and my friend also picked three. After some due diligence, I pulled the trigger on this one.
I was hyped, excited, and ready to start straight away. I bought the course, prepared some notes, and played the first video. As days passed, I could see my progress in understanding JavaScript, HTML, and CSS. I knew how functions work, what variables are, and, most importantly, how to start projects and make JS, HTML, and CSS communicate with each other.
At this point, I told myself it would be a great idea to split my learning time and add some YouTube videos featuring people doing only projects. I found these 3 guys which I learned a ton from. Really recommend them!
So much, in fact, that I started doing my own little project until I got to APIs, which I didn’t understand much. So, I went back to spending more of my learning time on Udemy courses again.
I kept going with that course until it got me to Classes, which I had no clue about. At that moment, it felt like I’d been introduced to plenty of things in coding, but all the lines of code I had written were actually copied from those resources I showed you above.
I didn’t see myself using all this stuff to do something on my own, but the course was already on Classes and OOP, which seemed so alien to me. I felt like I should have known much more at this point in order to grasp all these concepts, yet I wasn’t even told to do anything on my own yet! I knew something was off.
I checked where I was in this Udemy course, and it turned out I was exactly in the middle. I thought, “Eeeeemmmm, nope! It’s not going to work like that. There is no f***ing way to learn programming (a thing that people spend years on) in like three months.” By my calculation, I would be somewhere near the end of the course around that time. It made me a little sad, and I felt like I might join the group of people who write those types of comments online
I thought there must be a better way.
Discovering “Tutorial Hell” and The Odin Project
I began to scroll Reddit, looking for some helpful comments, and found the phrase “tutorial hell.” Yep, that’s exactly what I would’ve fallen into if I had continued getting other courses on Udemy and so on. But luckily, I found posts recommending The Odin Project.
A lot of people recommended either TOP (The Odin Project) or FreeCodeCamp. I did my own research and thought that if Odin takes sooooo long to finish, it must be a great resource. People who recommended it seemed really proud of choosing it in the first place.
I called my friend and told him about it. He had no clue what I was talking about. It looks like TOP is not very popular in Poland. But I told him my struggles with Udemy and then started TOP right away.
A Completely Different Approach
It was completely different! There was a lot of reading in the beginning and all that, but the first couple of lessons were nicely designed just to introduce the student to the whole process. I liked it.
Lesson by lesson, I became more aware of why it was so hard to learn from those courses on Udemy. I have a few theories:
Not Enough Depth: Maybe the lessons are often set up in the correct order, but there aren’t enough resources about each subject to give it more breadth. I’m not saying it needs to be as broad as an ocean, but at least broad enough for a beginner to understand what the concept is for and how to use it.
Limited Explanation: Often, there’s just one short way of explaining a particular subject by the tutor. If you still don’t understand what he/she said, you need to start looking elsewhere and then come back. Or you have to rewind the video five times, hoping your brain will finally get what the tutor is saying. In Odin, there are often five other resources linked at the end of the lesson meant to help you understand the subject.
Lack of Hands-On Exercises: There isn’t much focus on the student doing their own exercises. Of course, there’s something like, “We are going to make this thing now. Try to do it on your own before looking at the code I’ll write in a bit.” C’mon, guys, do you really want to learn coding? In Odin, when you start learning about a subject, you have an entire lesson on it. Then there are a couple of links explaining the same thing but in different words. I really love this because sometimes one article explains the subject in a more visual way, and another uses a more academic style. It helps your brain remember longer. At the end of each part, you always have some kind of project to test your knowledge. And yes, you are thrown in the deep water, and with short guidance, you need to sort everything out yourself. It’s not that you have to look for more info to do the project, because it’s always based on the things you have just learned. If you forgot something, you either know where to look for a quick refresher (the resources from the lessons) or simply in the Odin lesson itself.
Building Real Knowledge
Can you see the differences? Odin is long, and in every lesson, you find something that builds up the blocks of knowledge. Going through the course, you’ll have plenty of “click-ins” and “AHA” moments rather than, “What’s that thing for?” or “Am I lacking some knowledge at this point?” or “WTF is this, and where is it even coming from?!”.
At the moment of writing this article, I am at the end of the Ruby course—somewhere around 86%. The last time I spoke to my friend, I told him about lessons I’d just finished, which were Knights Travails, linked lists, graphs, hash maps, data structures, etc. He said that he had all those things at university, and when he asked me how deep the explanation went, he was actually surprised. He didn’t assume that Odin would take those things so far. Yep, it did, and I am really happy I decided to go through this.
At this point, I no longer have any fear of tutorial hell. Every single time I see some post online asking where to start and what course to buy, etc., I want to tell these people to stick to Odin and simply trust the process.
I don’t think anything is possible in two months, as many gurus on YouTube say. Well, you might be able to get some app running just by looking for simple guidance on what to do next, but isn’t it better to learn some stuff properly and then have fewer struggles along the way? You can just focus on building and adding to your knowledge rather than fixing up all the mistakes you’ll make and trying to figure everything out on your own.