Like many system administrators, I learned HTML a long time ago but didn't have the need to learn the newer technologies as they appeared: Javascript, AJAX, and so on. Sure, we know enough to talk about them intelligently but not enough to program them.
It has come time for me to learn those things.
I think a lot of sysadmins out there are in a similar situation therefore I'm going to document my journey in hopes that others can benefit.
First, let me be clear about what's driving my decisions:
- I'm smart. I don't want to be talked down to.
- I'm busy. Training materials will have to "get to the point" and should be a document I can read on my own time.
- I'm lazy. I don't want to do a lot of work. I want a framework that does 90% of the work for me.
- I'm in a hurry. I'm not going to spend a lot of time evaluating tools. If something is popular or popular with the coworkers nearest my desk, I'm going to use it. If it turns out to be a bad decision at least I have nearby people to cry with.
- I'm really lazy. I don't want to have to reinvent the wheel.
There are plenty of Javascript books that assume the reader has never touched a programming language before. Ugh. That's exactly what I want to avoid. Instead I need a "JavaScript for people that already know C", and a "writing web apps for people that already know how Unix works" and a framework that does most of the work for me.
As I find resources that help me do this I'll be writing about them and tagging these posts "AJAX Education".
So far I've gotten up to speed pretty quickly with these resources:
- Javascript: A re-introduction to JavaScript from the Mozilla organization. This has taught me Javascript in practically one sitting. It assumes you already know "C". For example, it doesn't explain what "x += 1" does, it just says that the feature exists in the language.
- AJAX Basics: Basics of Ajax from "Software As She's Developed" is available as a Podcast, but I've been the notes they've linked to on AjaxPatterns.org. So far I've read these two patterns and I already feel like the veil has been lifted:
- Display Morphing -- How to dynamically update elements of a web page
- Page Rearrangment -- How to add to a web page dynamically.
- Django: The web framework I've picked is Django. I'm working through the online Djanjo Tutorial which is excellent. Hats off to the project for having such excellent documentation. Why did I choose this framework? (1) It uses Python, my new favorite language, (2) the person that sits next to me at work uses it, answers my questions quickly, and hasn't gotten annoyed yet. (If he starts to ask me if I've considered learning Ruby-On-Rails you know he's gotten fed up with all my questions.)
- Google Closure: Nobody uses Javascript without a code library to do the hard parts for them. These libraries "do the right thing" so that you don't have to care about browser differences (OMG are there differences!) and implement high-level things like pull-down menus, image zooming, etc. The two most popular seem to be jQuery and Closure. I'm using Closure because (1) my employer maintains it, and (2) there is no reason #2. (If you worked for Ford would you buy a Honda?). I've basically gotten up to speed already by reading the Getting Started guide and looking around the API reference
Ok, that's enough reading material for this week. Hopefully the next article will be about my success getting a mock up of my future web app up and running.
Please post comments. Tell me what resources you've found useful!