If I only knew JavaScript, what a wonderful world it would be.
Source: http://www.superspud.com/javascript-programmer/
Created by Daniele Rossi
Now do not get me wrong. I have written tens of thousands of lines of JavaScript code in my career, but do I really know JavaScript? No. Have I ever been taught how to do JavaScript? No, like the comic indicates, like most people, I learned from finding snippets that solved a need I had and modified it. Do I think it would be incredibly valuable to be good at core JavaScript? Heck Yeah!
We have seen processing move from mainframes with client terminals, to fat clients, to thin clients with the bulk of the work happening on servers, and now things are moving back to the clients. JavaScript framework flavor of the month is a dime a dozen but a lot of exciting development is going on in the JavaScript world. Making a career focusing on JavaScript is becoming more common.
JavaScript was originally created in just 10 days. Brendan Eich while working at Netscape was told to go create a language to do things in the browser. Obviously 10 days isn't much time so some of the syntax was borrowed from Java and several other places and originally called Mocha. Then it was called LiveScript, then ECMAScript when it was standardized, but it eventually became called JavaScript mostly as a marketing ploy. JavaScript and Java share almost nothing in common besides a name. However this little language hacked together in just over a week has become one of the most popular and wide reaching languages in the world. With Node.js, it has even moved off of the browser and has started running server side applications for itself.
JavaScript has a spec! BOOKMARK IT ASAP It was just updated in June, so it is constantly evolving to fit our development needs.
There are many quirks in JavaScript so while it is an pretty easy language to get started in, it is difficult to master. Coercion for example is something I have often struggled with and the JavaScript concept of 'falsey'. Fundamentally coercion is like Java autoboxing when variables of different types are often not so gently coerced into a type that is equivalent enough to be compared. It is this type flexibility that is at the same time both an asset of JavaScript's and a point of mystifying behavior.
Examples of Coercion Madness
(true == 1) => true
(true === 1) => false
or:
if ('true') {
'true' == true 'true' == false }
Popular JavaScript Frameworks
Learning Resources
Code School - Fun quick online classes without a lot of depth but a great overview
You don't know JS books - Free high quality books by Kyle Simpson
Links to JavaScript Posts
CodeProject