Hacker News new | ask | show | jobs
by gonzo41 1332 days ago
Carpentry is the better analogy for programming. There's a spectrum for the work software engineers do. neurosurgery and concert violin are pretty tight on what the end goal is and you don't usually do a decent job from day one without a lot of supervision.

Whereas smacking a few bits of wood together (framing) gets you in the door as a carpenter. But there's a whole bunch more to learn if you're going to do fine woodworking. However, you can be productive from day one if you're willing to learn. That's the same as being a developer these days.

People will pay for low end skills because they are still a skill. You have a comp engineering degree. What are you working on in your job? Does the education fit the work, or on reflection do you have a little too much qualification for the work you're doing?

1 comments

Carpentry is a great analogy. Half of all woodworkers have no concept of the properties of wood grain; they'll mix up edge and end grains on decorative cutting boards.

I wish I understood the "grain" in programming better. It's a lifelong search.

Programming is harder than carpentry, because the “surface area” is much larger, and also because you need a much greater ability to abstract and to understand abstractions. It would be a bit different if the programming ecosystem (tools, APIs, languages, services, etc.) was stable. Then you could train people to perform useful standard tasks, that they could then do for at least a decade or two. Just like how you build a simple table, bookshelf or cupboard doesn’t change every two years. But look at how much more complex and in constant flux the world of software development is.
Hmmm, I know I'm playing to the wrong crowd here but I am a horrendous carpenter. Here's what is missing for me from carpentry:

- copy/paste. You made one perfect table leg? Great, now make another 3. From scratch

- undo. Cut that plank a bit short? Start again

- incremental changes. Want to change the angle of that join? Start again

- imports. Don't want to make those fancy doohickies that go along the edge? You could try to buy some but it's not like there's an international database where you can pick and choose often for free

- debugging. Oh, your wardrobe just fell in a heap when you installed it? Hopefully you can salvage some of the materials and then figure out what went wrong

I'm not a very good programmer either, so I'm sure there's more

Let’s put it this way: If carpentry earned the same money as programming, we probably would have more carpenters than programmers.
You could probably say that about any occupation imaginable though, right?
It wouldn’t be the case for occupations that are either unattractive in terms of the actual work (coal miner, sewage worker, fisherman, undertaker) or have high barrier to entry in terms of qualifications (neurosurgeon, PhD-level scientist, lawyer, professional sports).

Carpentry is reasonably attractive in terms of actual work, so that if it payed as well as software development, many people would want to take it up. My point is that a larger portion of the population would have the necessary ability (and, I assume, inclination) to become a competent carpenter than a competent software developer.

not to mention all your knowledge of wood won't be completely irrelevant in 5 years.
Used to be "irrelevant in a few months (er,weeks)" for JS, at least a while ago. [ducks to avoid projectiles]
I'd say programming Grain is just simplicity. It takes real work to find that simplicity.