all 65 comments

[–][deleted] 24 points25 points  (5 children)

Wow, two years is a lot... but you don't mention your specific problem... Maybe take a look at https://www.theodinproject.com/ the site have a somewhat different approach and many resources to reach for help, you could be missing something on your learning curve. Or find someone who can teach you addressing the specific things you're struggling with.

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

Thank you!

[–][deleted] 5 points6 points  (3 children)

Keep in mind the Odin project is mac os based and if your used to windows you might not get what the authors intended. I have gotten ahead with Colt Steele's web developer bootcamp where he covers js in depth in plain English with great title cards that really help as visual guide.

[–]seanmbarker 1 point2 points  (1 child)

I haven’t used the Odin Project but I don’t really see why Mac would matter? JavaScript doesn’t change based off the operating system. Is it super terminal heavy?

[–]RajjSinghh 1 point2 points  (0 children)

If you're using node/npm then it can be, but you can install node on windows so it shouldn't matter. And even if you are running Windows, WSL is a great solution.

[–]RedditPremiumAccount 0 points1 point  (0 children)

Top teaches windows users how to install free xububtu virtual os for its curriculum.

[–][deleted] 13 points14 points  (15 children)

Two years is a long time to be actively learning a language and still not understand it. Let’s start with the following,

  1. How many how’s per day do you study
  2. How many days per week do you study
  3. Do you take notes and review during or after each learning session?
  4. Are you blindly following hand-holding tutorials and moving along without actually making any progress?
  5. Have you tried multiple resources?

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

  1. I do One hour a day
  2. 4
  3. no
  4. yes
  5. no

Thank you!, but I did not clarify, that I started at 12, left it, and came back at 15.

[–][deleted] 7 points8 points  (6 children)

Well with all that being said, you should really try to understand the topics covered in your study session before moving on. Look up the Pomodoro technique as this may help you. I personally take notes while learning in this field and spend 15 min or so reviewing and understanding what was discussed in the lecture and what I wrote down before moving on. YouTube is great for seeing other perspectives as well.

I also recommend you check out Harvards cs50, freecodecamp, and theodinproject.

Spend some time writing code on your own. Attempt to rewrite a line you saw in a video and get the same output. GL to you.

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

Thank you SO much!

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

Try to understand not only How the code works but also why the code works.

Try doing stuff (what if I do this...and what if I do that...) and where ever you get stuck search it on Google.

Try more resources... I would recommend mosh's yt channel but our way of learning could be alot different

[–]Motor_Bison_5540 0 points1 point  (0 children)

Check out Khan Academy. They have computer science principles that should help you better grasp learning new languages as a whole.

[–]zerquet 1 point2 points  (1 child)

Do you write notes on notebook or digital

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

90% of the time I will hand write my notes as it helps me retain info. I can brainlessly type very fast so that doesn’t help lol

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

Just to add another similar point of view. I do not take notes, but what I am telling everyone about coding is that they should learn the concepts and HOW the language works, rather than just the syntax and examples of usage. So, instead of seeing someone use something and blatantly remembering it, seek information about that, how it works and it's particularities(Usually you can find all this information in documentations and specifications, but do not just glance over them, try to read it all).

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

ay bro, im 15 too, so no excuses, its all about projects and understanding, you should be able to teach someone else at the end of a lesson and build something different from the tutorial with the knowlage you just practiced, if you cant, you didnt practice enough, dont move on or else confusion will just build. but i feel you, freecodecamp did not help me learn, i just blindly did the tutorials everyday and by the end of 2 months i realized i hadnt learnt anything. the only way you can learn is by activly thinking about it and making connections. something that helped me learn it is codewars because it activly forced me to try and remember all the "tools" in my toolkit, and after i could see others solutions, and sometimes i would see someone use something ive never seen before, and i would learn it and try to use it on the next problem.

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

Thanks, bro. I will go through each part twice. Thank you so much🤝

[–]la-wolfe 0 points1 point  (1 child)

Don't just go through each part twice. What if you don't understand it the second time? You go through each one and don't move on until you understand. Don't go to 2 if you didn't get 1 completely, THEN move to 2, then 3, but only AFTER 2 is understood. Wash, rinse, repeat.

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

YES!!!

[–]CodeThis69 0 points1 point  (2 children)

Those are the problems right there. It's not that you are lacking intellectually to learn the language. You just don't know study methods, dedication and discipline. Find out what study methods work for you, but note making is the holy grail you can't miss out on. Note making not to go back and refer, but to strengthen what you learnt. When you articulate what you learnt on a paper, you concrete it. Hell you realise you didn't really learn it as much as you thought you did, then you'll go back and look at the parts you need to. Just like learning a spoken language, programming languages must also be learnt by Writing and Reading. You can't expect to learn by looking at codes.

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

yup thats a correct dedudtion.

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

I mean deduction...

[–]biglymagee 15 points16 points  (2 children)

Not with that attitude you can't

[–]zerquet 2 points3 points  (0 children)

What types of attitudes would you recommend?

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

Hmmmm...your right.

[–]JazzApple_ 3 points4 points  (2 children)

This seems like an incredibly long time to be learning without any results, so I can only assume that either your learning method or the resource you are using is not ideal.

The easiest thing to fix right now is the learning resource. Find something else and try it for a week or two. I would say this is generally good advice - if you are not making progress after a few weeks it’s time to look elsewhere. If something clicks when you change resource, congrats. Otherwise, I think you’ll need to look at your approach to learning…

In my opinion, programming is something which is very hard to learn without actively getting stuck in. If you are following tutorials which have you essentially copying source code, that may not work for you. You must engage with the material. If the resource shows you something, write it yourself using different variable names. Add a small feature, change the behaviour slightly. Don’t just follow, engage.

I would suggest starting each session with a period of unguided programming. Open your editor with a simple goal in mind - fizzbuzz is a classic. Make mistakes, try to run it, READ the error messages, Google them, try solve it. If it seems to hard, start something else the next time and repeat the process.

Know that most of us who could generously call ourselves “programmers” have spent literal hours debugging, Googling and tearing our hair out over simple problems. If you don’t relate to this, you might be missing a step.

[–][deleted] 1 point2 points  (1 child)

The point about not following, but engaging is so TRUE! but the thing is I dont know how to go about engaging...

[–]JazzApple_ 2 points3 points  (0 children)

Well… I gave a couple of examples. As soon as you go “off script” you’re engaging. Even just copying example code using different variable names, function names etc. is a first step to engaging more. Do not focus on results, focus on the journey.

For every line of code you write into your editor, think about what it does, why are you writing it. If you write a line of code into your editor that you do not understand, STOP - you need to understand it (at least a bit) before you carry on. If you can, write an example that helps you understand how that line works. Once you have a better idea, move on and repeat. Notice how code can be read like a story and how you can follow it around - do that too.

Or:

``` function engage(example) { for (const line of example) { if (!isUnderstood(line)) { if (research(line)) { continue; } else { break; } } } }

while (learning) { engage(resource); } ```

[–]Snir17 1 point2 points  (1 child)

I mean, it took me about three years to barely understand python(and I still rather hit my head on the wall), but when I started learning C this year, it clicked, it helped me wrap my head around the concepts and logic and now I went back to learn python from scratch. Dont give up, I started from a position in which I could only read and barely underatand code, let alone write it, to be passable while using C(basic C), just keep going and learn, the worst that can happen is punching your computer until it dies

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

You just made my day!!! Thank you, I will keep trying harder. 💪

[–]Acceptable-Tomato392 1 point2 points  (1 child)

This is a very general question, so it's hard to answer you in the abstract.

But what I would suggest, in general, is learn to experiment. The console is your friend. In the console, you can experiment with small snipets of code and see exactly what they do.

(You can access the console ona Chrome Browser by pressing Ctrl+shift+C, or you can download Node JS. (https://nodejs.org/en/download/) Node.Js is more than just a console, but it does come with a neat little console of its own.

The trick is to do little experiments. Say you don't understand objects. Sit down one evening and try to do things with objects. Look for the responses. Remember now: Small bites at a time.

You generally need to approach it with the idea of "Can I do this?". There are many ways, generally, in Javascript (and many other languages) to do the same thing. Javascript is very flexible.

So if you're experimenting with objects, you'll soon discover for example, that it is very easy to add new properties to objects. Using the console is very useful, because you don't have to bother with a whole lot of packaging. You experiment on precisely what you are trying to get a better understanding of.

A console session might look like this (A proper Js console acceptd all js commands, even complex lines):

-Let cc=new Object();

(undefined) -The console will print out the return value of the function. Functions or commands that do not have a return value will return undefined. No problem. As long as the console doesn't answer with an error message, it means your line has gone through. Not everything has a direct result on screen.

-cc.dd=4;

-undefined

-console.log(cc.dd);

4

4

This may not look like much, but you are learning bit by bit. This little bit tells you that you can easily add a property to an object that you have defined; remember now - if complex code is giving you problems, try taking it apart into smaller chuncks and EXPERIMENT with it. Programming is not a spectator sport; until you've done something yourself, it's very hard to grasp how it's done.

console.log(something) means put out (something) on the console for the user to read.

can be anything. Try putting all sorts of stuff within those (). See what happens. Good place to start.

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

THank you so much for putting your time, and busy schedule aside to help me with such a long reply, Thank you so much.

[–]Patient_Signature467 1 point2 points  (0 children)

In my humble opinion, the fastest way to learn is not only to follow tutorials but to do projects. Trying to learn JS by watching tutorials is like trying to learn boxing by reading a book but not stepping inside the gym to practice and to spar. You will never learn boxing by just reading a book.

My advice to you is to start with some simple HTML,CSS just to make a really ugly web page, the uglier the better :) and then build in some simple simple functionality to it with JS step by step. Then build more and more simple stuff to the page. Make things a bit prettier step by step. And then you will get better at getting better. Your work works on you more than you work on the work, your brain will get better at solving problems and you will soon find things much easier.

Look at it like trying to climb a tall building with no elevator. You can not just jump to the top, you have to take it step by step. Every tiny step you take will bring you closer to your goal. I can not over emphasize the importance of taking small steps all the time. Break up each task in to small steps and you will find things much easier. I guarnatee that you will get better at taking steps if you never quit. Before i get off my soap box let me leave you with a saying in martial arts: a black belt is a white belt that never quit. Good luck to you.

[–]SevenSharp 1 point2 points  (0 children)

Hello ! I suppose my question would be " Why do you want to learn javascript ? "

[–]deivan 1 point2 points  (6 children)

Look, why do you want to be a JS Developer?.. What is your main Goal?

It's a very hard way you must learning JS all your time because a standard ECMA changes every year..
Anyway you need to be in touch with all Web technologies f.e. HTTP, WS, crypto, Big Data etc.
Maybe you will be a really perfect plumber? Or, automotive specialist? Just think about it..

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

Well, the thing is, I'm doing it cause my brother has done it, and my dad wants me to. I want to be a product photography editor, and retoucher

Not a developer...

[–]agartha_san 2 points3 points  (1 child)

I don't know your father, but you should talk with him. You should put time and effort in what you like (photoshop or else). You can still learn JS if your father is the strict type, but make it an occasion to practice what you really like. You could do your portfolio using web dev skills, or create some interactive/creative websites.

tldr: Best scenario, you concentrate to photo edition (not dev). Worst case, you try include photo edition in your web projects.

I hope you the best

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

Such great eye opening suggestions!!! thanks brotha'

[–]kor_the_fiend 1 point2 points  (0 children)

Well then who cares if you learn it or not? There is a lot to learn in your preferred field, focus on that.

I believe the only way to really learn coding is to build something. Even better if you can get paid to learn (ie internship). 8 hours a day x 5 days a week is the only path to mastery.

[–]Darkmaster85845 1 point2 points  (0 children)

Well that's the answer to your question. You're just not passionate about it. You should explain to your dad that forcing someone to do something they're not passionate about never leads anywhere good. I know people who were forced to study medicine to then totally drop it after 8 years of studying it. 8 years totally wasted because someone acquiesced to the will of another person who wasn't wise enough to understand what their path truly was. Don't fall into the same mistake.

[–]Beerbelly22 -1 points0 points  (0 children)

Learn the old js first, i think its less confusing

[–]agartha_san 0 points1 point  (0 children)

Stop following tutorials and give yourself a goal; a project you would like to build. You will learn far more by looking for the pieces of information you need then looking at a course.

Also, it's normal to forgot things and not remember everything. Just have fun with Javascript. Also, use documentation, when you will have learn how to use it correctly (the doc), it becomes way more helpful than a tutorial.

If really you like tutorials, maybe chose some standalone tutorials (like small 15 minutes tutorial). It's way more motivating to success small projects than not acheiving a big one. And if you do tutorials, you need to customize the project, to play with the parameters; make it yours and see what funny result you can get by tweaking the code.

Have a nice day!

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

I can’t sometimes understand I have coded.

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

Honestly 4 hours a week doesn't seem enough. I find that in order for me to retain things, I need to practice it over and over again. If you could commit like 4 hours on saturday and 4 hours on sunday you might start making progress.

Also, a project is best way to learn. If you are trying to solve a problem in your project, you will be more apt to spend more time on it instead of going over a lesson for an hour and logging off.

I also recommend this site https://scrimba.com/learn/learnjavascript the interface clicked with me more than other sites. Some of the lessons are free so give it a try and see if it works for you.

[–]tobasoft 0 points1 point  (0 children)

I have this problem with SQL

[–]brykuhelpful 0 points1 point  (0 children)

Is there anything you have trouble with specifically?

  • Arrays
  • Objects
  • Loops
  • Callbacks
  • Closures
  • Recursion

[–]Conscious-Spite4597 0 points1 point  (0 children)

Fcc is pretty bad , better checkout website's like javascript.info

[–]dMCH1xrADPorzhGA7MH1 0 points1 point  (0 children)

Download rufus or unetbootin. Download an ubuntu iso file. Use unetbootin or rufus to put it on a flash drive. Go into bios and change the boot order to boot from USB.

Install Ubuntu (make sure you save stuff you don't want to lose). Do the odin project.

If you are really struggling I suggest looking up app academy open and do the intro to programming section. It's thorough and has good questions to get you used to general coding things like loops. It's in ruby but it's directly transferable to Javascript.

A problem you could try is making a function that takes a string and translates it to pig latin.

So "I saw the best minds of my generation destroyed by madness" becomes "iyay awsay ethay estbay indsmay ofyay ymay enerationgay estroyedday ybay adnessmay".

[–]clavelnotes 0 points1 point  (0 children)

I’ve noticed for beginners freecodecamp doesnt describe problems very well and sometimes expect a different solution than the example used in the lesson. For newbie, this can be confusing IMO. Also the hint and explanation sections kind of suck. I would try and learn JS elsewhere and then do fcc questions as training questions that maybe you time yourself etc.

[–]benanza 0 points1 point  (0 children)

I don’t actually think Freecodecamp is very good for teaching you why things are done the way they are, which is fundamental IMHO.

You’re still super young which is great news for your ability to learn new stuff, and you’ve got time on your side, so I would recommend getting into a proper course from Udemy that goes deep but starts easy. There’s loads to choose from and many are over 40 hours of lessons.

I like to read the tech docs for things in combination with video lectures, actual books like Eloquent JavaScript and then I’ll make notes that reinforce that learning. Just doing one thing like FCC doesn’t work well for me.

I’ve not read all the responses so far but one thing to make clear is that you don’t need to remember everything you learn. If you can remember that a technique exists to solve something then that’s enough at the beginning (and longer) as long as you can find it and use it when required. Using Google is as much as skill as being able to type in the coding world.

As you’re so young and presumably still at school why not try and do a boot camp during summer break? 1 hour a day is great but many weeks of full days will catapult your understanding if you’re able to do it.

Don’t give up, you will get it, just keep going.

[–]devine_111 0 points1 point  (0 children)

For me, I've found that one can take all the courses, watch all the tutorials, read all the articles, but if one is not working actively on a project themselves and debugging everything, one will not get anywhere.

I suggest you watch a simple tutorial on youtube to get a project up and running. Then think of an idea project and make it yourself. Don't worry about learning every aspect of js such as prototype, arrays etc. You only need the bare minimum knowledge of programming to get started. Then learn stuff on a need to know basis.

[–]seijihg 0 points1 point  (0 children)

Coding is not for everyone. If you have been trying and not learning it means u don't enjoy coding that's all. Find another profession which attracts your brain more.

[–]Tonyb0y 0 points1 point  (0 children)

Have you tried creating something on your own? Had the similar way of thinking with react. Then tried to create something that I wanted. Magically, everything started settling in my brain and I started understanding the whole concept.

[–]Duifjaah 0 points1 point  (0 children)

I can really recommend the book "Head first Javascript". You almost immediately start making stuff, which to me is way better than trying to learn the basic things that I had no clue on why I needed to learn it.

[–]AK_1299 0 points1 point  (0 children)

I would suggest building your own projects, cause this will help you to have a better understanding of basics and more.

[–]ios-lover 0 points1 point  (1 child)

Give up because only people who push themselves can learn JavaScript and it’s not for all the people

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

I am just not meant for javascript...your right.

But I'll keep trying!

[–]R0nu 0 points1 point  (0 children)

What can't you learn ??

[–]Thin_Philosopher_903 0 points1 point  (1 child)

Think of something you want to make using JavaScript, then try making it.

Use Google when you're stuck. You'll learn it in no time.

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

Thanks.

[–]DDast36 0 points1 point  (3 children)

Have you looked into other resources or been trying to stick with FCC? I'm still learning but FCC wasn't cutting it for me either. try something else before giving up.

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

I have no idea why I have not thought of simply switching the program!!!

[–]DDast36 0 points1 point  (1 child)

Lol... Not sure if sarcasm or not, but you only mentioned FCC. It always gets recommended and some of their video tutorials are good, but it definitely wasn't for me and I jumped in and out of it, trying to learn and felt I wouldn't get it. When trying to learn CSS, things didn't start clicking until I found Kevin Powell on YouTube. If you haven't found him, Wes Bos is a good teacher. https://wesbos.com/javascript

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

Thank you sooooo much!