My background and training is electronics. The only software portions of my engineering education were labs that were required as part of other classes. The labs counted for nothing except that you received no grade unless the lab was completed.
Until the late '90s, computer science people could expect to earn about 20% less than their electrical engineering counterparts. A frequent comment made during the interview process was that EE's tended to have more rounded backgrounds than CS people and were worth more to the company.
I “got into” software based on board and systems level test. Manually testing more and more complex systems got to be “manually” impractical. I remember testing spacecraft subsystems with a manual test procedure. One bad case was 1200 pages of steps to perform manually. Test computers like HP's 9830/9825/9826 series helped out with IEEE-488 bus and serial ports running instruments to get the data for the test, record the data, check against pass/fail criteria, and even prepare the test reports.
Discussions with associates over time indicated that “there must be a better way” to put together software packages, so we all gradually learned techniques for writing software we could maintain and adapt to ever changing requirements.
Some of the guys I met later never really “left” electronic engineering. Their software was developed with labVIEW from ni.com. You draw schematics of software and execute them!
Don Doerres is chief software engineer at a company that builds space flight hardware, software, and vehicles. His comments are in response to Jack Ganssle's Teaching Testing .