Developers: You are not a Language
restrictionisexpression.com
restrictionisexpression.com
Never mind “Ruby,” am I Rails 2.x or 3.x?
—
This may seem tongue-in-cheek, but regardless of how we see ourselves, ignoring how others see us is an exercise in frustration:
Maybe not the best examples given but hopefully you see the point? I work for a company doing shell, C, Java coding... my manager comes up time to time asking if I can do something Python or TCL not because I can or can't do them, but because he knows I can pick them up fast enough to resolve the problem we're experiencing.
However, that doesn't mean that most of us don't have something we like and are comfortable with, more than other things. For me, it used to be Delphi, until I switched to Java and then it became Java. Nowadays I can code comfortably in C/C++, Java and Python; I have some non-trivial experience with C#, Ruby and Common Lisp; I've played a bit with Haskell, Io and Self; and I'm learning Scala because I want to write serious code in it. Despite that, if you asked me what's the language (and standard library) I'm most familiar with, I'll tell you it's Java. Doesn't mean I think it's the best thing since sliced bread or that I want to stay with it forever. It just means that's my strongest language/platform for the moment.
Most people I know have branched a lot less. They have one primary language/platform and know bits an pieces of something else (usually Perl and shell scripting) to help them with "duct-tape work". They'll pick up new things if they need/want to, but for the moment they identify themselves most strongly with their primary language/platform.
Recruiters expectations varies on each market situation. In my experience, as a freelancer doing remote work, few if any hiring companies are willing to wait that time. You are mostly required to have demonstrable high quality concrete experience in the specific tools to be used.
Various factor are involved in this situation. Among these, one thing is that is difficult to identify good hackers. Also, hiring the wrong person can be very costly for a company.
Hackers have to send the right signals, to surpass these barriers. Some are lucky, and their careers give them the right opportunities. Others doesn't have that luck, and must put an "special" extra effort, to be able to advance and get these "best opportunities".
http://norvig.com/21-days.html
I’m not saying that a good programmer cannot become productive in a new language quickly for some definition of “productive,” but it seems thee is more than meets the eye when it comes to learning a new programming language.
So it is opportune to make the clarification, and I think that I agree with your comment.
While I am somewhat capable of coding in Java or C, I just enjoy the Ruby community, the podcasts, the expressiveness of the language and the approach to solving problems way more than I do with the respective C/Java equivalents.
I am not a language, but I'd like to chose the tools that make me happy.
As a counter point: I wonder if this is a personal decision. Some people are interested in deep mastery and some people are interested in broad mastery.
One optimizes for what is apparently selected for.
So I disagree: it's a career strategy that is optimized for HR screeners and resume scanners, which most bigcos seem to use.
(I personally prefer generalist positions but I don't see those advertised outside of startups).