Apps

Why outsourcing is scaring off potential CS students

Enrollment in Computer Science programs continues to drop. Former Ivy League professor Steve Holzner explores what's at the root of this trend and talks about what can be done to turn things around.

Computer Science (CS) was whooping it up big-time during the dot-com mania -- everyone and their brother/sister wanted to be a programmer. CS enrollment soared because students clearly saw the field as the road to riches. You couldn't turn around without hearing about yet another 18-year-old millionaire. Everyone older than 18 became jealous enough to open The C Programming Language by Kernighan and Ritchie -- at least until they started to read it.

The dot-com bust put the kibosh on the CS mania. After soaring to the heights, CS was in the depths. But that's not enough of an explanation for the persistent out-ness of CS these days.

The revamping of CS programs

There's a lot of debate about whether CS is too tough for today's students (see Alice for example). I've been associated with a technically-oriented course at Cornell University, and I've seen firsthand that students are dramatically less prepared than they were in previous years.

The failure of student preparation is a big topic at teacher conferences. Whether it's from the self-esteem movement or the conversion of schools from primary education halls to primary discipline tanks, this is a real effect. Throughout the past 10 years, the course I mentioned had to drop more than 40% of its content to keep the same grade distribution due to students' lack of preparedness.

CS programs have responded to this trend, and there's little doubt that CS curricula have been watered down significantly in the last decade or so; this gives the curmudgeons much to gripe about. While the CS of old went its own way, often lofting itself into the most recondite of mathematical excursions (we've lost some high-flying topics such as advanced pointer theory), the CS program of today has become much more applied. I think this is great.

Don't get me wrong: I'm not for getting rid of mathematical and technological rigor -- far from it. But when that rigor becomes an end unto itself, that's a problem. When you find that your latest CS problem set calls for you to write a "compiler compiler" (i.e., software that creates abstract compilers -- and, yes, this is a real example), things have gone too far. For too long, CS was floating in the academic clouds, detached from mere concerns such as code optimization, speed of execution, or using languages that 99% of employers actually wanted you to use.

It should be lauded that CS is coming back to Earth. You actually stand a good chance of being trained in something you can use on the job these days. So why hasn't that helped slow the exodus of students from CS programs?

The misperception of outsourcing's effect on programming jobs

You'll find the real answer if you spend some serious time with corporate programmers, which I do. It turns out that there's widespread despondency out there among many pros working for Fortune 500 companies. The bugaboo can be summed up in one word: outsourcing.

If I had a nickel for every corporate programmer who told me that they wish they had gone into any field other than programming, I'd have -- well, a lot of nickels. The general feeling seems to be: "How can I stake a career on a job that may be gone tomorrow?" And that's what's affecting potential CS students as well.

I used to teach classes of 400 to 500 students in the hard sciences at Cornell, and I would sometimes ask them if they ever considered other disciplines. The most common objection to CS was just that outsourcing = death.

Well, the rumors of CS's death have been greatly exaggerated. The real problem is the pendulum of perception has gone too far. Yes, outsourcing is a problem, but it turns out that it's not a catastrophe. Many U.S. companies don't want to take out detailed contracts with a consultancy in Mumbai -- they just want someone to do their programming. And they're willing to pay for it. As a result, there's a shortage of qualified, experienced programmers in the United States, as anyone on headhunters' e-mail lists (and therefore keeps getting daily beseeching e-mails) can attest to. If I were tempted to live in New York City, it would be pretty easy for me to pick up a job that paid $100 per hour or more.

All this gives me hope that the two sides of the equation -- U.S. programmer supply and demand -- have become roughly balanced, with a deficit on the supply side. Potential CS students have yet to cotton on to that, but I do believe it'll right itself in time.

So, potential CS students, listen up: There are programming jobs out there. Now get to work.

Steve Holzner is an award-winning tech author of more than 100 books about topics which include AJAX, XML, Java, Joomla, PHP, and Ruby. His books have sold more than 3 million copies and have been translated into 18 languages.

56 comments
Refurbished
Refurbished

Are they scared off by all the talk about oursourcing, or by the experiences of the programmers they know? If many of the programmers you know are unemployed, or recently have been (possibly for several months), or able to get work only as contractors, they may feel that a different field would be better. This is especially true if the ones who are working feel overworked and underappreciated.

Kam Guerra
Kam Guerra

Let???s start with the fallacy of your comment ???As a result, there???s a shortage of qualified, experienced programmers in the United States,??? There is no shortage of programmers. There is however a shortage of companies who pay a decent wage, who provide decent continuous benefits, and a stable work environment. In an effort to trim costs companies, large mainstream companies and smaller ones, are requiring developers to supply their own equipment, buy their own development environments, and absorb travel expenses. Even the cube that developers occupy is timeshared with other developers. Eventually once projects end the developers are laid off. Recruiters and HR are under the gun to get developers in the door my any means necessary and most of the lie about everything they can. The major jobs board are saturated with misleading ads promising great and wonderful things ??? now go ask them to put any of it in writing and you???ll get a different story. I doubt there???s a board or a company out there making promises that doesn???t have a file at the IC3.

Mark Miller
Mark Miller

I kind of disliked this article, because Holzner thinks it's a good thing that CS is becoming more "applied". Let me tell you what that means. It means gutting the CS theory and teaching how to create database web applications in Java, and how to manage IT systems. It turns CS into a vocational program. IMO it's a ripoff to offer this as a legitimate 4-year CS degree program. You can get this sort of training at a community college or at a private university, likely for less in tuition costs. The reason CS departments are doing this is they're trying to survive at any cost. It doesn't make any sense to me, since you can get an equivalent level of training in a CIS major now. Maybe the CS department is teaching algorithms to add some "CS twist" to the applied program, but it's a pale shadow of what the CS curriculum is. Last year I met with some of the faculty from the CS department of my alma mater, and I heard about their "applied" program. I was a bit shocked at first, because I barely heard any "CS" in it. It was as I described above. My former advisor told me, "It doesn't attract the best students, but it's very popular." That said it all. They still have their traditional CS major, but the enrollment in it has been small. It's sad to me that the only way they can think of for increasing enrollment is to copy what the CIS department is doing, rather than thinking outside the box and seeing if perhaps they just need to enliven the program with stuff that's actually interesting. I now know that CS is far from boring stuff. I've had to figure that out for myself. The CS training I had years ago barely spent any time on it. I agree that CS always had some incompatibility with business IT, which is where a lot of the jobs have been for decades, but looking back on it I wouldn't give up the CS education I had. In fact I wish it would have been better, in the sense of doing stuff like building a "compiler compiler" (yacc, anyone?). Holzner thinks that's useless knowledge. But it's knowledge that's derived from that sort of stuff which helps people trained in CS not become "blub" programmers.

microface
microface

I agree that the outsourcing craze is a very real problem for CompSci students. That is why only Engineering students at my university, actually are taking CompSci courses. There is not a single Computer Science Major student for the entire department. The students who are engineering majors all use Comp Sci as a tool, not an end to itself. Even the students that I have talked to who are taking Applied Numerical Analysis want nothing to do with Database design, or implementation, because of fears that they would be made obsolete by India, Russia, or Israeli developers.

mikifinaz1
mikifinaz1

Well, I fortunately or in some cases unfortunately have lived long enough to see many things spoken of come to pass. Education I remember when all this bugaboo about education started and yes it all has come to pass. Virtually every "kid" thinks that they are the center of the world, don't have to work hard and if things don't work out they can all become a rock star. Like most real world complex problems you can't lay it at any one person's feet. One can only wonder though at all the money, time and attention given to educational institutions for sports at the expense of the real reason for getting and education - the academics. Kids that hot breath you feel on your neck is some kid in China going to a Chinese university (working hard supported by parents, teachers and THE STATE) who is well trained and has been honed by strict competition based on his grades not the fact that he was on the cheerleading squad. The same thing is also true of outsourcing. I was working at Microsoft when they first started using teams offshore. I saw the writing on the wall then and tried to rally the troops, but to no avail. Both symptoms of a larger problem. Most young Americans think the world owes them something. It doesn't. Oh well, I got mine too bad for you.

kitico
kitico

I am a professional programmer with a degree in CS, but I am not concerned about outsourcing at all and I don't know anybody who is. I believe you, Steve, when you report what you have heard, but outsourcing fears have subsided and I think there is a general recognition that people want to do business face-to-face. Employers want to deal with their programmers on a personal basis (or at least be able to). What really turned me off to CS as a field of study at the University (Rutgers) was the open hostility and arrogance of the faculty. I was much more attracted to the Math department at Rutgers since the faculty really seemed to care about their teaching duties. I did take my degree in CS from Rutgers, but I wonder why anybody would want a CS degree from such a faculty. Why not major in mathematics if you are quantitatively oriented? You will be treated with respect by the professors and you will still get the chance to write code if that is what you seek.

clark.nelson
clark.nelson

Your example at the end of your article is telling. If you wanted to live in New York you could get a job for $100 per hour. I could do that 10 years ago in Hartford. The outsourcing craze has driven the real good money out of programming.

Fregeus
Fregeus

I would like to see a non-programmer CS degree. I've been in IT for 14 years now and I realized early enough that programming was not for me. Not that I could not understand the theory, I just couldn't handle coding all day long. So I went into the technical support side of things and I would really like to see a CS program for that aspect of IT. There is nothing I hate more than being turned down for a position because I don't have a University degree. TCB

jmgarvin
jmgarvin

I think a lot of people thought of CS as, "gee I can go write games." Then they get into the programs an realize it's difficult programming. I think CS should probably be segmented into disciplines as well. Not everyone with a CS degree wants to be a code monkey...so let's think in terms of outcomes...what do you want to do with your CS degree? Do you want to focus on networking? Then it's graph theory, algorithmic analysis, finite state automate, etc for you. So you want to develop OS kung fu? Then delve into the realm of OSs, systems programming, scheduling theory, probability , etc. The list goes on...We need to think about creating a CS degree with X focus so that we get grades into the jobs they want to do.

Justin James
Justin James

I agree, the fear of outsourcing is very overblown. Well... not entirely. Outsourcing affects people who are doing commodity work. For example, someone grinding out objects to do basic XML work, the stuff where you use a code generator and then tweak the output, that's work that can easily be send offshore with relatively little repurcussions. But the kind of work where the programmer is doing more than just coding against a simple spec, that's the work that provides secure employment. I've never known a senior developer (or architect for that matter) who was doing senior level work who had their job outsourced. I've seen a lot of junior and intermediate jobs, or senior developers doing work at that level, go overseas. But from the perspective of a college kid, it's a bad proposition. There are three types of potential CS majors. "Gold diggers" who heard about the quick bucks to be made; the dot-com shakeout squeezed most of them out, and the potential ones are looking elsewhere. The "diehards" who would major in CS even if it paid less than the WalMart greeter. And the majority of the folks are simply smart kids, possibly with a technical mind or an *interest* in computers, but no overwhelming desire to be in computers. If they take a survey class in accounting, they could end up accountants and be just as happy. Those are the folks for whom the outsourcing fear is scaring away. The "gold diggers" don't want to be near anything hard (they all started getting MBAs a few years ago). But the middle road folks... they want something secure, stable, and pays well. Nothing wrong with that, and every industry needs folks like that in it. But I agree, the fear of outsourcing is starving the US of qualified graduates, which further encourages companies to send the work overseas! J.Ja

Tony Hopkinson
Tony Hopkinson

but there are bound to be some even if it's 'just' rationalisation after buy outs. Mind you that won't be quick, in fact it might even create some jobs in order to remove others. The skills to merge databases and functions are a lot rarer than some like to think. A few high level consultants are going to get a nice fat cheque....

jck
jck

Glad I'm leaving private enterprise for a local government job right now. They hit their bottom. Let private industry suffer. I'm movin out.

Tony Hopkinson
Tony Hopkinson

Watering down CS is a mistake, without the tools it gives you certain advances are impossible. It would be better to 'elevate' CS to the level of pure math (AI theory, for instance) , and have a more applicable course, for the general run of the industry. The key point is that in order for it to get off the ground, the hirers for all but high end R&D would have to consider it a more suitable qualification. Concentration on some of the softer aspects of practical software development, as opposed to simply watering down the theory is a much better way to go. I too find many CS topics interesting, jobs where it's required are few and far between though.

jck
jck

what do you mean by "rally the troops"? Get them to all walk out? Or get them all to work 90 hour weeks? Just curious. I used to work at a multi-billion dollar corp, and "rallying the troops" or "organizing a tiger team" or "doing a little extra" meant 70-100 hour weeks and never enjoying your home or family. Just wonder if MS was the same way.

Justin James
Justin James

I actually liked my CS 111 professor there (Venugopal), but he was a very down-to-Earth person (I beleive he had a lot of experience at Lucent). My CS 112 professor was good too, a grad student transferred from Stevens. My 203 (or whatever Discrete Structures was)... different story, much closer to your experiences. The thing with Rutgers CS is that it is in the old school vein of "CS is a specialized math degree". If that's your thing, it is a pretty good school for it (to quote Venugopal: "I can name 30 or so CS schools better than Rutgers, but none of them are cheaper"). If it's not your thing, you either suffer through it, or you do what I did which was change majors. To this day, I am glad I did, because Rutgers is one of the top places in the world to learn the things I learned there, and my professors were awesome. But it is a shame that its CS program isn't a bit better, especially considering that NJ is more tech dense than even California! J.Ja

LyleTaylor
LyleTaylor

What you're asking for sounds a lot like a CIS degree. You do a little programming to get the feel of it, but it seems that it's more higher level and applications focused than a CS degree (from what I hear - I have a CS degree). Seems to be popular with people that may want to move on to an MBA or into systems management or something like that.

djones60
djones60

Depending on where you live you can get a CS degree in informatics. That is for the non programers. Look at Indiana University and their program.

Justin James
Justin James

This was a discussed a while ago on this space, and the bast majority of people involved in that conversation thought so too! We would also like to see the traditional CS course replaced by a 4 year vocational school for people who want to be programmers, but want to be business oriented programmers rather than "computer science" oriented programmers. J.Ja

1bn0
1bn0

You know, for that job posting you k=just reviewed where they want a candidate who can do EVERYTING and , oh yes 35 years experience with Microsoft Windows, DOS, UNIX LINUX, assembler, hardware design, (so you can change that bad video card),........... Just kidding, but I think it is the flip side to the problem. They teach everything because employers expect everything. Employers (those MBA's you mentioned) need to have there expectations adjusted as well.

verelse
verelse

...cleaning up the crappy code from foreign incompetent programmers. not all are incompetent, but the big outsource firms hire any nincompoop that can spell "VB" or "C" and tell them to point and click their way to success. Good news is that H1Bs will be virtually eliminated in the next few years and one-person shops that H1B themselves will be disincorporated. No company that gets a bailout should be able to outsource....

Locrian_Lyric
Locrian_Lyric

An eventual shortage of senior IT folks. Face it, if the Jr level gets laid off a few times, or can't get a job our of college, he's going to move on to a field where he finds stability and employment. As we first and second generation geeks get older, there is not going to be anyone to replace us.

Locrian_Lyric
Locrian_Lyric

:D Though with the baby now, I would rather make a bit more than a greeter :D

Mark Miller
Mark Miller

This is the reason I've said for a while that universities need to gear software CS education towards research rather than "churn it out" employment. The old ideas of how to use PCs, minicomputers, and mainframes have matured. There aren't really any new ideas in the field. If there is less money going towards technology innovation it's because there's nothing inspiring investors to put money towards it. By this I mean an actual new idea in computing/software technology. I think universities are partly to blame for this. They used to have more of a research focus. Now they're slouching towards commodity skills in this field, out of a demand that they train skilled workers. The only exceptions I've seen in recent years is MIT and perhaps CMU. By and large hardware/robotics in CS has started to look more innovative than software, because they've put a research focus behind it. Meanwhile the software "arm" of CS is basically teaching Java certification.

jmgarvin
jmgarvin

It needs somebody to make CS interesting, yet still cover the difficult concepts...

jmgarvin
jmgarvin

I had no idea, that's pretty crazy...I can't imagine a place more dense than where I live (Bay Area)...Beyond cool! On that note, I've found the good CS programs are those at the smaller schools or schools really known for their CS programs. Another little nugget, is that the school has to understand that CS is NOT math, it's CS (or Computer Witchcraft as a crazy French professor once told me). I think as the old school starts to retire (in the next 10-15 years), we'll see a HUGE change in academics and how CS is presented.

LyleTaylor
LyleTaylor

If you want to move away from the theoretical aspects of CS and simply learn to program, why in the world would you need a 4-year vocational program? It doesn't take 4 years to learn to program at an entry level. That could easily be accomplished with a 2-year associates degree. The majority of the other 2 years of a CS degree are general education, mathematics, science and theory along with a broader range of subjects.

jck
jck

I have seen jobs in the past that said "5-7 years .NET experience..." when .NET was only 4 years old. lol It amazes me. Used to be you could be a programmer...and design and write code...and work with the DB admin to design the data repository. Now, I have to install my own development environment...setup my own databases...configure servers...configure PCs...troubleshoot SQL...troubleshoot OS scripts...etc etc etc. It's like the business world has made IT people be "fully redundant" with respect to each others jobs. Specialization is a thing of the past now, I think.

Jaqui
Jaqui

I'll adjust their expectations ~looking around~ now where did I stash that dynamite again ... a stick in the anally-retentive ones and light the fuse will clear them out.

Justin James
Justin James

That's what I meant when I said that a lack of new people results in more outsourcing. If I can't find quality junior level people, that means tha tI need to outsource, even if I don't want to! And those junior level folks overseas eventually become senior level folks, and the lack of junior people here results in a lack of senior level people here. In 10 years, probably 50% of the current "senior level developers" will not be developing... they will be retired, moved to management, changed job tracks, became architects, or whatever. Meanwhile, I see little to give me reason to beleive that their shoes will be filled. In a sick way, I sort of look forwards to this. I can't wait until my market value graph looks like the price of a barrel of oil, up up up through the magic of supply and demand. J.Ja

jck
jck

how many people come out of school with a BS in Comp. Sci. and start as a Sr. Programmer? Answer: None. Either our talent pool diminshes in programmers, or we send people to India and China to work, or we train them all and get them MBAs and make them project managers instead of letting them pursue their love of technology and programming. To be honest, I'm about to become a Senior Programmer. And, I know what is happening with outsourcing to India. I spoke to a company owner in St. Petersburg, FL a few months ago. He is simply taking and gathering specifications from clients for VB6 projects, and sending them to a code farm in India. They do all the project development and management from design to implementation to testing. I see this being a cascading thing. I don't see the bleeding stopping any time soon. Maybe I'm just negative, but I've seriously considered going back to school and getting a law degree or becoming a medical doctor/researcher. You can't outsource those.

Justin James
Justin James

"Aren't community colleges the new vocational schools? It seems like that's the place where that could be developed more. They seem to be already set up for it." They are, for some things. Nursing, for example, and other healthcare related fields that do not require an MD. But not programming, at least not yet. A large part of the problem is that for the average person coming into school with basic computer literacy, 2 years is hardly enough time to scratch the surface of producing a quality programmer, especially with all of the other general education requirement. What I've seen come out of 2 year schools with Associates Degrees is roughly equal to what I've seen from Chubb, DeVry, etc. People who have been taught one or two languages at a basic level, the skeleton of a typical business application, and just enough SQL to get themselves into trouble. Basically, someone who requires a lot of polishing to be effective in the workforce. A proper "vocational" traning program for a developer would need to teach so much more! J.Ja

Mark Miller
Mark Miller

Justin, you've just brought together two ideas that have been in my mind for quite a while. I really didn't put two and two together. I think you're absolutely spot on about what's happening, and now it makes sense to me. I watched an Alan Kay video a while back, I think from 1998, where he talked about going to a dinner party in the UK and a lady walked up to him and said, "You Americans have the best high school education in the world." Kay was aghast, "What??" He knew the state of high school education: not good. She followed it up with, "Too bad you have to go to college to get it." Then he got it. :) I've heard about this from people from foreign countries, even one guy in Central America: What universities teach in the U.S. is basically what they get in high school. Yet from what we have come to understand over the years, we have the best university system in the world. Maybe what this really means is you get a good university education in graduate school, and with Ph.D. programs. With global competition, high school graduates here are competing against high school graduates abroad. Our high school education sucks compared to theirs, so naturally jobs head on out. That's the reason an undergraduate degree is increasingly becoming a requirement to get anywhere. It's been that way at least since the mid-1980s. I remember hearing about this back then. You are so right, though, that since "college is the new high school" universities are having to take on vocational tasks. They weren't designed for this. That's the reason it's looking like such a tragedy. I read an article in the June Atlantic Monthly, "In The Basement of the Ivory Tower" (at http://www.theatlantic.com/doc/200806/college), that brought this into its most tragic focus. A university English professor tells the story about how he teaches night courses, and a large number of his students are there for vocational reasons. A lot of them were middle aged. They needed to take a certain number of college credits to get a certification for a job, or a promotion. He said so many of his students are ill-prepared for college material. A lot of them needed remedial education. Some needed to just plain go back to high school. Basic things like writing a college research paper were just over their heads. A lot of them didn't understand how to use the internet at all, much less a computer. Most of them did not have a good literary background. He said the only "literature" he was able to find that ALL of his students could relate to was the movie "The Wizard of Oz". He actually used it in his course, trying to eke out some literary understanding with it, casting it as a quest narrative. He flunks a lot of his students, and he hates it, but he doesn't want to debase his course just to pass people. He said the main problem is this idea that "everyone should have access to higher education". He agrees it's a nice idea, but it's not working in reality. The one idea he suggests that I think needs to be looked at is offering someplace where adults can go to get remedial education to prepare them for what college is now. Aren't community colleges the new vocational schools? It seems like that's the place where that could be developed more. They seem to be already set up for it.

Justin James
Justin James

... the shoddy education system in the US. It used to be, we gave a good, practical education in high school, and people who wanted a solid theory education to launch them into various fields could get that through college. There was a solid foundation of vocational training in high school and after high school, as well as a variety of 2 year colleges and trade schools. Additionally, unions maintained strong apprenticeship/journeyman programs to teach people trades. Now, the public school system is in tatters, the unions are getting weakers every year (not saying they were great, but they *were* good at getting people into a trade and tranining them), and you are looked at as a joke if your training came from anything other than a 4 year university or college. So now, our high education environment is trying to fill the role of "vocational training", and not only are they doing a lousy job of it, but they are debasing the quality of their academic programs in the process. I knew something was severely wrong when colleges were offering degrees in "restaurant and hotel management", like it takes a freakin' degree to run a restaruant or hotel... all it needs is atention to detail, customer service skills, and a lot of experience... J.Ja

Tony Hopkinson
Tony Hopkinson

CS used to be very necessary for simply doing the job, when we were doing our own non-standard representations, parsing dynamic instructions, deity forfend writing our own sort routines.... Now that's all pretty much wrapped up.

Tony Hopkinson
Tony Hopkinson

if it isn't then 'you' are in teh wrong class, the problem is it's now where near as practical as it used to be. A lot of the fundamental it teaches are nicely wrapped up in a well proven class. I was faced with replacing a parser in legacy code recently to do various calculations that change by version. Did I sweat an toil over infix expression parsing for numerics and logic, did I heck. Used IronPython, the guy who wrote that did need his CS degree, or at least equivalent knowledge

Justin James
Justin James

Last I heard (early 2000's), NJ had the ost MA's and PhD's in the country, per capita and the most high-tech jobs, per capita. Remember, it is home to nearly every pharmeceutical company out there, a great many chemical companies, and a number of telecommunications companies (AT&T, Lucent/Avaya come to mind immediately). Sure, the Bay Area is probably denser for tech jobs, but overall at the state level, NJ is the place to be. That's one of the interesting little secrets in this industry. The Plano TX area is like that as well, as is the Raleigh NC area (lots of big companies moved a ton of engineering efforts to both of those areas). Charlotte NC is a big hub too, mainly because Bank of America and Wachovia are both headquartered there; lots of opportunities for people with financial sector experience there. J.Ja

Justin James
Justin James

I've looked at a number of different programs, and I do not feel that 2 years is adequete to learn to be a good programmer. You might learn to write *code* over the course of those two years, but employers are demanding more and more of employees, even entry level employees now. For example, how much experience with Agile or Waterfall methodologies will be taught in two years? How much will the student learn about working in a team? Or good practices like using version control? When I say a "vocational training", I mean truly that, teach the students to be "job ready" the day of graduation, not just give them the basic skills needed to get an entry level job, hang out there until they are no longer "entry level" and then jump ship elsewhere. Here's a huge problem, really. Entry level people get hired dirt cheap, because they are essentially worthless to a programming project. Indeed, in many cases, entry level people need so much handholding, there is a negative ROI on hiring them! So what happens? They get paid peanuts. The really good ones don't get brought up to market pay rates, because we all know that yearly raises never equal what you get for jumping to another company. So the very best and brightest of the entry level people end up getting training and mentoring, and then leaving as soon as they are polished. And the ones that stick around are the mediocre ones that are not quite bad enough to let go. That's a dumb situation if I ever encountered one! :) J.Ja

Jaqui
Jaqui

I detest HR types, they all seem to be braindead monkeys. I've converted a friend from windows to linux, and gotten him into programming, but it took several years. I worked with his learning style, which is to let him hit his head against the wall until he realises he needs to look at different methods of accomplishing the task. :D I just need to suggest a different method while he is hitting his head, sooner or later he will look at it and start getting the results he is after. He now knows more programming languages than I do, and is getting close to my understanding of methods.

Tony Hopkinson
Tony Hopkinson

feel that CS outweighs AS and they don't have a single clue what either teaches or it's relevance. As for learning to program, if you have the ability I can teach you in ten minutes. Four years is so you learn when, why and what, how is simple compared to those.

marie.truman
marie.truman

Many organizations hiring for programming positions require a 4 year degree.

jck
jck

where I am now...the stress is killing me...my BP is up 45/20 points...i've done nothing but gain weight because i don't get but about 15-25 mins for lunch. it's why I'm leaving here. I am going back to working where I can be home every night (instead of a 1 room apartment with a futon for a bed 5 nights a week) and can go for walks in my neighborhood and smell fresh air...rather than driving back and forth 2-3 days a week. BTW...if you want a house in Florida, let me know. They're pretty damn cheap here now. lol

jmgarvin
jmgarvin

I still love IT, but I think that's why I've gone into training...I'm tired of the BS, and with training I get to play with the new toys AND have less stress ;-)

jmgarvin
jmgarvin

Unless you have very little content, they just aren't useful. We use a blob to store attachments, and while the blob is small, it's pretty darn quick, but when it's been running for a year or five, it slows WWAAYYYYY down. Let's not forget that MSSQL is clunky to begin with, so using a blob just makes it worse. On that note, what's MySQL doing with blobs now? I might have to check it out.

jck
jck

I don't know. I am about to start as a senior programmer at another job in a couple of weeks. I am going to start out by working on a huge system that is Access/VBA and try to do upgrades and fixes to it. I'm hoping to talk the director there into letting me re-write it in VB6 or .NET 2003. I could make it perform so much better. I am truly considering a career move, though. Computers used to be something I stayed up all night to do. Whether gaming, programming, BBSing (yes...I'm that old...remember 150 baud connections), and other less legal acts (I was only 13 then...can anyone say red box...black box...cheese box? lol) Now, I'm looking to go into PC repair and sales and making. I can buy parts from online and build PCs that run better than Dells for about 15-70% cheaper, depending on options. And what I would make in repairs, that would definite be better income than what I make even in private enterprise. Plus, I'd be my own boss. I can buy cheap book keeping software to do all my receipts and tax filings and what not. And, I could schedule my own vacations. Plus, I can just move and open a shop somewhere. I can't always find a job with people who don't know me and the quality of work I do.

jmgarvin
jmgarvin

It's true, I'm a guru at my companies products, but I'm only familiar with IIS, comfortable with SQL, and ok with Win2k3, and able to code, a little, jscript. I mean, honestly, how can you be a guru in more than 5 VERY deep IT tools?

Jaqui
Jaqui

is more in the resource consumption. The larger the db is the more resources needed to handle the result set(s). the blob is a hog almost by default. [ if it's used for multimedia content it is a hog. ] Why put yourself into the position of having to throw hardware into the equation to make things run right? MySQL now handles blobs better than it used to, most website scripts using it are throwing any files used into blobs still, and the performance hit is nowhere near as bad as it was. Though that may be from throwing hardwre at the issue, more ram on the servers to speed up the system.

jck
jck

And someone needs to get that taught to them. Otherwise, the least common denominator is going to keep osmosing into the quality of work. I mean...I can configure and admin SQL Server...code VB.NET...design DBs...configure Windows NT/2000/2003 Server...configure workstations...edit policies and registries. But, I am not a guru on any of them. Why? Cause, I can't learn 5 things at once when they roll out new versions. Even I'm human :^0

jmgarvin
jmgarvin

Nobody can be a web guru, a dba, a dev, a sys admin, a net admin, and security admin...it's just not possible to maintain the entire data set in your brain. With that being said, more and more, the role is IT and less and less is it a specific job function, which is to the detriment of IT. Would you hire an HR person to do accounting? How about a lawyer to do sales? It just doesn't make sense...The world of IT needs to be looked at and the MBAs need to understand it's just not possible to be the guru of all.

Justin James
Justin James

I agree that DBAs are much better at designing DBs that programmers, all else being equal (level of experience, for example). That being said, I think that this *particular* example isn't the best. It used to be a good example. Why is it no longer the best example? Three reasons: 1) Sometimes, particularly with PHP-based systems designed for widespread distribution, DB BLOBs are the best way to go for certain reasons. For example, many of these systems are designed to be installed with the assumption that the person installing it is either prevented from, or unable to figure out CHMOD (or the equalivalent mechanism), or may otherwise not be able to give write access to the file system to the application. In otherwords, the DB is the *only* thing that the application designer knows will be writeable. Another issue is that the DB abstracts away the concept for file access. You don't know, for example, if the application will be installed on Windows or *Nix, which makes "basic" things like paths tricky for certain things. Using the DB as a file store is simply easier. 2) The performance issues around BLOBs are, for the most part, resolved. MySQL lags in this regard, but for Oracle, SQL Server, and probably PostgreSQL, BLOBs are not a major performance hit like they used to be. 3) Simplification of the backups. Simply do a DB dump and your entire application is instantly portable after you re-install the application and copy the 1 config file that basically just points to the DB. I agree, however, that the majority of application developers will want to continue to put pointers to the file system in their DBs, and not use the DB as the file system, for the time being. J.Ja

jck
jck

lots of programmers would make that mistake. i learned from DBAs, so I know all sorts of tricks to optimizing performance. Just that specialization to one field is pretty much dead now. Even most DBAs I know around have to not only master the DB environment. But, their employers tend to want them to be able to program in VB or C# or something web. It's like doing one job isn't good enough anymore.

Jaqui
Jaqui

"Specialization is a thing of the past now, I think." While you can design your own database, it is doubtfull it will be as effetive as a dba designed one. A good example in a not well designed db, php nuke website script, seriously slow when the mysql db reached 35 MB, and the site had only 15,000 members. [ site in question had two installations of phpmygallery, customised for a gallery and for a downloads section respectively ] The problem lies in the common practice of actually storing FILES in the db instead of urls for the file location.

Mark Miller
Mark Miller

I won't doubt your experience. That's just what I've heard re: repeatable processes. I've heard this from people who have done outsourcing. I've also read that often outsourcing is a prelude to automation. So a lot of times it's not a permanent move, but the jobs are gone for sure. Another thing I've heard is that particularly with the cheap outsourcers you have to specify [i]exactly[/i] what you want, because that's all you're going to get. Consumers of custom software often don't know what they want up front and they need a more interactive process. They want to specify some details, but they also want to leave some things up in the air. This doesn't work so well with a cheap outsourcing arrangement, because whatever they leave out will be left out, and the outsourcer is not going to call you back asking questions. They'll just leave it broken.

jkameleon
jkameleon

The nature of computing industry is definitely cyclical, you are right about that. PR and hype are making these cycles deeper, longer, and more painful for everybody involved. > Secondly, anything that is repeatable is a candidate for outsourcing. Wrong. Anything that is repeatable is a candidate for automation. Doing repetitive tasks is what why we have computers for in the first place. The strongerst candidates for outsourcing are highly skilled, often very creative, and highly technical jobs, which can be easily specified. State of the art communication equipment is probably the best example. Specification is fairly simple, basically it's "whatever goes in, must come out at such and such speed". Under the hood, though, such equipment is often very complex, there is a lot of high science involved. Dull, tedious, hard to specify jobs, on the other hand, tend to stay onshore.

jkameleon
jkameleon

> In a sick way, I sort of look forwards to this. I can't wait until my market value graph looks like the price of a barrel of oil, up up up through the magic of supply and demand. First off, it's not sick. It's economically reasonable. I don't think our value graph will go the way of oil. We are not non-renewable resources, far from it, and we have the whole world to compete with.

Mark Miller
Mark Miller

It goes both ways. I hear about the H1-Bs and L-1s that come over here. Aren't they taking the jr positions that "Americans won't do"? Re: your salary going up and up Like you said, eventually the jr's overseas become the sr engineers. Then you're in competition with them. I agree that the threat of outsourcing is overblown. When I first heard of the outsourcing wave in 2003 it was plastered in a few places, particularly the magazine rack at your local grocery store. From the research I did on it, it sounded like the amount of outsourcing going on was extremely small. The PR effect was much higher. What people saw was they couldn't find work. No one was hiring until about 2004 (the "IT depression" began in 2001 from my perspective). When you combine that with the headlines about outsourcing, people put two and two together and said "game over". Students just out of college ended up abandoning their hopes of getting into the field and went back to school for other careers. I think the truth was it was all a mirage. The reason it seemed so bad was that no one was hiring, but for different reasons. The dot com bust was working itself out, the credit crunch that came from it was also working itself out. Once that was resolved things started coming back, even though outsourcing continued. If we pay special attention to what was going on in the 90s we see the same pattern. The economy went into recession in the early 1990s. Ed Yourdon wrote "Decline and Fall of the American Programmer", published in 1993, talking about outsourcing to India and how they're so much better than American programmers. People thought then, "game over". When the internet boom happened, outsourcing continued but you wouldn't have known it because there were so many technical jobs here. My own theory is up until the internet boom PCs in IT were basically a cottage industry. When things went bust before, most people didn't pay attention. After all they weren't involved in the field. A lot more people got involved with it in the internet boom. When it went bust a lot more people noticed. People concluded it was a dead end career, one that wouldn't last them for very long. A lot of people didn't realize that the computer field has gone through boom and bust cycles many times before. It's been the nature of the beast, unfortunately. I think it's because the tech boom from the 1970s on was largely driven by PR hype that drove people into a frenzy. For the most part it held empty promises which always came down to Earth at some point, and caused the industry to crash. As time passed, real uses were found for the technologies produced. Then the hype cycle started up again, enticing new "fools" into the market. The cycle repeated. Another aspect to it is the perception of "nerds" in the computer field, that somehow being in IT turns you into a dull, lifeless social outcast, sitting in a cubicle all day. The cubicle part has some truth to it, but I personally didn't feel socially isolated. I think the truth is CS and IT doesn't have the power to turn anyone into a social outcast. If people feel that way now they probably felt that way before they entered the field. What I've always heard is that positions that involve face time with customers are the least likely to be outsourced, because they're nearly impossible to do from a distance. There are software development jobs that involve client contact. It's the non-client facing positions that people have to be worried about. Personally, I've seeked the client-facing development jobs, because I've found them more fulfilling. Getting feedback from customers about my efforts is great. Secondly, anything that is repeatable is a candidate for outsourcing. If all you do is the same code over and over again, then your job is at risk. Besides I'm sure it bores you to tears. If it involves creativity and thinking, there's less of a risk. Again, I seek out those sorts of opportunities because they're more challenging and fun. So in short, I think a good rule of thumb is if your programming job is boring you, that's a sign to get a more exciting job, because if you don't leave it, it's eventually going to leave you.