Live data from Hacker News

If Carpenters Were Hired Like Programmers

dawood.in

41–50 of 164 posts

Re: If Carpenters Were Hired Like Programmers

#41

I really enjoyed the post. I reminded me a lot of this Youtube video( http://youtu.be/BKorP55Aqvg ). I understand this is a comical post but as the son of a carpenter and understanding the profession decently well I would say these are none of the questions that would be asked of a carpenter. There are however many important questions a person would need to answer to be hired as a carpenter or more likely be able to…

> I really enjoyed the post. I reminded me a lot of this Youtube video(http://youtu.be/BKorP55Aqvg).

Jesus, that's painfully real.

Re: If Carpenters Were Hired Like Programmers

#42
post #28

Earlier quoted context omitted.

A: "Dude, have you seen this Nail-o-Matic 2000 nailgun?" B: "No. It looks totally awesome, it's so shiny and chrome..." A: "Yeah, it's the latest thing, I picked it up last night. Let's see how it does on this roof..." A puts a shingle down and shoots a nail in. The nail rips through the shingle, blasts a 2-inch diameter hole in the roof and embeds itself firmly into the floor of the second story. B: "Whoa, that's AW…

A. You know? What we really should do is get that new Blast-O-Matic bulldozer I have parked outside and tear all this crap down and start over! I saw a video on YouTube last night that said if we built houses using silly putty that they were impermeable to weather! B. That's a great idea. Does it work with the Nail-o-Matic? A. I don't see why not. They are both made of atoms. C. Hang on guys. That's not going to work…

So do I understand correctly that in this metaphor the poor quality of software is mostly because the practitioners are morons? I need to revisit the creeping complexity in my own projects and try to understand where I used the wrong nailgun, because this seems like a super productive analogy.

Re: If Carpenters Were Hired Like Programmers

#43
...and architects sometimes have to go to great lengths before they are allowed to work on your castle:

http://www.fotolibra.com/gallery/698061/hiorne-tower-nr-arun...

...and for sci fi fans who think the Tower looks familiar:

http://www.doctorwholocations.net/locations/arundelparktower

Re: If Carpenters Were Hired Like Programmers

#44
This is so true. I see a lot of job ads that seem to require very specific experience, but where anyone in that field could do the job.

If you just make up eg 4 different types of technology, and put a few things in each bracket:

[SVN, Git, Mercurial, CVS] [MySQL, PostgreSQL, Oracle, MSSQL] [AMQP, MQTT, STOMP, RabbitMQ] [Java, C#, C++, ObjC]

Now if someone came along and said they'd solved a domain problem (eg trading systems) with one of each of those, I would more or less believe they could do it with any of the others, with a bit of time to get used to things (particularly c++).

But if you don't believe that, ie if you decide the person must have a specific combination, then you've just shattered the potential pool of applicants into 256 little pieces.

The other thing that annoys me is the pettiness of the interview questions. So many things that you could easily google can be used to stump anyone. What's the default implementation of GetHash() in c#? I actually got asked this once.

Then there's the other way to do things, which is to do an online coding assessment. I guess this gets rid of the FizzBuzz failures, but it tends to be a problem that's too small to see if you're about to dig a hole.

Re: If Carpenters Were Hired Like Programmers

#45

Earlier quoted context omitted.

I'd rather hire a programmer that knew many languages than one who only knew one language really well though. Once you've learned a few frameworks and languages, you get much better at picking up new ones quickly because you've seen the same concepts somewhere else already.

I've always gone for the ones who really knew one language inside and out. The reason is actually very simple, they have demonstrated exceptional skill to dive deep into one language, so they should be able to do the same in another language. The jack-of-all-trades people usually are much riskier hires as they don't always understand how deep they can go in any particular language, thus are unable to fully assess wha…

So my reasoning is that if you know some Java you can pick up C# easily, if you know some JavaScript you can pick up Python easily etc. If you've stuck to a single language, it's going to take you much longer as you're having to learn new concepts and it's also rare I work on projects where only a single language is being used. Everyone should aim to learn enough languages that they have at least some experience of OOP, functional programming, dynamic types, strong types and SQL in my opinion.

Re: If Carpenters Were Hired Like Programmers

#47

Earlier quoted context omitted.

A. You know? What we really should do is get that new Blast-O-Matic bulldozer I have parked outside and tear all this crap down and start over! I saw a video on YouTube last night that said if we built houses using silly putty that they were impermeable to weather! B. That's a great idea. Does it work with the Nail-o-Matic? A. I don't see why not. They are both made of atoms. C. Hang on guys. That's not going to work…

So do I understand correctly that in this metaphor the poor quality of software is mostly because the practitioners are morons? I need to revisit the creeping complexity in my own projects and try to understand where I used the wrong nailgun, because this seems like a super productive analogy.

The joke is that nowhere in this picture is the actual guy who is receiving value from the work, the guy who keeps saying in survey after survey that our work sucks -- the guy paying for the house. We distract ourselves by everything under the sun from the continuous conversation and relationship management with the value receiver necessary to make sure we're doing something that the guy writing the check likes.

Sometimes we're distracted in an angry way "Guys! We need to straighten up and do X!" Sometimes we distract ourselves just because of bright and shiny objects "Wow! Take a look at that!" Sometimes we quibble over seemingly insignificant items. Sometimes we take things that should be important and elevate them to the highest level possible.

But the overall pattern is clear. We want to do anything and everything -- except be joined at the hip into the value stream, which is exactly what our job is.

This was the hard lesson that startups taught me: lots of stuff can be neat, valuable, or worth consideration. But a true professional knows that whatever he is doing, he is doing for another human being - and so he seeks to befriend that person, have a trustworthy relationship, and look out after that person's best interests.

That's not nearly as much fun as flipping bits, and it deals with a lot of messy social and human things.

Re: If Carpenters Were Hired Like Programmers

#48

This actually will happen if you speak with an HR rep for insurance predictive modelling: -So do you have experience with SAS? -Yes, but mostly I model in R. They are sister languages. -So how much SAS, how much R? -Mostly R as it is widely held to be a superior language -But SAS you can do more with! -Ahh, if Big-Famous-Tech-Company-X wanted to do stat modelling they use R, not SAS. Again, anyone who does statistica…

If they want SAS that is their choice. It's like asking a carpenter to built a cupboard and he answers: "I'd rather build a shelf, it will hold your dishes just as well."

No, it's more like asking a carpenter to build a cupboard, but when he brings a hammer to the worksite you ask him to use a rubber mallet instead. Sure, one could drive nails with a rubber mallet—but who'd want to?

Likewise, who would want to use an inferior language or library when superior ones exist?

Re: If Carpenters Were Hired Like Programmers

#50

Accurate, but missed the part where the carpenter is asked to build a cabinet by drawing it on the whiteboard.

Yeah exactly, was once given pencil and paper and asked to write some code. That was early on in my career, so even though i knew it was ridiculous, i didnt have enough confidence to tell them they're being idiots. At this point in my career however, i'm far more jaded about stupid interview techniques like that and will refuse to do them unless provided with a computer.

Why wouldn't you just do it? I can understand if they're nit-picking syntax but I personally ask people to write out algorithms/code on the board all the time in interviews. I don't care about the code, I want to see them think through a problem. They can use any for syntax they want, even mix and match things like brackets and indentation or how control structures are defined (for i = 1 to 10 { .. } ), or use a function outside of the current abstraction level without writing it as long as they say what they're doing.

If you can't write out an algorithm or some classes that work together without a compiler/interpreter, then you're just guess and checking as you work and not thinking through what you do ahead of time. I can't program without google, but I can write out my implementation just fine -- that's what people are interested in.

I don't really get how I'm being an idiot wanting to explore how someone solves a problem in the medium they work (code) -- I'm not a human compiler so I obviously don't care if their program compiles or is even in a real language, as long as it gets across what they are trying to do and how they would do it.

Also -- you'll need to deal with stupid people forever, the way your comment is worded it sounds like you think you're smarter and better than everyone else and are "above this silliness". When interviewing I'm jaded about people who can't interact with people who they view as "below them" -- you'd hopefully not even make it in the door for an interview if you can't politely answer a question you think is dumb. Like 90% of interactions for software developers outside of their dept are answering dumb questions...

I may need to add dumb questions to my interviews to catch this...

Edit: Also -- can you explain the code you've written/your implementation? How do you include me in your problem solving? What type of questions do you or don't you ask while doing it? Where do you start/how do you start? If the HR person is there, can you explain what you're doing to them? How do you take suggestions? How do you break down your objects (this gives soooo much information about background, I can tell a lot about a developer based on how they name their classes, like people who have worked with only activerecord style classes). I can follow up with a refactoring change (substitute this for that in this situation, decide based on a configuration file - does this require a significant redesign?)

I mean come on... it gives so much information about how someone works, I think its dumber not to ask some type of question with writing "code" - it just gives so much information about a candidate that would be hard to get one question at a time. This one question can infinitely expand and lets them interact about something they know/are comfortable with (the solution to their problem).

Don't be silly.

Post reply on HN