Hacker News new | ask | show | jobs
by zaarn 3018 days ago
I view programming similar to carpentry or metalwork. You can't really sit down and learn metalwork in 24 hours.

24 hours is not even how long I had to file a metal block until I was deemed ready to use heavy machinery during secondary school. I filed it for 3 weeks, 5 days a week, 9 to 5.

21 days is not enough to master metalwork, even though I was allowed to use heavy machinery, I borked up more than one piece until I eventually got it right at the end of the school year (which was about 6 months of metalwork).

And I think I am still way of from mastering it, not that I want to.

Programming is, IMO very similar. Sure, you can get a hammer and start hammering on a metal sheet and that'll probably produce something in the right shape. But learning to program, mastering it, takes time, 10 years is IMO a good estimate. I've been at it for 8 years now and I still got very much to learn.

Of course people can become good with a programming language, just like you can get good at filing a metal block in 3 weeks. But it doesn't mean you've mastered all the tools yet.

1 comments

Perhaps we should stop trying to claim we do science or engineering and call it a craft

[0]: https://en.wikipedia.org/wiki/Software_craftsmanship

[1]: http://manifesto.softwarecraftsmanship.org

Well, there are definitely distinctions to be made, as in electrical and electronics work — I'm drawing crude lines here —

An Electrician may be a master of his craft, but yet not an Electrical Engineer, who may be a masterful engineer but yet not possessing as deep an understanding as a Physicist, and so on.

That said, the scale tips both ways. A physicist may know why and how an electron behaves a certain way within a material making up a resistor, but not have the practical know-how to use that in an effective way as an engineer might. An engineer might be able to hack together a prototype, but lack the refined master skill and discipline of an electrician to employ the designs and put it into a real world context on a regular basis. It goes without saying that you'll much more rarely see a physicist out in the field laying cable for power distribution in a new train station, etc. There's an old aphorism that leans into this a bit: "the wise things confound the simple, and the simple things confound the wise". I'm abusing that a bit, but still kind of works.

I'm making a gross guess here, but maybe it's that science and engineering, in modern times, hold more of a lofty position and boast greater intellectual capacity traditionally, that so many would not want to be 'reduced' to a craftsman. We might do better to consider them just different aspects of the same whole.

It's probably not too wrong.

Software development unites a lot of things from science, engineering and craftsmanship. I guess we should stop trying to cram it into preexisting categories and take the best parts of each subcategory.

If more programmers would apply scientific method to their craft they’d engineer much better software.