Six great resources for budding JavaScript coders
As a relative newcomer to the world of web development, it sometimes seems to me as though there is a gulf in the field: The "pros" versus the "wannabe developers". As if there's a tight-knit clique of developers, all well-versed in arcane stuff like advanced user scripts, HTML5, or Ruby on Rails -- and then there's the "rest of the world", composed of mere mortals just trying to hack something together that would somehow display and sort of work across multiple browsers.
So the question becomes: How do I bridge the gap? How can I become a decent, skilled JavaScript developer without spending a boatload of money?
After the fold you can see my take on that issue, consisting of one piece of advice and five resources which I find useful in this quest!
1: Be professional about it
I know, I know; this is not a "tool" per se, and you might even say it's a trite thing to say. But all of my other recommendations are predicated on you taking JavaScript development seriously. After all, how can you ever become a pro if you don't even try?
Take a stroll through any web developer forum and you'll see most people approach JavaScript development on a "by the way" basis. By this I mean, "Screw learning, let's just throw something up on the page!" ... and "Can anybody tell me how to split a string?"
So first thing's first – attitude. Change starts with you. The resources I outline below may all be quite affordable in terms of cash, but some of them do cost quite a bit of time. Learning takes time -- it's a fact of life.
So now that I've hopefully got you in the correct mindset, let's see some tools.
2: Learn about JavaScript from Douglas Crockford
Douglas Crockford is a genius. Seriously – the guy is brilliant. He's currently serving as Yahoo!'s chief JavaScript architect, he invented JSON (a widely used data interchange format), he's part of the ECMAScript committee (the guys setting the JavaScript standard) and has a very broad understanding of the general history of programming languages and computer science.
Recently, Crockford gave five talks about JavaScript as part of Yahoo!'s YUI Theater. These are all available for free, and they're over five hours in length (more like six to seven hours in total, I think). What's so cool about these talks is that Crockford really gives you a bird's-eye view of the subject; the first hour is just history, and it's really fascinating. It's all over the place, starting with the Jackquad loom, through why we have both a Delete and a Backspace key on our keyboards, all the way to modern programming languages and JavaScript.
I took the time to watch all videos and they were the first "real" thing I ever learned about JavaScript. Except for the fourth talk where he got very technical and lost me, they were all very interesting, and gave me a great viewpoint on the language.
One thing I like about Crockford is that he doesn't sugarcoat anything. If he thinks a JavaScript feature sucks, he would just come out and say it, and then very eloquently explain why. Really – take the time to watch these videos; you won't regret it.
3: Safari Books Online
When I finished watching Crockford's videos, I knew I wanted to read his book, titled JavaScript: The Good Parts. With the book, Crockford really gets technical and explains what he sees as the best way to code JavaScript, and why.
So now I had to find what's the best way to read that book, and I believe I have. Safari Books Online has nothing to do with Apple, and has everything to do with O'Reilly, Apress, and a whole bunch of computer-publishing heavyweights which have all banded together to provide a superb online library.
Crockford's book costs $19.79 on Amazon. For $23/mo, Safari Bookshelf (one service by Safari Books Online) gives me unlimited access to 10 books a month, so I can read a full-text, nicely formatted copy of that book, plus my choice of 10,966 other titles. Yup – almost 11,000 other books, all full-text, nicely formatted, top-of-the-line computer books, straight from the publisher. That's some serious bang for the buck.
And that's the "cheap" subscription (they don't actually call it that, though). If you go for the premium subscription, you get access to tons of videos, early drafts of books ("read them while they are being written"), and some other goodies. I didn't spring for Premium, though, so I can't really tell you what it's like.
Reading a complete book takes time. But when you pick the right book, you get the sort of comprehensive coverage you would never get by Googling or following online tutorials.
4: Lynda.com
I covered Lynda.com before. If you're more of a visual learner, Lynda.com is hard to beat. For $25/mo, you get unlimited access to a library of thousands of hours of high-quality video courses in any computer-related topic you can think of, from Office, through graphics apps all the way to programming languages and web technologies. I studied a complete 11-hour PHP course, and I was very happy with it. I followed along (video on one monitor, PHP development on the other monitor), and it really gave me something.
Lynda also offers a JavaScript course by Dori Smith, who seems to have a very solid understanding of JavaScript. I must admit I did not personally use this resource because the pacing was a bit slow for me, but it might prove useful for you. Give it a shot – you can even watch the first few videos for free!
5: Komodo Edit
Oh DLS readers, how you love to bash me in the comments; but despite any criticism, I still think Komodo Edit rocks for PHP-related work, and it's proven invaluable for JavaScript development, too.
I get beautiful code highlighting, code completion as it was meant to be (even though I must admit Microsoft sets the gold standard for this one), and instant squiggly underlines showing any syntax errors.
Firebug for Firefox
One thing Komodo Edit doesn't do is proper debugging; for that you need to spend money on a proper IDE, or simply use Firebug.
Firebug has completely changed my web development workflow. It has a profound impact on any CSS or HTML work I happen to be doing, but I've also started using it for JavaScript debugging. I mainly use the error console, but I also use it to dig around in any JavaScript files that come along with the page I'm currently loading (very useful for creating user scripts utilizing existing functions on the page). I prefer the console to Firefox's built-in JavaScript console because it's prettier, and thus easier for me to figure out.
Another huge Firebug feature is that I can set breakpoints, watch variables and step through any JavaScript executing to try and figure out what's making it break. In other words, it offers proper, full-fledged debugging.
If I ever work on one of those newfangled "web apps", I will probably end up using Firebug's profiling facilities, which are supposed to help optimize the execution speed of my scripts. But in that regard, I think Chrome offers some better tools than what Firebug brings to the table at the moment (even if you consider YSlow).
Your Turn
So, what did I miss? Do you know any awesome resources for a novice coder who's trying to get his JavaScript on? Feel free to share in the comments, and I might write a follow-up with some of your suggestions!
















Comments
13
Subscribe to comments@davey_ladJun 9th 2010 2:50PM
JQuery.
Why write 10 lines of Javascript when you can write 1 line of JQuery (just about). OK, under the hood it's Javascript (framework) but it's such a productivity booster i wouldn't be with without it. Great developer community too
vBmJun 9th 2010 3:30PM
On other hand i'd recommend mootools :P
@davey_ladJun 9th 2010 3:42PM
Each to their own I guess... there are lots of Javascript frameworks around all with some really cool stuff and all productivity helpers.
I choose Jquery over all others simply becuase of it's maturity, ever expanding support, community, plug-ins & the awesome JQuery-UI Library. Even Microsoft have joined the gang and it's now an integral part of Visual Studio & their Ajax CDN
PrestonJun 9th 2010 3:15PM
The best thing to do is to look online and read/watch as many tutorials as you can. Look around enough and you'll find out who really knows their stuff and who is just a wannabe guru.
Also, don't be afraid to try it yourself. It's one thing to copy someone's code, it's another thing to write your own. If you screw up? So what! Fix it! There are a ton of resources available to find help on things.
And don't forget the semicolon. =)
NoahJun 9th 2010 3:56PM
JQUERY is nice and all, but personally, I've been using ExtJS for the past 3 years and haven't looked back.
Michael KentJun 9th 2010 4:22PM
Books are great and I can't agree more that you should read them, but nothing substitutes for asking the experience of others. A great site to do this at is www.stackoverflow.com!
yoxigenJun 9th 2010 4:06PM
The first thing to do, IMO, is deciding on a project you want to do with Javascript. A person focused on a goal lears much faster and much deeper (meaning that the knowledge learned actually stays in your head after you've implemented it) than a person learning theory and practicing on abstract stuff.
Then what you said and jQuery. :)
MxxConJun 9th 2010 8:06PM
instead of/in addition to firebug, consider using Chrome Developer Tools, and especially Chrome Page Speed Tools (http://www.downloadsquad.com/2009/12/09/go-speed-tracer-chrome-extension-helps-with-sluggish-web-apps/). It's simply awesome for JavaScript debugging. I think it's a step beyond of firebug.
jeff.ottingerJun 10th 2010 1:44AM
Whether choosing JQuery (my favorite), Prototype, Mootools, or any other framework. The important thing is that you USE a framework. Make sure it is a well supported, well documented framework while you're at it.
By using a Javascript framework, the time spent writing code and learning DOM (look it up) is drastically reduced.
Don't just stop at a javascript framework though. If you plan on doing PHP development, pick a PHP framework as well. Zend, CodeIgniter, or CakePHP... knowing any framework will make you more valuable to a development team. Most development teams use some framework, and learning how to use any one of these will help you when you go to learn another.
f055Jun 10th 2010 5:11AM
Finally! somebody is giving some credit to Komodo Edit! I see dev all around asking for a good free IDE and people always point them to some crap like Eclipse, TextMate or other, while in fact Komodo is the best out there. I'd like to get my hands on the pro IDE version, but the free Edit never failed me and it's been almost 3 years now.
On the other hand, I don't understand why people always point to Firebug, while Safari Web Inspector is so much better. But it's probably this better on a Mac, not a PC.
Mitch MJun 11th 2010 12:56AM
I personally like Notepad++ for all my coding needs.
tracker1Jun 17th 2010 6:52PM
jQuery and ExtJS serve different markets, even though there's ext core, I don't think it's as usable by itself. It's very similar to YUI, where it's roots are, and that tends to be overly verbose for a typical dynamic site. If you are building a dynamic web application, ExtJS is a great option.
I would suggest starting with "The Good Parts" if you're coming in with knowledge of any other programming languages. There is actually a short stack of books I would recommend when coming up to speed on JS. I've been working with JS since near the beginning, but the way things are done have changed a lot since late 2009.
JacksawJul 26th 2010 10:57AM
I found this tutorial site to be quite well written, informative and it even includes a javascript console for running examples and sample programs on the same page you are reading.
http://eloquentjavascript.net/