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?"
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.
I used to work on the undergraduate helpdesk for an electronics and computer science department. During my time working there I saw a number of things that I didn't believe were possible, things you would expect in a dilbert cartoon, not at a University!
Although you may not believe it, but this is a true story....
One day I was walking through the computer lab on my way to lunch, when I noticed someone sitting at a computer with the monitor turned on its side. Now all the computer in the lab have iiyama 19 inch monitors, so needless to say I was not impressed at a student screwing around with the hardware, so I wandered over to the person in question to ask what the hell he thought he was playing at!
When I got to the machine I asked him what the hell he was doing. He replied that he was viewing some PDF's of past exam papers, but the PDF's were all in landscape and so he had to turn the monitor on its side to view them properly!
Needless to say I was speachless at first, WTF!, I told him off for screwing around with our equipment, put the monitor back the right way up and told him that he was never to move lab equipment around like that again. At this point he got upset saying how was he supposed to view the exam papers? I told him to use the software to view landscape pages and went to lunch
1 hour later I was coming back from lunch (got to love working for a University) and discovered him, still there, head tilted 90 degrees reading the exam papers!
This is just one example of the lack of creative thought that I saw almost every day while working on the helpdesk. My attitude when working with anything, not just computers, is that what I want to do must be possible I just need to figure out how. I love solving problems and finding creative solutions. I always assumed that people who worked with computers were the same as me, with a passion for experimenting and "playing".
Sadly computing has been seen as a cash cow, anyone that want a high payed job tries to get a computer degree. These people do not make great programmers or computer workers because they have no passion for the work. They don't "get" the technology or the concepts and are only interested in one thing - they pay packet and the end of the month. :(
If you ever drop your keys into a river of molten lava, let'em go, because, man, they're gone.
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!