Thursday, February 23, 2012

I’m a 5.8 out of 6 programmer

If you go to How to recongnise a good programmer, you will see one man’s idea of how to spot a good programmer.  When looking around the web, I stumbled upon this conversation about it.  The last post tried to adapt this to diesel mechanics.  I’ve added my comments in red to the post, since I think the poster does not have a clue what a programmer does.  Maybe I can enlighten him a bit. (I’ve also colored his adaptation in blue.
Let's see how it applies to my business model.
I have a fleet of eighteen wheelers and I need to hire a bunch of mechanics to service Volvo, Kenworth and Mack trucks.

Wow, to compare mechanics to programmers in the first place ... this guy hasn't a clue what a programmer does.  But, just to play along lets see how this works out
The article gives me two possible hiring scenarios which I've adapted to my business.
Positive indicators:
Passionate about technology
Heard about the latest F1 regenerative energy systems.
No, how about more like "Really likes to work on Trucks"?
 
Programs as a hobby
Tinkers with his own dirt bike.
<Sigh> I can see he just does not get it.  More like: Loves to work on Trucks so will do it on his/her own time. 
Will talk your ear off on a technical subject if encouraged
NASCAR galore.
 If you think NASCAR is a technical subject in you field then you will quickly be out of business.
  
Significant (and often numerous) personal side-projects over the years
Remember his Radio-Flyer cart !Amazing how poorly you build your straw man!  If I applied this to mechanics, I would say "Has always had grease under his fingernails." or maybe "Has rebuilt many different Trucks starting in High school"
  
Learns new technologies on his/her own
Reads "Popular Mechanics" magazine. WTF! You really believe you can learn new technologies in "Popular Mechanics"?  There is no way you can run a successful company ... Ok, I'll continue to play along.  If I applied this to Truck mechanics, I would say "Keeps himself trained on the latest engine designs.  Learns about all popular engine modifications."
Opinionated about which technologies are better for various usages
He's keen on Brembo brakes.
OK, I'll assume you know the difference between technologies and products, right?  This is where some of your analogy starts to break down. When was there a major new development in internal combustion engine design?  Basic diesel technology is how old?
Very uncomfortable about the idea of working with a technology he doesn't believe to be “right”
Hates the old carburetor thing.
So you think that a great diesel mechanic would love to get a job with you working on your "Water and Chicken poop powered" Trucks?
 
Clearly smart, can have great conversations on a variety of topics
iTune, iPhone, Roberta Black, Iraq etc.
Another place that this analogy breaks down.  <Sigh> I'll just keep quiet on this one.
 
Started programming long before university/work
As a teenager repaired the toaster and changed the kitchen faucet.More like, knew what a torque wrench was before he started his first mechanics class.  
Has some hidden “icebergs”, large personal projects under the CV radar
Wants to tinker with a jet ski watercraft. Close, more like, knows how to alter a jet ski engine to get a 50% power boost without damaging the engine.
 
Knowledge of a large variety of unrelated technologies (may not be on CV)
Knows the difference between a CD, a regular DVD and a blue-ray DVD.If you are not being deliberately stupid, then <sigh> I’ll just keep quiet.
Negative indicators:
Programming is a day job
Does truck service & repairs for a living.
More like "Never turns a wrench unless he is paid to, and even then he bitched about it.  Why does he do it - its a paycheck."
  
Don’t really want to “talk shop”, even when encouraged to
Prefers to check the service manuals and do the job at hand.
Here you have is completely backward.  This is a prime example of "Learns new technologies on his/her own" above.  Instead, the correct example would be, "Never wants to learn the tips and tricks of other experts, but would rather scratch his ass and complain about the pay"
 
Learns new technologies in company-sponsored courses
If I am going to send him to a GM training course he will gladly obliged.
Nope, more like "Hey Bob, we are going to expand and start working on FIAT's.  The Community College is offering night courses." and Bob replies, "Screw you boss, if you want me to go, it's during work hours, your paying and I'm not going to make up the time."
 
Happy to work with whatever technology you’ve picked, “all technologies are good”
If we decide to buy GM trucks he will gladly work on them
GM trucks? No more like now your going to work on HVAC systems and by-god they had better be as good at is as they were at diesels. 
Doesn’t seem too smart
He does not seem interested in iTune, iPhone, Roberta Black, Iraq etc.
Another place that this analogy breaks down.  <Sigh> I'll just keep quiet on this one.
  
Started programming at university
Learned how trucks are built, how to service them and had hands on practical experience under the supervision of master mechanics in an accredited school with his major in Volvo engine and control module diagnostic and repair and minor in Kenworth engine and transmission repair and has a "specialist" certification.
Another place that this analogy breaks down, but I'll give it a try.  First time the future mechanic ever heard of a ratchet wrench when he got the list of required tools for his new degree. If we were to equate a CS degree to a tech degree and certification, it the tech degree and certification would guarantee that the student has shown that he knows exactly what each tool is, how it is used and if necessary, how to make one from scratch. 
All programming experience is on the CV
Left out his alma-mater racing club where he is the chief mechanic.
<sigh>
 
Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it
He is focused on Volvo and Kenworth and has really no experience with Tatra, Zim, Hino, FIAT and other trucks.
Almost right, if the other types of trucks used different types of engines built with different materials and you needed a completely different set of tools that the mechanic would have no idea how to use.
I don't know why, but I would hire the guy/gal with the negative indicators. Lucian
Well, Lucian, what your saying is that you would rather have a person that only learned what a wrench is after he started school, only does the work because he is getting a paycheck, doesn't even like talking about what he does, refuses to learn anything unless he is paid to do it and thinks that he is equally skilled at working on HVAC as he is on a diesel engine because "All technologies are good"?
Wow, I give your company 6 to 8 weeks before either the "mechanics" you hire starts your building on fire, or you are sued out of business because a "mechanic" put Mack parts on a Kenworth. (remember, all technology is good, right?)
This is why comparing a mechanic (a job where there is always only one way that things go together) and a programmer (a job where there are literally a million ways to do things.  Most of them the wrong way, but quite a few almost correct if not equally correct.)
When every Trucking company builds there own engines, changes the type of engine every couple of years, fixing the engine can be done 1000 different ways, and require the mechanics to use a whole different set of tools for each new type, then we can START to compare diesel truck mechanics to programmers.