JT wrote:
The strange twist in all of this is that it was this exposure, I believe, that gave me the perfect grounding to become a software developer. Basically it is all the same skills but with the added requirement of a strong ability to visualise abstract concepts. As Paul says it is every bit as creative and fascinating, and a good software or electronic solution has all of the beauty and elegance of an intricate mechanical engineering solution, it's just that it is to all intents and purposes imaginary, and only a select few can truly appreciate it. And the more you try to explain this beauty the more nerdy you appear!
Quite so (and beautifully explained).
In the late 1970s I progressed from logic design (74 series TTL mostly) to assembly language programming. I also found that this required all the same mental skills, but came without the real world 'boring bits'.
With the logic design it was a constant battle with system noise, power supply decoupling, race hazards, lead lengths, broken wires, short circuits, failed components and so on. In the real world about half the design time was wasted with these rather boring practicalities.
We have lost something really significant from the art since those days - the need for economy of design. In the logic circuits, the objective was to build the system using the smallest possible number of components. In assembly language programming storage space was initially tiny and at a very high premium, and the equal challenge was to write the programme in the smallest number of bytes.
But these days you only need one chip (+interfaces) and storage has a virtually zero cost. the need for the 'elegance of economy' has gone to be replaced with 'shortest development time'. That's a damn shame.