Slashdot Mirror


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?"

20 of 120 comments (clear)

  1. Learning Never Taught . . . by Dausha · · Score: 4, Insightful

    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.
    1. Re:Learning Never Taught . . . by TuringTest · · Score: 2, Insightful

      Experience is a matter of the person an can't be taught, in the college nor in the industry. One has to grow its own.

      OTOH, college may provide background knowledge (mathematics, system architecture...) that may be lacking in the labor world but is useful for designin' complex systems. This information doesn't tell how to implement the details - but can face you in the right direction.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  2. Just wait a few years by Anonymous Coward · · Score: 2, Insightful
    when those students have got some experience in the real life. A few of them may be able to stick to the few things they learned, but the rest will have to adapt pretty fast. Hopefully they learned how to learn new stuff.

    So, hire them a few years later, when Darwin has terminated the careers of the least fit...

  3. Not the task of a university by Kj0n · · Score: 5, Insightful

    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.

    1. Re:Not the task of a university by Twylite · · Score: 4, Insightful

      This is very true. To teach a strong theoretical grounding there is little time to study multiple implementations of the theory. Instead, you concentrate on one implementation as an example of the theory.

      In languages for example, you will study the concepts, but pick one (say C++) for practical work. You will look at what C++ has and doesn't have relative to the theoretical model, and (as text book study) relative to other languages such as Java and Smalltalk.

      In my experience, students who have a good theoretical grounding and some practical experience with a single product can easily learn to apply the theory to other products. This is especially true for languages and common office products (word processors, spreadsheets, etc); but conversion becomes more difficult when dealing with specific applications (even IIS vs Apache configuration).

      Specialisation during learning is a good thing. Leave it to on-the-job experience for the development of diversification. Having said that, I think there should be some teaching dedicated to knowing ABOUT the alternatives (but not necessarily how to use them): you are hamstrung if you only know one language, and can't made a knowledgable and objective choice of languages and deployment environments. A comparitive study of languages, operating systems, and common software products, drawing attention to strong cases for use, would be beneficial.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  4. The same thing over here by Machuidel · · Score: 2, Insightful

    As I'm already programming (and doing other art stuff) since my childhood I also noticed this.

    Example:
    A nephew of mine always was very jaleous on me making Computer Programs (Games..), Composing Music and a lot of other things.

    He always tried to imitate me, like when I developed a game in C/C++ he did the same in Logo and Klik'n'Play (Even that he couldn't do, but as I felt very sad for him I always said is was okay :).

    For that reason (I think) he went to an Unversity to become an Engineer, what I do as a job.
    I never did any Engineer (IT) school or University as I think it's a waste of time and can use my skills right now. If companies don't want me cause of me not having an Engineer certificate (or whatever it's called) it's their problem, then they should take someone like my nephew :|

    So what I think... most of the really skilled people aren't even doing Universities and other crap. The only reason I would do University is to be able to use the fancy stuff I can never afford and to learn some techwords (over-hyped words).

    Basically I think on most Engineer schools you'll find people who think they know a lot.

    btw. I did MCSE just to see how it is like, I quit cause the new testsuite (they just got that day) kept crashing :P

    ps. There are some nice Universities I would like to do, but if I will ever get there, I don't know.

    --
    Mike Machuidel
    1. Re:The same thing over here by coffee177 · · Score: 2, Insightful

      Looking back in retrospect - I didnt really enjoy college and actually dropped out and went to trade school. I think I have to agree with you about your experience. I never bothered with the MCSE as I wanted to do hardware instead of software. Not everyone needs the "College Experience". I didnt and Im doing great. I repair all kinds of equipment from Printers like Printronix, Genicom, IBM, ect.. to servers - RS6000, HP9000, AS400s ect... Whats funny is that the dot com crash never even bothered me a bit job wise. But I did know alot of people in the software field that did loose their job. coffee177

  5. change your hiring practices by blastedtokyo · · Score: 3, Insightful
    This has always been true. It's probably gotten a little more true once non-geeks started going into tech for the money/(once)plentiful job opportunities. Your problem is that you don't know how to screen your candidates before you interview them. I'm guessing that you:

    Look for kids with good GPAs---These are the ones that often play the games the professors want them to play so they learn how to take the tests.

    Look for the most polished resumes/suits or use OCR to scan them--Lots of geeks are horrible at aesthetics, neatness,grammar, selling, hygiene, etc. If you go for the most beautifully laid out resume, you'll get the one with good visual taste or writing skills (or smarts to find someone with good taste) but it doesn't tell you sh*t about how well they'll be a techie. And if you don't want to work with smelly, ugly zitty code God, well, that's one of the tradeoffs you'll have to make.

    Basically, you need to go out and get the people with the skills you want instead of wait for them to come to you. Look at the authors for a piece of open source code you admire and ask them for referrals (or offer to hire that person). If you're really daring, Go after the slashdotters with excellent karma. Traditional interviews/resumes are great for some professions but not for techies.

  6. It's the people by Inominate · · Score: 5, Insightful

    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.

  7. What did you expect? by sql*kitten · · Score: 5, Insightful

    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!

  8. try running a uni yourself!! by Anonymous Coward · · Score: 3, Insightful

    as a recent graduate, i've got experience of this so-called 'narrow-mindedness' of universities, etc.

    think of it from their perspective - why should they choose MySQL over Oracle or C++ over Java or Ada95 for that matter!?!

    it's not and never has been a university's job to cover what can be accomplished in a two week training course paid for by a dutiful employer - stop asking them to do your work!

    it *is* a university's job to churn out intelligent, quickly adapting and resourceful individuals who can be happily hacking away at your beloved G++ after only a couple of weeks, regardless of what they were taught beforehand.

    students are taught *how* to program, not what language they should be programming. your yardstick should be the university's standing and the grade of the student - First Class with Honours *means* they are versatile and skillful - and that's all you should need!

    regards,
    a graduate.

  9. Specialization by hackwrench · · Score: 3, Insightful

    I seem to see the problem everywhere. Colleges teach what will make the students tools for employers, not what they might want to know. In my Cisco class, they tell you to do things a certain way just because if you don't "it might not work." Don't bother to tell you why. I doubt that any given engineer would know how to buid everything from cars and can openers to nucler recators and space stations, at least these days. A group of engineers, maybe.

  10. Students & Employers getting what they want by duffbeer703 · · Score: 4, Insightful

    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
  11. IT vs. Engineering by forsetti · · Score: 3, Insightful

    If you look for people trained in technology, you will find people who only know technology. IT (MIS,CIS) students, and to a lesser degree, CS students, are trained in technologies, and therefore will only know the technologies that they are taught. And lets face it -- 4 years, of which much time is taken up with English, History, Math, Philosophy, etc, is not enough time to learn a wide selection of technologies.

    This is where Computer Engineering is important. Engineers generally learn methodologies, not specific technologies. Once one understands the various methodologies, abstractions, processes, etc, one can easily learn the specific technologies on their own.

    Disclaimer- I graduated with a Bachelors in Computer Science & Engineering. Nothing I do today in my IT job was taught to me in classes. My classes and training simply taught me how to learn and understand computing technologies, and since then I have had no problems picking up new techs almost overnight.

    --
    10b||~10b -- aah, what a question!
  12. Re:I've seen this lack of creativity.. by re410 · · Score: 2, Insightful
    This is just one example of the lack of creative thought that I saw almost every day while working on the helpdesk.

    Instead of yelling at the clueless to use the software to view landscape pages how about actually showing how to do it?

    This is just one example of the lack of help that users put up with almost every day from the 'helpdesk'.

  13. Not experience vs. books, but interest by obtuse · · Score: 2, Insightful

    I don't think it's "jest book larnin'" or "shallow premature experience" as much as a matter of personal aptitude & interest.

    I think it's just a matter of being interested, and of thinking about how this stuff really works. I'm a sysadmin and I find astonishing the things many programmers don't understand, and aren't even interested in learning about the tools they use every day.

    Memory leaks, disk thrashing, or filesystem limitations, are all too often mysterious and met with blank stares. These are bright, capable people, but they're too busy to go outside their box. That stuff is my job.

    On the other hand, I'm a sysadmin because I'm something of a geek, and intersted in everything. It's a good Jack of all trades sort of job. I may be busy as hell, but learning new tools is a regular part of my job, and if somebody's using it, I'd better have an idea of not only how it works, but how it will interact with the rest of our systems.

    For a lot of people, it's just a job.

    --
    Assembly is the reverse of disassembly.
  14. Re:I've seen this lack of creativity.. by Manic+Miner · · Score: 2, Insightful

    Firstly I didn't yell at him, I very rarely yell at people because it doesn't usually help. You can tell people off for doing something like screwing around with equipment without having to yell

    On your second point however... this is an interesting point that I have discussed at length with people in the past and with the guy I used to work with on the helpdesk.

    First some background information. Our role on helpdesk was techinical support for machine failures / maintenance, and programming help for coursework assignments etc. Our role was a fine line that we trod on a daily basis between just giving people the answers and helping them to think for themselves.

    While holding peoples hand and showing them step by step can be very helpful in certain circumstances it does not encourage them to think for themselves. With a simple piece of software like a PDF viewer I would expect that once somebody had been told it was capable of displaying the page in landscape, they would be able to find the software option themselves. This is not a "dumb" user we are talking about, but someone at the end of year of a Computer based degree course. They should be aware of things such as user interfaces and program options etc.

    I always saw my role on helpdesk as teaching people to think. Very rarely did we give people final answers to questions but instead talked through concepts and tried to lead people to the answer rather than handing it to them on a plate. This helps them to see the paths to go down, and helps them to learn to evaluate options before picking a final solution. That, in my opinon, is better than just giving answers, because this was at a University and people were supposed to be there to learn.

    --
    If you ever drop your keys into a river of molten lava, let'em go, because, man, they're gone.
  15. Two ways to take this by Boglin · · Score: 3, Insightful
    When I read through the article, I saw it could be interepreted two different ways. The first is that college CS students are learning implementation, but not computers. There was a perfect example of this effect in my CS course last week. The introductory programming class, which teaches Java, uses a wrapper around the System class to make IO easier. Specifically, we had two classes FoobarIn and FoobarOut (names have been changed to protect the guilty.) That was two years ago. Last week, one of my classmates complained that his project couldn't find FoobarIn. I found this lauughably pathetic, till I looked through the textbook that we had used, and realized that not only did it never mentioned that FoobarIn was not a standard class, there was no mention of the System class anywhere! If I hadn't had outside Java programming experience, I might have been up the same creek he was. This also goes along with the fact that all of our higher math courses require us to use the same CAS program for plotting and matrix computation. While most of the assignments have still had some educational value, some have been dedicated purely to learning one CAS system that no one else uses. If you are fighting to get CS back to teaching pure computer science, as opposed to application wrangling, I applaud you.

    However, a couple of your statements had lead me to a second interpretation. Specifically, when you complainted that students were only familiar with Visual C++ and wouldn't be able to use G++. The point is that they are both C++ compilers, so if you know one, you should be able to figure out the other in reasonable time. If you are expecting graduates to learn all of the #pragma's, quirks, and language extentions of every compiler by graduation, you are expecting them to waste their education. To put it differently, with your copier example, a CS major should be able come to a copy machine, find the glass, put the paper on it, and find and press the copy button. However, if you want him to tell you the exact location of the copy button on a Kodak 2085AF without being given a chance to look for it, get used to disappointment.

  16. Apache vs MySQL by Sloppy · · Score: 3, Insightful
    I wouldn't expect a CS cirruculum to teach people about specific products like those. Ok, maybe people ought to know what MySQL is, just because of the name. (I would think that CS types would learn what SQL is, even if they don't learn SQL itself.) But Apache? Just a non-descript name for one partcular implementation of one obscure service among dozens.

    I'd be the first to agree that breadth is highly desirable, but breadth isn't something I expect a formal education to address. People get breadth from experience, which is why degrees are only one small part of a resume.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  17. Re:In Australia by galore · · Score: 2, Insightful

    you study web development, perl, gcc, grep, sql, cisco... and the emphsis is on theory? um, right.