Live data from Hacker News

If Carpenters Were Hired Like Programmers

dawood.in

51–60 of 164 posts

Re: If Carpenters Were Hired Like Programmers

#51
post #30

A clear difference between a carpenter and a programmer is the liability inherent in the work. A carpenter can't just produce a minimum viable product that just happens to break down as soon as a bird land on it, or leaks water as if it was constructed like a sieve. Hiring a carpenter is a comparable safe thing to do, as the worst thing a lawful carpenter can do is overcharge his clients/employer. A programmer on oth…

Your logic makes sense, but it seems like every high school I've ever been in or heard about that had just recently been built leaked rain like a sieve.

That's because of flawed design usually. Architects cook up these lovely stylish renderings that the school boards find inspiring (particularly since it isn't their cash), which often involve flat or complex roofs.

Fast forward to the post-construction era, and that inspiring building now has 10 inches of water or ice on the roof. Water being water, it eventually gets in, usually around flashing.

Re: If Carpenters Were Hired Like Programmers

#52

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…

Do you REALLY care if someone knows how to make the PHP interpreter segfault? How to create garbage collection cycles in the JS interpretter? etc.

What does knowing a language inside and out really gain? "Oh yeah, Java totally does covariance in generics by default, but not contravariance" Is this really useful knowledge?

Re: If Carpenters Were Hired Like Programmers

#53

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…

I don't agree with that. If you understand the mathematics and computational foundations, then you already have the depth of programming languages in an abstract form. You might choose to pick up new languages because you want to learn how others elegantly can solve the same problem on a different level of the machine.

Then you can apply similar techniques in whatever language paradigm you have to work in, while also understanding the pros and cons of such a thing (are you just mimicking the paradigm or on what gradient is the implementation correct? What can you assume now from tweaking the language?)

A programming language is not really a separate thing from the machine. It's useful to think about them in this way because it makes the knowledge simple and easier to make fast assumptions given some 'correct usage' of the language with regard to the specification and design of it.

It's just different stuff that each programmer has to pick up as they go. Everyone who is building anything has to do some thinking while they are building and do some remembering while they are building.

I find when you reduce all technology to this level, it becomes very hard to determine what proficiency is. Every bit of knowledge and piece of experience is potentially valuable at the same level.

Re: If Carpenters Were Hired Like Programmers

#54

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 tradin…

What's the default implementation of GetHash() in c#?

I actually like this question (not that I've ever asked it before), because it teases out how well someone knows .net and C#.

The specific implementation of GetHashCode isn't what's interesting. It's whether you know that .net implements reference vs value equality by default, whether you know you really do need to override GetHashCode if you override Equals, testing if you know the fundamental requirements for objects you might use as keys in a Dictionary.

The specific number returned and its relationship with the identity of the object - that's not important, and is truly not something you could be expected to know. But you're ability to think things through, and know the environment - yes.

Re: If Carpenters Were Hired Like Programmers

#55
post #4
post #2

Stolen from http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa650...

The source is listed at the end of the joke so at least there was some attribution.

Anyone who provides a reference on a web page to another web page without making it a clickable link is doing the internet wrong.

Re: If Carpenters Were Hired Like Programmers

#56

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…

In my experience, although not very large, people who only know one language do so because they stick to things in their comfort level. they are also disadvantaged in environments where projects vary quite a deal. certain environments have different communities supporting them, making them better for certain tasks.

an example, a ASP/ASP.NET developer (only thing) of 10+ years couldn't do something over 6 months that I did in a week. That something involved web pages, polling data through a restful interface, projecting coordinates, tweeting, and a few other moving parts.

Re: If Carpenters Were Hired Like Programmers

#57

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

The point of whiteboarding isn't to "build" correct/functional code - it's to get an idea of your thought process and how you go about solving a problem.

It's not perfect (and there are both advantages and disadvantages to using a computer instead of a whiteboard) but when done correctly it gives a lot more useful insight than sitting there asking questions about their past the whole time.

Re: If Carpenters Were Hired Like Programmers

#58

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…

That's how I find myself conducting my own personal development. The deeper I dive into Ruby, the more I find myself able to hold my own in conversation with my friend the graybeard C++ guy whose been doing it longer than I've been alive. He'll describe something he's trying to do and I'll be able to immediately find an analogue in Ruby. I'll get a sense for how Ruby exists in the general evolution of programming languages and what it tries to solve. The experience makes me more aware of the problems that Ruby tries to solve so that I can use it better.

I see a lot of people who know three or four languages, but don't understand any of them really well or the underlying concepts. Or they'll focus over-heavily on the algorithmic side of the craft and neglect maintainability and readability. I see a lot of Ruby that looks like C.

When I finally do start branching out and learning new languages, it will be on a totally different level. I'll be diving into the entire ecosystem of the language and not just struggling at the surface.

But before that, I want to learn how Rails really works. I think I understand the difference between a library and an application, now I want to understand what a framework is and how one is built and maintained.

Re: If Carpenters Were Hired Like Programmers

#59

Earlier quoted context omitted.

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 func…

It's a contrived situation that involves significantly more nerves than any real life situation will. I've known more than a few programmers that were perfectly capable of doing their work, but struggled through interviews because they got nervous during the coding phase.

The reality of the situation is that contrived problems in stressful situations are going to result in a lot of false negatives. That may be fine for you since you may be avoiding some false positives, but that doesn't mean your particular method is "the only way."

Re: If Carpenters Were Hired Like Programmers

#60
post #54

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 tradin…

What's the default implementation of GetHash() in c#? I actually like this question (not that I've ever asked it before), because it teases out how well someone knows .net and C#. The specific implementation of GetHashCode isn't what's interesting. It's whether you know that .net implements reference vs value equality by default, whether you know you really do need to override GetHashCode if you override Equals, test…

Bull. It teases out if someone happens to know the GetHash() implementation in C#. Their knowledge of .NET and C# can, in no way, be determined by one stupid question about the implementation of a specific function in C#. Evidence of that fact is in your actual response: I could now answer that question, having never used .NET or C#.
Post reply on HN