Related Entries

Quick Start: Git for personal use
SVN client over SSH to remote Unix server from Windows
Quick Start Grinder - Part V
Quick Start Grinder - Part IV
Quick Start Grinder - Part III

« Mandrake 8.2 is out
» Outliner software

Get to know some tools!

One trend I'm seeing is that developers know some limited number of tools and they want to use only those...

One trend I’m seeing is that developers know some limited number of tools and they want to use only those tools for all the tasks they are asked to do. Some of my random observations are below.

Attitude like "if it is hard to do in some tool, it is the problem with the requirement" doesn’t help in the long run. Specialization is for insects and for doctors. In the IT field, you really should know a handful of tools - like programming languages - to easily get your work done.

My boss said it right - "to a guy with a hammer, everything looks like nails".

This is most obvious among web developers who have not worked before with enterprise class systems.

Some examples:

My suggestion is to learn one cross-platform scripting technology and try to write scripts for everything using that. Python, Perl, PHP (compiled as executable), WSH are all good candidates if UNIX shell scares you. Most of the time, whatever you are asked to do as a one-time job will come back for a re-run. If you’ve scripted these, your boss is happy and you are happy too.

I think the problem is with the training courses web developers undergo. To truly succeed, you need to know how to automate things and the principles behind the work you are doing. Simply stating that you know how to make a page using DreamWeaver is not enough - you need to know how to write valid HTML and how to read it using non-WYSIWYIG editors. If you use tools like TOAD to look at an Oracle database, make sure you know how to script and format using SQL*Plus too - because you can automate lot of things in SQL*Plus.

Interactivity should be used only for playing or learning. That way, Python gives you best of both worlds. Try things out in the interactive shell and if it works, package it up as a script.

When you are learning a new technology, don’t try to learn it like how you’d have done it in a technology you know. ie., if you are learning Zope, don’t try to think about how you can implement ASP like code in Zope (I’ve was guilty of this when I had worries about how long Zope will be in business). Learn about the strengths and weaknesses of the technologies and then learn the syntax.

Finally, always remember that when you write code, you are writing code - not an article. Your code doesn’t have to be one long winded listing. Use functions and procedures and split it up according to the logic.