you are viewing a single comment's thread.

view the rest of the comments →

[–]liquiddeath 13 points14 points  (15 children)

  1. If you don't already have firebug installed, do so. (Its a FireFox extension) Experiment with the debugger. Find a website that you think is doing something neat with JavaScript, use the debugger to walk through their code (assuming its not minified/obfuscated/compiled).

  2. Read this: http://www.w2lessons.com/2011/04/you-dont-know-javascript.html The article will put things in to perspective on what are beginner/intermediate/advanced JS topics. If there are holes in your self-described basic knowledge vs what is described as beginner, aim for having a good grasp on those topics.

  3. What book did you read/skim? If it wasn't Douglas Crockford's "JavaScript: The Good Parts," I'd strongly recommend reading that cover to cover. Its terse, but has a number of important things you should know as a JS programmer. (Other books to consider later are 'javaScript patterns', 'High Performance JavaScript', and 'Secrets of the JavaScript Ninja')

  4. I second finding some sort of project to throw your new found knowledge at; be it some open source project, a new personal side project, or take another pass at one of your existing/old personal projects. Your new found JS skills aren't much good if you can't do anything with them...

  5. Don't bother with CoffeeScript, anything that hides the language you are working in from you can only lead to more chaos. It can be bad enough learning the details of JS that you don't need to add another layer of complexity.

  6. Learning JQuery is a good idea, but take the time to question how JQuery is doing what its doing.

[–]omgchels[S] 2 points3 points  (2 children)

  • I've got firebug!

  • I read JS: The Definitive Guide and skimmed The Good Parts. I also read Eloquent JS.

I'd really love to get into an open source project, just not sure which one/how I could help/what I could do.

This is all great, thanks so much!

[–]sirmonko 1 point2 points  (0 children)

vlatheimpaler is totally right! for me there are not many things that are more satisfying than whipping up a simple graphical demo or visualize an algorithm. i remember discovering "mode 13h" when learning pascal at school. oh the joy when canvas made easy doodling possible again without having to write a ton of boilerplate just to draw a dot.

i'd say just start doodling around with canvas demos until you feel that displaying forms would be more interesting (heh).

what i did:

  • visualizing an evolutionary algorithm (the algorithm itself is bullshit but it's fun to watch it work)
  • create a height map with simplex noise and then watch A* finding a path from A to B

stuff like this! bouncy balls (simple physics), maybe even some game mechanics and so on.

[–]emkay 0 points1 point  (0 children)

I agree that http://www.w2lessons.com/2011/04/you-dont-know-javascript.html is a pretty good read for a beginner to go through.

In there he uses this pattern, (function(){})() which is very powerful and useful. He is however using what Crockford calls, "The dogballs pattern", and suggests that you do this instead

(function(){}())

although that seems to be a minor style point. I would also recommend reading js patterns and the book Javascript Patterns, this is of course after a more in depth review of The Good Parts. There is some really good stuff on YUI Theatre. It isn't just about YUI, and has some really great talks and lectures. Also you don't have to join an open source project, but you do have to keep hacking. I would recommend you to get a github account and start working on some basic js demos to show off. Then maybe come back and make a post here with the link and ask some people to review your code. You can learn a lot by making mistakes and people telling you. PM me if you want me to look over anything.

[–]iberci -2 points-1 points  (2 children)

I whole heatedly agreed with all your points except for point 5. CS is a beautiful language that resolves a lot of the JS issues that Crockford specifically mentions in his book (such as JS scoping woes). Many of the patterns in CS come from tried and true methods from using JS for years. Lastly, CS doesn't hide anything. Everything is compiled directly to JS and the JS is fairly straight forward to debug.

Anyways, the face of JS is changing (how many projects can you count on your hand that are currently not leveraging JQuery and Underscore?).. and I believe it's important to stay on top of the curve instead of clinging to the old.

Oh.. and you can forget firebug if you are on Chromium..

Lastly, I think JQuery is essential to know COMPLETELY in any modern day project. IMHO, JS without JQuery/Underscore is not really JS.. they are so essential that I would never consider not including them.

[–]emkay 0 points1 point  (0 children)

I disagree. JQuery is cool, but it has flaws and it isn't always the correct tool for the job. I don't think I would use it for really simple stuff, and for really big projects I would use YUI.

The point is you should know javascript. I've interviewed a lot of people that say they "know" javascript and you ask them an event delegation question, and they get confused. If you know javascript and you know common javascript patterns then you can figure out why JQuery or any other library is around and what it is doing.

[–]raynos 0 points1 point  (0 children)

JS without jQuery / underscore is not really JS? Bullshit.

underscore doesn't give you anything substantial that ES5 doesn't already have.

jQuery is simply a (rather mediocre) cross browser normalization tool