Hacker News new | past | comments | ask | show | jobs | submit login

It's pretty similar. I'd avoid Crockford's dogma for a while until it's clear to you naturally why you should follow those rules (and only loosely, he's pretty adamant about things that aren't useful or are counter productive in practice: http://tech.groups.yahoo.com/group/jslint_com/message/3024).

Reading Flanagan's book is a good starting point. From there, as an experienced programmer, you might want more insight into the language and not just "how to do A, B, and C"s, so I'd recommend after working in JS for a bit to skim through the ES5 spec and read up on the future of JS to somewhat future-proof your knowledge (ES6/Harmony, and you can already use some of those features in Firefox/Chrome/Node.js to get used to them). You might want to bookmark the annotated version of the spec, as it's a nice reference to make JS feel less like a strange Twilight Zone (http://es5.github.com/).

Experience should tell you that what's important isn't usually the language, as you pick that up fairly quickly, but in the libraries and APIs that exist in various environments. Every web developer should learn the DOM for instance (among many other APIs, notably those introduced with HTML5) and should be somewhat familiar with the popular JS libraries, at least feature-wise. I'd recommend anyone new to JS read through Backbone.js's code as it's a great example of how to write quality, readable code in JS. Outside of reading and contributing to libraries, there are quite a few to learn, so experiment/play with them, watch webcasts and read blog posts about them to get a feel for what people are using them for.

That extends to more than just the browser environment, there's also Node.js, Rhino, and surely a few others. If you're a Java developer, Rhino might be a nice way to use existing knowledge of the Java API and do things server-side, and Node.js is a bit different to get started with but is rapidly catching up to other languages in availability and quality of libraries (both pure JS and bindings in other languages).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: