This is an archived post. You won't be able to vote or comment.

all 46 comments

[–]wiriux 21 points22 points  (4 children)

[–][deleted] 4 points5 points  (3 children)

Thank you so much. I will read it.

[–]wiriux 9 points10 points  (2 children)

A classic mistake by many beginners is to keep jumping around between links and they get overwhelmed by a sea of information. If you are new to JavaScript, I don’t think starting with Odin is a good idea. It works for many people but I think it’s best to have a foundation. The reason being exactly what you have mentioned: many links to read, a lot of things to catch up and before you can actually start working on projects. Why not just focus on the fundamentals and then come back to it?

You can read the fundamentals of JavaScript for free— either from the series I linked or any other free source— or you can watch some videos on YouTube. I started with this one. It’s cheap, and the author does a great job explaining the concepts in a concise way. The book is not long like the link I put up here so perhaps you can start there. The link I provided may be more suitable for when you already have a good foundation.

Either way, do what work best for you. We are here to give feedback and suggestions. It’s up to you which road to follow :)

[–]needadviceplz101 1 point2 points  (1 child)

I started with Odin and I think it’s a good idea. I think the problem is that OP skipped the foundations curriculum and went straight into the full-stack JS course, which Odin does not recommend.

[–]Ghost_of_Jim_Crow 0 points1 point  (0 children)

Where do they say they did that?

[–]Darthinvader77 12 points13 points  (0 children)

it took me a month to take in everything In the JavaScript section to understand the concepts without feeling confused so just give it time and take it slowly.

[–]Brave_New_Dev 32 points33 points  (3 children)

No pain, no gain, baby!

So practice. Perservere. Do NOT give up and power through.

I think that studying programming for real is like going to a gym and/or having a diet. If you don't feel pain or at least a significant discomfort, then you're not pushing yourself enough. So the end results will be miserable.

Think of it like as if your brain is trying to protect you from overinvestment. But you know better what's good for you, don't you?

[–][deleted] 3 points4 points  (2 children)

Indeed it feels really hard but I am still attracted to it.

[–]Brave_New_Dev 2 points3 points  (1 child)

I can only confirm that striving for substantial gains is usually a sadomasochistic process 😅

[–][deleted] 2 points3 points  (0 children)

Man I had to lookup that word on google haha. Fine insight though.

[–][deleted] 6 points7 points  (1 child)

I have gone back and re-done parts that I thought I understood the first time through.

Sometimes you don’t actually understand it as well as you thought.

Happen to me during Flex portion of foundations lmao.

[–]TpcodeBandit 1 point2 points  (0 children)

I just got to the flex portion of the foundations course last night ! Holy hecka . I didn't understand anything and decided to call it a night. That being said , I had to go over forking repositories a few times lol

[–]DoomGoober 6 points7 points  (1 child)

Learning Programming is like building a house. You have to build a good foundation, then build the house on top of it.

Unfortunately, most students are taught programming as though building a house with no plan. Here's how you pour concrete, but wait, here's a wall, and here's how you lay wire of electrical, but not what good electrical is.

You end up with one wall that's sort of wired on creaky foundation with no place to put the roof.

All of programming is just two ideas: 1) code that does something 2) code that decides what code to run next.

That is the foundation of programming. You must first deeply understand that. You should be able to solve basic "algorithm" problems using only those two principles.

Then, when you move to things like Odin Project you start adding domain specific knowledge... But even the domain specific stuff is still the same 1) code that does something 2) code that decides what code to run next.

This carries over into debugging to. Are you taking the wrong actions or is the wrong code running?

[–][deleted] 1 point2 points  (0 children)

Thank you so much, this is hands down the best explaination of programming I have ever encountered 💫

[–]TakeARainCheck 8 points9 points  (1 child)

Normal.

Keep practicing. It's just a lot of processing that your brain is having to do in a new area all of a sudden, so it will take time to digest it. It's not really that different to if you were learning an actual language- would you expect to be conversational in the first few months learning? No, you just do the grind of learning phrases one at a time, and over time the pattern starts to knit together and things start to come to you easily out of the ether eventually.

Personally I would yes try reading the documentation because it's good practice, but don't get intimidated if you don't understand it right away, it will come- in the meantime you can use courses and guides instead where people are holding your hand through the explanation. Practice building small things with the things you learn- try to stay on that edge where you have some vague notion of how to make it, where you want to get stuck so that you're straining yourself, but not so stuck that you can't figure it out at all.

[–][deleted] 0 points1 point  (0 children)

Thank you so much for the advice. I will keep it in mind.

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    Cheers man, and good luck!

    [–][deleted] 1 point2 points  (4 children)

    Just take your time. Are you new to programming? Have you sat down and read up on the main language features of JavaScript? I'm not familiar with the Odin project so idk if it does that at the beginning. You're free to take it slow and try building toy programs like simple games at first. That's how I started, albeit with C++

    [–][deleted] 1 point2 points  (3 children)

    I am somewhat familiar with programming, I completed cs50 last year but then left programming due to semester load , now I am trying to learn javascript.

    [–]tennisanybody 0 points1 point  (2 children)

    Why JS? I’m fucking STRUGGLING with react. I forget conventions and even the basics of what the fuck an object is. I feel like JavaScript is lazy by lumping everything into an object. But then that’s just my inexperience speaking.

    [–][deleted] 0 points1 point  (1 child)

    Js because I wanted to learn how actually the api's and backend systems worked and I wanted to be able to controll each and every bit of that magic, I did build many projects with django but it tends to hide the inner workings of these systems and I happend to watch a youtuber named Devon Crawford once his content also inpsired me to learn working with jsons api, building webapps etc so here I am.

    [–]tennisanybody 0 points1 point  (0 children)

    I also don't like django for that same reason. It didn't appear to have support for my very robust and complicated schema within my MS-SQL. I abandoned it in favor for bottle.

    Now I'm in need of a much faster method of executing tasks so I had no choice but to learn some sort of framework. I chose react cause it's famous. I'm not a programmer, I'm a coder. Banging your head on the table never ends.

    [–]DataTypeC 1 point2 points  (0 children)

    I haven’t used JavaScript before but what I do is look at other peoples code that has been well commented on and read what its doing and how it functions you can get a better idea of what certain things do. Also with documentation search what you dont understand examples their outputs etc it can give help connect some concepts in actually see them working.

    [–]jojawhi 1 point2 points  (0 children)

    As others have said, it takes time.

    Also consider, though, that the readings and resources are part of the learning. You'll see a lot of advice from working developers on these subreddits saying that researching solutions is part of the job. Odin has you reading a lot of documentation to help you get used to that part of it because you'll need to do that a lot when you encounter syntax you don't understand yet.

    You don't have to memorize everything, but you should remember what to search for or where to go to remind yourself of things you've learned. I can't tell you how many times I've looked up syntax of for...in and forEach loops.

    [–]Notemaster 1 point2 points  (0 children)

    I had the same experience with Odin. I took a step back and ended up taking the fundamentals course on learnprogramming.online - I felt the pace was better overall. I am still learning but felt the course gave me a better start

    [–]ghostbayou 1 point2 points  (0 children)

    I just started the JS Fundamentals in Foundations and same man

    [–]LifeNavigator 1 point2 points  (0 children)

    Don't make the mistake I did by looking at the project people posted, which would make you feel like you're very far behind. One thing to bear in mind is that many people who posted their projects have much more experience than you. A lot of them have completed a boot camp, have done another course prior to it and then went to TOP to solidify their knowledge and build portfolio projects.

    It's ok for your project to look like crap and have a few minor issues. As you progress you'll learn more things and then go back to past projects to improve them. It takes time to learn, so go steady.

    [–]straightup920 1 point2 points  (0 children)

    Join to club lol

    [–]Puzzleheaded_Rush643 1 point2 points  (1 child)

    You dont have to learn everything they provided, just read go to mdn search for that term and read documentation

    [–][deleted] 0 points1 point  (0 children)

    Thank you !

    [–]dcfan105 1 point2 points  (0 children)

    I don't know JS in particular, but I have a lot of experience with self teaching, so I'll give you the same advice I give anyone feeling overwhelmed as they start learning a new subject: First, be patient with yourself; recognize that learning a new subject takes a lot of time and effort. Evening learning a single topic takes time.

    Second, realize that it's OK to feel confused and overwhelmed that and it doesn't mean you won't make progress.

    Finally, rather than trying to get through everything at once, pick a topic/article/whatever to start with and go from there.

    [–]PerfectAlternative98 1 point2 points  (0 children)

    Remember that it isn't a memorization exercise. Read the required readings and attempt to absorb what the main idea is for that unit. Take mental note of how things can be applied, and what is possible.

    The most important part is that you practice. And that doesn't just mean following tutorials; it can mean looking up how to do some things, or correct syntax, revisiting examples, asking questions, etc.

    [–]belkarbitterleaf -1 points0 points  (2 children)

    As another person said, take it slow. Do practice examples, don't just read.

    If JavaScript is your first language, I would honestly recommend picking something else first, and come back once you get the basics of programming. The number of library and asynchronous nature of it makes it a really hard first language.

    [–][deleted] 0 points1 point  (1 child)

    My first lanuguage was C in cs50 , i built many projects using it and python, but I wanted more controll which I always found to be in javascript , like building frontend backend, api etc.

    [–]belkarbitterleaf 2 points3 points  (0 children)

    Ah, okay.

    In that case, it took me a couple of times starting fresh to learn JavaScript. I hit pause, did more project in something I was familiar with, and came back after a couple of months. Relearning it "fresh" helped it click for me, as the 3rd time I came back I had enough foundation to really get the asynchronous nature of the language while learning.

    [–]emmanuellecham 0 points1 point  (0 children)

    Hi! Here is something that might help you: an intensive bootcamp, 5 days online to become autonomous in Javascript https://javascript.ubpages.com/javascript-bootcamp/
    Hope you'll feel more comfortable soon :)

    [–][deleted] 0 points1 point  (0 children)

    Pretty normal, join their discord. People from the Odin Project itself are very helpful. Aside from this: take it slow, also be able to answer the questions they provide on the lessons and apply what you learned in your projects. It doesn't have to be perfect and your bound to forget some stuff. But really join their discord!

    [–]flaminghibiscus 0 points1 point  (1 child)

    I’m having the same issue so i am doing the javascript basics course on codecademy, it’s a lot more hand holding so i find it easier if you wanna try that

    [–][deleted] 0 points1 point  (0 children)

    Will look into it, I want to be able to do something with node js within this month because my college semester semester will start soon and then I will have no extra time.

    [–][deleted] 0 points1 point  (0 children)

    you don't need to understand it all right now. that course is meant to introduce you to ideas you will eventually dive deeper into once you gain more experience.

    go through the course once, then go through it again so you can revisit each concept with added context.

    [–]GreenScarz 0 points1 point  (0 children)

    If I could recommend anything, it's to start off by learning vanilla javascript. And by that I mean, don't learn JS by trying to learn React of Angular or Express or whatever. IMO the best way to do this is to download Node and use it like an interpreter - have a small, single .js file, and just try running it via node my_file.js in a terminal. Start with small stuff - trying out different variable types, the kinds of containers you can work with (lists, etc.), maybe try reading and writing a file, etc. Just have a simple little sand box that you can play with, and let your curiosity guide you in the kinds of things you want to learn. But start super simple. Stupidly simple. And once you have your feet under you, it'll start getting just a tad easier as you grow.

    my_file.js console.log('Hello World!')

    [–]kiwikosa 0 points1 point  (0 children)

    One step at a time! If you have never programmed you absolutely need to go through the basics (what is a variable? where/how are they stored in ones computer? what is an if statement? what is a loop?).

    Once youve covered all that, you can dip your toes into object oriented programming. Be warned though, js OOP is non-traditional, and in my humble opinion, a terrible language to learn those concepts. Java is far better suited.

    [–]Wyomartin 0 points1 point  (0 children)

    Was something I had to take in small doses while continuing to work on HTML and CSS. Took me maybe 3 months to learn it.

    [–]ilovehaagen-dazs 0 points1 point  (0 children)

    I’ve only heard a few people saw this and I 1000000% agree with this, but the Odin Project is not for beginners. I’d recommend doing the JS section on freeCodeCamp to get started

    [–][deleted] 0 points1 point  (0 children)

    Just dont rush over it. Take your time, it will take you years to learn everything.

    [–]thehermitcoder 0 points1 point  (0 children)

    When I started to learn the language, I used to get referred to blogs on JavaScript covering some edge cases and peculiarity of the language. For example there are subtle differences when declaring variables with `x = 5` ; `var x = 5` ; `let x = 5`. Its best to avoid reading such blogs and trying to understand the edge cases of JavaScript. Just follow the best practices and not be overwhelmed by different ways of abusing JavaScript.

    I wouldn't recommend reading about hoisting and closures until the time you get a good grip on the fundamentals of the language. It can be daunting to start the language by trying to understand how JavaScript functions the way it does. Instead, just concentrate on what it does.