Learn to write concisely and clearly. (eg, don't use "feel" as a catchall for "believe", "think", "be", etc. Cut out useless and passive phrases: "Clearly", "where time and willingness permits".) Writing clearly is necessary for thinking clearly.
The reason your question has been asked & answered so many times is that it is too broad. Do you really think the people writing simulators at JPL have anything in common with a cubicle drone at a bank? Would Java help a games programmer, or a modeler at ILM? No -- no more than compiler design is relevant to a cubicle drone.
I suspect you have not yet found anything you love to do. Figure that out first and the rest becomes easier. I advise you (you, not everybody) to take a "money job" at a reasonably tech-oriented company and learn as much as you can. Do projects on the side, etc.
"The reason your question has been asked & answered so many times is that it is too broad. "
I believe this to be an inherent byproduct of the asker's current phase in their own personal development. When we ask, we are curious and unsure of where to go next. I know the question is broad, as too are the answers, but again, this comes from the fact that we are asking the 'seasoned' members of a community for insight - insight gained from experience that we simply do not yet have ourselves. Although I know there is no definitive 'ANSWER' for this question, I do believe there to be beneficial and constructive input on the topic that may still be made - hence, why I asked.
As to your suspicions pertaining to my lack of finding a passion in all of this, I think you may possibly be correct. Don't get me wrong; I love computers, languages, semantics and technology in general. One of my favorite pass-times when playing with a new language is to implement some of the algorithms and concepts from my advanced algorithm design and discrete mathematics classes - its just fun to me. Despite the entertainment found from doing exercises such as these, I have yet to find 'that special thing' that drives me to working until 3 a.m.
I think that (for me) you might be correct; I was discussing this very same "money job" topic with my wife before reading your response. It just seems logical, considering my current knowledge (or lack thereof), to find a tech oriented company to work from, hopefully encounter some mentor-types along the way and learn what to do from there.
I've been through a few jobs in the last few years, and I keep looking back at them thinking "What an idiot I was for doing X" (for many, many values of X). But then I realized that I hadn't really defined myself, my views on software and development, business, etc. I was like someone who could run, jump, do jumping jacks, etc, who went around saying "I want to do sports for a living". I had basic tools and skills, but no direction. It sounds a little embarrassing to say, but how else was I supposed to gain direction without going through different experiences?
If you're not sure what you want to do or what really drives you, don't be afraid to take a decent looking (but not necessarily dream-) job offer, stay a year or so, then go to another different type of company. Think of it as a slow, well compensated data collection process that will lead you to a better understanding. Sure it sounds lame when put next to the laser-focused entrepreneurial stories on HN, but so what? Do what's best for you (and your family - important consideration).
PS If you do that, don't forget to code and learn something completely different in your spare time. That push/pull helps you grow a lot faster and benefit both parts of your life. Right now I'm .Net by day, Lisp by night. How much more different can you get?
The reason your question has been asked & answered so many times is that it is too broad. Do you really think the people writing simulators at JPL have anything in common with a cubicle drone at a bank? Would Java help a games programmer, or a modeler at ILM? No -- no more than compiler design is relevant to a cubicle drone.
I suspect you have not yet found anything you love to do. Figure that out first and the rest becomes easier. I advise you (you, not everybody) to take a "money job" at a reasonably tech-oriented company and learn as much as you can. Do projects on the side, etc.