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.
This is happening in every industry. And to answer your specific question, the whole world will not have to, we will have plenty of professional photocopier demonstrators. They in turn will need to be shown how to use the bathroom every few hours though...
Free Java games for your phone: Tontie, Sokoban
Is the whole world having to show its database developers how to use a copying machine?
.Net Basic IDE drag & drop list.
What is this thing you call a "copying machine"?
I have never heard of this ActiveX control, and I can't find it in the Visual
It's probably "open source" or "command-line" or something else only used by Pirates and Terrorists. I think we should probably censor this guy's post. I think the RIAA has every right^H^H^H^H^H write to hack his machine to protect its^H^H^H it's legitimate business model.
--
I gots my MSCE and now I are a Solution Preventer
Opinions on the Twiddler2 hand-held keyboard?
So, hire them a few years later, when Darwin has terminated the careers of the least fit...
It's a computer -- a computer science major should be able to handle it if it deals with 1s and 0s, much like every engineer knows how to build everything from cars and can openers to nuclear reactors and space stations. Damn bastards chickening out by "specializing".
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.
As I'm already programming (and doing other art stuff) since my childhood I also noticed this.
:).
:|
:P
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
ps. There are some nice Universities I would like to do, but if I will ever get there, I don't know.
Mike Machuidel
I think that trend was set during the tech boom when companies would hire as many as it would take and get em to work as fast as they can.
Specialization is still important but more in overall offerable services than in products. Network admins now come in customer support experience, knowledge of various Microsoft products, pager support among other things rather than just a sneaker-wielding loosely-dressed UNIX hacker.
However this trend is emphasized upon still by colleges, where beside the theory theres no breadth of knowledge offered. Students know all about relational databases, theoretically speaking, but never knew the practical differences between PostGRE or MySQL or why Oracle is so expensive. Similarly they will not be able to set up an environment for themselves to start Perl programming for Apache in Linux. They'll need a Sys admin to do that for them, while companies are looking for exactly that, all the experience rolled into one to save costs.
Savvy Colleges and Institutes will expose their students to the top 5 or more products in that region to allow them to offer more to employers nowadays. They'll be able to offer some support on Linux, FreeBSD and Solaris, possibly AIX and others beside Windows 2000.
However theres never a substitute for having the experience of GWBasic and Commodore-64 and DOS 3.0, and having known all the major products and trends and quirks through the times uptil now. Thats exactly what companies are looking for by must have at least 10 years experience in the field.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
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.
I believe the core of the problem is:
;)
1) People being lazy.
2) People don't want to appear to be stupid newbies.
3) People don't have enough time.
Where I live doing a CS degree will give you hardly any real life experience. People need to get off their butts and tinker with stuff to really understand how to use it.
The word UNIX seems to strike fear in some people I know
What is sad is that university provides the perfect opportunity to forget about falling in the trap of points #1,#2 and #3 (well to some).
I'm a student at an Australian University. I believe that we get a well rounded education. In my Software Engineering/Data Communications course we learn about:
- Java, c, c++
- Software engineering process
- Perl and web development
- Internet, TCP/IP stack
- OSI
- Linux/Unix commands
- GCC, grep, etc
- Databases, SQL
There's an emphisis on theory not actual programs used. They do not tie us to any specific program. They recomend that we use a basic text editor for coding, none of this IDE stuff. And specific products are only mentioned if it makes sense (ie cisco stuff)
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.
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!
int main( int, char** )
{
printf( "Can you define exactly what you mean\n" );
printf( "by 'Overspecialization'?\n" );
return( 0 );
}
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.
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.
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
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!
Many undergraduate civil engineers get the chance to build real bridges with the Steel Bridge Competition
My personal favorite has always been the Concrete Canoe, though.
In answer to the topic question: You get out of your education what you put into it.
i'm a grad student in cs in new york, and most of my colleagues have tons of real-world experience, yet still it's common for them not to understand what i would consider the basic stuff. take one project partner of mine: she has 20 years' experience as an assembly language programmer on IBM mainframes, but does not understand how you would use a uri to refer to something on the same machine your code is running on. she does not understand what a web server does. yet, it's great to have her on the team because her debugging skills are intense. another colleague, also formerly a professional programmer, was completely confused by the idea that mySQL does not have a gui where you can see the tables and cut and paste data between cells, etc. seems there are a lot of non-geeks even in the midst of the computer world. the difference with geeks is, i guess, we can't sit at a computer for hours a day and not want to know everything about how it works. the downside of this curiosity is a lot of wasted time (tinkering with your box when you should be coding, for instance) but the upside is well-roundedness.
There are no trolls. There are no trees out here.
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.
Over time, I've noticed that every person posting to Slashdot seems to claim that "their" approach is the best.
People who went to an expensive college smirk about their degree and talk about how employers are looking for knowledge of abstract concepts.
People who didn't attend college at all constantly seem to be justifying their lack of doing so by claiming that they have more "real world" experience and that the college approach is "wrong".
I'd say it's a fair bet that they're both wrong -- a degree is valued much less by most employers than the Ivy League types think, and the "skip college" approach is looked down upon somewhat more by employers than the skippers think.
Plus, I suppose, it depends on the field. If you want to be a cryptographer, you're probably going to be a pretty sorry one without a (nice) degree, but if you're going to run wire and set up Apache and IIS...
May we never see th
I work helpdesk. Windows 98. Ive had one user who ive shown 7 freaking times how to click on the already open programs at the bottom rather than have 5 copies of outlook or word open. Shes amazed ever time. I have a bunch of folks like this. I've given up trying to explain, or teach. I know for a fact that chimps are capable of handling this, why can't these people?
All Troll + "offtopic" mods are meta moderated as "Unfair", because you abused the system.
Not all universities are like that. Although I doubt anyone has ever heard of it, the whole point behind the CS degree at IUPUI is "intellectual breadth, depth, and adaptiveness." Although we start out with learning C and C++, the courses get into all sorts of areas such as databases, using Un*x servers, assembly, graphics, and tons more. The CS department here focuses on getting to know all of the science behind how all this stuff works as a whole, giving us a good view of the entire computer sciece/IT world as a whole. I haven't toured many other universities, but I'm sure there are more like this. If I toured a college where everything was so specialized, I would look elsewhere.
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.
Wow, TWO whole US universities? That's definitely enough of a sample to make blanket statements for a whole country's engineering and CS programs.
But seriously-- I think Purdue's Computer Engineering program did a good job. I learned C, C++, Java, Fortran 77, CShell and KShell, Nawk, Sed, assembly for motorola 68HC12 and intel 8096, software and hardware development methodology, OO Design, VHDL, analog circuit design (amplifiers and whatnot), microprocessor design (my crappy 16-bit pipelined RISC chip ran at a whopping 24MHz in simulation, but it worked, damnit!), OS design and architecture (i never want to write another filesystem or memory manager), digital logic design (among a score of small projects, I built a digital audio compressor/limiter and a Pong game as choose-your-own projects) and enough math to make my head feel like bursting (Diff EQ was sophomore year-- and we had math all the way through, although I must say I'm not using Convolution or Laplace Transforms in my day-to-day work)
The US deserves some occasional bashing, but I think this one is undeserved.
"... if I have to wade through 100 narrow-minded people for every 1 useful human being." Welcome to reality. There are a lot of stupid people.
This has been noted in other fields as well. Medical Doctors are more and more often becoming specialized rather than being General Practitioners. And I'm sure it's happening in other (less-obvious) fields as well.
The problem is that there's just SO much information out there now. Ten years ago, computing was more simple. Fewer languages. Less options. Less knowledge. How CAN universities teach everything when the number of development tools and languages has grown like kudzu the last few years? Likewise medicine. Or any of the science fields, really.
Knowledge grows exponentially, yet time moves (to our perception) at a mostly constant rate and we (Humans) only have so much capacity to learn, remember and apply.
... "I read part of it all the way through." -- Movie Mogul Sam Goldwyn (and some slashdot readers)
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.
Perhaps if you had visited a college that had a name you would have had better success.
My degree is in the humanities (won't say what field). I work as a programmer. I can do anything from QBasic to COBOL to PERL to Pascal. Why? 'cause I learned it on my own.
Universities are not the place for technical training. Universities are the place to learn how to learn. Those universities who think that training in the latest & greatest products, training vocationally, is the way to serve their students are going to see their endowments drop when the percentage of grads with jobs collapses in four or five years (when those latest and greatest technologies are extinct).
>The technique of stripping M1 and M2 from dissenters.
Been working too long in the embedded space where M1 and M2 are memory spaces with different access times or on different levels of the memory hierarchy... it's been quite a while since I thought about the general economic terms (as one could guess from the balance of my checking account)...
"It's tough to be bilingual when you get hit in the head."
They were in the field because they saw the pot of gold at the end of it
That's pretty much the whole problem right there. Whenever you have people going into a field just for the money you will get a high level of cluelessness. Add to that the University-as-trade-school "teaching for the real world" BS you find at a lot of colleges (You know, the "everyone uses Microsoft so we have to teach only Microsoft" mentality) and it's no wonder so many CS students are one trick ponies.
One has to wonder how many of these kids saw an add somewhere about how they could earn $50-80k per year with an MCSE, and figured they could spend 4 years getting one while partying on their parents dime.
Here's a scary thought: the guy I just described is someday going to be my manager... *shudder*
Under capitalism man exploits man. Under communism it's the other way around.
If you expect to find work in computing post-90s, you'd better have experience with MS products. Even UNIX admin jobs frequently list MS experience and/or certification as requirements. Frankly, I'd suggest you move to another major as computer science is largely dead outside of academia in the US. That or move to Germany or some other country where technology hasn't been crippled by the combination of MS' monopoly and moronic IP laws.
They often require this from their low- and mid-level employees; while they require an extensive range of product/OS and environment knowledge from their team leaders and managers. So what do you do as an unemployed-for-months techie that does not want to end up hawking washers at Sears or making MTOs? You go from two resumes to twenty. If they want an ubergenius at creating software installers, give it to them. If they want a bangup job backing up every night; hand them one of your tapes. Because if you really want the work; you'll be really good at it. Regardless of your degree (or lack of degree); regardless of your years' experience - if you know or can know the product then you need to target your resume to the position - for the headhunter or the cost-conscious HR person who has no clue what MSI or Apache means - and go. You're likely to talk with three people before you get to the hiring manager and let's face it - they hire you if they like you. Joe Admin on the next phone call can have five years on you but if they don't like him, the job is yours.
I think with the interesting people, their lives can't possibly be wrapped up into a nice little package.
What he is saying seems to reflect the concept that college educations as they now stand, are more value to current employers that it is to the student that is getting the education, and furthermore, that the employer doesn't care about the degree half as much as the notion that having gone to college, the perspective employee comes with a little bit of insurance that he can do what he says he can.
Dont take the student body's word for it. I'd suggest meeting with Professor Noname and Dean Blankspace before you make any hasty indecisions.
Why stick up for big business?
I consider that I have a very broad background. But, I am having a lot of trouble in the current job market.
/w 3-5 yrs of exprience in X. So let's assume I have 3+ yrs combined, so it's not a qualifications issues. I keep hearing things like 'well, they're looking for 3 years continuous experience...'. And to top it off, seems the people don't understand consuling and say 'You have so many short positions, why can't you keep a job for more than 3 months... oh, there's a couple of 9 months jobs in there'. So I explain how I, as a consultant, take a job... and finish it quickly and efficiently... saving companies money. Then I usually have to point out a number of repeat customers and explain the process.
I've worked on large servers (think, all visa transactions) to fairly large financial projects ($6b/month) and biotech (front ends/db integration for BLAST). My projects have ranged from being based on supercomputers (Cray Y/MP) to hobby code on CP/M to embedded development (PSoS, bleh) to a wide variety of 'web' platforms.
I am a decent DBA (installed Oracle twice, can code in SQL in anything from Oracle to PostreSQL, including Informix). I can program in a _wide_ variety of languages Perl, (Objective-)C(++), various ASMs, Cold Fusion, VB, COBOL, MUMPS (and several dozen others). I'm a strong sysadmin. I even have contributions to a number of OSS packages and a few book contributions to my name.
Oh, and just for the record... I'm 28 (I started with college programming courses at 13 and was a paid intern by 14) so it's not age bias.
Now, why am I having trouble? Basically, the 'new' market (at least for the duration) wants specialists. Companies can afford to hire 3 people for what they would have paid for my services 6 months ago. I'm not asking for 6 figures right now, but I'm not willing to take a $30k position (yet) after making (a good chunk over) $100k last year.
I can't get by most HR people. For example I'll see a job for a programmer
So, why do colleges teach specialization... Because that is what most businesses understand. They don't 'get' how a wider view of the world could help them. All they see is someone that 'jumps around' in their field and in the view of your average HR/Hiring manager it makes them look unfocused. Most people in this world pick one thing and dig into it until they are in such a big hole that they can't see out. How many 'COBOL' programmers do you see that, once the market changed, could not pick up a different language and adapt.
Well, that was a lot more than I planned to say. Excuse the rambling, but hopefully it will give a little insight into what I've seen.
With high salaries, I have found that everyone
and their mother has decided to learn a little
something to jump into the tech field. When I
went through college, the majority of CS majors
were the types you couldn't keep from tearing
apart a computer, learning how both hardware
and software worked, grabbing software packages
just because it was fun, reading new things just
for the ideas
both natural and fun. Heck, I was coding on
my TI-99/4A each day just for fun
I had enough money to buy a tape recorder. After
all, if I wrote a program nicely 1 day, I could
write it better from scratch the next (ok, we
don't do this in industry
a point.)
Too many who were not "born to code/admin/etc." have jumped on the bandwagon.
I'm out of work. I'm not over speciaized! I know Windows AIX and Linux. I can code ( in C and in a number of GUI RADs if you prefer) and test and document.
Firstly, why would you seriously expect to find
candidates with rich experience at a college?
That comes from years in the real world, not from
jumping through imaginary hoops.
Secondly, the students are doing exactly what the
job market demands. Employers constantly write
very over-specialized job requirements, so naturally
anyone training to enter the market has to focus
on specific narrow requirements in order to get a
job.
I'm a perfect case in point. After 12 years in
commercial software development, I've got a stunning
variety of bullets on my resume, but they don't
do any good in finding a job when they all
require narrow specialization.
Students: Ignore this man. If you want to get
hired out of school, specialize on a hot toolset,
and get some intership experience. If you want
to start your own company, or continue in academia,
by all means, generalize, but your fallback
is in tatters, you must be warned.
-I like my women like I like my tea: green-
funny you should say that -- i'm good at coding but can't operate office equipment to save my life. it took me about 10 tries over the course of two months in order to properly navigate our fax machine. and those big multi-purpose, do-everything enterprise printers? don't get me started.
i'm amazed anyone can use them -- the only time you get to practice is when you're up in front of everyone and other people are waiting in line. maybe that's why i like computers... i can screw them up 95% of the time in private and only show people what i do right ;)
By saying the "computer Field" you are assuming that the "Computer Field" means only developers. What about Infrastructure people? Oh yeah the part of the "Computer Field" that actually keeps corporate america's servers and networking equipment running, which btw is just as diverse and varying as the developement side of things.
Sure schools make you specialize. Most areas of study force you to specialize. Theres simply too much stuff out there to learn evreything in just 4 years. The generlization will come the first time your boss tells you to make orange juice when all you've ever made was koolaid. The pro's are the ones that can learn how to make orange juice and make it with or without pulp before their boss gets annoyed and hires a new juice maker. Get the picture?
There isn't much new to add, but I'd better get my 2c in.
Yes, there are probably 100 clueless people for every clued person. The exact number depends on how much you have to know to "have a clue." Around here, it is called "passion." What do you do when a new technology comes out that is going to be the Next Big Thing(TM)? The answers range from "I was trained in C++ and I will stick with C++" to "ask the boss to send me in for training" to "grab a book and a laptop and try it out for myself."
Theoretically, the clued should have an advantage when it comes to getting and keeping jobs. When the company has to cut back, where will they cut? If your employers have kept any record of performance, your job is safe as long as there are clueless people to lay off first. Which is why those who got a bookstore degree (purchased a couple of Dummies books and got a web programming job 3 weeks later) are currently unemployed.
Well, that works well in theory, and it usually works out in the Real World too. But too often, the Clueless end up in charge. We do it to ourselves -- we hate politics, we'd rather be writing up a nifty hack than writing up specs and memos. So those who struggle with the code but seem to know a little bit about it wind up telling us what to do.
If you're lucky, you'll get someone who knows his/her limitations and who will work with you. Otherwise...
As far as this having to do with a College Education(TM), I think it is somewhat independent. A good geek doesn't need a teacher -- the stuff is always in books. But a teacher REALLY helps. After finishing a decent college curriculum, a student who had internal motivation to learn the stuff will have a well-rounded theoretical background. And if this student spent any time playing with stuff outside of class or doing summer internships, he/she should have no trouble getting a minimal level of experience.
At times, I have to evaluate other people in terms of potential value to my company. "Passion," or internal motivation to succeed, to learn, to solve problems, and to make a great product, is one of the biggest factors in my judgement.
Time flies like an arrow. Fruit flies like a banana.
Of course, with close to 20 years work experience under my belt and graduate degrees in Computer Science, you'd think I should be able to adapt to anything and pick it up in a hurry: I know enough about customs and trends in programming language syntax design and the way distributed systems are architected, as well as issues related to inter-process and inter-machine communication.
Recently, I found myself looking for new work.
It's a tough market, but I'm adaptable, with a proven track record, and willing to take on n-tier ecommerce applications if I have to, despite really liking things like silent set top box designs that suck and decode MPEG2 video from local or remote servers. So, I start looking.
Java, Java, IIS (ugh!), Apache (well, O.K.), PHP (yea, looked at it), mySQL. No big deal, right? C++ and OO skills in general port to Java (it is a simpler language after all), and hey, once you get the code classes and a bit of Swing or AWT, you're rolling. A week, tops. mySQL requires a quick study of SQL syntax and the particular ideocyncracies of that implementation. Yeah, I've configured Apache a couple of times and even set up an HTTPS to HTTP proxy within it for a linuxconf HTTP administrative backend. Kinda cool.
"But, you don't have any real Java experience," I start to hear, more and more frequently. Well, no, I don't really do Java -- I use the best tool for the job, and if Java fits, I use it. It just rarely was appropriate for the domain I worked in (real-time embedded telecom and data acquisistion). But hey, need something client-side in a browser, and yeah, Java is the ticket (unless it's so trivial that Javascript will do -- where's my DOM manual, again?). So? I didn't do Python either, but that didn't stop me from extending Red Hat's Anaconda, did it? And what about the time I had to handle a bunch of regexp matching -- perl was just the ticket. Someone embedded tcl in something we once inherited, so, time to pick up tcl.
Of course, no one believes that anyone can be so versatile, except other people equally versatile. Almost certainly, this excludes HR people. Otherwise, they wouldn't be in HR, would they? They'd be along-side designing, and developing the future.
No, I don't really do Java -- I just pick up the pieces when the outsourced "experts" forget to synchronize appropriate members of the objects they have living inside a multi-theaded servlet engine (why we paid big bucks for Alaire's Jrun instead of using Tomcat, I dunno, but that's another rant).
Here's a bit of advice to people hiring: don't look for someone who can do the job; look for someone who can do the job having to leverage what they know and learn on their feet (and can demonstrate having done this effectively in the past). Why? Because the job will change, and those who can only do, but not think won't.
You could've hired me.
I have a raging case of ADD myself, so I don't have to ever worry about overspecializing... I simply can't. I'm a borderline failure in the industry for being an unspecialized jack-of-all-trades, but if I'd been born 200 years ago I'd have been a *god* in whatever village I inhabited.
Luckilly for me the university I went to didn't teach us tools but techniques and algorithms and how to analyze a problem and attack it.
We used g++ on AIX for C++ courses... I have yet to really use Visual C++.
Many students demanded that we be taught with Visual C++ assuming it would be better for their futures. I think its only better for the resume for companies with bad HR departments who only look for keywords and not people and experiece.
During my degree, I studied:
* data structures and algorithms
* software engineering process
* VAX assembly language implementation
* language implementation, including case studies of about five or six different languages
* artificial intelligence
* operating system theory
* business computing solutions (COBOL, spreadsheet theory (!), etc.)
* Database theory and implementation
* Computer architecture and design, including case studies of perhaps five different CPUs
We started off with basic programming theory, looking at procedural vs. event-driven programming, then moved more into the data structures and algorithms. (Hey, look, that sort algorithm I devised when I was 14 is a shell sort!)
As well as this, my course required a grounding in at least four different sciences (which could be, for example, Computer Science, Pure Mathematics, Applied Mathematics, and Physics). I may be incorrect in saying this, but my understanding is that a typical U.S. degree course would also require several unrelated credits, such as English and History classes. The U.S. degrees (again, in my understanding) emphasise a more general education, perhaps at the expense of teaching the specifics. A NZ or Australian degree, on the other hand, tends to go by the principle that high school is the time to get a general education, and university is more about looking at a specific target (Arts degrees excepted (boy, I know I'm going to get flamed for that)).
How on earth do you test for "ability to adapt"?
The only thing I can think of is a set of nice verified references and a varied work history, but those are so often faked, and usually the best way to a varied work history is a tendency to switch jobs frequently - not necessarily a trait you want.
Good luck!
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
I see this a lot, and I'm afraid I'm one of those "narrow-minded people," to some extent. I think it's just a product of environment for me. I have specific responsibilities at work and am forced to use the tools provided to me. There are times when I have convinced management to invest in new development tools, but even then I found myself ordering what I was already comfortable with so that I could dive right into the project and make management happy. Then again, I'm was a business mgmt. major that was thrusted into the IT workforce after my first real job. As for a college that offers so narrowly-minded courses that their students don't know Apache from MySQL ... that is simply pathetic. College is a place to learn and experiment. And at that age, one is primed to want to see and try new things, especially computer science majors. Professors should be showing bits and pieces of all things IT-related. To focus on this software or that development environment only, simply means that the professors are inadequate to teach the next generations of IT workers.