How to Start Learning Javascript

June 26, 2015

I first started learning “web development” when there probably wasn’t such a thing as web development. There were webmasters. And I wanted to be a webmaster when I grew up. It sounded cool to be a master of the web. But back then, there actually wasn’t a lot about the web that you need to master. There was html. And there was some css and some JavaScript. But JavaScript wasn’t a “real language”. You could do some fun stuff with it sure, like have stars follow your cursor across the page, but no serious programming.

These days, a lot has changed. JavaScript is considered a full-fledged programming language, and there are a whole suite of tools and frameworks built around it. It’s overwhelming to know where to start. I had the advantage of learning stuff as it came out. But now, there is so much out there, that I’m sure it just seems daunting, and I can’t even image what it’s like to start from scratch today.

On the other hand, there is a plethora of resources out there on the web to help beginners get started that I wish I had when I was getting started. I can’t tell anyone exactly what to do, but I can point out some resources that I think will be helpful and that I wish I had when I was learning this stuff. It may seem like trying to drink from a firehose at times, but that’s ok. At some point, you can turn down the volume of stuff that you’re consuming and learning. And at various times throughout your career, you may need to turn it back up. The thing about this field is that you will be constantly learning.

Drinking from a firehose

The first thing is, don’t panic. There is an enormous amount of things to learn as a new JavaScript Developer. You don’t have to know everything and nobody will expect you to know everything. The important thing is that you are constantly learning and improving, and that you’re passionate about your craft. You may want to learn all the things, but just know that it’s actually impossible to learn all the things. After you get your first job, you’ll probably learn most of the things you need to know to do your job, on the job.

Don't Panic

I got job maintaining a website, when I barely knew html. I got a job writing asp, when I only knew php. I got a job making a cordova app when I had never built a full app with Javascript and I had definitely never used cordova. And most recently I got a job using d3js, when I had never heard of d3 before.

Another quick tip is this. Sometimes you don’t have to learn a certain technology right now. Just knowing that it exists is enough for now. Then you know that you can always come back and learn it later if you need to.

Here’s my top tips and a list of resources. This isn’t exhaustive or authoritative. They are merely suggestions.

  1. Read Apprenticeship Patterns: Apprenticeship Patterns
  2. Learn git and Github
  3. Put your work and practice on Github
  4. Star everything interesting that you find on Github (examples: jQuery or Sublime Text plugins)
  5. Check out what’s trending on Github
  6. Write about what you’re learning on a blog
  7. Follow developers on Twitter
  8. Tweet about coding
  9. Use an rss feed reader and follow interesting tech and coding blogs
  10. Read lots of books. Don’t be afraid to read multiple books at the same time and don’t be afraid to quit a book in the middle. You’re reading list will change over time.
  11. Become comfortable with the command line
  12. Understand HTML and CSS
  13. Learn bower, npm, yeoman, and grunt
  14. Learn how to search online well
  15. Use stackoverflow to ask and answer questions. Also upvote questions and answers that you found useful
  16. Learn how to read documentation. The jQuery Documentation is a great place to start.

Tools

JavaScript Courses

JavaScript Books

JavaScript Resources

Podcasts

Blogs

I can’t really tell you which blogs to follow. It’s up to you to discover them yourself. I think you’ll enjoy it more that way anyway. Don’t be afraid of over-subscribing. You don’t have to read everything, you don’t have to understand everything, and you can always unsubscribe.

Practice

Other

  • Markdown Tutorial- Markdown is used for Readme files on Github as well as other places, so it’s useful to know. It’s also really easy. I actually write my blog in markdown as well.

Other Other

List of things not to learn yet (but maybe later)

  • Coffeescript/Typescript/Flow/etc
  • Less/Sass
  • Mustache/Handlebars
  • Angular/Ember/Backbone/Knockout/React/Flux/etc
  • Unit testing
  • vim/emacs
  • zsh/tmux/oh-my-zsh

Profile picture

Written by Adam Garrett-Harris, a podcaster and software engineer in Utah. You should follow him on Twitter