Programmer distillation
rachelbythebay.com
rachelbythebay.com
a) How important is 'cultural fit'? Should Paypal have not hired an otherwise talented engineer because they called basketball 'hoops'? [1]
b) Hiring Generalists vs Specialists
c) How to evaluate candidates
As the questions get more nuanced, the answers can be far more compelling. For example, you might come away agreeing with this article but not realize you're subconsciously using the inaccurate heuristic Y to look for programmers. But if the answer to c) is that work sample tests are the best way to evaluate candidates [2], it's much harder to ignore.
[1] http://blakemasters.com/post/21437840885/peter-thiels-cs183-...
[2] http://news.ycombinator.com/item?id=4613543
edited for formatting
The headhunter business, especially in IT, is already a huge one. But it's really just in its infancy. In a better world there would be sites doing the matching, not unlike online dating.
I don't worry for you because I know there are several good fits for you and eventually you'll find one.
But still, it really sucks. At the same time it shows there's just so much yet to be done...
Perhaps we ought to guarantee a certain amount of money to everyone whether they be Warren Buffet or Joe Schmucks. Then, we'd get rid of the minimum wage.
I had a similar conversation with a coworker this morning. What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
We'd need to decouple work and wages
Well what incentive would people have to go to 11 years of college then to become a surgeon? What incentive would a start-up founder have to work 80 hour weeks for years on end if there was no chance to get rich off of it?
What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
The job which required the least amount of effort. The more difficult or time consuming the job, the less applicants there would be.
There are many of us out there who really like what we do and would do it even if we weren't paid, as long as we still had a source of income
Nor me. I'd be working on programming projects I'm interested in instead of the same lame CRUD apps for big companies.
There are two solutions to the question of culture: one at 30 000 feet and one at the microeconomic level. At the portfolio level yes, diversification is good. At the company level, however, focus tends to produce better results. Diesel won't burn in a petrol car.
The only thing that can be empirically agreed upon regarding effective company cultures is that having one matters (more than which one you have) - this is another way of saying having a set of correlated values. Ideally, an economy (or portfolio) would contain a diversity of cultural heterogeneity, ranging from prone-to-blind-spots monocultures to attention-deficit giants.
That said, it is good to continuously question the efficacy of measures at measuring the intended characteristics and what constitute that set of characteristics.
I really liked the refinery analogy, and think it will come in handy. Thanks for sharing your thoughts on it.
These are completely unrelated things.
Wishful thinking won't make every wannabe programmer able to create every product. For a real life example, google for the articles on people failing fizzbuzz-test when applying for programming jobs. The distillation is used to separate "non-programming sheep from programming goats".
Meanwhile, HN has these YC company job postings which can be completely ridiculous, and it's impossible to discuss them to call them out on their insanity.
If I write a post about something and it makes you think about a certain company, that may say more about your impression of that company than anything else. See also: http://rachelbythebay.com/w/2012/03/03/corp/
I guess my reading of your posts is tinted by my mental classification of you: "great ex-google writer and programmer who had too much common sense to keep working there".
Even at FB/GOOG/MSFT the specialists only really work well on established product lines, and not skunkworks type projects. The cost of communication overhead is simply to high for specialists to work well for most companies.
Also, you can usually rent a specialist for the few days you actually need them to tune up your DB server, etc.
Sometimes when I read job listings for "backend dev" or "frontend dev" I start to thi I am the only full stack guy out there. Thanks for helping me feel less alone.
Also, the more I think about it, the more I think that CI, build systems, and infrastructure are necessary and important facets of being a full stack programmer.
Emerging kernel features? Probably not so much :)
Sometimes you want a generalist. Sometimes a specialist. Sometimes you want adaptability, sometimes adaptation. Sometimes coverage, sometimes convergence. Sometimes generality, sometimes optimality.
As for analogies ... I prefer the pin factory, myself.
This is different when you are looking for someone to work on one task for a short while. But if you are looking for long term employees you should look for people who are good at adapting to new technologies and have good basic programming skills.
Horses for courses.
I'm bootstrapping and I can do a lot by myself: setting up Linux from scratch, installing & configuring the DB, the proxies, the webapp server, the firewall, write administration scripts, set up the SSH tunnels, do the coding, do the HTML+CSS... Full stack "generalist" way. (Heck, I can even build the server myself if needed).
But at the same time I'm definitely a "specialist" in some fields. For example I've been holding my SJCP (now Oracle) Java cert since the last century and I've been coding in Java since more than 10 years and I know some Java frameworks inside out.
Sure I'm not a DBA nor a Unix sysadmin specialist but I'm both a generalist in that I can still do it if needed and yet I'm a specialist in certain programming domains.
I mean: aren't all generalists still specialists in some particular domain?
Maybe too that HN is representative in that a lot of the entrepreneurs in IT will tend to be "full stack"?
As a side note, sometimes it sucks to be "full stack" because people ask you to do things you'd rather not do, because you're the one in the company (startup) knowing that area the best. It doesn't make you very good at it, but by knowing it more than the next guys, you get to do it.
As a second side note, when working for bigger structure, I've noticed that the DBA, for example, or the Unix sysadmin, do really like it when they realize they're talking with someone who understands what they're doing. Heck, I've helped Unix sysadmin troubleshoot Java webapp server issues because they weren't that familiar with Java ; )
Maybe it's not a dichotomy, and more of a spectrum.
Also, there's the idea of a "T-shaped person" who is broad in many areas and goes really deep in one. I would take A T-shaped person over an I shaped person, all things being equal.