Overspecialization in the Computer Field?
The Mainframe asks: "I visited a nameless college campus recently and was shocked at the degree of specialization within the student body. Of the many CS and other IT-related majors that I talked to, not a single one had any real breadth of experience. Web developers knew Perl, but couldn't tell Apache from MySQL. C++ coders knew their language, as long as it was presented in Microsoft Visual C++. I suspect if I'd asked them to use G++ they would have said 'bless you'. Essentially, I'm worried. I plan to do some very interesting things in the next few years, but I'm not going to be able to pull it off if I have to wade through 100 narrow-minded people for every 1 useful human being. Is this something that other employers and co-workers have been having a lot of problems with? Is the whole world having to show its database developers how to use a copying machine?"
This only goes to show that college is no excuse for experience. I approached the field from the reverse direction--studying on my own then working in the field before I sought my degree. I feel that I am, in general, better rounded than the average bear accordingly.
More to the point, many of the students I encountered were much the same level of clueless. They were in the field because they saw the pot of gold at the end of it, not because they enjoyed the technology or were necessarily adept at it.
But, if there's one thing I've found out in life--it's that learning never taught me nothin'. And books is the worst.
What those who want activist courts fear is rule by the people.
I have been working at a university for a couple of years and have noticed there that it is impossible to teach students about every product (commercial or open source) that is available. Instead it is better to give them a broad basis (showing them types of products: a database, an IDE, a web server, ...), instead of giving a course on the difference between Oracle and MySQL. When this broad basis is given in the correct way, they will later be able to use new products when they are presented with them.
To improve their ability to adjust themselves to a different software environment, a number of assignments can be given in which they have to build some software solution using the tools given to them. This will also teach them that in some situations they cannot choose what to use. Maybe this type of assignment is not yet given enough to students. However, I don't believe the rest of the teaching methodology should be changed.
It's the kind of people now taking these jobs, who got out of a university with some know-how, but little real interest. They're not hackers or geeks, it's thier job, they don't really care to 'waste' time learning things that aren't thier job, they lack the insatiable interest of the earlier crop of geeks.
Instead of seeing something new and wanting to try it out, learn it, figure out how it works, many now simply ignore it, and stay with what they're familiar with.
It's just the ordinary person replacing the hacker.
I visited a nameless college campus recently and was shocked at the degree of specialization within the student body. Of the many CS and other IT-related majors that I talked to, not a single one had any real breadth of experience.
They're undergrads. They have no experience, and they aren't expected to have any experience. You don't do a CS degree to learn specific languages and applications, you do it to learn about algorithms and data structures and discrete math.
No-one expects a fresh CS graduate to be immediately capable of writing production quality code, that's why major firms have graduate training programmes to teach them how to put the theory they've learnt into practice. That's also why starting salaries are usually quite low, but pick up quickly after a few years and the 2nd job - because now the raw recruit can actually do something useful without constant supervision.
What you're saying is like someone walking into a Civil Engineering department and being horrified that none of the students had ever built a real bridge!
I went to a university that refused to teach product specific stuff. We we were taught to code C on sunos and solaris with gcc in the intro classes.
Later, we were expected to code competently in any number of languages with mimimal tutoring.
Most people complained and bitched at this policy, since at the time, (1997) you could get a $50k/year job after studying two weeks for an MCSE.
Students wanted to learn VC++ and Java. Most employers, even the morons who came on campus, didn't care if you could implement a unix TCP/IP stack -- they wanted to know if you knew how to use VB or were intimate with MFC.
It sounds like many students are getting their wish -- and finding that they get a shitty, proprietary education.
Conformity is the jailer of freedom and enemy of growth. -JFK