I find the second type to usually be solid when it comes to theory, but utterly hopeless when it comes to implementation. They can draw you UML diagrams (so long as you don't stray too far from the coursework), but when it comes down to putting down code, they're lost.
The thing that bugs me about these people is not so much that they're incompetent, but they are so because they have no passions. I have a passion for code, other people have a passion for cooking, or writing, or whatever. All of the people I've met in engineering who aren't into it, also aren't into anything else, and I have a lot of trouble imagining how a person can exist in that state. I see so many people who are absolutely driven by the things they love, and somehow these people are just sitting around, not interested in anything except taking home a fat paycheck (to spend on what?)
It depends on what you define as theory, though. Things like analysis and extending algorithms, and understanding the concept of recursion, fall well into the realm of theory. People I've dealt with of the second type go completely off-course with this, too.
I've found they do ok when it comes to questions like "Define and give me an example of a ______", but become utterly lost when given a question such as "Design and implement in pseudocode a set of data structures/classes/etc. to accomplish vaguely-defined task x." As soon as you call upon them to apply their knowledge of theory to something they haven't memorized, they become completely lost. Maybe I'm just worrying over the semantics of the word theory too much.
I agree about how the lack of passion can be unbelievably annoying. Though, it's encouraging you've seen so many driven people, see them as a positive. I wish more people had that same attitude.
I agree, and I suppose by "theory" I mean anything that isn't code (even pseudocode). I've met many "type 2s" who can give you a great database and object model for whatever you feed them, but would be utterly lost if ever asked to translate into code.
And God help them if you describe a bug to them and ask them where they'd begin looking.
In the end it boils down to not doing. To be good at anything you need practice and experience, not just rote knowledge. Type 2s do not have this, since nobody holds a gun up to their head and makes them code till the early morn.
You've probably got your answer already: Everybody needs something to work for, and if you don't have anything in particular to work for, money is the default.
What I especially dislike is that these are the people who are responsible for our colleges and university continuing to focus more and more on the pragmatic and teach to the test approach, than focussing on true understanding. It's not just that they are bad for themselves, but they bring things down for us.
I was most definitely the second type precisely because I had no clue what I really wanted in life, and couldn't pinpoint my passions other than reading science-fiction. All I was able to figure out was that I needed to find a job and that I was semi-ok at math, physics, and computers.
I wish I had made more of an effort at that time on self-reflection. At least now I know what I want. Live and learn.
The thing that bugs me about these people is not so much that they're incompetent, but they are so because they have no passions. I have a passion for code, other people have a passion for cooking, or writing, or whatever. All of the people I've met in engineering who aren't into it, also aren't into anything else, and I have a lot of trouble imagining how a person can exist in that state. I see so many people who are absolutely driven by the things they love, and somehow these people are just sitting around, not interested in anything except taking home a fat paycheck (to spend on what?)