OK, ok, I admit. I'm only a slightly above-average programmer. I love writing code, and…
Based on what I read in Steve Yegge’s latest article ("Get that job at Google") I came to the conclusion that I would never hire Steve. Here’s why:
I’m quite sure that less than 10% of all software developers in this world are able to understand big-O complexity, n*log(n) sorting algorithms, hashtable implementations, graph theory, n-ary trees, NP-completeness, mutexes and semaphores. But Steve states that (for him) this is all basic knowledge, and that his requirements for candidates are not much different from those of any other software company. Now, if this was really true then 90% of the software developers in this world would not be able to find themselves a new job at this time, if they needed to. As this is definately not the case — millions of them are changing jobs every year, despite all their shortcomings — Steve’s statement is evidently false. I know companies that hire demented trolls only because they look a lot like software developers, and they know which side of the computer they need to bang with their club. (And in my own interviews, I prefer socially-aware software engineers with common sense over uebergeeks from outer space. But that’s another story.) Therefore… 1 point off for tunnel vision, distorted sense of reality and false reasoning. I can’t abide know-it-alls.
In my opinion, building software is about delivering value to customers and making users happy. — Oh, and it would be nice if you enjoyed doing that, but it’s no requirement. — Software engineering is so much more than just knowing your "basic" algorithms and data structures. It not only entails Construction, but also Requirements, Design, Testing, Maintenance, Configuration Management, Project Management, Process Management, Tools, Methods and Quality. According to SWEBOK, the knowledge area of Construction — for many of us, including me, the most enjoyable part — accounts for only 1/10th of the body of knowledge for a software engineer. Many of us need that part to enjoy ourselves. However, we need the other 9/10th to make our customers and users happy. Therefore… 1 point off for forgetting whom you’re building for.
I hate it when people talk to long. The KISS principle is just as valid for blog posts as it is for code. If Steve’s blog writing is any measure of the volume of code he writes, then I understand why Google is so busy building these super server farms here in my country. — Therefore… 1 point off for not knowing when to stop.
Anyone who misspells the name of one of the greatest thinkers in the history of our Software Engineering discipline must be turned down immediately. No matter how many sorting algorithms he knows by heart. Now, I wouldn’t mind if people accidentally referred to Stevey Yiggo. That would be understandable. But come on, misspelling Edsger W. Dijkstra is quite something else! — Therefore… not 1 but 2 points off. Because Dijkstra was Dutch, just like me.
That’s five points in the negative, mr. Yegge. Thank you for coming, that will be it. Don’t call us, we’ll call you. Please leave the markers on the table. Thank you.