Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Overspecialization in the Computer Field? 120

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 discussion has been archived. No new comments can be posted.

Overspecialization in the Computer Field?

Comments Filter:
  • by Dausha ( 546002 ) on Tuesday October 29, 2002 @05:25AM (#4554257) Homepage

    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.

    • 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.
      • college may provide background knowledge (mathematics, system architecture...) that may be lacking in the labor world but is useful for designin' complex systems

        a friend of mine who went to college is always the first one i go to when i'm starting a complicated project, mainly because his CS degree involved learning the differences in different algorithms for proccessing input, and he can give me clues as to which ones i'll need to use. OTOH, for his 4+ years of college compared to my -1 year, we both earn almost the same, the difference created by the fact that he entered this field a little before i did.
    • I've been doing the same thing for the past 11 months - working for a software company (in Canada, I come from Australia) - I'll be going home in another months time, to get ready for university, starting in Feb/March.

      I've found this experience is invaluable to me - I've learn't 100x more than my buddies who are doing a Soft/Computer Engineering or Com Sci.

      Gonna be a bit weird going to university with all the youngans we used to scoff in secoundary school ;-).

      Anyhow, I'm just interested in how long you worked for before going to University? Like 1 year seems plenty for me, but there is probably a "magic number" somewhere thats as good as it gets.
    • 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.
    • College versus not (Score:4, Interesting)

      by 0x0d0a ( 568518 ) on Tuesday October 29, 2002 @10:16AM (#4555313) Journal
      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...
      • So what you're saying, is that employers just look down at all of us? =) Sounds about right...
        • 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.
      • >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)...
    • While it's true that book-learning is no substitute for experience, the converse also holds.

    • 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*

  • by tunah ( 530328 ) <sam&krayup,com> on Tuesday October 29, 2002 @05:25AM (#4554258) Homepage
    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...
  • by orthogonal ( 588627 ) on Tuesday October 29, 2002 @05:28AM (#4554268) Journal
    Is the whole world having to show its database developers how to use a copying machine?

    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 .Net Basic IDE drag & drop list.

    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
  • by Anonymous Coward
    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...

  • by Kj0n ( 245572 ) on Tuesday October 29, 2002 @05:55AM (#4554375)
    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.
    • by Twylite ( 234238 ) <twylite&crypt,co,za> on Tuesday October 29, 2002 @06:20AM (#4554443) Homepage

      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.

      • 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).

        I'm currently at Cambridge University (the UK one...), and this is precisely what they do here. The course is mostly a lot higher level than specific implementations, a lot of design patterns and general algorithms, and so on. Java is taught as a language, but the aim is to use that to demonstrate principles. Its also useful for the group projects (to teach you about team work, and software development, not coding) to have a standard language.

        When they do have implementation specific things, they try to put in a range. They teach ML and Java, and insist that the excercises for one are written in windows, and the other in unix, and so on. They also have comparative {OS,programming languages,etc} courses.

        The aim is to produce people who aren't tied to one thing - since that will probably have changed while they are doing their undergrad, but can adapt.

    • I agree completely, but I find very few students with this broad basis. Most of my close friends have it, even knowledge of things not at all related to the computer field, but I find the number of others with a clue about the world outside their department depressing.
  • 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.
    • 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
    • Oh boy, for someone who's never been to uni, you sure do hate it. ;)

      I love university - especially from the third year and up. I also find it obvious those who have been and those who haven't (or been but didn't learn anything). For example everytime someone says "I hate xml because its too verbose"

      Uni covers a lot of things you just wouldn't do in most jobs. Plus not all of us want to be stuck doing sysadmin work - some of us, surprise surprise, would like to do research.
    • One learns more than just jargon at a University. One also learns to communicate coherently, for example. Trying to read your post was so incredibly painful that I was forced to respond.

      I would discriminate against a potential employee simply because of a lack of formal education, but I would definately not hire someone with such abysmal communication skills as you have demonstrated in this post! I sincerely hope that English is not your native language.

      There is another important thing that a degree demonstrates, though: the ability to overcome obstacles, deal with frustration, and accomplish long term goals; all qualities which, based on your post, you clearly lack.

  • by mnmn ( 145599 ) on Tuesday October 29, 2002 @06:14AM (#4554421) Homepage
    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.
    • "Students know all about relational databases, theoretically speaking, but never knew the practical differences between PostGRE or MySQL or why Oracle is so expensive."

      In our university we have two modules on databases - where we cover acid etc, and why its good/bad. If you give me the specs of mysql and postgre I'll tell you which one to use when and where.
  • by Manic Miner ( 81246 ) on Tuesday October 29, 2002 @06:14AM (#4554423) Homepage

    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. :(

    • 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'.

      • 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.

        • This reminds me of when I worked as a lab assistant in college. In the two years I worked there, my assistance to users devolved in the following steps:
          • At first, I would explain the concepts to the user to make sure they understood not just the how, but the why.
          • Over time, this eventually gave way to just telling them "click this button" or "hit this key".
          • By the end of my tenure, I would just walk up, slide the keyboard in front of me, type whatever was needed, and then slide it back.
          The sad thing is that for most of the patrons there was no difference in the three methods. They simply didn't care to know more than the minimum to get the current task completed. Never mind that you might want to know how to do future tasks better. Some were clueful, of course, and they can usually be detected from 50 paces; I still explained the how and why to them. But the others....
      • 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?
    • That seems pretty damn creative to me!
    • I'm a software person myself but I must rebut your post on the Behalf of any Hardware people out there.

      One would say that this person in your computer lab is in fact a knowledgable individual. I never even thought of turning the Monitor on it's side to read landscape documents. I actually think that is a fine solution.

      You my friend should be a little less narrow minded. This person simply used a hardware solution to solve his dilemma. These problem solving people that you speak of (like yourself) only use software to be creative?

      As the orignial poster of this Ask Slashdot said: He is looking for people who have abilities in a wide spectrum of subjects. Open Your Mind Man, Software isn't the only thing that makes a Computer Work!
      • Well, it does seem like a perfectly reasonable solution - unless you really are a "computer geek" - then you know about such things as how tipping the monitor sideways may cause stress to be placed on the CRT (if it isn't designed to be tilted 90 degrees) and other components of the monitor, leading to a potentially dangerous situation. Not to mention that large monitors gain interesting visual artifacts when rotated due to the Earth's magnetic field interacting/distorting the electron beam (though hitting the degaussing function will typically take care of it).
  • In Australia (Score:4, Informative)

    by droyad ( 412569 ) on Tuesday October 29, 2002 @06:26AM (#4554453)
    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)
    • Which university is that?

      Cheers
      craz
    • After having taken computer science courses at one Australian (UQ) and two US universities, I have to say that on average Aussie courses are way ahead. But then again Aussie unis push harder in most disciplines anyway. Heck, even highschool does--the only serious math I did at US unis beyond Australian senior high school level were differential equations 1 & 2.
      • 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.
        • > Wow, TWO whole US universities? That's definitely
          > enough of a sample to make blanket statements

          Relax, sonny, you're not the only one who took statistics and is aware of the concept of significant sample size. Notice that the US sample size is twice the Australian one <g>, so if you want to bitch, bitch on their behalf. Maybe they gave me an unfairly positive impression. Besides, I talk to plenty of people that have been through CS programs all over the place to have a feeling that the top schools' programs are the exception rather than the rule. And yes, Purdue would definitely be more in the exception group.
          • Oh, Computer *Science*. ;) My fault-- all of those folks *are* retarded.

            (I'm just kidding, all the way around. Sorry if the first message sounded miffed, or if anyone is offended by my lighthearted jab at my higher-level programming counterparts in the CS world.)
    • Re:In Australia (Score:2, Insightful)

      by galore ( 6403 )
      you study web development, perl, gcc, grep, sql, cisco... and the emphsis is on theory? um, right.
      • If his Australian University was anything like the one I went to, then the course was indeed mainly theoretical, with actual languages used only for demonstrating an example of the theory.

        That is, any language could be used - in my first year, the main language used for our exercises was Pascal, in second year Modula-2, and in third year we used about 10 different languages over the course of the year - but the point, in all cases, was not to say "I know language X", but to say "I understand algorithm/theoretical concept Y, and I happen to have programmed it in language X".

        (Because, IMHO, Computer Science can't remain purely theoretical - at some point, you have to get your hands dirty (metaphorically speaking, mostly, although some of the computer lab keyboards were a bit grotty) and go from algorithm-on-paper to actual-working-program-which-doesn't-crash)

        David.
    • That still sounds pretty specific/practical to me. In my curriculum, we started with data structures & algorithms, discrete math, theory of computation (e.g. FSMs, Turing machines, the Halting Problem, big-O notation, etc.), then started programming in Pascal. Meanwhile, we were learning about digital logic, and moving on to (micro-)computer architecture (the class project there was to write a CPU emulator) and assembly-language programming. Only after all that did we do any "practical" stuff - C, Unix shell stuff, compilers, software engineering/process, networking, graphics, programming, etc.
    • 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)).
  • by blastedtokyo ( 540215 ) on Tuesday October 29, 2002 @06:28AM (#4554457)
    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.

    • You know that a potential employer is in trouble when they expect to hire people who are already 100% competient at the required task. This approach works fine in the short term, but it breaks when after a few months/years they need to move on to the next generation technology or the company starts developing products in a different area and they find out that the employees do not know how to learn to do something new.

      Instead of hiring people who are already experts, look for people who can adapt, and have the basic skilsl that will allow them to figure out the new stuff when it comes. In other words, hire people who get excited at the opportunity to learn about something new. These are the folks who will be with you for a long, long time.

      • YES! This is the key to tech hiring in my opinion. I was on a hiring comittee (yech) for a position in my department. We were looking for someone with experience at the time and found someone. Now we are in transition to AIX, Oracle and client server from the mainframe world. This guy was given a IBM Ed card that for one year, you can eat as much training as our travel budget allowed. He went to one class and said he's done. (and that was a basic AIX User class with no sys admin stuff at all). Now, he will probably retire when we get rid of the mainframe if we get rid of it (our sysprog is trying to get permission to install a permanent Linux VM and set it up as a DNS server or a DHCP server or some kind of server to prove to out management that Linux in VM is a GOOD THING!). This guy is very experienced with Zeke (which we never ran) and alot of MVS stuff and some VSE stuff. He has NO interest in learning ANYTHING new. The next time we were looking for a new guy we went with someone who wanted to learn and did not have a whole lot of experience except a few classes. He is now a Tivoli Storage admin and at least as competent as I am and I have been working and learning new things for 8 years now. The ones who get passionate about what they work on and get excited when you say WE ARE BUYING A NEW SERVER....:) Those are the guys who you want. Our programmers on the other hand could care less what is in the computer room. They just want to program their little SQL scripts and other things. They don't care about some of the techie things we do that sometimes make life easier for them. Our whole programming staff is like that. Must be why we BOUGHT a new system instead of had them program it.
      • 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.
    • I'd argue against hiring a programmer who can't write well in his or her native language. Applicants who can't manage the syntax of natural language will probably have problems writing clear code in a programming language. And their documentation will be hopeless.

      On the other hand, knowledge of specific tools isn't a key requirement in junior people. That's what manuals and training are for.

  • It's the people (Score:5, Insightful)

    by Inominate ( 412637 ) on Tuesday October 29, 2002 @06:34AM (#4554474)
    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.
    • Re:It's the people (Score:4, Interesting)

      by Milican ( 58140 ) on Tuesday October 29, 2002 @07:43AM (#4554628) Journal
      Good. We need the mundane plebian computer / electronic engineers. That way the rest of us alpha geeks can go on and learn new things while they are re-treading on the same old boring stuff. Then in a few years, we will go on and make more money and get cooler jobs. Their lack of creativity and knowledge will show a few years after they get into the job market. This is an extremely fast paced field where continuing self-improvement of skills will get you a long way.

      JOhn
      • No. You will keep writing code and getting cool programing jobs. That much is true. They will be promoted to management because someone has to be a manager and you're to valuable as a coder. They will make more money than you, have more power than you, and give you stupid assignments based on their limited technical knowledge. You can avoid this however. Don't focus solely on learning technical things. Broaden your mind and learn to see the business aspects of a product and why this or that idea does or does not make sense from a business standpoint. We may like to ridicule the business side of tech, but without it we don't get paid.
  • by sql*kitten ( 1359 ) on Tuesday October 29, 2002 @06:37AM (#4554481)
    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!
    • Many undergraduate civil engineers get the chance to build real bridges with the Steel Bridge Competition [asce.org]

      My personal favorite has always been the Concrete Canoe [asce.org], though.

      In answer to the topic question: You get out of your education what you put into it.
    • A lot of computer programs these days have co-op programs. So at least SOME CS grads should have experience writing real code.

      And anyone who's interested in web development should know what Apache is, even if they've never used it.

      And I believe that good style should be taught as part learning a language. The number of C++ programmers who don't use auto_ptrs or initializer lists or references is truly shocking.
    • 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.

      This evens happens with graduate students. I was in a graduate operating systems course where the main project was to develop a system simulator and operating system for it. The first phase was to develop the simulator and have it run a simple test program which had nineteen lines of code. After the first phase had been turned in for grading, the professor had to chastise some students for hardcoding their input loops to only read nineteen instructions. Similar things happened in other graduate courses, but always by those without any professional experience.

    • No-one expects a fresh CS graduate to be immediately capable of writing production quality code,

      Excluding, of course, those graduates. Every one I've met is quite sure that they are immediately capable of production work. This goes double for people with Master's degrees, and triple for fresh-minted PhDs.

      Of course, in theory, theory and practice are the same...

      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!

      If the tools and materials needed to build bridges cost $200 on EBay, I'd expect that, too. If an art student had spent four years in school and didn't have a broad overview of the topic plus a bunch of specific skills and an ok portfolio, I'd wonder what was wrong with 'em. Why shouldn't I expect that of a CS student?
  • by Some Guy ( 21271 ) on Tuesday October 29, 2002 @07:40AM (#4554618)
    int main( int, char** )
    {
    printf( "Can you define exactly what you mean\n" );
    printf( "by 'Overspecialization'?\n" );
    return( 0 );
    }
  • by Anonymous Coward on Tuesday October 29, 2002 @08:27AM (#4554776)
    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.
    • Right now, I'm a freshman at Arizona State University. Number one reason i am going is because instate is cheap. Second is if its a university, it couldn't be as bad as other college's in the state.

      Well, its been 3 months, I've learned a ton about college. It's responsibility of learning content yourself. My CSE200 course which is a java language programming course is just a snap. I've been programming for so many years that a traditional class doesn't cut it.

      Now, I have brought up numerous subjects of conversation to the students about different programming styles and languages. Frameworks for different developments, Operating Systems etc.

      I've met three people who have used suse linux 8.0 in which they "bought". When i first learned of linux, it was way back before the underground hacker/cracker tutorial sites were exposed to the public(sounds corny don't it ;) )
      and they told me i needed linux to do any real hacking... I was 10 years old shush! So I looked on the net and downloaded and failed to install it heh. Anyways lesson to be told, CS majors aren't prepared for the real world. I'm a CSE major cuz CS is cake because I've already been using many methods of programming in my work. I guess you can say i got the pimples to show it.

      >
      >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!
      >

      Hrm, first class? how do you do that when working on REAL projects or working at an internship...grades are a BS Artist's best friend. Real GNU contributors are the true geeks, who donate their time to a "REAL" cause =)

  • by duffbeer703 ( 177751 ) on Tuesday October 29, 2002 @08:58AM (#4554900)
    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.
    • Personally I believe it to be getting much worse, since I'm currently in a uni and our uni is comfortably in bed with Microsoft. While I understand why any university would be in bed with MS, I still don't understand why a multi-platform approach isn't widely used... the only reason I say this is because in order for us to get our school email we need to login to a UNIX server and use PINE to open our inbox - AND, if we publish static HTML it needs to be done in ~username/public_html. I mean - if they're already willing to teach us basic commands and what not, why not modify the curriculum a bit to incorporate g++?
      • I think that platforms should be ignored in computer science education as much as possible, especially early on.

        Teach students basic concepts on stripped-down, basic implementations. When they have been introduced to data structures and the engineering process, then give them exposure to IDE's and non-ANSI libraries.

        I work some some very talented coders who have started on ancient systems like Sperry and Wang minicomputers -- they learned to program on paper and stand on line to execute code! And they still design & code rings around less experienced developers.

    • 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.

      That's pretty much how my university experience went. I came out a lot better for it too. It's a good learning experience to be given a reference to some tutorial material and told "Learn this language by the beginning of next week".
  • IT vs. Engineering (Score:3, Insightful)

    by forsetti ( 158019 ) on Tuesday October 29, 2002 @09:02AM (#4554920)
    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.
  • 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.
  • Not all universities are like that. Although I doubt anyone has ever heard of it, the whole point behind the CS degree at IUPUI [iupui.edu] 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.
  • by Boglin ( 517490 ) on Tuesday October 29, 2002 @11:16AM (#4555799) Journal
    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.

  • "... 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.
  • Re: (Score:2, Interesting)

    Comment removed based on user account deletion
  • Apache vs MySQL (Score:3, Insightful)

    by Sloppy ( 14984 ) on Tuesday October 29, 2002 @12:04PM (#4556179) Homepage Journal
    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.

    • Maybe they aren't necessarily being taught, but isn't this something that people should know about? The most popular, most common, and most versatile web server software in the world, the basis of IBM's WebSphere (as I recall), basically *the* implementation of the extra fun J2EE stuff (JSP, servlets, etc), and so on.

      Isn't this sort of a big thing not to know about? For a web developer to not know what apache is seems like a database admin not knowing what Oracle is, or a network engineer not knowing what IPX is.

      They're not taught, but people should be studying things they're interested in, and if you're interested in something, you don't restrict yourself to the classroom - you go to Chapters, find a book that looks neat on something you've never heard of in the computer section and then sit down in Starbucks until they kick you out for not buying the book. You check out some CodeNotes [codenotes.com] books, you read slashdot (even if only for amusement, as I do) or check out Wired online every now and then. You don't just learn it, you live it, and sure, you have to live other things too, but why are you spending $40-100k to learn about something you don't have a passion for?

      People should open their eyes, and the submitter is complaining because they don't - and I agree.

      --Dan
  • by Anonymous Coward
    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).
  • 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.
  • 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.
  • I consider that I have a very broad background. But, I am having a lot of trouble in the current job market.

    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 /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.

    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.
    • re: Now, why am I having trouble? Basically, the 'new' market
      (at least for the duration) wants specialists.

      Have a look at my Journal - I think that the hiring people are completely clueless about skill sets.

      SWIT
    • Dude, if you know MUMPS, you should be able to find a job easily in the Managed Care software industry. Talk about your specialization. :-) See if Intersystems [intersystems.com] has a consulting partner program or something. But thanks for making me chuckle over that blast from the past.

      Good luck!

  • 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.

  • by pizza_milkshake ( 580452 ) on Tuesday October 29, 2002 @09:01PM (#4560622)
    Is the whole world having to show its database developers how to use a copying machine?

    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 ;)

  • 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.
  • I am a C++/C/Assembler embedded telecom geek, for the most part. I don't really do things like Apache, Java servlets and applets, and deal with backend databases whether they be mySQL, Postgress, Sybase, or whatever. Nevertheless, I have been exposed to them as part of my day to day work: someone has to deal with the front and back-ends for data that our embedded systems acquire.

    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.

  • 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.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...