I started programming in the eighth grade in 1979 on a Tandy Radio Shack TRS-80. I loved computers so much that, while in high school, my father made for me a belt bucket with the letters TRS-80 soldered on it and then chromed. I moved from Basic to machine language (on a Z80) by high school graduation. I majored in Computer Science in college with a heavy minor in mathematics. Since then I have done a lot on most of the OS's, languages, and hardware. I have been a programmer, systems analyst/ developer, DBA, systems manager, and combinations of some or all. I have worked in manufacturing, business, and health care, in both normal and realtime environments.
With regards to software (or firmware or hardware) I have two beliefs.
1) Computers work for people. People do not work for computers.
2) Maintainability is all that matters.
Using the two criteria above as the bottom line you can create the most amazing systems on Earth. Lose sight of one of them and someone is going to suffer, whether it be the users, your peers, or both.