Seen on Slashdot:
Unix programmers like their code like the old legos. Each piece might be a different size or shape, but the bottom of one snaps onto the top of another and the ordering and number of pieces used is left as an excercise for the reader. With experience, anything can be built with the pieces, and yet each piece is simple and easy to understand.
Windows is like the new lego sets. You get specialized premolded parts suitable for one specific task, plus two or three additional add-on pieces that give the illusion of being fully configurable for any task. You can build anything you want with the new legos, as long as you only want to build what is on the cover of the package.
Nearly every organization has a technology department these days. Some deal in nothing but IT, while still others outsource their IT needs to an independent contractor. Whatever your personal needs, you'll probably need to find an IT guy at some point. The field has seen so much demand that now everyone, it seems, is trying to get into the computer support business. The levels of expertise of these professionals now range through the whole gamut: some are wizards, while others are worse than nothing at all.
So, how do you know a real find when you see one? Are there any criteria that you can use when screening potentials? Well, there's no sure-fire way to pick a winner, but after working with many people in the industry, I've seen a few trends. What you're looking for is someone who is mentally brilliant and enjoys working with computers because he enjoys learning new things. Wizards become so because the want to know how everything works, and are willing to do the research to figure it all out.
This one is really the key. What you want to know is what they enjoy doing. If a person is in the computer business because he's smart and enjoys the mental challenge, his hobbies will often involve working with computers as well. If he's in it just for the money, he probably would rather spend his free time water skiing.
- Programming ability
If the person does not know how to program a computer, his knowledge of how to work the thing is severely limited. Furthermore, admins who can write programs can solve a problem in far less time than those who cannot. The ability to create your own tools as necessary is a key skill in serious admin work. Finally, programming is one of those skills that every computer genius naturally gravitates towards, while people "in it for the money" naturally shy away from it.
- Knowledge of Programming Languages
If a person only learned to write computer programs to pass a class in school, his knowledge of programming languages will be limited to those he learned in class. On the other hand, an expert will find learning new languages extremely easy, and will likely be proficient in a good handful of them, while having just a few favorites.
It is also significant which languages a person knows. While I can't give an exhaustive list here, here's some pointers:
- C/C++: the lingua franca of computer programming. If a person doesn't know C/C++, he really shouldn't even be considered a programmer.
- BASIC, VB: knowledge of BASIC and Visual BASIC counts for very little, but is better than nothing.
- Java: while not terribly useful in most cases, java is a respectable programming language.
- PHP: this language is used almost exclusively for web programming. Many people understand the basics of PHP programming, but few understand the deep details. PHP experts are often experts in other languages as well.
- Perl: this language is extremely powerful and quite difficult to master. A serious Perl programmer is a force to be reckoned with. He can often solve problems many times more quickly than his peers.
- Linux/BSD Experience
It's been my experience that the smartest in the computer world naturally develop an interest in Linux (and/or BSD --a similar alternative). Linux provides an ideal environment for the curious computer user, as it allows the user to gain a much more in-depth understanding of the internal workings of the system. A deep understanding of Linux and other similar operating systems counts very strongly in a person's favor, especially if he actually uses it on his own personal computer.
This is a tricky one. Companies started offering tech-related certification exams for two reasons: First, and most importantly, the wanted to make a lot of money off the growing IT industry; and second, they wanted to establish a baseline level of knowledge for IT professionals. When push comes to shove, though, companies doing the certification (like Microsoft) would much rather make money than be useful. As such, certifications have sometimes degraded into something of a purchased diploma as the companies responsible have attempted to appeal to a much wider (and less capable) customer base.
A certified professional is at least guaranteed to have memorized a bunch of facts about the technology he certified in. He's not guaranteed, however, to be able to solve problems as difficult as, say, tying his shoes. It's unfortunately very difficult to test problem-solving skills, while it's very easy to test memorization. And, while certification exams test knowledge, it's the ability to solve problems that makes a difference in the real world. A person with an IQ in the 130-140 range is worth an army of "certified professionals." Some of the more intelligent and experienced techies actually refuse to take certification exams because they see it as insulting.
I was recently searching through the NTSB accident database, curious to find out some details on a minor plane crash that happened here a little while back. While so doing, I ran into a very interesting accident.
It seems that back in May, a small 1950's-era helicopter was taking off at from a ranch in rural Colorado. Everything was going smoothly on takeoff until, "the right rear skid caught on a nearby truck trailer fender."
Now, I must admit, I'm not a helicopter pilot. Some of the finer points of helicopter operations may perhaps escape me; however, I like to think that my powers of spatial reasoning are at least up to scratch. And if I read that quote correctly, the helicopter managed to catch the rear part of one of its skids on the fender of a very-close-by vehicle.
Wow. Think about the setup that had to be in place for that accident to happen. Someone feels stupid. (There were no injuries.)