You can tell a lot from the tools a person uses to perform his (I use "his", "he", etc. to refer to men, women, even aliens; don't assume sexism where none exists) job. When interviewing a software engineer or shooting the bull over a couple of beers, I'm always curious as to what he uses to craft his software; below are mine.
- Cygwin - Standard Unix utilities for Windows at your fingertips. The first thing that gets installed when I repave a machine. Each utility usually only does one thing but it does it extremely well and extremely fast. By piping output of one utility to the input of another, you can chain utilities together to perform some sophisticated processing.
- Emacs - The swiss army knife of text editors. If you come from a Unix background, you've probably encountered emacs at some point and perhaps even cursed it. Emacs was created before the use of a computer mouse was commonplace and as such you can do everything using keyboard commands without your hands leaving the home position. I've been using emacs for over 12 years and emacs commands are burned into my nervous system. I could be comatose and still navigate and edit files.
- Firefox - Not much to say here. It's the best browser available bar none. I know Opera introduced tabbed browsing but I got it with Firefox. Firefox currently has minimal support for Scalable Vector Graphics (SVG) which will revolutionize web development much the same way that AJAX has done the last 3-4 years - you heard it here first.
- Firebug - Holy cow, how did I ever live without this? It's a Firefox extension and makes web development so much easier that if it was ever taken away, I'd quit web development and move to a hippy commune in the mountains of Idaho. The features I'm in love with are an integrated Javascript debugger, HTML/DOM inspector, and displaying all the information in HTTP requests (including those made by the XmlHTTPRequest object). Simply fantastic - a great great piece of software.
- PuTTY - A great ssh/telnet/sftp suite of programs for Windows. Other terminal programs for Windows are craptastic by comparison and not worth the electrons they occupy.
- Ethereal - Your friendly, neighborhood packet sniffer. It surprises me when developers or sys admins are trying to diagnose a problem in the network and they don't use a packet sniffer. It's like watching a person fumbling around in dark room, stubbing their toe every 5 seconds because turning on the light switch would be too easy. I'll see a person using 3 different FTP programs trying to figure out why a particular FTP server is dropping connections for a particular file. Instead of loading a packet sniffer and actually see what's going on, they'll make wild-ass guesses to the problem and waste a lot of time in the process.
- Hex editor - Binary file editing. I don't have a hex editor I prefer and there are plenty out there. Like using a packet sniffer, using a hex editor can save you a lot headaches by being able to look for that evil NULL (0x00) character that ganks your text processing.
- iPod - What? That's not even a software program - surely you're thinking I must mean iTunes right? Nope. I think the iPod is one of the best productivity boosters that's been invented in the last 100 years. As a developer, one of the worst things that can happen is to break my concentration. I'm trying to keep 10 plates spinning in the air, programming in 3 different languages (common in web development), and when I hit the groove, my productivity goes bonkers - easily 10x of normal. And then it happens - cow-orkers talking about their pine cone collection, somebody asks a question about the anatomy of a 3-toed sloth, or the phone rings from somebody that wants to talk about something that really isn't important. When I jack-in to my iPod, the world melts away and I'm able to focus on the task at hand. Somehow offices have become a status symbol for us fish swimming in a sea of cubicles and the best us fish can do is find our own little coral reef to hide in; the iPod makes that possible.
- Google - The ultimate man page. Do you remember how hard it was to track down programming references or technical information before Google? I do and quite frankly it sucked. Hard. Alta Vista was OK, Yahoo! was a little better, I was never excited about Excite!, and Lycos was the worst of the pack. Then came Google. When I first saw it sometime in 1998, I loved that it wasn't covered in ads (I'm looking at you Yahoo!); the "Feeling Lucky?" button made me laugh; and the search results were - dear lord, the search results actually meant something. They actually found an answer to my question - brilliant! As a side note, have you ever noticed that Google searches Microsoft's site better than Microsoft's own search engine? Anyways, it seems Google is big enough to warrant the ire of a growing number of technorati and that's a favorite American past time - root and cheer for David until he's big enough to be Goliath and then plot Goliath's downfall. I'll probably always be a Google fanboy because I remember what Internet search was like before 2 graduate students from Stanford tackled the problem.
You'll notice I didn't include operating systems or programming languages. That's because they really don't matter. Customers really don't care how things work. And they don't care what language you're using to create your application; use what you think is best and what feels comfortable. I get a chuckle when the latest Web 2.x social twitter photo-sharing network lists the programming language/operating system on it's list of features. Why should I care? Does your social twitter photo-sharing network actually do anything useful? If it does, then I don't care if it's powered by a couple of hamsters running on a wheel really fast.
Recent Comments