Hacker News new | past | comments | ask | show | jobs | submit login
Haskell vs Java job applicants (haskell.org)
40 points by nickb on Feb 5, 2009 | hide | past | favorite | 23 comments



One thing about getting something like a Haskell job that's rarely mentioned is it seems like it's very much an all-or-nothing proposition. Casual or intermediate dabblers who like learning new things like Haskell but aren't total wizards get no points.

A lot of the investment bank openings for functional programmers want someone who's doing a PhD in programming languages, from what I've seen, for example.


That's not necessarily true; for things like designing proprietary languages themselves optimized for financial risk modeling, yes, you better have a CS Phd. But it's definitely not the case that everyone who touches functional programming on Wall Street has a Phd, and if you interview with the right group within an investment bank, the technical interviewer might very well be impressed with your Haskell experience, especially if you're going to be working closely with quants (provided he knows what it is; there's a really massive range in CS know-how within investment banks, but that's another story)


I think it's more that people who program in $OBSCURE_LANGUAGE are much more likely to have picked up that language out of interest, rather than from wanting to have a cushy, decent-paying desk job.


I wouldn't say that just because someone knows Haskell they are suddenly a good programmer. Some schools use Haskell for their intro programming classes nowadays.


No one's saying that (I think). The claim being made is that someone who wants a job programming in Haskell is likely to be someone who's interested in learning new things, not that someone who has learned some Haskell is likely to be a good programmer.

Still, the thing linked is distinctly light on evidence (not a fault -- it's only an email on a Haskell mailing list) and I'm not quite sure what it's doing on the front page of HN; it's not exactly news that people wanting jobs programming in languages that are (1) difficult to learn, (2) interesting and (3) unusual, tend to be people who are interested in learning new stuff and keeping their brains active.


Being able to write a "hello, world" in Haskell certainly doesn't make you a good programmer. However, I would say that anyone who has already written a sizable Haskell program (5K+ LOC) is almost certainly a good programmer.

The reason is that it's more work to grok Haskell than almost any other existing language, and the job market for Haskell hackers is practically nonexistent. You have to really love programming to become a proficient Haskell hacker.


Surely numbers are significant here. How many universities teach Haskell, compared to the number who teach Java? Of those that do teach Haskell, how many of them teach it to a level that someone taking that degree would easily be able to extend that knowledge to a level where they could get a job programming Haskell on a day-to-day basis?

It's also a question of perception. The programmers one wouldn't want to hire, according to the metric under discussion, are those who learn a single popular language just to get a job. Is Haskell generally perceived as a language where there are a lot of jobs floating around? If not, then presumably most people learning it will be learning it because they're interested, because they want to improve as programmers, and so on.


I would say that there are many more that don't even offer Haskell at the advanced level, or at best, offer one or two classes in the entire curriculum that use it.


In Sweden I know Chalmers teaches funcional programming as an obligatory first year course and functional programming is traditionally strong there. In Lund it is taught as an advanced course and not obligatory.

Java seems to be the default language.


Which schools are that?


There are some listed on the 'Haskell in education' page on the Haskell wiki.

http://www.haskell.org/haskellwiki/Haskell_in_education


I saw some students working on Haskel homework sets in the Dartmouth computer labs last spring.


It's still silly to hire a "Blub Programmer", regardless of whether Blub is Haskell or Java.


What if its for a blub job, say, maintaining 20-year-old billing systems? There's no value proposition in doing a rewrite, and the Haskell guy would get bored silly, while the blub guy would be content, and plug away, doing solid work for years. He makes a career out of it. And he was cheap. Everyone wins. It happens all the time. It's perfectly reasonable to hire a blub programmer. Whether it's reasonable to be a blub programmer is a different story. :)


If someone is going to work for you for years then it's still silly to hire based on knowledge of a particular programming language. In your example I would focus my recruiting efforts on more fundamental skills and experience such as accounting, maintenance, troubleshooting, configuration management, and OO analysis. If I found a candidate with those abilities but no Java experience I would be happy to train her on Java (or whatever).


The value proposition wasn't in simply hiring a "Blub Programmer," it was in identifying individuals more likely to be intrinsically motivated to improve their mastery of programming.

The majority of Java hackers picked it up (directly or indirectly) due to its market presence. Myself included.

The majority of Haskell, Clojure, and Blub++ programmers are hacking away out of personal interest.

Edit: On review, cesqui pointed out downthread that pg already covered this premise in http://www.paulgraham.com/pypar.html


So should the Python Paradox be renamed?


That, I am sorry, is an inefficient filter. I used at one point believe anyone who didn't know C++ wasn't a good programmer until I met a few people who wrote applications in languages like VB and they were as good as C++ developer would have done.

There are other ways to filter out résumés. Within 10 minutes into a phone interview you can eliminate quite a lot of applicants and I for now just stop the interview at that point. Once someone makes it through the phone interview you are pretty much left with a good bunch of résumé to pick from for the next round.


The purpose of a hiring filter is to reduce the false positives. Your discovery of false negatives doesn't say much about the filter quality in this respect.

If you could take random samples from the group of people who would apply to Haskell jobs and from people who would apply to Java jobs and come up with a measure of motivation/willingness-to-learn, I believe there would be some statistically significant things to say. Samples from two mainstream (and in my opinion, trashy) languages like C++ and VB might be harder to differentiate.

As a side note, I've noticed that companies that can afford a large amount of false negatives tend to have horrible interviewing practices. Google is in the top two of the worst interviewing experiences I've ever had. When everybody salivates over your company, you can afford use a quick and dirty filter that hones in on any one arbitrary characteristic. As a matter of fact, one could possibly argue that these lazy filters do better than more accurate filters in the same way that Google argues that more data is better than superior AI. It's stupid for people to look to companies like these for exemplary models of interviewing.


The problem with Google is their filter also removes the most of the really high end people. I expect there are far fewer people at standard keeping a 4.0 and doing interesting work in their own time than there are people keeping a 3.5 at the same school and building cool things. Add in a insanely long interview process and poor salary's and many people they accept already have other jobs that they like.

You can also see this in what they develop. They are good at incrementally improving something like web mail, or online maps, but you don't see them pushing into new areas.


Google can afford a lot of false negatives, but it can't afford false positives. And from what I've seen, the interview process does a fairly good job of screening them out. Maybe it's just my team, but I don't see a whole lot of deadwood around.

FWIW, they hired me and I have nowhere near a 4.0 (it actually was a 3.0 + interesting projects).

And most successful products are just incremental improvements on what's out there. You really don't want to be a true innovator: who uses an Altair, or WWW (the browser, not the web), or AltaVista, or CP/M, or Visicalc, or Betamax, or a Xerox Alto, or Xanadu? But if you put enough innovations together, you get something really kickass like GMail. Going after established markets is just prudent business sense, it doesn't mean they aren't innovating.

(And there are some pretty crazy off-the-wall experiments that go on inside Google to, it's just that nobody can talk to you about the ones that haven't launched, and it's a good bet that 99.99% of the crazy stuff never will launch because it's basically useless.)


Depends on whether you're arguing that they don't push into new areas, or that they only do it by purchasing other companies, but I do see them pushing into new areas:

Google is pushing/has pushed out from their original search into ad sales, online video, webmail, domain hosting, online document and spreadsheet programs, desktop searching programs, browser development, health information, web analytics, a mobile phone operating system, iPhone software, location and tracking systems, a code repository, voice recognition, statistical language translation, price comparisons, online payment systems, photo editing and hosting, sketchup, feed reading, mapping, satellite imagine, astronomical imaging, local free wifi, Google Earth, chat and video chat, blog engine, app engine, book ripping... that's not all, either: http://en.wikipedia.org/wiki/List_of_Google_products

I don't expect them to come out with a new kind of paint or an electric car, but they do a lot with information.


Python Paradox. You whippersnappers need to read Paul Graham's best stuff!




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

Search: