When I went to college, computers filled the floors of buildings and were programmed with cards - 80 columns wide - remember the early 80 column wide screen. Watching a friend reorder a set of these cards which had toppled onto the floor, I decided to bypass the computer courses and stay with my first degree in mathematics and quantum chemistry. Abstract Hilbert spaces seemed far more manageable requring only my notes and hard cover books. The quantum concept that it was impossible to exactly measure anything and that part of me was always somewhere else seemed to fit my naiscent and a bit arrogant personna of 18-20 years of age.
Many years later, with the advent of the Kaypro portable computer, more luggable then portable, in 1982, I started to dabble into creating software to organize my medical clinic in Harlem. The Kaypro's operating system had an 8 bit 8086 processor, the operating system was Control Program for Microcomputers, CP/M, and 16K of RAM, later increased to 64K RAM which was the limit of the CP/M operating system. A historical point, CP/M introduced the bootstrap method of loading the operating system and predates DOS and the MS gurus by 10 years. On this platform, I networked several Kaypros using Netware 86, created a relational database system and electronic Medical Billing System, Meddata.
No more cards! My mathematical background facilitated my learning curve. Attending courses at NYU and the Courant Institute where I learned assembly, compiler theory, algorithms, discrete math, the application of group theory and Hilbert spaces, my undergraduate thesis, to graphics, object oriented theory and application and more. Knuth's The Art of Computer Programming still sits prominently by my work station. C, Pascal, Prolog, ADA, Smalltalk.... I devoured. I learned at this point the constructs of what and how a computer works and looked at each language with the question - "How does it do this..".
In 1988, I left the active practice of neurology and medicine for full time software development and the creation of a small development company SOFTDATA. During these periods I developed some fascinating software - the Miami/Dade County toll system integration which involved C, PowerSoft and the integration with various servo mechanisms.
Over the course of these years, I have used many different languages but the underlying basic computer science education has assisted in quickly learning and adapting as needed. I was fortunate to land a job in which I developed a large system - 63 Oracle databases spread across the globe with 4 main and 13 sub systems - all involved with car safety and trauma from car crashes.
But software design and concepts are always advancing and that is the fun. The Separation of Concerns attempted earlier on in Smalltalk is now a reality in WPF and MVC. Web 2.0 has moved the flexibility of the desktop to the WEB and the power of that floor wide Eniac is now at my finger tips.