Thoughts on How to Learn JavaScript properly.

I’ve tried following JavaScript tutorials before, but I usually found them too focused on lectures or too heavy on practical exercises with little information on the why’s and how’s. I could never seem to find a good balance in any tutorial I worked with. But about a month and a half ago I stumbled onto a post on javascriptissexy.com entitled “How to Learn JavaScript Properly”. I decided to do as suggested in the tutorial and follow the steps exactly as they’re outlined. It was only about a week and a half ago that I purchased the second book, but my impression so far has been really positive. I’ve learned more in the past two weeks about JavaScript then I have in the previous two years combined. It’s coming down to 3 main points: following directions, taking the time, and having persistence.

Follow the Directions

The tutorial suggests, correctly, that you shouldn’t be taking bits and pieces from various courses to try to learn JavaScript. I think the worst thing that I’ve done in the past is to try and learn through different tutorials each with their own way of teaching JS. The outcome of learning through various sources means you’ll probably be spinning your wheels for awhile. I think the use of Codecademy for exercises is also a big help because if you get stuck there are plenty of people to help get you back on track.

The Reading is Dense

The tutorial recommends two books to use to augment the exercises you’ll be working through on Codecademy. The books are sometimes more difficult to work through than the JS lessons themselves. Working through Nicholas Zakas’ “Professional JavaScript for Web Developers” is intense and I often find myself reading and rereading sections to make sure I’m getting it. David Flanagan’s “JavaScript: The Definitive Guide is a lot more accessible, but if you’re not used to reading technical books you’ll just have to take it a little slower. I’ve also found it really helpful to learn the background of JavaScript as a language as it helps put things in perspective. What really makes lessons stick, however, is actually using the recommended Codecademy exercises to drive the points home. For some of the reading I wish there was a way to have some more specific exercises , but so far so good.

Set aside the time and do it 

The tutorial recommends to be finished with the readings and lessons within 6 weeks, but no more than 8. In my past experiences trying to learn I’ve found myself taking breaks and then coming back which forces me to relearn a lot of information. Relearning what you lost feels like a huge waste of time and after several times of doing that it feels like I’m getting good at the basics, but not at anything that’s actually functional or useful. I’m diving in head first this time and it’s working out really well. By dedicating a few hours every night and on the weekends I find myself further along with learning JS than I’ve ever been. My goal over the next two weeks is to finish the Weeks 3 & 4 section and move into Weeks 5 & 6. I’d also like to try my hand at building a basic Backbone.js app as well a simple Node.js app.

A couple notes -

1. I ran into some problems initially and couldn’t figure out why the reading was so different than the exercises. Down in the comments I found out that I had started out on the wrong track at Codecademy initially. You should be following the original Codecademy Javascript track.
2. Work through the exercises on your own. I make sure that I don’t jump right into the forum to find the code that will pass. I spend a considerable amount of time trying to debug the code myself before taking a look at the forum. It’s easy to copy and paste the answer, but you won’t learn anything.

 

4 comments on “Thoughts on How to Learn JavaScript properly.

  1. “How to Learn Javascript Properly” is an article that I’m taking very seriously as I am currently following Weeks 1 & 2 with reasonable success. I must admit it’s a great article and outlines a VERY comprehensive learning schedule for Code Newcomers. I do, however, have a few criticisms with the recommended approach:

    1. I, personally, respond much better to video training, than I do to learning via Books. I understand that it would be almost impossible to replicate the level of detail covered in these books via Screencasts – but some courses can surely bring you close to that level? I’ve seen Javascript “Video Courses” that cover everything from Language Basics all the way up to Advanced Concepts and Object Oriented Programming. Am I wrong in thinking, I can use this type of approach rather than following the books?

    2. “W3schools” has got a reasonable Javascript tutorial that covers most of the basics of the language. Although some might consider this course insufficient it includes working code examples with every chapter that allows the student to play around and tweak the code. I’ve found this approach to be MUCH faster than manually typing out examples from the books and playing around with them. Obviously, the books go on to cover very advanced topics with complex examples , but the “basics” of the language can be learned QUICKLY with “w3schools”.

    3. Using this 6 – 8 week approach favours the patient student who is happy to “Hack Away” with Javascript for hours on end without producing any Real-World useful code. As I work as a Web Designer (as a day job), I would love to learn this language fully whilst producing application code that can be used in my current projects. This method would allow me to learn Javascript “Properly” whilst still being productive on a day to day basis.

    4. Some people (Including Codeacademy) recommend learning JQuery before learning the Javascript language, which I can understand why. With JQuery, you can quickly add beautiful effects and functionality to your projects with relative ease. I’m not entirely sure why this approach is wrong. Yes, I do want to fully learn the Javascript Language (Properly) but I cant see a disadvantage to learning JQuery first? For me it’s like learning to drive before learning to build a car – you can enjoy the benefits of using the car without impacting your chances of becoming a mechanic.

    Despite these minor issues ,I am still extremely excited and keen to complete the course. Javascript has become an awesome language and is becoming more and more useful every day. Everything from HTML5, Node.js to coding Game Logic with Unity3D! The sky is the limit.

    Keep up the good work mate and let us know how you’re progressing :)

  2. I too have started this course about 2 weeks ago. I bought the “JavaScript Definitive Guide book.” – It is not an easy read, so far I’ve not done any exercises.
    I found a book “Beginning JavaScript” by Paul Wilton and Jeremy McPeak, which for me is a perfect accompaniment to “JavaScript Definitive Guide book” – by Flanagan. It has a lot of examples and exercises, explains about browser compatibility, even introduces you to debugging earlier on and is a whole lot easier to read, so I use that to gain further hands-on practice, which is what I need to really understand the subject.

    I’ve been through 4 chapters of the “JavaScript – The Definitive Guide” book, and still have not written a complete JavaScript program. (I’ve copied examples into FireFox’s Firebug console to understand the behaviour), but would not have known, that I have to embed JavaScript within an HTML file to be able to run the program.

    Chapter 1 of “Beginning JavaScript ” already has me familiar with such concepts. What JavaScript is and it’s usefulness ie adding logic, dynamic and interactive behaviour to web pages. It can be used for front-end & backend development etc. This has allowed me to understand where I’m going with the language.

    Just thought I’d add my two cents worth…

Leave a Reply

Your email address will not be published. Required fields are marked *