4 ms·
I would describe programmers you have described as "tradesmen", similar to electricians, plumbers, pipe fitters, etc. I see nothing condescending about that. A
by etendue 10y ago
I would describe programmers you have described as "tradesmen", similar to electricians, plumbers, pipe fitters, etc. I see nothing condescending about that.
A chemical engineer designs a plant, but plumbers and pipe fitters (and others) are the ones who actually build the plant.
- pavlov 10y agoSurely a chemical engineer doesn't design a plant alone. There are numerous other professionals involved: architects, construction engineers, piping designers, structural modellers... These people are not tradesmen. It's very strange to pretend that a certain class of people involved in designing software are the "real professionals", and the rest are just plumbers.
- hexane360 10y agoI don't understand your first argument. Yes, those people are not tradesmen. They design the plant. However, they don't build the plant. Construction workers do. And if you tell construction workers to "build a plant", you're not going to end up with a good product. You're going to end up with a "bazaar" vs a "cathedral"
- pavlov 10y agoOk, I see now -- I think we have a philosophical difference, because I don't think there are human "construction workers" in software. Software gets built automatically these days. I make a design in a high-level language and click "Build" in my IDE, and that's the construction step. It can be repeated as many times as needed -- changing a line of code and rebuilding is the equivalent of tearing down a cathedral and reconstructing it from scratch just to change the position of one stone. In the world of bits, that's a perfectly reasonable thing to do. Some 50-60 years ago, there used to be professions of actual "software construction workers": punch card operators, magnetic core memory weavers... But those jobs were automated away. If I copy&paste a line of PHP, it's certainly not a great feat of design. But it's still design, just as dropping in a wall element in AutoCAD is design rather than actual construction.
- etendue 10y agoI use plant as a term of the art. Calling a group just plumbers is to me condescending: it's a trade that requires creative thinking, knowledge, experience, and a willingness to (literally) deal with other people's sewage. Plumbers are the real MVP. But the same is fairly said for other professions and trades (excepting that, one hopes, the sewage is figurative). There is a difference between those who are self-taught or taught on the job versus those educated in academia, and there are many situations when it's useful or important to be able to distinguish between the two groups. The difference in training doesn't speak to the quality of work, but it does speak to expected capabilities.
- xorcist 10y agoProgramming is fundamentally different from building a plant in a number of ways. To begin with, computer science theory is more akin to what you describe as "actually building the plant" in the sense that it's concerned with the details of algorithms rather than how to design software. Some schools make an honest attempt of the latter but it is in my opinion I haven't seen much useful come out of it. There's simply no replacement for reading other people's code. Let's also not pretend that academic merits guarantee anything in itself. I've worked with people who couldn't reason about even the most trivial data structures or complexity who somehow had solid degrees in that very subject. How they went about that I do not understand. I doubt you can reliably tell an autodidact programmer from a formally trained one. Computer science is much too young, and although we want to see us as just another math heavy engineering discipline, that's not all there is to it.