I've done programming and construction and more than often construction is like programming, especially when you are renovating.
I've done programming and construction and more than often construction is like programming, especially when you are renovating.
Only if you don't do new things often outside of programming. Everything certainly is fiddly and anything new you do is going be technical if you care about doing it well. I spent half a day last week learning to paint-fill engraving to make labeling. Conceptually it was trivial (coat with paint, wipe off excess, sand back when dry) but there was still plenty of nuance.
While writing that sentence I realized that programming does have a lot to do with logic, which is a construct of reality, and not humanity. So I guess it does makes sense that programming would be fiddly.
I am not a programmer.
I've always kind of seen programming above the level of electrical engineering as working in a social system designed with decisions that seemed like a good idea to a person who isn't me. This point was driven home a year ago when taking an R course and reading the literature discussing the grammar of R.
But yeah, in addition there are physical limits for programming as well. That's what just came as a mild insight for me here. I theoretically had been aware of it, but as an end-user / non-programmer just hadn't really put it together and thought about it before.
Details. :)
But it's thought through as a person who is an amateur at best. I've taken literal introductory courses to programming in Fortran, Java, and R, have hacked together two or three VBscript programs, had a very slight one-day introduction to assembler in the Java course, and as a child was briefly in a summer program that had us "programming" a very simple robot (telling it to go certain lengths in certain directions). A former roommate said my pseudocode (when taking the Fortran course) looked like Pascal, and I used to watch him do some Forth programming.
So in terms of programming philosophy I am really, really clueless. But in terms of programming languages what I do have is a basic understanding of how incredibly diverse the languages are. And that a huge amount of this diversity is based on human preferences.
As an analogy to construction. Yes, there are a diverse number of techniques that can be used in constructions (yurts, hay-bail housing, etcetera). One could also draw an analogy to pre-fab construction as modular programming and libraries as kits (or whatever). But for the most part, outside of scale, it seems that most construction effectively standardized on a few "languages", if not a single language.
That tends to not happen so often.
I mention all this not to pick holes in your logic but because it sounded like you were trying to look more closely at your intuition.
That's entirely my point. Human concepts can be incredibly complicated, or just as bad based on ideas that are foreign to others. Some people like figuring out human complexity, but no one likes figuring out everyone's personal complexity.
Many disciplines are still more constrained by our limited understanding of, and ability to manipulate, physical constraints. The more abstract programming languages become, the more personally complex they become. Like money and verbal languages.