Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming

Journal Lodragandraoidh's Journal: Banish 'Programmer' from your vocabulary...

Here is my advice to those of you looking for a steady job in the computer field (or trying to keep the one you've got):

Stop thinking of yourself as a 'Programmer' or a 'Coder', or a 'DBA' or whatever narrowly defined field you think you are in. From now on you are a 'System Integrator', 'System Developer', 'Computer Guru'. Stand up straight - stick out that chin - be proud of who you are.

Learn as much as you can about iterative/agile development - characterized by rapid prototyping, frequent incremental releases, and a really meaningful feedback loop with your customers and team members that addresses the three key questions: What did we do not so well this iteration? What did we do very well this iteration, and finally, what can we do to improve ourselves for the next iteration?

Avoid the strict waterfall method (where specifications are defined in detail - often taking many weeks or months - before implementation - during which specifications are frozen until final release. At which point the application is 'maintained' - usually by a different group than who developed it - and changes have to go through a review process - many months - and vye for IT resources with other projects; I have lived through these - and it is not pretty); build quickly to get something in the hands of the users so they can give you feedback and shape the design where it needs to go. With vendors and internal IT development teams it is sometimes an uphill battle to break them of old bad habits - but its a good fight that pays dividends in the end.

Learn portable tools First, then everything else Second. By this I mean don't specialize in .Net or Visual Basic before you learn Python, Perl, Java and C/C++(GCC). Be able to prototype quickly on whatever hardware and OS your customer may have available (don't tie yourself to a particular architecture/OS) with minimal setup on your part. Ideally, build a tool archive that has the things you need on it - ready to go with templates for standard functionality - this will impress your clients.

One suggestion for a client-server web enabled application toolkit (90% of my projects fall into this category) is to have a tar/zip file containing Zope with your favorite products (extension modules) installed - as well as example applications, and Python - for scripting, and rapid GUI development - again with modifiable examples of stock applications you have developed available for rapid prototyping. If you have internal customers - have a machine set up this way so you can do the prototyping quickly and get feedback as soon as possible.

 

Don't be afraid of change. Be flexible - and make your customers so happy - they come back to you for more quality tools. Figure out who your customers are and what they want - then give it to them without having to be asked - it is easier to beg forgiveness for something useful, than to get permission to build it before hand.

Keep your technical skills up; practice your craft by building small applications that exercise some aspect of a language you are not familiar with. Keep up on the development, system integration and various standards swirling around - be like Bruce Lee: take what works, and discard the rest. Don't waste your energy trying to master every fad. Know where all of the best 'wheels' are - and use them; don't reinvent the wheel if you don't have to. If all else fails - reinvent the wheel. Remember - the only true measurement is working tools; build many and often.

Finally, examine yourself. Are you the best Computer Guru/System Integrator you can be? Are you doing the right things to satisfy your customers? More importantly, are you satisfied with your job, or would you be happier in some other line of work (there are plenty of other unemployed IT workers ready and willing to step into your empty slot).

Garbage In -- Gospel Out.

Working...