Javascript: Much Ado About Nothing

Posted by Kate Jewett Williams on June 25, 2019

When action grows unprofitable, gather information; when information grows unprofitable, sleep.

Ursula K. Le Guin, The Left Hand of Darkness

I heard a lot of horror stories about Javascript. So much so that I think I spent a lot of time in the JS section wondering if I really understood what was going on. Do I really know what a callback function is or does? Is that really all there is to hoisting? Do I really know the difference between jquery, ajax, api, coffeescript, json, etc. (That is a lot of lingo to learn). But I think all the time I spent learning Ruby and Rails had really prepared me well for picking up a language that, synatically, looks very different. That’s not to say there weren’t frustrating moments or concepts I found difficult, just that there were fewer then when I first started learning to code. During those times of confusion and frustration I did spend a lot of time with my good friend Google. So today I hope to save you a few Google searches by providing you with my top 5 resources for learning JS.

1. Eloquent JavaScript

I know not everyone is a book person, but I am, and this one is really good (at least the first part of the book…I’ll admit to not being finished). It’s online so you can access it without owning it and the best part is that you can attempt and run exercises right there! No copying and pasting in CodePen or Repl.it. Just mess with the code or completely replace it right next to the text explaing it. By far one of my favorite resources to learn code ever.

2. FunFunFunction

Mattias Petter Johansson has created a really fun youtube channel about JS. I recomend watching his series called Functional Programming in Javascript. The videos are short examples of many of the concepts covered in the first part of the Flatiron JS module. Good refreshers or for people who are more auditory learners and might be missing the review videos that showed up more frequently in the Ruby and Rails modules. His other videos are good too but can get lengthy.

3. Javascript For Cats

I’m a huge cat person, so combining my love of cats and learning is just about purrrfect. Sorry, couldn’t help myself. This is really just a nice website to read information about JS again with a bit of cat humor. I think grumpy cat (of blessed memory) would have approved.

4. Codecademy

For this one there are about 10 others you could choose from, such as Khan Academy, Udacity, freeCodeCamp, etc. All have different classes, but I already had an account with Codecademy from before I started Flatiron. Big point here is to get more practice starting from very simple things in JS. I did the Codecademy review in Jquery as well which helped for my project. I also know that Udacity has a class in OO JS. I found more practice helpful when feeling really stuck.

5. MDN Developer Network

This may be the least helpful resource if you don’t know what you’re looking for. Compared to the Rails or Ruby guides available, this is a little hard to navigate but if you have a pretty good idea about what you need it can be very helpful. Also if you’re a person who likes to read all the instructions you might enjoy this. It does come with some tutorials on web development and JS as well.

BONUS: Codewars

If you haven’t started playing Codewars you should give it a go. If you’re not competitive by nature, have no fear, you can aviod that aspect if you want to. You can use this plaform as a way to get in additional practice in JS, Ruby, and other languages to keep your skills fresh and improve. I have found it very useful since starting Flatiron.

Remember too that sometimes information gathering become unprofitable, and you may need to sleep, or meditate, or run/bike/walk it off and live to fight another day. Learning anything new can be difficult and frustrating. Allow yourself space to be confused and let your brain have some diffuse mode time. Trust that even though you’re not blowing through your lessons you’re still learning. (for more information on diffuse learning checkout this video)