Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript

Joe Hanson
Joe Hanson
4,209 Points

Still not comfortable with JS

I've completed the Intro to Programming, JS Foundations, and Interactive Pages with JS courses, but I'm still not very comfortable with JavaScript.

Should I go through the course again? Or is there another way to practice?

JavaScript remains a sore point for me as well. Learning jQuery helped to overcome much of the frustration I was having, specifically relating to DOM manipulation. What also tends to help me is by trying to create something with a technology I'm not comfortable with and trying to answer questions on forums that require me to do some research or testing - I find that trying to help others with their code is also an exercise in helping myself.

I completely understand how you feel. I finished those JavaScript courses 2 weeks ago and completed the full Web Development track just last week. According to the Treehouse Leaderboards, I have "more JavaScript points than 100% of all students." HA! I still consider myself a complete beginner, and think it's healthy to admit that.

So just bear in mind that: (What I know) = (What you know) + 1-2 weeks. What follows is my (admittedly limited) observations/ideas.

JavaScript is frustrating for a number of reasons. Learning it after HTML and CSS, it's incredibly... intangible, for lack of a better word. Adding h1's, h2's, and p's; changing fonts, background colors, gradients... these have an incredible feedback loop that allows you to see and play around with what you're coding.
JavaScript - especially at first - is very much not like that. You're doing basic math, you're learning about strings and arrays. Even when you're manipulating a DOM, and you start doing JQuery, you have to have html already in place to do anything that provides that level of feedback.

It's clear from doing some basic Google searches that JavaScript is just a much bigger and more complicated language than HTML and CSS. And to make matters worse, there are all these "frameworks" that I don't understand yet - but if you accidentally go down an internet rabbit hole to learn about them, you find yourself even more overwhelmed.

OK, so what to do? I'll tell you what I've been doing over the past 2 weeks and what's been helpful and what hasn't. These are DO's and DON'T's that I wish I had known about 2 weeks ago:

DON'T:

  • Start learning frameworks or even poke around things like Angular.js, Ember.js, etc. If you're not confident in your basic JavaScript/JQuery, this will intimidate you further.

  • Start learning another language like Python or Ruby. I started doing these, thinking that more practice with "similar" languages would better my understanding. It hasn't, it's made it more confusing. These languages have similar but different rules, and you wind up forgetting how to declare a function in one vs. the other.

DO:

  • Find other Beginning JavaScript courses - there are plenty online, and most are free/comparable to Treehouse. As frustrating as it is to repeat the basics, the practice is incredibly worthwhile and I'm only just beginning to appreciate it.

Some I'd recommend:

  • CodeCademy
  • CodeAvengers

These are somewhat different from Treeouse, and I think the difference in teaching style and just having more practice with the basics is really helpful.

  • Use repl.it or something similar. It's a great way to test and run JavaScript in the browser without having to bother with ChromeDev tools. I always have this open in another window while going through JavaScript lessons. Every once in a while I'll make a mistake, like an infinite 'for' loop, and instead of crashing the class, it crashes the repl.it window. Just close and re-open. Saves a bunch of time.

  • Look for 'projects' that require a little JavaScript. This can be a website, although honestly I've enjoyed mini-projects like:

  • http://www.pairuptocode.com/Level2.html#

  • http://googlecreativelab.github.io/coder-projects/projects/digital_clock/

So that's it in a (very long) nutshell. Just want to echo that you're not alone in being frustrated with JS - I think it's a very, very hard thing to fully wrap your head around. I will say that it does get better the more you practice, and in some ways the frustration makes any accomplishment, no matter how minor, seem like that much more of a triumph.

Good luck!

James Barnett
James Barnett
39,199 Points

I find that trying to help others with their code is also an exercise in helping myself.

It's a great way to learn. That's how I learned a lot of my CSS skills.

James Barnett
James Barnett
39,199 Points

I have "more JavaScript points than 100% of all students." HA! I still consider myself a complete beginner, and think it's healthy to admit that.

I agree. Treehouse's student population is (I assume) almost entirely complete beginners to programming and it's courses don't yet reach to a point that is past "beginner" in my opinion.

5 Answers

Practice, practice and practice.

Joe Hanson
Joe Hanson
4,209 Points

I was maybe thinking of building very very simple JavaScript applications - temperature converter, calculator, etc.

James Barnett
James Barnett
39,199 Points

Projects

Here are 5 of my favorites that I've made using codepen while learning Javascript.

  • Simple Accordion
  • Text Area with Character Count
  • ToDo List (using localStorage)
  • Current Weather (using an API)
  • Simple Calendar (using moment.js)

You can also check out the projects on http://www.pairuptocode.com/

Advice

I'd recommend you use either codepen or jsbin (if you are using a lot of console.log statements) and avoid jsfiddle and repl.it for their more annoying user experience.

I'd recommend you check out the JavaScript Road Trip 3 course sequence from the good people at CodeSchool. I recommend everyone stay away from CodeCademy and Code Avengers their pedagogy is inferior due to too much hand holding which sounds like the exact opposite of what you need at this point.

That's funny, I enjoyed CodeCademy because I thought their JS course was more challenging and less hand-holding! Oh well, to each his own.
CodeCademy's course definitely goes further than Treehouse's - I've learned switch and prototypes thanks to them, which weren't covered by Treehouse.

Codepen and JSBin are great if you're working with HTML and CSS as well; again, I recommend repl.it because it's a very simple interface that allows you to run just Javascript and quickly. I think repl.it's user experience is better because there's less going on, but obviously impractical for DOM manipulation, etc.

I'll definitely check out CodeSchool - did you complete Road Trip 1-2 before, or just dive right into 3?

James Barnett
James Barnett
39,199 Points

CodeCademy's course definitely goes further than Treehouse's

Yep. Treehouse is re-doing their Javascript Foundations course for this among other reasons. Of course, Treehouse also has a course on Interactive JavaScript and AJAX.

CodeCademy launched Code Year with JavaScript course at the time various courses could be made by various people. After another year or 2 they added a few more courses they then fully re-did their JavaScript course.

I admit to not having fully done the new JavaScript course.


I think repl.it's user experience is better because there's less going on, but obviously impractical for DOM manipulation

I think I got repl.it confused with another code sandbox. It's got a really nice user experience. I've done very little of my own projects that are just plain JavaScript so I haven't gone in search of such an app for plain JavaScript.

I tried doing some of the Project Euler projects in JavaScript in JSBin a while back and I see repl.it would be much better for that sort of thing.


I'll definitely check out CodeSchool - did you complete Road Trip 1-2 before, or just dive right into 3?

Last year CodeSchool launched their JavaScript Road Trip and blew everyone out of the water. I'd suggest review is your best friend, I'd do the 3 JavaScript Road Trip courses and follow up with the *jQery course which goes deeper than what is currently on Treehouse.

Michael Caveney
Michael Caveney
50,144 Points

I'm in the same boat with you. Honestly, the Javascript course here on Treehouse is one of the least helpful courses on the site, but I'm hopeful that the new JS course here that's supposed to be hitting this month will be a big improvement. Some things that have helped me:

-The book A Smarter Way to Learn JavaScript. The exercises break the fundamental concepts down into very easy to digest pieces.

-Don't give up! Vanilla JS can be kind of a bear, but once you have the fundamentals down, jQuery and other frameworks will make actually utilizing JS a lot more stress-free.

Joe Hanson
Joe Hanson
4,209 Points

Ah yeah, I saw that that's coming out too! I'm hoping it explains concepts of JavaScript. WHY you do certain things, not just HOW.

Thanks for the resources, I'll check them out!

Hey Joe, it's not all that uncommon. JavaScript is one of the more difficult languages to grasp. My recommendation is to try multiple different sources and exercises. Some feel starting and learning PHP first will give you a head start.

But here's a couple good books for you. One of them is by a teacher here at Treehouse. I think there's a lot more JavaScript training coming, so you might look out for it in the future.

Michael Caveney
Michael Caveney
50,144 Points

Seconding what James said about Codeacademy.......one of the reasons that I've had so much trouble learning JS, especially in the beginning, is because their JS course (more like their interface, versus the lecture/quiz/activity mix here on Treehouse) was so terrible.

Also echoing Dustin insofar as Duckett's JS book. It is beautiful to look at, concise, and fairly comprehensive for beginners. I liked it so much I bought the companion HTML/CSS book that came out a few months prior, even though I wasn't having problems with those topics.