Sunday, December 6, 2009

The Difference Between My Brain And A Web-CMS

That title is a joke. I am nothing like a web-content management system and so comparing my brain to the purpose of one is ridiculous. But I have been bashing my brain against one particular web-cms for a while now and while my head hurts from the steady rate of growth and discovery, I can say that the experience has been, well, glorious compare to the learning curve of other kinds of technology. I am talking about the web-cms Drupal.

I have learned a number of other languages over the years: Visual Basic, Cobal, Powerbuilder, Foxpro, C, Objective C, C#, .NET framework, Cold Fusion, PHP, ActionScript, JavaScript, Smalltalk and a few others (fhew!) The thing about most programming languages: it is a lot like riding a bike. There are many kinds of bikes out there, single gears, multiple gears, road bikes, trail bikes, and while they all ride differently, once you learn one the others implement the same basic expected functions (pedals, breaks, gear switching, turning, etc.) just not in the same way (rod-based gear changing, twist / crank gear changing, breaks on the handlebars, breaks on the pedals, etc.) With most languages the purpose remains the same, the tools to get you there are what change a bit.

Diving over into a web-cms is like tweaking a bike for a particular purpose. The seat, the handlebar grips, the shoes, did I mention the seat? A web-cms can implement many different approaches based on the technology (or programming language) beneath it. This means you need to know a bit about the programming language it is written in, but then you need to know how they used that language to put the whole thing together so you could snap it together in a custom manner: enter headache.

Drupal, the web-cms of my choosing, is really built on the best of the best. Allow me to throw out a few buzzwords: apache, MySQL, PHP, jQuery and Ajax. And Drupal sites tend to look amazing in old browsers as well as new browsers, index really well on sites like Google (sidenote: it is funny to think of a monolithic entity like Google as fundamentally a site) and plays really well with other technology. If Drupal were your kid, it would never disobey, would be infinitely creative and filled with potential, and you would never have to tell it to clean it's room.

Drupal is clearly the premier poster-child for Open-Source-Gone-Well. It nearly defines the phrase. Drupal is open source in that Drupal version 6 (the current version) included the participation of over 700 developers world-wide devoted to making this community product better.

And the magic of Drupal is in the contributed modules. These are little optional pieces of downloadable functionality, all open source, available for the purpose of adding functionality to the core web-cms that is Drupal. Do you want a site to run your personal blog? Core Drupal does that. Do you want to setup a community calendar and a photo gallery and manage document libraries with sign-in & sign-out capabilities? Go visit http://drupalmodules.com/ and you will find all of the Contrib. Modules you need to pull that off.

Learning Drupal is, however, just a bit sketchy, but not in the way you are anticipating. It isn't that Drupal information is difficult to find. On the contrary. There is too much information out there. And self-published experts range from goofy to golden-nuggets. The trick is getting good references from community members to find the right best sources of knowledge. In a sea of Drupal there are a few amazing stand-out sources that every wanna be Drupal user needs to find... but I am going to hord those references so you all don't benefit!!

That is joke. The first amazing source is IRC. That's right! I said it! Remember back in the day when AOL first came out and how cool it was to chat with people over the internet? Well, long before AOL pretended to BE the web, IRC was! IRC, or Internet Relay Chat, are these communities of like-minded folks who are chatting it up on various topics. In the Drupal IRC world, irc.freenode.net and #DRUPAL-SUPPORT are your bread and butter. I have received tips from everything from (1) great hosting services, to (2) how to enable features in my custom theme configuration, or (3) great book recommendations.

All in all, my career has taken a completely reborn turn in the last 3 years. I was completely invested in Microsoft a few years ago. If I were to explain my career in terms of technology I would have said: SharePoint, VB and C#, Ajax, CSS and SQL Server. These days, without a doubt I would now say: PhotoShop, Dreamweaver, Flash, ActionScript 3, Drupal, PHP, CSS, xHTML, XML and Design. In the world of tech, that is like agreeing to fight with the English and just before impaling William Wallace on your sword, shaking his hand and joining his team along with the other defecting Irish (not that I am Irish... I am Scottish!)

So I am geeked about the future of my career. I am 36 years young and feel like I am just getting started.

No comments: