3 ms·
A, B and C are never really defined in these discussions, so I'm going to use my perspective: C programmers can't do FizzBuzz[0]. B programmers can, and LOVE
by nirvana 15y ago
A, B and C are never really defined in these discussions, so I'm going to use my perspective:
C programmers can't do FizzBuzz[0]. B programmers can, and LOVE PUZZLES. A developers are the ones whose idea of a "puzzle" is solving the fundamental business problem via software. B programmers think that super elegant engineering is great, and don't care about business so much.
These B players are also the ones who often will torpedo a candidate by asking them trick questions (trick programming questions, irrelevant or obscure interview questions, etc.)[1] These questions are great for making the B player feel superior. Puzzles are a good way of doing this. This way if the candidate is hired, the B player's ego is mollified by knowing he was able to trick the candidate during the interview, and if the B player decides the candidate isn't deferential, he can claim he doesn't have the engineering chops for the job.
I sometimes wonder how many of these complaints about people "not being able to do FizzBuzz" are from these B players. (I've never used FizzBuzz as an interview question, I don't ask programming questions, but I've never managed to hire someone who couldn't do FizzBuzz for a programming role.)
At any rate, one of the things that makes interviewing at a given place a total roll of the dice is when you see evidence that they don't know what they're doing. An HR person trying to screen you who doesn't know the difference between java and javascript, for instance.
But another signal to me, is these puzzles. These puzzles scream to me "This company is run by B players!"
For instance, this is how I knew Google was not a company I wanted to interview with (even though they pursued me relentlessly for about 6 months, and still pester me periodically)... before I had the inside info that confirmed what the puzzles indicate.
I also don't believe in the "A people hire A people and B people hire C people" mantra, because I worked at Amazon (A C organization if there ever was one) and Bezos liked to say this (a D manager, in my book... but obviously he thought he was an A.)
I'm sure to some people, I'm a B player, or a C player (certainly the puzzle fanatics might think that) but I have seen a lot of companies get lost spending all their time working on clever engineering and not solving business problems. I like engineering problems and solving them, but the business problems are the really interesting ones-- its amazing what software can do to solve these problems, and often, non-engineering management has no way to know, which is why specs often don't work because thy ask for only what they think is possible.
So, I'm not being a snob here. I'm just saying- I use these puzzles as a filter. I wouldn't apply to such a company (if I was still working for others.)
[0] Theoretically, anyway. I'm a bit dubious about this claim-- all the programmers that I've seen who were a bad fit and "couldn't' do the work" were actually good programmers, just dealing with bad management. I have met a lot of non-programmers who think they are programmers and who only can do things that fit their pre-determined ways, e.g.: They're trained in a set of foundation classes and can't solve problems without using those classes (which have already solved things like sort, etc.) I assume these are the people we hear about when someone says "can't program fizz buzz".
[1] For example, once I was interviewing for an internet infrastructure job and got quizzed on Win32 API details (like "what are the parameters for this obscure graphics call?" "I don't know, haven't looked at it in years." "It says here on your resume that you know Win32!". Similar example- interviewing for a Mac development position in the PowerPC era, mentioned I'd done assembly in Z80 back in the day and had a little familiarity with 8086 assembly-- getting questions about the Pentium instruction set. I could answer broad questions, because I had a high level exposure, but I only claimed to study 8086 back in the day, not be writing assembly currently, and it was for a Mac development job, and he wasn't even talking about the PowerPC.
- scg 15y ago> Bezos [...] a D manager, in my book... but obviously he thought he was an A. Can you expand on this? Bezos seems to be doing a spectacular job at Amazon.
- getsat 15y agoYegge's now-famous rant paints a really different picture. https://plus.google.com/112678702228711889851/posts/eVeouesvaVX https://plus.google.com/112678702228711889851/posts/eVeouesv...
- RandallBrown 15y agoI'm curious why you think Amazon is a C organization. They make fantastic products. Their main store, AWS, and the kindle are all pretty great and well ahead of their competition. I've heard bad things about working for them, but as a consumer, I love Amazon.
- nirvana 15y agoI'm talking about the quality of the products and the management. The Store does great because they have good customer service-- I don't fault them there-- but it is still chicken wire and duck tape from an engineering viewpoint. AWS has gotten a lot of hype, as has the kindle, but I don't think either of them are ahead of their competition. My point though, was internally. Amazon is full of B and C players who think they are A players, and that goes all the way to the top. (There are some A players there too, of course, but they often leave within a year or two.)
- sray 15y ago>A developers are the ones whose idea of a "puzzle" is solving the fundamental business problem via software. B programmers think that super elegant engineering is great, and don't care about business so much. I couldn't agree with this more, although I would say "B programmers love to solve every problem. A programmers love to solve the problems that matter." I have worked with many people, some quite brilliant, that simply can't prioritize issues. If they perceive something as broken or sub-optimal, they absolutely must fix it, no matter how minor the problem. If you can reign them in and keep them focused, this type of programmer can produce great things. But it takes a lot of management time and energy. I'd rather work with someone who can see the larger picture and focus on solving the actual problem, even if the implementation isn't 100% perfect.