The proof is in the code. That is all.
codeanthem.com
codeanthem.com
Missing the second obvious point that if you hire an asshole you end up having to (try to) manage an asshole. Assholes, almost per definition, don't take orders well and at the end of the day it doesn't matter how awesome a programmer he is if he isn't programming on what you need him to program on.
Notice the Author (Amber) is the same as the submitter (Amber)?
This article is a total over-simplification and the reality is much more complex... unfortunately it takes a lot longer to write an actual, well thought out & balanced article on hiring.
What's worse: it will get fewer hits (and by that extension, a lower ad revenue).
Something perhaps about finding the sweet spot on the bell curve between a number of factors? TLDR.
No, a far better solution is to word-vomit tripe onto your keyboard and post without thinking.
Which seems to be exactly what Amber has done.
THAT my dear friends, is all.
That's kind of a cheap point to make. There's absolutely nothing wrong with an author submitting their own blog post to the site to get feedback.
Or set up a series of shill accounts to... oh nevermind. Self submitting is probably better.
Hiring criteria for startup programmers:
1) can you work with others
...or are you the comic book expert from the Simpsons
2) can you ship
...can you be happy with a duct-tape solution, even if it's not perfect
3) do you care about customers
...everyone in a startup needs to be hyper-aware of customers and obsessed with getting more. the last thing a startup needs is a "tell me what needs to be built" programmer.
What I find is that a lot of people say they want all that, and then when they can't find it, or can't find it for the amount of money they want to pay, coding requirements is one of the first thing that gets lowered, instead of the other areas.
I'd rather have someone who fits the culture really well and who is a good enough coder that we can use them now and build on their strengths.
tl;dr: the author oversimplified reality to come to her conclusion.
>> In reality, both dimensions are orthogonal, and vary in a continuum. Hence, you'll find super-coder assholes, nice incompetent people, and everything in between.
That is definitely true, but you don't get a uniform statistical sample responding to job postings.The super-coders who work well with people don't come on the market as often.
>> the author oversimplified reality to come to her conclusion.
The author's conclusion is that you should ignore one axis (I don't agree).That said it is interesting because I gather the people who voted up this article may very well be the folks mentioned therein who'd benefit from people taking his advice :)
Outside of management, mentoring, morale, and architecting (which are important), someone's individual contribution is usually an upper-bound on their effect on team productivity. For some individuals, this is very far from a tight upper bound. Drama llamas, prima donas, and assholes create dysfunctional teams, and poor communication will in general increase the amount of work that needs to be done due to people working with incomplete information and needing to re-write things more often. Argumentative perfectionists will get caught up in arguing the design goals, and changing requirements will result in a lot of lost work for the whole team. Egotistical programmers are more prone to large re-writes of other people's code rather than small additions, which dumps a large portion of their contribution into changing style with little or no functional gain.
There are plenty of ways where someone with a large individual contribution may have a small, or negative, increase to your team's productivity. This doesn't mean you should hire the nice guy who can't code, though. Hiring decisions are possibly the most important decision you can make. Take your time to find the right person.
Nobody becomes a great programmer overnight. The key is to find the people who will grow into the position and then help others do the same.
I think the same things that keep someone from improving their skills are the same thing that make them a mediocre programmer in the first place. There is a difference between working hard at your job, and working hard to hone your craft.
The whole article reads like a troll. Though perhaps we're using different definitions of 'mediocre programmer'. Is a mediocre programmer one who is mostly self taught, hasn't coded a lot of personal things, and only knows one or two languages at a reasonable depth to get things done? Or is it one who struggles with FizzBuzz? Bah, I'm taking too much time with this. If the proof is in the code, show us some examples of code from sizable open source projects that succeeded and code that didn't! I'd bet the quality is roughly the same.
Which OS are you talking about? Windows? MS-DOS and Windows had some of the best programmers of the time working on them. Bill Gates himself is renowned for his programming skills. Microsoft interviews practically set the standard for uber-difficult interviews that filter out all but the best programmers.
Linux? What, because Linus Torvalds (who wrote the kernel) and Richard M Stallman (who wrote emacs) aren't good enough for you?
Mac OS X? Ok, that one, I don't know the names of any stellar programmers on there, but somehow I doubt that's the one you were referring to (and the fact that they keep quiet doesn't mean there aren't some awesome hackers working on OS X).
His social skills are fine, but his patients are not. That's what I learned.
The proof is not in the code. The proof lies in the question:
"How happy is the client (post-project)?"