Best way to REALLY learn javascript

over 2 years ago from , Designer/Developer @CoupleOfCreatives & Writer @Web-Crunch

I'm a designer at heart. I've made the transition to being a front-end developer to sync up with the "times". I'm searching for a way to really learn javascript. Most books I've read (which are many) teach you the language but really don't apply it to real world situations. Even site like Codeacademy, treehouse, and codeschool seem to use unworldly examples. When I go to play the literature I read I come to a brick wall. Maybe it's just me...I'm not sure.

I need help really gaining a grasp on JavaScript. I can write HTML, CSS, SASS in my sleep. I want to do the same with JS and eventually learn Angular and more.

  • Any recommendations out there?

  • What was your experience with learning the language?

  • What would you do in my situation?

33 comments

  • Ariel VerberAriel Verber, over 2 years ago

    Not an expert, I'm in your situation, but the best way to learn how to code is to just start coding something. build a to-do list app. or a calculator, a calendar, whatever you want.

    24 points
    • Clay WClay W, over 2 years ago

      Best answer right here.

      A senior dev once told me to stop buying books and just write code. He was right.

      Lynda : Not too in depth but a good starting point.

      Tuts+ : great for finding good projects for intermediate learners.

      Plurasight : I find Pluralsight has more advanced tuts and moves faster.

      Egghead.io : advanced tuts, moves fast, goes over advanced concepts and frameworks (React,js, Backbone, Angular, D3)

      10 points
    • Brian AlexandrowiczBrian Alexandrowicz, over 2 years ago (edited over 2 years ago )

      +1 for this.

      Also, try finding something on Github that you like, take it apart, and try putting it back together. Working backwards on something has helped me enormously; I quickly see what works (or doesn't) and why.

      5 points
    • Nick MasonNick Mason, over 2 years ago

      Yep. Write some code. Write some more code. Keep writing. Read tutorials. Learn the names of the things you're trying to do. Explore stackexchange.

      0 points
  • pjotr .pjotr ., over 2 years ago

    This is the right (real) way to learn Javascript http://javascriptissexy.com/how-to-learn-javascript-properly/

    8 points
  • Daryl GinnDaryl Ginn, over 2 years ago

    Learn by doing.

    3 points
  • Maximilian KienerMaximilian Kiener, over 2 years ago

    Hey! I got into it through processing which pretty much the same synthax. This was the most helpful book/ressource for me:

    http://www.amazon.com/Generative-Design-Visualize-Program-Processing/dp/1616890770

    2 points
  • M HernandezM Hernandez, over 2 years ago (edited over 2 years ago )

    http://javascriptbook.com/

    Really like this book. It does a good job of explaining the relationship between the DOM, your browser and JS.

    Some (or a lot) might be review for you, but it helped me clinch the language when I felt like I couldn't connect why things were done in very certain ways.

    2 points
    • Dan PerreraDan Perrera, over 2 years ago

      I whole-heartedly agree with this. I'm just finishing up this book and it does an outstanding job explaining the fundamentals, building knowledge and then re-explaining through example. It's helped me connect some dots, learn heaps more, and add feel dramatically more comfortable writing JS.

      2 points
    • Taylor PoeTaylor Poe, over 2 years ago

      I've had the same sentiment as the op for a while now and this book has been very helpful in stringing it all together.

      0 points
  • Savelle McThiasSavelle McThias, over 2 years ago

    It also helps to understand the core concepts of object oriented programming. Understand the underlying logic first, then your dive into these languages will only be a matter of learning syntax. Lynda has a good series under the foundations of programming.

    2 points
  • Bill Columbia, over 2 years ago (edited over 2 years ago )

    This all sounds like a good start. I'm actually working on upping my JS skills as well. I find that a lot of JS books, tutorials, etc use comparisons and common knowledge of other languages to explain JS. This is difficult for someone without a prior computer science background.

    I was recently recommended: JavaScript Allongé - which has been both a fun and enlightening read so far.

    I've also read and re-read the classics - eloquent JS, JS: The Good Parts - and even tried some Computer Science primers to get more concepts down, before trying to use some of the more difficult to understand features of JS (apply, call, bind, etc)

    Another thing to consider - I think there is plethora of really bad JS out there, that work, but aren't necessarily great examples.

    I'm really interested to see what other people have to say though, and wish you luck in the endeavor!

    2 points
  • Cihad TurhanCihad Turhan, over 2 years ago

    Ok, here is a different idea.

    • Find a programmer
    • Decide an app with him
    • Design the app together so teach him how to design
    • Code the app together so he will teach you how to code
    • ...
    • Profit mutually

    I did once in a developer role and was pretty satisfied with the result.

    2 points
  • Dave Martin, 12 months ago

    http://betaflows.com/ is a video series that I've been working on to teach designers how to code JavaScript.

    1 point
  • Will C, over 2 years ago

    Tuts + tends to give you realistic JavaScript projects. check them out.

    1 point
  • Mohammad Hossein Rabiee, over 2 years ago

    Well actually it depends on your media preferences. It would be books or video Tuts or even a audio guide. In my case video tutorials was truly helpful. By the way, I find these resources worth checking out.

    Learn JavaScript Properly (For Beginners and Experienced Programmers) [Truly in-Depth Learning Guide] http://javascriptissexy.com/how-to-learn-javascript-properly/

    Become a Professional JavaScript Developer with Tuts+ Courses [I Learned JS this way] http://code.tutsplus.com/articles/become-a-professional-javascript-developer-with-tuts-courses--cms-21095

    The Best Way to Learn JavaScript [Kinda Outdated but useful] http://code.tutsplus.com/tutorials/the-best-way-to-learn-javascript--net-21954

    Also you can check:
    https://www.bento.io/https://gibbon.co/

    Go Coding :)

    1 point
  • Yasser A, over 2 years ago

    Here's how I approached this to learn Javascript and Python a few years ago and Java recently: - Have a project in mind, something small enough yet exciting. That'll keep you motivated. Perseverance is key. Without a goal you're passionate about it'll be hard to stick to it. - Get a book or two, there are some great recommendations here. I found "Javascript The Good Parts" so useful that I read it twice. But that was after a year of development. - Start reading the book(s) to get the basics. Always have the browser's console open to test ideas and implement book examples quickly (or JSBin/Codepen ...etc). - At some point you'll learn what's needed to implement your idea (or you'll think you have), start working on it. No need to complete the book(s) from cover to cover, obviously. Use them as a reference when you're stuck.

    For resources, you could also try Udacity's JS/Web dev courses.

    I would also recommend their CS 101 course to get basic CS concepts that you'll need in any language: https://www.udacity.com/course/cs101

    For Angular, I recommend Egghead's tutorials. You can find the free ones here: https://www.youtube.com/watch?v=Lx7ycjC8qjE&list=PLP6DbQBkn9ymGQh2qpk9ImLHdSH5T7yw7

    Since I learned by example, my first few projects were hacky. I didn't want to look at the code base when I was done with it. jQuery's ease of use made things worse. When I started learning AngularJS I nearly had to re-learn JS from scratch. So I recommend learning JS without any libraries, then to connect to the DOM dive into AngularJS. The framework helped structure the codebase around re-usable, testable components.

    Goodluck!

    1 point
    • Taylor PoeTaylor Poe, over 2 years ago

      Any any other front-ender speak to not learning jQuery (when learning javascript)? I am starting to feel like Yasser has here mentioned here — as though jQuery is getting me a bit off track.

      0 points
      • Tierney CyrenTierney Cyren, over 2 years ago

        I didn't really completely understand what you meant, but jQuery is definitely not a substitute for learning vanilla JS. JS has a lot more functionality, a small subset of which is used in jQuery, that you will need to know if you are serious about pursuing a career in front-end dev.

        0 points
  • Art VandelayArt Vandelay, over 2 years ago

    The books help you define your toolset and how those tools work. The same way that a mechanic knows what his wrench is and what it does is exactly what Eloquent JS, JS: The Good Parts and JS The Definitive Guide teach you.

    They do not teach you how to iterate over an object to create something, they teach you what happens in the iteration.

    From there, its on you to build stuff.

    I was (still am) in your shoes and the best thing I ever did was learn about my tools.

    While it may seem pointless to some it makes a world of a difference when something breaks and you actually know why it broke and how to fix it.

    TL:DR: Books are primers to teach you about your tools. It's up to you to determine how you use them

    1 point
  • Michael Cavalea, over 2 years ago

    Many a front end developer would recommend Eloquent Javascript: http://eloquentjavascript.net/

    Completely free, filled with projects and all the code examples fun in the browser without downloading anything, etc.

    Good luck!

    1 point
  • Jeff DingwellJeff Dingwell, over 2 years ago

    I second the sentiment put forth by Cihad Turhan. Javascript is awesome and it is a great skill to have - but do you REALLY need to know it?

    I guess it depends on what kind of work you do - but unless you are doing app development or anticipate working on sites with a lot of business logic that you want to manage, maybe you're going to spend a lot of time learning something with not so much payoff.

    I've been working on improving my js skills lately and all of a sudden I asked myself, "what are you really going to do with this?". My conclusion was that unless I was going to switch gears to become a developer, it looked like a really deep rabbit hole to fall into with not so much payoff for me personally.

    There are just so many things to know in our industry and that list seems to grow daily. As designers, isn't it enough for us to have solid HTML/CSS/jQuery skills?

    0 points
  • Dwayne CharringtonDwayne Charrington, over 2 years ago

    Books won't teach you how to be a Javascript developer, let alone programmer. In my early days as a developer I bought programming books, but 99% of all I have learned has been through actual coding not reading. The part of your brain responsible for learning a new language, for example French. Do you learn a new language by reading a book or do you learn to speak French by actually speaking it?

    Learning a language like Javascript is very similar to that of learning French. Maybe not entirely the same, but similar premise of needing to speak it to truly learn it. When you program you're speaking code through your fingers. I would suggest exploring Github for other developers code, pick it apart and learn what makes it work underneath.

    If you want to learn online, I have found Udemy has some great Javascript oriented courses which are surprisingly decent and vary in price (there are always discounts).

    Start coding.

    0 points
  • Grant NestorGrant Nestor, over 2 years ago

    I did this myself about 6 months ago. After much research into my options, I chose Sails.js as a back end framework and Polymer as a front end for building an event discovery app. I spent about 2 months learning the details of both of those frameworks and now I have a very strong understanding of how to program and develop apps (which are actually VERY different; books are good for learning to program and just building apps is good for learning to develop apps). I learned how to develop iOS apps with relative ease over the past month (by working on an iOS app with an iOS developer buddy), so the experience that I gained from Sails and Polymer was pretty transferrable to iOS. So my advice: pick an idea, pick a framework that offload some of the learning curve and development time, and just start building out your idea, using the Stack Overflow community as your guides when you run into problems. Good luck (and more about Sails and Polymer below):

    Sails.js has proven to be a really good decision. It uses lots of tried-and-true design patterns from Rails that allow you to build apps very quickly (without needing to understand every painful detail about each layer of the stack) and it's built on top of Node and other solid tech such as Express, Socket.io, Grunt, etc. It's worked great for every application that I've tried it with so far.

    Polymer is a very interesting project from Google that is making the Web Components standard available today using polyfills, etc. Web Components introduce a very simple way to build web front ends using components containing HTML, CSS, and Javascript. You can drop a fully-functional tab bar int o your project by adding a simple element to your HTML. There are tons of other options (Angular and React seem to be the most trendy at the moment), but I like Polymer for its simplicity and Material Design components.

    0 points
  • Gokul ChandranGokul Chandran, over 2 years ago (edited over 2 years ago )

    Did you read this - JavaScript for Absolute Beginners by Terry McNavage. http://it-ebooks.org/book/apress/javascript_for_absolute_beginners

    0 points
  • Pedro PintoPedro Pinto, over 2 years ago

    This book is really good: http://javascriptbook.com/

    And I also recommend Eloquent Javascript.

    I tried to read Javascript the good parts but I found it too complex.

    0 points
  • Jon DaleJon Dale, over 2 years ago

    I made the jump to Javascript from Actionscript (which is similar) but found the best to get way to get started was to visualize my code.

    So, for example, I'd experiment with placing squares on a canvas. Then, I'd randomize the color of the squares. Then add a click handler to them, and so on...

    As others have mentioned though, just starting and writing some code is the main thing.

    Deconstruct the most simple of examples and move on from there.

    0 points
  • aioute Gao, over 2 years ago

    After you've done with all the easy parts(Books, Online Schools, etc.), make sure to complete this tutorial by father of jQuery - John Resig: http://ejohn.org/apps/learn/ This will teach you the heart of Javascript.

    0 points
  • Juan OlveraJuan Olvera, over 2 years ago

    http://superherojs.com/

    This site helped me a lot, but one thing is that if you want to use JavaScript for the "real world" you need to understand the language first.

    Another good resource, more related in the programming language side than in the front-end world, is:

    http://addyosmani.com/resources/essentialjsdesignpatterns/book/

    In books I highly recommend:

    http://eloquentjavascript.net/

    This book will help you to understand programming basics and good JavaScript principles and practices.

    0 points