It is currently Thu Nov 21, 2024 3:41 pm

Interested in... JavaScript?

For game and non-game related chatter, links, and other goodies, go here.

Interested in... JavaScript?

Postby Zancarius » Mon Sep 12, 2011 12:52 am

The What?

I had an idea tonight that's probably going to turn out to be a mostly pointless exercise, but I'm hoping that it'll provide some utility for a small subset of our members who happen to be interested in technical things and also wish to expand their skill set. What I'm introducing in this post, and what I'm hoping to complete as a series of posts on a variety of related topics (mostly programming languages), is a collection of resources for people interested in programming and maybe doing interesting things. I expect that this list will grow over time, and I will try my best to update this post as I run across further resources or whenever I stumble across some that I may have forgotten. As I have been programming now in one language or another for over 10 years with a strong emphasis on web-based technologies, I've come to collect a variety of resources--paid for and free--that I would like to share in the hopes that it might be useful.

The obvious disclaimer is such: While I expect that most of these resources will be useful to some of you, it won't be useful to all; those of you who are more skilled than I will find these resources useless. That's fine, because you're not my target audience. Instead, this post is targeted toward people who are just beginning a language or may have a little experience with it and are looking to broaden their horizons. These resources will be easier to digest if you have some programming background, but it isn't necessary. Those that require a more advanced foundation will be highlighted in red, along with a notice indicating the appropriate skill level.

What is... JavaScript?

I know you're dying to ask. It's not Java. The name instead derives itself from an agreement between Netscape and Sun Microsystems which included the integration of the latter's Java virtual machine into Netscape Navigator. Ancestrally, JavaScript isn't even closely related to Java in spite of the vaguely similar syntax. Whereas Java's language constructs are derived predominantly from Smalltalk (from which C++ also derived much of its inspiration) and its successors, JavaScript borrows its patterns from Self and Scheme (the latter a dialect of Lisp) while also introducing functional behavior mostly absent from Java proper.

You most probably know JavaScript as the little language that runs in your browser that presents itself as a nearly real time interface for all sorts of wonderful things (Facebook, Twitter, Gmail) and a few abhorrent things like pop ups. You'd be correct, but you might also be surprised to discover that the language has utility on the server-side as well thanks to the past efforts of Mozilla with Rhino and Spidermonkey, and most recently to the efforts of Google with the release of their V8 JavaScript engine. These JavaScript interpreters have benefited us mostly in the forms of newer, more capable web browsers, but their integration into the server-side of life has created a new world of web servers and databases, including NodeJS and MongoDB. It certainly wouldn't be much of a stretch to surmise that JavaScript has finally grown up.

Interestingly, there has been some effort to clean up JavaScript by presenting a more palatable form through the process of recompiling (or perhaps more correctly "translating") a domain specific language like CoffeeScript into JavaScript. However, because such recompilation is generally performed at a 1-to-1 ratio of expressions to blocks of code, some knowledge of JavaScript is required. I'll be adding links to CoffeeScript resources as well, because I've spent some time learning it this weekend and I find it to be much easier to digest with a greater code density and, theoretically, less error prone.

If some of what I have written is alien to you at this point, don't fret: It is terminology that is easy enough to learn once you get the gist of the language. Terminology is easy; concepts are hard.

Resources

The following is a list of resources that are available for the language in question. I have broken down each into free resources and paid-for resources. For beginners and budget-conscious readers alike, I'd highly recommend reading through the free materials first--it's much easier to get a refund that way! As you build more confidence or require more thorough reviews on some topics, then you may consider purchasing materials more suitable for your specific needs.

Free JavaScript Resources

Eloquent JavaScript
Eloquent JavaScript is one of the best, free (and paid-for) references available. It comes in two forms: The free version, equivalent of the first edition, available as an HTML document (all one file or broken down by chapter), and the paid-for version which is heavily rewritten and edited.

JS in Ten Minutes - For advanced readers; covers topics not expected to be used by beginners
JS in ten (arbitrarily long) minutes may be intended for more advanced programmers, but it's also one of the more concise (free) references I've seen that raises awareness of various tidbits most people wouldn't experience unless they happen to be bitten by one of the assorted nasty things that lurk in the dark corners of JavaScript's functional model.

Non-free JavaScript Resources

JavaScript: The Definitive Guide
This nearly 1100 page behemoth is aptly named. It covers nearly everything possible in the world of JavaScript, including a few external libraries like jQuery and fairly new topics like HTML5's new APIs. For serious developers, this is most assuredly a required resource.

JavaScript Patterns - Intermediate users interested in design patterns and maintainable code
JavaScript Patterns is a relatively light read weighing in at 237 pages and is mostly useful for the conscientious coder. It isn't likely to be useful to the beginner, but if you're interested in doing things the right way and writing code that you can readily maintain, it's worth the investment.

Free CoffeeScript Resources

The developers of CoffeeScript have a pretty concise, useful guide to how to write in CoffeeScript and its equivalent output in JavaScript. However, if you're in need of a more thorough introduction, here's a few:

The Little Book on CoffeeScript
This reasonably short, web-only guide is a little like the one on CoffeeScript site but with an unexpected twist: It's longer! While just as concise, The Little Book on CoffeeScript takes off where the developers' guide leaves off. If the CoffeeScript site leaves you with more than a few unanswered questions, this is likely the next best place to start.

Smooth CoffeeScript
Smooth CoffeeScript is written in a similar thread to Eloquent JavaScript, and it shows! Weighing in at 231 pages, this free guide covers in careful detail every facet of the language and how it translates into equivalent JavaScript.
I gave that lich a phylactery shard. Liches love phylactery shards.
User avatar
Zancarius
Site Admin
 
Posts: 3907
Joined: Wed Jul 05, 2006 3:06 pm
Location: New Mexico
Gender: Male

Return to General Chat

Who is online

Users browsing this forum: No registered users and 37 guests