Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Developers: You are not a Language (restrictionisexpression.com)
38 points by aaronwhite on Nov 21, 2011 | hide | past | favorite | 21 comments


Defining yourself by your languages also encourages the guys with money to consider you a trivially substitutable commodity, equivalent to any other "resource" with the same keyword set. You probably don't want that.


I was just in a meeting with a company who wants to license our software. They have hundreds of developers all over the world. They were happy to discuss architecture and business cases with me, but the one sentance where they mentioned my two best language skills was when they said they could "ramp up development over seas for a couple months."


Of course I’m not a language, I’m a framework. Never mind “Java,” am I Spring or am I Struts?

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:

http://www.joelonsoftware.com/articles/LordPalmerston.html


Spot on. We're always something. Sometimes we're a language, other times we're a framework or something else. Spend enough years programming and there will always be something in which you specialized. Doesn't mean you shouldn't pick up something different if you want to. Doesn't mean you shouldn't want to, either ;)


But if you must be something why can't you be "versatile" or "jack of all trades"?

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.


Like I said, there's no reason why you shouldn't want to pick up something new. In fact, unless you overspecialize, picking up new things gets easier with years. It's fun and refreshing and helps you learn new things. And as a plus, you become the guy people go to because he can learn new things.

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.


It's worse than that even. In much of Corporate America you are whatever keywords the HR person has been told to look for! Language, framework, operating system ... it's all the same to HR.


A good hacker can pickup a new language quickly, maybe half hour, or 1 day, or three days for complex ones. But also usually with each language, comes a set of tools and practices, that take a bit more time to become proficient with, and are also necessary to reach a high levels of productivity.

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".


HN frowns on novelty accounts and bot posting, but if they were allowed I would write a bot to post this link whenever someone mentions learning a new language quickly:

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.


Comes back to the "you can write FORTRAN in any language" saying.


I used to write “Can write LISP in any language” on my resumé. Then I discovered that those who knew Lisp well were afraid that I couldn’t, and those who didn’t know Lisp well were afraid that I would.


I used the concept of "a good hacker". That is a loose definition, that may mean different things to different people. I consider a good hacker someone that has passed the commonly know 10.000 hours of programming experience, and who has studied and experienced various different programming paradigms.

So it is opportune to make the clarification, and I think that I agree with your comment.


I am not a language, but I have a certain taste in languages.

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.


Lots of opportunities claim to be a chance to work on interesting problems together with other smart people. Filtering opportunities is hard. Filtering by language is flawed, but what better techniques are there?


No, but it's a pretty useful signal. If you want someone who can build you an iPhone app, asking for an Objective-C programmer gets you 75% of the way there, and calling yourself an Objective-C programmer is more likely to get you the damn job than calling yourself a "smart, informed Hacker News reading hipster".


Thoughtful and interesting. This post makes me second guess myself.

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.


You know, it's great to say that, but the vast amount of job postings are asking for a keyword set oriented around languages and frameworks.

One optimizes for what is apparently selected for.


That's fine, what prompted my post: Talented developer writes me to join company because he likes the opportunity we are going after, but assumed we were ruby. I share our tech stack, and he passes because he is "only looking for Ruby"... and I have so many counterpoints as to why that is a suboptimal career strategy.


Well, there's also the problem of "Requires X years of Y experience" jobs... if you are (e.g.), a Ruby person looking to move ahead, you want to increment X years in Ruby so your resume isn't trashed by the HR screener or the automated resume scanning program.

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).


I know I'm not a language, now try telling that to the recruitment agent.


No, but are you still strongly typed?!!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: