lgb&dtuba wrote:
Admittedly my opinions on this (and they are certainly only opinions) are colored by the profession I'm in; computer programming.
I have managed a number large software development projects, and developed several commercially successful software products in my narrow field. What I want in a programmer is not someone who knows a particular language--languages and even programming paradigms come and go. What I want is someone who can understand the user's needs, write a good set of requirements, and then write a program that fulfills those requirements, on time and within budget. That takes good listening skills, a strong expressiveness, and logical clarity.
I have met very few college-trained programmers who can do that straight out of school, and most of those could do it before they went to school. I've met more experienced programmers who can.
It's about listening and logic, not about languages. The hot languages when I was in college were FORTRAN and COBOL, in addition to assembly language (which I have managed to avoid, for the most part). Later, they were Pascal, and then C, followed by C++. Now, it's Java, and even Visual Basic. When I was in school, people paid a lot to be trained in IBM's Job Control Language. Nobody even knows that that is any more.
FORTRAN and Pascal were procedural, and that paradigm shifted to event-driven approaches, which then shifted to event-driven, object-oriented approaches. All that has happened since college for me, and I have 15 more years of work before reaching normal retirement age. I abandoned my college-based computer training within a handful of years of graduation.
If I was hiring someone to sit in a corporate bullpen and churn out lines of code, I would care about their languages. But if I need someone who can interpret needs into requirements and then write code cheaply and consistently with it, then I have to look way past languages. The most capable programmers (and systems engineers) I've ever worked with were math majors, and some have been EE's. Yes, they knew languages, but they could also add a language to their repertoire in a short time, just because they knew what a language should be able to do.
To answer Bloke's issue about college-trained engineers in charge of his genius friend, I would say that to be effective as an engineer, it takes historical understanding, strong analytical skills, specific training in relevant industry practices, design creativity in response to requirements, an intuitive understanding of the three-dimensional world, and a strong capability to work with and express oneself to people.
Maybe a quarter of that can be learned in college, but that quarter is hard to learn anywhere else. Much of that quarter is in the last skill set in my list above. Too many engineers can't explain their designs or analyses to other engineers, let alone non-engineers. But I have not noticed that non-graduates are any better, and many are worse, depending on their experience to justify what they cannot explain. Inabilities in expression are a reflection of college training having migrated to a job-training approach, however. Nobody with a really broad education, including that guy with the Latin degree, should have trouble expressing themselves, either verbally or in writing.
Rick "who has known several trained musicians who made outstanding programmers" Denney