So, long story short, I have been learning to code through the Odin Project since 2022. The course was an absolute godsend. All the contents provided were very detailed and helpful for you to learn how to write code.
BUT, I do think there’s a belief among many of TOP leaners out there that studying the Odin Project is all it takes to become an entry level full stack developer. Now, I don’t think this is false, you can definitely get a job as a full stack, if you are still in 2020-2022. The situation now is different. Computer Science is becoming some sort of a trend, where literally everyone is trying to jump on the dev train, thinking this is the career to make banks. Of course, I understand the arguments that not everyone learning CS, can be a good developer. Heck, even some CS students can’t even write code. However, with more and more people joining the field, there will be even more people who can’t write code with a cs degree, along with people who CAN write software code AND have a degree. I only managed to land an internship last year. But that was because I took another bachelor course in uni, fast tracked to 3 trimesters per year.
TLDR, I think TOP(or any other self-taught programming platform) is still a great material to learn web programming (html, css javascript and react). But, solely relying on TOP will not give you a high chance of landing a software development/web development anymore. If going to university is not viable, I would recommend looking into learning some more stuffs after completing TOP, such as DSA, more strongly-typed languages such as C#, Java, etc.
What do you guys think? Would love to have some more opinions regarding this.
Videos
So I would really like to get started with AI, I'm planing to learn by myself , but there are so many resources out there that you end up lost very easily.
I've seen that the odin project is a very usefull resource for web devs that not only train people from beginner to advanced, but it also pushes us through a number of impressive project that have the merit to make you build a portfolio, rather than just theory upon theory.
Is there any similar place to this website but for AI engineering ?
I am asking this question as a machine learning engineer with over four years of experience. I've been studying TOP for a few weeks now, and it's an excellent tool for thoroughly learning the fundamentals of web development principles, along with essential hard skills like HTML, CSS, JavaScript, React, and more. In my view, it's the best course available for anyone pursuing a full-stack web development path.
...BUT
Two major concerns that have been lingering in the back of my mind have finally surfaced, affecting my motivation:
-
First, the "too rapid" advancements in AI technology- both in academia and industry- make me wonder if, by the time I become proficient in full-stack web development, perhaps a year from now, AI will make me obsolete already. I don’t want to invest significant time in a field that may be dead in a few years. I see this as a strong possibility because, as someone directly involved in building these AI solutions, I know firsthand that they are designed to handle increasingly complex tasks.
-
Second, according to the 2024 Stack Overflow Developer Survey, there are already thousands of experienced full-stack developers in the market, and their median salary is not particularly high. I’m not looking to transition into another conventional white-collar position in web development; instead, I hope to use these skills to build a minimum viable product and pursue my solopreneur aspirations.
With these thoughts in mind, I have two questions:
-
Given the current landscape -where tons of AI-generated code are already lingering on the internet- do you think investing in web development skills will be worthwhile in the coming years?
(edit: Folks, I am already a developer. My question is not "Should I start coding despite AI?". I am looking for answers to something like this: "Is studying X, Y and Z to code a full-fledged website by using frameworks A, B and C logical, or will AI take care of A, B, C or even X, Y, Z in a couple of years?") -
Would it be wiser to focus on technologies like Webflow for building websites
(instead of X, Y and Z)? Webflow seems intent on adapting to the "AI era" and could offer tools that simplify the development process. The learning curve is also less steep compared to TOP.
Thank you for your insights!
If it isn't worth trying, are there any alternatives?
Yeah Im almost done with the foundations course and Ive actually enjoyed it. Its not easy and there's a bit of a hands-off approach to projects, but you will never learn from someone holding your hand while doing projects so its a great way to learn programming. Go for it, but be mentally prepared for the challenge and the massive time commitment required to finish it
I just finished their Foundations course yesterday after starting it in August and picking away at it a couple of hours most evenings. I had dabbled with programming in the past (Python), but never really stuck with it previously. I'm now starting the Ruby course to continue with The Odin Project. I found the foundations course to be a very solid course.
A concept is introduced, they give you a lot of reading up front, and then you start to work on exercises before moving towards larger projects. There were definitely evenings where I felt totally lost, but I attribute that to the process of trying to learn a new skill, and not a reflection of the overall course.
Their installation instructions are thorough, they introduce a lot of great concepts that you don't always see in other courses (for example, they force you to learn about git and HTML accessibility standards).
On many of the larger projects, they give you some pointers and then it's really up to you to do the code and read read read / google google google until you figure things out. That's where the real learning comes from anyway, so you'll never feel like you're just copying code examples from a book.
Can I build a cool website from scratch? Not quite, but I can put together pieces of one and I'm learning something new all the time. Am I fluent in JavaScript? Nope, not even close. Have I started to build things, make connections, and tackle some difficult programming challenges that have forced me to look at problems in a new way? Absolutely.
You have nothing to lose!
Just curious.
Edit:- The Odin Project is basically a free hands-on guide to web development with various projects included in it. Developers say that it's one of the best (even way better than various online courses on Coursera or FreeCodeCamp, according to some). According to them, the projects are really involving, and will certainly give you a much better chance at landing a web development job with an impressive resume.
To get started, some background: I am a CS student and decided to start The Odin Project since my major spends very little time on web development, and I wanted to learn HTML, CSS, and JavaScript. I have a fair amount of experience in other programming languages like Java, C#, C, C++, and a bit of Python for ML. Prior to The Odin Project, I also completed the HTML/CSS course (called “Responsive Web Design”) from FreeCodeCamp, although that was a year or two ago.
Since I feel like I have a reasonable amount of experience with teaching methods in my major and some experience with online courses, I would like to voice my opinion on the Foundations course of The Odin Project. Note that since I’m by no means a beginner, I cannot say how the course would feel to complete as a beginner, but I will try my best to keep this in mind.
Finally, do not take my criticism as fact. People learn in different ways, and it is good to have options available. What may work for you might not work for others. I hope my critique will help some people looking to start The Odin Project. Anyway, let’s begin.
The Foundations course is, at the time of writing, 43 lessons long. Spending 2–6 hours a day on them, I completed the course in roughly two weeks. The course is split into a few sections. The first few sections explain the course and goals, approaches to learning, the basics of computers and the internet, and finally setting up the software you need. Although I think there is quite a bit of value in these lessons, I don’t think they warrant taking up a third of the entire Foundations course. Also, I think they try to do too much. On one hand, they link articles explaining the difference between a laptop and a desktop, but on the other hand, they expect you to use a virtual machine to install an entirely new OS just three lessons later. I found it especially baffling that you were expected to install and use Git before writing a single line of code. In my opinion, beginners should first get a feel for what they’re getting into instead of being thrown article after article about fundamentals and being asked to install a multitude of programs.
After these sections, you move on to actual coding with HTML, followed by CSS and Flexbox, and finishing with JavaScript. While I think the general order and scope of these lessons are great, it feels like you have to battle through more and more articles just to get to the first few actual exercises. Linked articles within the same lesson often repeat themselves and don’t seem to add much value after the first one, other than some review and repetition. While a beginner might benefit from having a few different explanations for the same concept, does this really have to be part of the assignment, or could these be additional resources instead? Also, while the course seems to put great emphasis on practicing these concepts, other than a handful of articles with interactive elements, some knowledge checks, and a few dozen actual exercises, I don’t feel like they practice what they preach.
The articles also spend a lot of time on best practices like naming conventions, comments, Git commit messages, branching, and using developer tools like a debugger. In my opinion, for someone, especially a beginner, to see the value of these, they should first experience the problem they solve. In my major, I had numerous group projects where we shared .zip files of code on Teams with names like final-version-2 before finally learning about Git. After experiencing the frustration of dealing with multiple versions of zipped code, you can imagine that the learning curve of Git seemed like a worthy trade-off. Have beginners write a small program, come back to it after 20 lessons, and have them explain their work. That is the time to emphasize the importance of clear names. Show them a version of the program with good comments and naming conventions and demonstrate how much easier the assignment becomes.
On a similar note, I don’t think it’s a good idea to make people, especially beginners, install and use everything the course introduces. When going through all sorts of new systems and technologies, I think it’s important to minimize the number of things you learn at once. The Foundations course has you learning:
-
VS Code
-
HTML/CSS/JS
-
Git
-
Chrome DevTools
-
Unit testing
-
Linux
Now, I think using VS Code from the start is a good idea. Using an online IDE isn’t much easier and allows beginners to start learning how to use a professional IDE right away.
Obviously, HTML/CSS/JS is what people actually want to learn, so that should stay as well.
Git is great, and I think it allows for easier code sharing to solve problems. As long as you limit yourself to one branch and simple commits, it’s manageable. Also, GitHub Pages makes sharing projects easy, which I thought was great for inspiration. I think Git is definitely more of a luxury, and I don’t think they should have introduced branching in Foundations, but otherwise, it has its place.
However, are the others really needed from the start? The Chrome DevTools sections were quite lengthy, and only the calculator project had enough moving parts to justify including them. I think just covering simple console logs and how to use them would be enough. Leave the rest for later courses.
The unit tests are helpful, but I think they could easily be avoided by giving the user slightly longer exercise templates with some built-in logs. Also, I found it outrageous that the unit tests often included more criteria than were specified in the README.
Finally, the elephant in the room: Linux. While I understand the motivation for including it, I also think that if you limit yourself to VS Code, Live Server, and Git, the arguments for unifying the installation process don’t hold up all that well. The few bits and pieces of Linux that the Odin project teaches is too little to make it hold much value in the field. In my opinion, Linux should probably be added in the later pathways with just a few lessons on teaching command line basics, permissions and some scripting. Most other arguments often boil down to a general Windows vs. Linux debate, which I don’t think is relevant here.
To close on a positive note, I did think the projects were great, good fun, meaningful, and with tangible results. Being able to view community solutions was also fantastic. Together with the provided exercises, they were the highlight of the Foundations course for me.
On to the JavaScript path!
Earlier this year, I had this idea of wanting to learn web development so I researched the best courses to learn web development and I found that freecodecamp and the odin project is one of the best. I first started with freecodecamp but as I was doing it, I hated the way it holds your hand so I went on to the odin project. I have never came across something is difficult to learn as this. It is extremely difficult to finish the assignments and projects they give me. I even end up using Chatgpt or reading other people's submissions and I know it's wrong but it's just that it's incredibly difficult and I want to get better so badly.
Is there any better way I can complete the projects they give me and seek solutions to the problem I come across?
I think there hasn't been an initiative as good as theodinproject for ML/AI/DS.
And I think this field is in need of more accessible education.
If anyone is interested, shoot me a DM or a comment, and if there's enough traction I'll make a discord server and send you the link. if we proceed, the project will be entirely free and open source.
Link: https://discord.gg/gFBq53rt