Somewhere in the intertubes I came across an interesting response to my post on using Python and Ruby for interviews. The author stated rather categorically that for an interview you should simply use the language you know best...well of course...of COURSE... right? Wrong.
Programming languages are tools of the trade. A well-rounded programmer knows a handful of languages reasonably well. If you're familiar enough with two or three languages to Get Things Done, then I suggest you approach your interview problem the same way you approach your everyday job: examine the problem, look at the tools you have available, and then pick the tool that you can use to solve the problem fastest. For those of you with only one language in your tool belt, your choices will be limited.
Because we often work on a single codebase for months at a time, it's hard to become really good at lots of programming languages. But that's OK, you don't need to be. When a tool is well suited for a problem, it doesn't take a grand master to get the job done. Do you really need to be a wizard to remember how to use grep? Is working with python lists or ruby code blocks that hard to remember? Maybe you don't remember how to write a for loop in Awk. Who cares? When you need to select the 4th column of comma-delimited text, but only if it's > 0, Awk is Brain Dead Simple. Good tools lend themselves to the task at hand so well that even an amateur can get it done.
So learn enough about the tools you don't already know to understand what they were designed to do, and the next time you see a screw don't reach for a hammer. Learn Java, Ruby or Python, and Bash at the very least. Learn a handful of common unix commands. Yes, you should carefully study the language you use every day. That's your Chef's knife. Now don't be an idiot when faced with a problem for which it's ill-suited. If it feels clumsy, you're probably not using the right tool for the job. Put down the C# or Java and pick up the python, ruby, awk, sed, tr, cut, perl, xargs, paste, bash, etc. If your interviewers want to see you flex your Java muscles they'll let you know.
Mastering a single language is a small part of developing your craft, and sticking to that language no matter what is a rookie mistake. Don't fall for it.
Friday, February 6, 2009
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment