I’m in the software field both because I want to learn how computers work and because I want to make something great. For a long while I thought that I should focus on making something great, and in the process I would learn how computers work.
The problem was that without knowing how things work (beyond my Computer Science cirriculum), my project goals were almost always poorly defined and I would end up scrapping my work and starting another project every time. So my only successful projects that took more than a couple hours to complete were student projects, some work projects, and a Tetris clone I made on a whim during the summer between my 4th and 5th year of college.