I had a bit of a break-through lately. Yesterday, I was going through the latter portion of Lesson 3 in Section 4 (the Exoplanet-Explorer section in the Udacity Front-End Web Developer course). I realized that if I didn’t truly understand callback functions then I would struggle going forward. I thought I knew them but it turns out I really didn’t (in fact this is probably true of many things so I’m not taking anything for granted now — when in doubt, reread the definition of the term and try to gain a better understanding of it).

So I found this page in the Interwebs. Here it is: https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced. I went through it and now I truly understand callback functions. And for that matter, I went back and took a second look to truly understand the definition of a first-class function. It’s like a light switch went off in my head. Everything makes a lot more sense now. I still have a long ways to go, but this is a good start.

Second thing I learned: With Udacity, the pattern seems to be this: Introduce a subject, give a general overview of the subject and then instead of slowly progressing into the subject, they just push you into the deep end. The quiz’s they give are always made to seem way more complicated than the subject really is. Not sure if they do that intentionally or not. Actually, I’m not sure why they do that. But I think it makes people frustrated with the learning process because the lesson goes from 0–100 in the blink of an eye.

When I went back through the callbacks, I went step by step and made a big effort to understand exactly what I was doing. In fact, I used Git to do this. So for example, get project setup, Git init. Create starter code, Git add. Add another line, Git add. Etc. etc. At the end, I had a finite timeline of Git logs that told the story of how I created the callback function and forced me to explain each step — step by step. This is a great way to learn JavaScript. If you can’t explain the line of code, then might not fully understand it. That’s the case for me anyway.

So lessons learned:

  1. Make sure you understand the fundamentals. VERY IMPORTANT!
  2. Learn each subject. Go through the Udacity lesson once — don’t even complete the parts — just go through it quickly.
  3. Then find a better lesson on the Internet about the subject and learn it that way (YouTube, Udemy, etc).
  4. Then go back over the Udacity lesson (it will then make more sense) and complete the parts.
  5. And practice it by writing simple versions of whatever part you are learning.
  6. And as you go, explain to yourself what you are doing. Speak it out loud as if you are explaining it to yourself.

I’m not sure if these will work for others to help with the learning process but it’s definitely working for me.

Please note I originally posted this on my Medium blog. I am currently in the process of moving all my writings and any documentation I’ve ever written to here.