What do you need to know to do your job?

I mean, what languages and tools are requirements in your profession as a software engineer? What do you have to have in your toolbag?

I’ve been thinking about this a bit over the last few months, and the list, for me at least, is pretty long:

There are also a few I infrequently use:

  • Python
  • Perl
  • PHP
  • MySQL
  • Apache
  • GDB debugging (on occasion)
  • CVS
  • Macintosh operating system
  • MathML
  • SVG
  • RDF
  • HTTP

Now, I don’t need to be an expert in all of them. I do need to be an expert in a few of them (JavaScript, HTML, CSS, XUL, XBL, XPIDL, Makefiles, tests). The rest, I can look the details up when I need them.

Even so, it’s a lot – and I imagine Professor Humphrey’s students might be intimidated to see a list like this. The good news is you don’t have to learn it all at once! In the corporate world, for new professionals, there is a learning curve. The bad news is that this list is always changing. Two years ago, I doubt I’d have listed Python above – and I suspect in less than two years, it will move into the “must-know” list.

So here’s a new Internet meme for you software engineers: List out the languages and tools you need to do your job. Extra credit if you post it as an unified diff against my own list here, linking back to this post.

I just hope I haven’t missed anything terribly obvious.

One thought on “What do you need to know to do your job?”

  1. Let’s see…
    * Javascript (+jQuery and MooTools) / HTML / CSS
    * PHP (+ Smarty), Perl
    * Apache / Lighttpd, MySQL
    * general Linux administration (it helps that I’m a full time Linux user)
    * Java
    * Bazaar
    * Make
    * XML parsing
    * general lexing and parsing (surprisingly how often it comes up, and how few programmers are able to do it)
    * database design
    * basic mastery of bitmap and vector image editing, sound editing and video editing and transcoding
    I’m probably forgetting a few things, but these cover the basics.

Comments are closed.