I'm no programmer but I have learned a bit about programming and have worked with many 'softies' as we called them.
When they first started using C++ there was all this talk about OOD and 'instantiation' and I thought that was way beyond a mere hardware engineer. But when I looked into it and realized that a lot of the OOD techniques had been used for years in hardware, and when I found out that instanciation only meant 'an instance of', some of the fog cleared.
Software is a fascinating area and the boundary between software and hardware is dissolving, to an extent, with the availability of low cost single-board computers and free IDEs that run OK on PCs.
spec