Hacker News new | ask | show | jobs
by Syzygies 1332 days ago
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.

2 comments

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.