Not sure aniut the low barrier to entry. Take 1000 programmers, how many can be made into decent plumbers in 6 months? Now take 1000 plumbers, how many can be made ibto decent programmers in 6 months?
Also, I am nit aware how often tevhnology materials and tooling changes for plumbers (I guess some of these spsn generations), but I am aware that platform I have been working full time for 4 years did not exist 8 years ago, and the language I write my code in did not exist three years ago.
The barrier to entry in the trades isn't the difficulty of the work. If you trained 1000 programmers for six months, a good number of them would be competent, but none of them would be able to get licensed. Every single one of them would need to work as an apprentice to a licensed plumber as part of the licensing requirements.
On the flip side, all you need to do to get a job programming is an internet connection and the desire to learn it. Anyone can teach themselves and if you can code enough BS on a whiteboard, somebody will hire you.
Most programmers would be able to do usual plumbing stuff like connecting the sink or dishwasher to water pipes with almost no prior learning, just by looking how things are done, maybe asking a few basic questions at the plumbing supplies store, and reading the attached instructions. These things are no rocket-science really. Sure, an experienced plumber would do all of these things much faster and probably better, that's why we call them. But the barrier to entry is definitely much lower - that's a no-brainer to me.
While I agree that the barrier to entry is lower, I feel like you may be overestimating the average programmer’s “hands-on” abilities as well as the simplicity of being a plumber. Sure, most programmers have the problem solving skills to get the job done, but when it comes to actually doing it, things are sometimes different. In my own personal experience, only a small percentage of the programmers that I know (myself included) actually know how to turn a wrench, figuratively speaking.
Another example is welding. I know how to weld, but I am not good at it. The only way I would get better is to keep practicing, which I never really have a chance to do since it’s not my day job. This is a slightly more extreme example than plumbing, but a similar concept.
I would consider the usual plumbing stuff to be more along the lines of sweating copper pipes, using lead and oakum to connect cast iron sewage pipes, installing toilet flanges, etc... I feel like connecting a dishwasher is more along the lines of a handy man.
I respectfully disagree. Alot of jobs plumbers do is that kind of easy jobs (just like most software devs are really writing CRUD apps.) Even redoing old plumbing in the house is super simple - soldering copper pipes with all the tools available is very straightforward.
I will say the same about welding. After very little reading i was able to make my own tig welder and even modified it later to weld aluminium (which requires AC vs DC normally, and spark starter)
This all information is readily available on internet if you know how to search for it. And that's what today's software developers are good at - finding quickly solution to something unknown.
Perhaps for simple plumbing jobs (like the ones you mention). However, things are rarely so easy once you start actually working. Like with most things, being skilled at plumbing is being able to handle the edge cases. And trust me, plumbing is not fault tolerant. :)
Exactly - you start setting up, then discover a 100 year old shutoff valve, which then breaks off in your hand, or there's mercury in an old heating system, or water leaks appearing 10m away from the source... In both programming and plumbing there's no substitute for years of experience in learning how to handle uncooperative reality.
Except that in plumbing industry we have artificial barriers in form of licensing. I wonder when time will come for similar barriers in software development.