I'm making this post because I saw many people ask the same question..."How long will the Odin project take?". So I decided to time myself while going through the course. As said in the title I haven't finished the entire course but I do plan to time myself all the way.
Disclaimer: I'm not a complete beginner to programming. I'm doing a degree in ECE so we have to do stuff with micro-controllers. So I know a bit of c/c++ and assembly.
So here's how long each section of the foundations took me:
Introduction: 1hr 30
Installations: 7hrs
Git Basics: 1hr
Html Foundations: 4:hrs
Css Foundations: 6:hrs
Flexbox: 10hrs
JavaScript Basics: 43hrs
The BackEnd: 1hr 30
Total: 74hrs
Those times include the projects. Also I didn't go through the additional resources sections.
And here's how long each project took:
Recipes project: 2hrs
Landing page: 2hrs 30
Rock paper scissors : 3hrs
Etch a sketch: 3hrs 30
Calculator: 11hrs
As it regards to projects. I could have easily spent another 10-20 hours making them prettier and getting all the extra credits ..which I'lll probably do later. You might end up spending way more time on the design aspects.
So I started on May 10 and finished foundations today. Worked on it 19 days during that time. So on average about 4hrs a day. Hopefully this helps anyone who may have been wondering how long this might take them.
My thoughts? I'm really liking the project focused method and lack of hand holding. What's next for me? I'm going to go through the ruby track because it has a data structures and algorithms section ...and a javascript section . After that I'm going through full stack open but would be later in the year if all goes well.
Edit: Rock paper scissors actually took 3 hours. It seems I had the Revisiting rock paper scissors section recorded as a Dom manipulation session. Here's how I checked. Again Apologies
Videos
Hello everyone!!
My Background
I'm a 15 year old (turning 16 this year) student. I'm about to move up to Grade 11 and take STEM as my strand for SHS, then I plan to take Computer Science as my course for college. Ever since I was young (7-8 years old) I've always been into coding, and computers in general but I've never really took the time to actually learn it. When I was 10, I built (probably watched a tutorial on YouTube) a web browser with VB.NET, and I thought I was a god at the time 🤣. I never knew how much I didn't know until recently.
I've always had the interest in learning it properly but I just didn't know how.. The first thing I tried was Udemy, I purchased Angela Yu's python course (since I was using and studying it at the time, at that point I've probably already been using python for over a year to make small projects like discord bots) and within a week I just totally gave up. It just wasn't for me.. I wanted to escape the so called "tutorial hell". While looking for Udemy courses though I discovered this subreddit! r/learnprogramming. There was a lot of mention of something called The Odin Project. So I thought I'd give it a try so why not!
Back to now, I just wanted to share that I was finally able to complete all the projects in The Odin Project's foundation course. I do feel like I went too fast though, as I finished it in about a week. Admittedly I skimmed through the chapters about the web and most of the basic stuff in HTML (I took a short separate course that taught some of it) and heavily focused on JS and CSS , which was really tough in my opinion. I plan to take the full stack JavaScript path and take it way more seriously and not skim through anything to make sure I fully understand everything.
Check out my Odin Project Submissions! My Projects
If you have any tips or advice for me it would be greatly appreciated!
As the title says, I just finished TOP Foundation!Even thought I saw posts like this in the sub recently, I'm still exited to post this, as I am proud of my achievements so far (and I hope I don't get much hate ahah).
Here's my story
A little background
I'm a 20 years old guy from Italy, and I had to quit college (an engineer field) some months ago because I was struggling a lot financially and my parents were having hard time keeping up with my education Anyway I thought that the education system is kinda broken. Why do I have to pay for thousands of euros per year, to learn something that is accessible for free on the Web? And is basically taught by some professors that are there to "teach" only because this way they get the funds for doing their researches (basically they don't give a f... about teaching).
During my last semester at university, I had to take a C programming course as long with Data Structure and Algorithms. And dammit, even if I hated my teachers, I fell in love with programming. I remember how hard it was to understand the basics of programming in general...variables, control flow, conditional and loop statements...let alone when I got pointers and memory management.However, as time past, as I said, something clicked inside of me and I fell in love with coding in general. I aced the exam and I kept coding on my own, for fun.
Finding TOP
When I quit college, for the reasons I stated before, I started working on a factory, 8 hours per days, 5 days a week. The usual 9 to 5 job. However, before starting this job, I came across this resource called The Odin Project (maybe from Youtube, not sure tho), and since I was still into coding a lot, I decided to give it a try.
Boy I found it beautiful. It was literally my most preferred way of learning something. Looking at different docs, doing a lot of researches before coding is what made it for me. Idk if it was university that taught me to work this way, but I found this approach of learning very cool and it fit me perfectly.Doing projects at the end of research was like the topping on the cake.
After a week of doing the TOP foundation (maybe the first part until git), I started working, and damn I must say I struggled a lot. I was coming back to work, tired as hell, and managed to study from 5.30 pm to 7 pm and from 8 pm to 11 pm. Sometimes I was falling asleep on my laptop too. It has been two months. Dammit was it difficult. I loved weekends not because I could go out with friends, but because I had more time to study basically ahah, during Saturday and Sunday I managed to study too. Thank god now I have one month free from work and I can relax a little bit more :)
Aftermath
Anyway, after almost 2 months, I was able to finish the Foundation!I understand the basic of HTML, CSS and JS (I guess).I think that I was really helped by the fact that at college I programmed for 6 months in C, hence it gave me a strong foundation of the topics.
In fact, I somehow found more difficulty on learning CSS and Flex layout than JS itself lol; I did not have an hard time learning the basics of JavaScript and arrays, while DOM manipulation was something new for me and I gave it more time.
One thing I really liked is when I discovered how to use git, damn if I knew this thing existed before I would have surely used it even in college!
I have built the projects that the curriculum present, and I'm pretty happy with the results, especially with the last one! It took me a lot of headaches, but I managed to get it working and I think that the calculator is good looking too ahha :)
Here's a link to my Github, if you want to take a look at my projects (I have to say that the calculator is the project I spent the most time on, other ones are pretty ugly and I should restyle them).
Now I'm looking for to start the Ruby path and I'm more exited than ever!
Hi! Pretty new to the subreddit, but been a lurker for a while, and I wanted to share my experience!
I just finished The Odin Project's Foundations course and during which, I had a lot of questions and learned a lot through the process. I'm hoping this post might help others going through the program or considering going through the program.
It took me a total of 73 hours over the course of 25 days to finish it. I only counted the time when I was actively in front of the computer researching or coding; bathroom breaks, lunch breaks, weekends etc. are not included.
Here's what I learned:
It's okay to struggle and not understand the material.
There were many times throughout the process I thought to myself "man I'm just stupid" or "my background is in ENGLISH teaching kids...I have no idea how to think like a computer/mathematically" or "the heck is a Fibonacci?!"
Take care of yourself physically and mentally. It's just as important as learning how to code.
console.log() is really your best friend in JS and (putting) borders (around elements) are your best friend in HTML/CSS (if you don't know what's wrong with your code, these two were invaluable to me to figure out if what I was changing was even the right thing!)
Comment things out! Sometimes I didn't know where the problem was so I would comment things out bit by bit and it helped tremendously!
The Odin Project(TOP) v. Free Code Camp(FCC) : Dabble in both!
There are things that TOP does better than FCC (giving more autonomy and making you really stretch your problem-solving skills, but as a beginner it can be really frustrating and discouraging because they outsource a lot of their material). Sometimes I'd be stuck on a problem or a concept and I couldn't figure out what it meant. TOP has a great Discord channel, but, in the early stages, I was too nervous to ask and just flopped around confused.
Equally, there are also things that FCC does better than TOP (giving clear direction and doing a great job scaffolding your learning, but it holds your hand a lot and, aside from the projects, you don't get to stretch your problem solving skills as much [at least for the first few projects, I've only gone halfway through the JS portion of FCC]). In some sections it would tell me to do something (looking at you grid and flex!) and I didn't quite understand what I was doing, yet I was passing the tests.
If you only have time to do one or the other, what I did was focus on TOP and, when I ran into an issue I didn't understand, I used FCC like a cookbook (what's the topic I need to understand, go there, and run a review where FCC might have explained it a little clearer). Ultimately, I haven't done the entirety of either, I haven't gotten a job, so I don't feel qualified to say which is better to get you job ready. Personally, I think both have different styles of teaching and neither is wrong!
Some Ways to Overcome the Struggle
Take a step back/take a break (one time I was stuck for a half hour on a problem, took a break, came back, and I found I was just missing a closing curly bracket!). When you're looking at the same thing again and again for hours on end, you might not see what's obvious.
Stop for the day (you may have hit your limit). There's an amazing video about how much time you should code a day that says the maximum amount of time should be roughly 4 hours a day. Of course you can do more or less, but the idea is that your brain can only handle so much. If you find yourself really stuck on a problem and your eyes start to glaze over and everything starts sounding like white noise, it might be time to call it for that day to give your brain time to absorb what you've learned and process it.
Go back and relearn. It's tempting to power through the course and tell yourself "job's done boss", but if you don't really understand the concepts, then what was the point? Although it seems counterproductive, reviewing concepts is one of the most important things to the learning process. A lot of people talk about the learning curve, grit, and growth mindset, but, equally as important, is the idea of the Forgetting Curve. In short:
Learners will rapidly lose their memory of learned knowledge in a matter of days or weeks unless the information is consciously reviewed. Some studies suggest that humans forget approx 50% of new information within an hour of learning it. That goes up to an average of 70% within 24 hours.
S**kip (yes skip!) that one portion and come back to it later (I usually try tackling it again after another lesson/segment is done). A few concepts didn't click with me right away, so I treated it the same way you treat a test (if you don't know the answer to one problem, don't waste time staring at it, skip it, answer the questions you know, and then come back). Every time I went back, I understood the concept better than the first time around! Why? As the lessons push through, you get to see concepts in action in a way that's different, or just explained differently, than the first time you saw it and it'll click. I spent hours trying to figure out what return actually meant. I didn't actually understand till a later lesson used it more casually and, for whatever reason, it clicked.
Find other resources on the same concept: StackOverflow, YouTube, Google, MDN, FreeCodeCamp, etc. Use all the free resources available to hear the same concept in different ways. If you don't understand, it might just be the way that it's taught.
Someone who is an expert in their field might know the material, but teaching and knowing are two different things. I know the common saying is "if you can teach it, you know it" and, while that's true, in my years as a teacher, I've found both: some of the smartest people were some of the worst teachers (how their minds worked was just so different that they didn't see why others didn't just "get it" like they did) and some of the best teachers I found were just winging their lessons!
How Do YOU Learn?
Everyone learns different (I'm sure you've heard this a million times), but it's more than just auditory, kinesthetic, and visual. Some sources will say there are 7 ways to learn, 9 ways to learn, 12 ways to learn. In reality, there are an infinite amount of variations in how someone learns.
Do you learn better with examples? When things are written down? Do you remember using mnemonic devices the way Michael Scott does? I had a friend who aced college because she said she had photographic memory when she highlighted her notes in different colors. Whatever works! Finding out how you learn best will help you overcome roadblocks and hurdles faster and get frustrated less.
Have a Strong Support System!
What got me through rough patches wasn't just motivation and grit; what got me through the rough patches was having a strong support system that got me through my low-lows and were there to celebrate my highs. My husband was there to walk me through my anxious moments and, when I didn't get it, helped to explain it to me or worked together with me (he has a little background in CS and can code in C++).
TOP has an amazing and vast Discord channel! If you don't have someone close to you or in your family that does it, I recommend jumping on that. There's this whole subreddit and a few other subreddits with amazing communities.
Study buddies work. Someone to keep you accountable and building good relations is always helpful!
Habit over Motivation
Motivation is the ignition to start the car, but habit is the fuel that will keep the car running. Taking weight loss as an example, when you first start out, you're pumped! You buy all the supplies you need, maybe a gym membership, you wake up early in the morning and pump out an hour a day. But as the days go on, life starts coming up, you start finding reasons (or valid reasons pop up) as to why you can't keep exercising. A friend calls you up and is having a birthday and you eat a whole cake because you've "been good" and it stops all the progress you made. Why does this happen?
Because motivation does not last. You want to build a good habit early on while the motivation is present and, when the motivation is gone, the habit is what will keep it going on. Tell yourself you'll practice/learn coding at a certain day or time of day and stick to it. Make it a part of your schedule. To build a good habit, you tell yourself that coding time is not flexible and, if you miss it, reschedule it like any other appointment. Like weight loss, build little habits over time. It takes time to build a habit. Speaking of weight loss...
Take Care of Yourself Physically and Mentally
You probably hear people say "exercise is the best for your mental state", and it's true! During this process, I had a lot of instances where I struggled a lot. Having quit my job, forced to move in with family, and just feeling like a failure, anytime I ran into a problem I couldn't solve or Google, it was hard not to start stressing about my future. Coupled with the fact that I ate terribly and was gaining weight (on top of COVID weight!), it didn't help me mentally.
Take the time to exercise even just a little a day. A 10 min stretch, a 15 min walk, anything! If you're not able to get out of the house for whatever reason, there are a lot of YouTube videos that will take no more than a few minutes of your day. Some can even be done at the desk!
Water! I didn't realize how dehydrated I was after sitting in front of the computer all day. Have a water bottle/glass of water next to you while you work. My headaches were pretty frequent when I first started because of the dehydration.
Blue Light was the worst part about long days of coding. You can turn on Night Light for most computers or get Blue Light glasses, but I highly recommend it. I had frequent migraines before turning on the Night Light and had to take full days off due to eyestrain several times.
I can't emphasize it enough but TAKE DAYS OFF. I know for some people it's not always possible, but it does wonders for your mental health and for learning! It gives your mind a break to think about what you learned, process it, and then come back fresh and new. I set aside the weekends so that I can make time for my family, friends, or just me time. As much as I know that I need to get a job ASAP, burning myself out won't do anyone any favors.
I often see a lot of posts saying they "gave up video games" or "had zero breaks because they can take a break once they get a job" and I'm not bashing that at all! If you have that mindset and you're able to do that, that's amazing! But I think it can set unrealistic expectations and places a lot of pressure on someone. If you can do it, great! If you can't and think you're going to quit because of the intense schedule, set boundaries for yourself so you don't. Just like with weight loss, everyone is different, everyone's goals and situations are different, find a break that works for you. Study time is study time, but play time is play time (
workstudy-life balance, don't feel guilty for having it).Just throwing it out there, but if you've had breakdowns or told yourself you couldn't do it, you should find a different job, you should try something else, you're too dumb, or anything derogatory like that, just know you're not alone. Been there, done that, and it'll probably still keep happening. But you're learning everyday and getting a little better everyday!
“If you can't fly then run, if you can't run then walk, if you can't walk then crawl, but whatever you do you have to keep moving forward.” ― Martin Luther King Jr.
I'm sure there's more I'm missing, but I wanted to share what I learned throughout the process. I'm by zero means an expert and I'm still learning myself. Would love to hear what anyone else learned/experienced going through TOP or FCC and would love to meet others going on the same journey!
Thank you for anyone who read this large blurb of text!
Hey guys, I just finished TOP foundations in about 2 weeks after using this subreddit to decide what course to pursue. Here's my experience:
Background - I've taken one high school and two college classes in Java, all of which were over 5 years ago. Over the summer I did the first 10 chapters of How to Think Like a Computer Scientist to brush up on the basics and get a taste of Python. I came into TOP knowing what [loops, variables, lists, andObjects] were, but couldn't write more than a basic function to manipulate them.
Timeline - Set up was 10 hours, HTML+CSS took around 25 hours, and JavaScript took 35 (OOF), for a total of 70 hours. Facepalming after finding minor error crashing my projects was at least 10 of those.
Getting Started - Struggling with git and what not for 10 hours was somewhat discouraging but it definitely paid off. Learning the command line and how to push to/pull from GitHub has totally been worth it.
The Meat of It - For someone with a bit of experience with the basics, I thought foundations was right on the money. If I didn't already know things like what variable are, how to use return, and most importantly inheritance, I think the process of learning JS would've been rushed and incomplete. JavaScript IS weird, and it was nice to have a bit of perspective to be able to differentiate between writing code that was creating answers and code to push those answers to the web page.
-
Anyway, I found it helpful to take notes on things I was struggling to understand both for later reference while doing projects and for the extra emphasis.
-
Do all of the assignments. But not necessarily right away. I neglected to do the array cardio in Fundamentals 5 until after I had finished the calculator because my eyes kept glazing over. Coming back to it with a cup of coffee and clear mind made it way better. Don't be afraid to revisit a topic that's going over your head in a bad way (looking at you dev tools).
-
Persist - You can't lose if you don't quit. No seriously, flexbox isn't your middle school bully and it's not going to hurt you.
-
Join the Discord - You'll feel dumb when someone spots your error immediately, but they're gods, and someday we will be too.
2¢ - If I was a learner who's struggling with understanding JavaScript's role in the Frontend or the TOP JS section, I'd highly recommend learning the basics in another language for ≈20 hours. It's a small investment for the perspective you'll likely gain. Other than that, The Odin Project has showed me how much there is to learn while boosting my skill and confidence in my ability to do this 1000%.
I'm planning on starting the full stack JavaScript path tomorrow, and couldn't be more grateful for the perspectives provided in this subreddit!
TLDR: If you do TOP don't quit and be self aware while trying to learn.
Hello everyone! I started the Odin Project with pretty much 0 knowledge last week.
(I’m 25 and spend pretty much my entire life growing up around a PC, only as a consumer tho, the most complex things I did before this course was maybe installing mods for games.)
So over the course of this week I learned pretty much all the Basics of the Command Line, HTML, CSS and Flexbox. And did all the assignments for them. It was a lot of fun, even more than I expected to be honest.
Fast forward to today where I managed to finish the Landing Page Project. (Critique is welcome and encouraged!)
Now I know from browsing Reddit and other Sites that with JS the real work/challenge will start. I read from multiple people that they took 7-10 Months just to finish the Foundation Course. That makes me a bit nervous for what’s ahead, and the spike in difficulty I might have to deal with.
I have honestly no idea what comes next and how it will differ from HTML/CSS, only that it will be much more complicated.
So I wanted to ask if any of you have any good advice before I start the JS part tomorrow? Both directly related to JS as well as stuff in general like how I should approach learning about it?
Hello,
I have recently completed the TOP foundation course, and I am now confused on what to learn and which path to take.
Some background information: I've always been interested in programming and I have a basic knowledge of python (self-learned at a young age) and c++ (from doing competitive programming on codeforces), and I'm also majoring in computer science in my university (still a freshman). What I'm saying is that I have a good background in programming and algorithms, so I'm not a complete beginner in it (still have a lot to learn however).
Goal: my goal in learning web development is freelancing and making some extra money throughout my university years, and I saw web dev as the fastest way to do that. I've had some basic knowledge of HTML and CSS before starting the course, and it wasn't hard for me to pick up basic Javascript, so I have been able to finish the Foundation course in 12 days. I also did the requested projects and tried to improve upon them through googling and learning some advanced concepts in CSS and JS.
Now, however, I'm confused on what to do. My plan before starting the TOP course was to learn the basic 3 languages and then a front-end framework and after that start freelancing as a front-end developer, while also learning back-end development at the same time.
The Odin Project however was an excellent guide to follow and I'm very happy with their teaching method, so now should I follow their guide and go through the Ruby on Rails course, or should I stop and learn a front-end framework, start freelancing and then go back to TOP? Or should I just abandon TOP and look elsewhere for courses and decide my own order of learning things?
I would very much appreciate your opinion on this, and also any other advice or path I can follow that you realized through experience. Thank you.
I just finished working my face off with the Odin Project. Finished fundamentals in 2-3 weeks (8 hours per day as fulltime job during vacation). The things I can make now and the knowledge I have now (it's a refresher, haven't coded in years) compared to 3 weeks ago is INSANE!
It's all laid out so well, it's free, the quality is high, it's easy to follow and understand. And also, it knows when it gives you more that you can chew, and it also has many times when it says 'It you don't quite get this year, read X article first'. So great.
I can recommend this to anyone learning programming. So happy!
https://www.theodinproject.com/
is it enough to get a job? Is it to know if I should strive to make a portfolio right after finishing TOP or if I should focus on one of your two paths, if so, which one do you recommend?
Clarification: Even if I do the portfolio I will continue studying, I would just give it less priority in order to finish the portfolio.
Hello everyone,
I’m new to The Odin Project, just finished the command line section.
I’ve seen that some people say they’ve gotten jobs after completing The Odin Project in about 4 months and others say that the Foundations section takes about 4 months to complete.
I’m left a little confused. Is the Foundations section enough knowledge to start getting jobs? If not what else do you need to do to be job ready?
Thanks.
I’m almost finish with the Odin project foundation section. Should I immediately choose the second course(JavaScript or React) or should I do some side projects first. Let that knowledge sink in before moving on?
This is a long read (if anyone reads it at all). I just wanted to share my journey thus far.
Preface: I completed "Foundations" in just over 7 months.
I'd like to tell myself 7 months isn't bad, considering I work full time, but that isn't a good excuse. I see posts on here about the average completion time for Foundations being around 2 months, with some doing it in as little as 2 weeks... I certainly put in the effort to learn programming. Not only that, but I did it 5 days a week, as if I were in school, putting in hours before work, as well as time in the evening. It's depressing when I realize it took me almost 4x longer than the average person to complete the course. I don't like to compare myself to others, but it's hard not to in this case.
I'm not going to lie and say I haven't learned anything. That would be complete BS. But the last few months, it's like I am going backwards. When I encounter "complex" problems, they almost always make me blank out. When I can't break things down, I result to trial and error, hoping something will just work. It's embarrassing.
There were hiccups in the course, but it wasn't until Fundamentals 4 Test Driven Development where I actually got stuck. I spent over a week on exercises "removeFromArray" and "sumAll". I got absolutely nowhere with these, so I decided to find something to supplement my learning.
I took an 8-hour free JavaScript course on YouTube by Scrimba.com. Although I enjoyed the course, looking back, I learned almost nothing; It was very handy-holdy. I only retained a few things from it, mostly basic methods to interact with the DOM.
After that course, I returned to TOP TDD exercises, "confident" I could complete them. Well, I failed once again after another week of grinding... I decided to move ahead to the DOM section, revisiting Rock Paper Scissors, and then the Etch-a-Sketch project.
I spent a week and a half on the Etch-a-Sketch project and completed it + the extra credit task without help. That said, I am not proud of it. It was a lot of trial and error and very hacky methods to get some stuff to work.
Lacking in confidence and knowing that the next section, Fundamentals 5, contains more TDD exercises, I bought a JavaScript course from Udemy. I told myself I would ONLY do the fundamentals and solve any exercises / tasks they threw at me. Going through each lesson, I almost always implemented my own solution before the teacher gave the full breakdown or any hints. In the end, I did solve all the exercises on my own. After completing this course, I decided to change gears, before returning to TOP. I decided I would build 2 projects from scratch.
The first was another rock paper scissors game. This came out a lot better than the first one I built for TOP. I made the game playable with both a GUI and the console on the same webpage. I was happy with the results, but it took me a week to complete, which seems way too long for a basic project / second time doing it.
The second project I built was a blackjack game, which is not part of TOP curriculum and completely foreign to me. I completed it, but it's really a half-assed version of the game. I didn't realize there were so many rules and variations to Blackjack. My version is basically 1 player vs the computer. I couldn't figure out how to implement more players, so I stopped. My game works, but it's not really Blackjack. I have not returned to this project since finishing it.
Before returning to TOP, I did some "mini" projects, which I don't know if they were really any help to my learning. I just did them to stay motivated. I practiced conditionals, arrays, objects, functions, and rendering things to the DOM. I built some conversion calculators and did some things with images. Nothing to write home about.
Finally, I returned to TOP and once again I was not able to solve those Fundamentals 4 TDD exercises. Now I am really disheartened. After taking 2 courses, doing 2 projects, and practice on my own, I am right back where I left off: Stuck.
I pushed on to Fundamentals 5. I think I solved every task on the MDN article and all but one on JavaScript.info. I also solved all the array exercises from Wes Bos' JavaScript30 videos, but 2 of my solutions had parts that were not entirely correct. The JavaScript30 exercises took me multiple days to complete.
After the articles and exercises, I started Fundamentals 5 TDD exercises. It took 2 days to solve the first 2, calculator and palindromes. That was putting in 5+ hours each session.
I then got stuck on Fibonacci for 4 days. Absolutely embarrassing. Apparently this is a super basic algorithm exercise. After reading posts online, people said if you can't solve this, you aren't cut out to be a programmer. Great. I never could solve it, so I went on to finish the last 2 exercises, which took another 2 days to complete.
I then moved on to build the final project of the course, the calculator. It took me 11 days to complete this. It started out OK, but then I got stuck on Task 5 and began to question the operator function I created earlier. I spent 4 days trying to solve this and it was all just trial and error. I was just throwing things at the wall, hoping they would stick. In the end, I was able to get it working and solve all the extra credit tasks, but it's a mess. I made no use of objects or advanced array methods, because I couldn't figure out how to implement them. My calculator contained GIANT if/elseif/else conditional statements that really don't make sense. I was able to refactor them into a single function at the end, but it's still awful. This is easily the worst project I have made.
So, 7 months into my programming journey, I'm at a crossroads. I don't want to give up, especially after putting all this time in, but I feel I need to step back and look at the big picture. It's clear I have a poor understanding of the fundamentals, even after taking 3 courses... I see no reason to continue on to the Ruby on Rails or Fullstack JS path, as they will introduce more advanced concepts that will make me hit a wall. I just don't know where to go from here. Do I try to build some projects on my own again? Do I push through TOP hoping it will work out? Or do I pack it in?
I never expected to struggle this much... I'd like to think I am pretty computer savvy, but I now know that computer savvy does not translate into being good at programming or logical thinking. When I read success stories on this subreddit, instead of them motivating me, it just makes me feel worse about myself. I know I wouldn't be job ready in a years time or more. I never set that goal for myself. I did think I would complete the foundations a lot quicker and already be working through one of the main paths. My slow progress is discouraging and it's getting harder to stay motivated.
TLDR: I can barely grasp the fundamentals after 7 months. I struggle with or cannot solve the most basic of algorithms. I often result to trial and error to solve problems. I am no better at HTML or CSS and I have no eye for design.
Working full-time and learning how to program in your spare time can be difficult to balance. When I started TOP, my goal was to code for 15 hours a week. Sometimes that meant 3 lessons and other weeks that mean 1 lesson, and other weeks that meant a partial piece of a project! I would not get down on yourself for how long it takes.
I choose TOP because I wanted to learn at my own pace and let TOP guide my path. Sometimes I veered off the path, but I learned to trust TOP's path. I loved how the lessons and projects increased in complexity. Before I found TOP, I was trying to figure it out of my own and ended up repeating the same material over and over. With TOP, I would use it as a roadmap, but wasn't afraid to use other material to help me understand a concept better. But then I would return to TOP, because I liked the progression.
This past week I celebrated a year at my first software engineer job and when I look back at the slow progress I made through TOP, none of that matters. I was able to learn new material and balance the rest of my life - like spending time with my husband, 3 kids, friends, etc. Comparing your timeline to others is not helpful at all.
As far as not having an eye for design - you don't need it. That is designers job - they hand you the design and you implement it.
As far as "often result to trial and error to solve problems", get comfortable with debugging and reading documentation. A lot of what I do at work is debugging to figure out what is happening & checking out documentation on the methods that are used and/or available to be used. What you are describing could be perfectly normal, but it just doesn't seem right to you because you expect it to be different. I often write pseudo code of what I want my code to do & then I write code and debug/read documentation to help produce the code that I need.
As far as not being good with HTML/CSS, maybe you'll really love backend work. At my job, I have hardly had to touch HTML/CSS because in the application that I am working on, there a lot of components that are already made that I can just re-use. I do not have to make much from scratch. Plus, I spend a lot of my time doing backend work, which I rather enjoy.
As far as the idea to continue TOP or make your own projects, I would encourage you to continue TOP. If you haven't already, I encourage you to join their Discord community, which I think is their secret sauce. I think I learned more by hanging around in their help channels, helping others when I could, but also reading about other people's issues that they were having and the answer to them. This really solidified the fundamentals for me. When I first started TOP, I would look at the solutions to help me solve something that I was stuck on. But this HURT me because as I progressed to the next step, I did not understand the foundations to help me understand how to implement the concepts to a new problem.
To sum up... good luck on your journey whatever you decide. I started learning to program in 2016 and got a job last year. To others this may seem crazy, but it worked for me. When I started I didn't think it would take me that long, but life happened and I just picked up where I left off and continued.
Even 7 months is not much time with coding. it seems like you entered tutorial hell as well. You've been making everything someone else has told you to make. The beauty of programming and what keeps me going is making something you are excited about. Think of something that you want to make make a plan write down everything you might need to do find documents videos and how to's on what you don't know. Then start making reference documentation and resources that you may need. Don't rely on them until you get stuck. You might never be able to build it because it's too complex or it might come out sloppy buggy and messy. But you built it yourself and that's something to be proud of. So the next time you build something you have those struggles under your belt and can remember why it was buggy what to do or not do next time. Iterate this and find your own way of learning on your own and over time you will end up a competent programmer. I also read others code on GitHub to understand differences in how I'm writing compared to others. It's not much different than understanding Grammer language and writing a book. The only different is there is always two readers of the words at once. Which one of them has an IQ of zero.
I have been programming (some C, some C++, some Java, some Python, and mostly JS, HTML, and CSS and I learned ReactJS not long ago) for about 3 years now, and I got more into web dev about a year ago. I heard about the Odin Project not long ago, probably the beginning of June.
I started the Fundamentals on June 9th, and I just finished today. I have heard that people take a lot longer, and I definitely understand that, because not everyone had programming experience like I did when starting.
Here's my thoughts on the Fundamentals course.
tl;dr -
It covers the essential Web Developer skills well and gives you some real-world experience, but it requires lots of reading.
It covers the essentials
This course covered HTMl, CSS, and JS.
With HTML, it covered the very fundamental things, like boilerplate HTML template, and elements, as well what I think is pretty important, which is the relationship between parent, child, and sibling elements. IMO this is very very important to know. I'm obviously leaving a lot out, but I mostly skimmed over the HTML part.
The CSS part was SO beneficial to me, even though I thought I knew a lot of CSS. It first covered selectors, the box model (FUNDAMENTAL, DO NOT SKIP, SPEND EXTRA TIME STUDYING THIS), and also covered the cascade, as well as another VERY VERY VERY important thing called Flexbox. If you skip this section or don't fully understand it, some of the practice projects in the future may be of great difficulty to you.
For Javascript, it covered basic syntax, explained variables, explained how to interact with the DOM (ALSO MAKE SURE YOU UNDERSTAND THIS), as well as some very basic Node, which I see will be more explained if you pick the JS pathway.
Don't skip the assignments/projects/extra-content.
There are assignments on most of the lessons. The thing is, don't skip these. The assignments are there for a reason, they very much help you. The assignments are great because they will help you retain the information you learned in the lesson.
Next are the projects. These are the most important parts of the course IMO. If you skip the projects, you will most likely forget most of what you learned. They tell you what to do, and not much else, that is why they are so essential. The projects aren't like a Youtube video that you just copy code off of, YOU do the work, no one else.
Lastly the extraContent. The extra-content is not required they say, but IMO it is. Usually they are articles or videos. Watching them will really give you a more fundamental understanding of what the lesson was on.
It builds you a Github Profile
In the Git section of the course, they have you set up a Github account. This is a must for anyone wanting to become a web dev, or for that matter, anyone wanting to become a programmer. Along the way, with all the projects and assignments just in the Fundamentals Course, you will build a decently solid Github Profile with a few repos under your belt, especially if you work hard on the projects.
I also see from the JS course pathway that you will get ALOT more repos for your profile.
Lots of reading
This may be a plus for some, but a negative for others. Most of the lessons are text based, and they make you sometimes read articles for assignments, so you will be reading a lot. The good thing is, for some/most (I forget exactly, sorry), they introduced interactive video lessons that you can follow instead of reading, which I found great.
As the title says! Rough estimates are fine. Trying to plan my life here.Thank you!
I've seen a lot of people say it takes x months, but I think it would be more helpful to gather info on the amount of hours it can take for myself and others who are interested in the program since day to day free time and responsibilities can vary so much from person to person.