Is Programming a Dead End Job?
Embedded Geek asks: "There's an interesting opinion piece at Embedded Systems Magazine about [embedded] programming being a dead end job. The author cites burnout ('Pushing ones and zeroes around doesn't sound like a lot of work, but getting each and every one of a hundred million perfect is tremendously difficult.'), prestige, and skill obsolescence as big reasons for programmers to quit or to go 'over to the dark side' and join management or marketing positions. While the piece primarily addresses embedded programmers, the issue is rising for IT workers and other tech workers. When the age issue is combined with the export of jobs offshore, it makes me nervous just to be pushing 35..." Even though the market is going thru a rough patch, and the number of detrimental aspects to programming are increasing (ageism and so forth), I still do not feel that programming is a dead end job. Computers are going nowhere folks, and as long as they are around, programmers will be necessary. People who are in this career for the money or the prestige may not like it after a while, but the people who are in this for something else will tolerate quite a bit before deciding to opt out. The simple measure here: "as long as you love doing it, you'll keep doing it." Isn't this true for any career?
I think part of this depends on how broad your skills are. Changing careers is very common these days, sticking with one career until the end of time is not. If you've actually spent the time to expand your education (and yourself) to something aside from a few specific thats will get you a good job out of college, then you will have the ability to migrate horizontally and vertically in life. I think it is fairly safe to say that you are less inclined to "burn out" if you are a jack of many trades, as opposed to a master of one.
"Things are more moderner than before- bigger, and yet smaller- it's computers-- San Dimas High School football RULES!"
You simply cannot get a job, even with current skills and a solid history. There is an inherent bias against over 40 coders, we are expected to have moved into management. After the dot com collapse and then the telecom collapse, there are a lot of over 40 coders out there from the mass layoffs.
I am one of them, 44 to be precise. I originally used to put my employemnt history back into the 1980's, and put the years my degrees were granted. And for some reason I never got a call back. So I took all the stuff prior to 1992 out, removed the dates from the degrees, and put the resume back out there.
Within a week, I got 4 job calls where my qualifications and resume were deemed "excellent" on by reviewers on phone interviews, and I aced the tech interviews over the phone as well (I used to be the guy in my group that did the C++ and Java tech screening!). Plus my references were checked, and I have excellent references. I generally interview quite well in person or over the phone, having been a member of Toastmasters due to needing speaking/presentation skills at my old company. Listening is as important as talking.
But when I show up at the "final" interview, in a nice tailored conservative business suit, with my short but gray hair, all of a sudden they seemed to get cold feet. And within a week of each interview every single one of them sent me a "Regretfully you do not meet the qualifications, your resume will be on file for one year" letter.
As long as this continues, then programming *is* a dead end job. You can get snarky if you like, but you'll be here in my shoes one day if you live that long, and you will be wondering why you cant get hired even though you can code circles around half their staff.
FYI, I did get a contract job 2 weeks later where all the business was conducted over the phone. I have had my contract renewed with a raise due to performance, twice, and thats despite the company going through 3 layoffs.
But I learned my lesson, Im getting my MBA and moving into management, even though I make a hell of a lot better systems-architect or software-engineer or developer/coder than I do a manager. I will miss coding for a living, but I'll not play martyr at the expense of my wife and children.
I got a degree in Computer Science from Waterloo University. I am beginning to think I wasted 5 years of my life. U of W is one of Canada's best for CS... they came in 3rd in the last ACM contest behind MIT and Shanghi.
The degree was a lot of work. Many of my friends failed out. There was only 13% girls in my classes and most guys did not have or a girlfriend or have time for one during those five years. I had co-op work experience and had no problem finding a job at Cisco when I graduated. A year and a half later they shut down our division. Now it has almost been a year now and I still can't find work. I have skills such as Java and C++ and excellent references... but no one is hiring.
I remember a long time ago someone from Microsoft made some comment about Open Source hurting the industry. At the time I thought it was an absurd comment. But lately I've been thinking it may be true. a few years ago if I wanted a library API for some network protocol my company would have had to purchase something. However, now there is almost always a free alternative that is of great quality... so there is less and less companies paying people to program things because there are free ones out there. I dunno.. just a thought.
But still... if I had gotten something like a music degree.... I'd probably be equally unemployed right now.... but I'd probably be married too and maybe a little happier.
actually gates is a genius programmer...
Uh... really? Paul Allen was always the "genius" coder. (disclosure: the company I work for is owned by PA) Everything I've ever heard about Gates' actual *code* was that he was only mediocre. That's not to say he was BAD at it, just only ok. On the other hand, he *is* a genious capitalist, or rather, he's really good at exploiting American style capitalism through admittedly brilliant but wholly fucking evil marketing tactics, and making a gazillion bucks in the process.
his accomplishments back in the day far supercede anything ANYONE who posts to this site have accomplished.
no. Once again, almost all the hardcore coding shit from MS was Paul Allen. And as for Bill being a better coder than *any* Slashdot poster? I'm pretty sure that's bullshit.
The Free desktop that Just Works
Progamming in the modern world of computing is a one-time job. Software is written once, and used many, many times. Yes, there is software revision, upgrades, etc., but the bulk of work being done is being done by the /few/, for the /many/.
Therefore, there are only going to be a small amount of meaningful programming jobs relative to the computing industry as a whole, unless the general attitude towards software changes dramatically.
Now, administration is a whole different story. because software tends to be written by the few for the many, there are bound to be issues that those few never thought of. Administration is an ongoing job that everyone needs.
Personally, I think this is a big, secondary reason that so many geeks are perpetually hyped about open source software. It seems to promise that software development will cease to be a few-to-many service, and become a many-to-many service. I think there are a lot of geeks out there working in administration, frustrated with their jobs, wishing to become guru kernal hackers. They feel that if the IT world at large would simply embrace open source, tons of programming jobs would open up for companies wanting to customize and enhance software to fit their needs.
Unfortunately, the reality is not that development is a few-to-many business because of the closed-source model. Rather, development is done the way it is because proramming is *hard*. Nitty-gritty, systems development (as opposed to Web developemnt, or writing DB front ends, or using some SDK with the hard stuff taken care of already) takes real talent, and very few have the talent necessary. Furthermore, it is many, many times more cost-effective to buy software off the shelf (be it open- or closed-source) and pay for high administrative costs than it is to custom-design software to fit an organization's exact needs.
My advice to CS majors is to get used to the idea that you probably won't be coding linked lists and creating filesystems for a living. Learn to be a good Unix admin, how to be a DBA, how to troubleshoot buggy applications and OSes. Learn how to assist and teach non-clued end-users. 1% of CS grads are going to be programmers and software engineers. Guess what the other 99% get to do?
dinner: it's what's for beer
I worked for a manager who had been a developer. After about a year, he decided that he hated managing. So, he went out and recruited a replacement for himself, and went back into development. I'm almost certain his salary remained the same.
It should be noted that Embedded programmer, just like Electrical Engineers, get the shaft big time. Experienced web programmers (non-Microsoft), and many IT positions (like Oracle DBA's) can grab six figure salaries. It's a shame really because I have a great deal of respect for the low level guys, who really have to have a much bigger grasp of logic than those of us working on the higher levels. There are of course exceptions, senior engineers, and managing engineers, but most shops that deal with embedded and EEs have one or two top dogs to a dozen or so poorly (relatively speaking) peons.
I don't find out of country work a problem though. They just don't perform as well as the lazy American counter parts. The money you save in labor costs disappears as when you have a much longer bug/enhancement cycle. Most of which is caused by a culture/language gap.
Outsource to India can work well if you have a product that you have specific bug fixes that need to be done. But new products that require a really good analyst to have face side with the business and really hammer out details. Business like working face to face with someone who knows the lingo and can instill confidence. And they are willing to pay two to three times as much for that fuzzy feeling.
Hell, I love to hack...when I get home. My job has become more a place where they issue paychecks rather than the place where I code. Why?
Because of everything else unrelated to coding that I have to fend off: meetings, fickle graphic designers, shrinkwrap software that doesn't work and I end up "supporting," a boss that buys servers by the bushel because we have to use or lose our budget.
In short, I already am a manager.
Besides, at age 29, I cannot see myself with a family (I want one) if I'm spending 8-12 hours in front of a computer by day and a couple more by night to hone my skills. I don't instant message, own or carry a cell phone or pager, or pick up a phone without screening it via answering machine, and I still don't have a life to speak of. I've forgotten what a tit feels like!
Actually, I take that back. I'm growing my own.
I love programming. But it is a solitary discipline in its purest form. Unfortunately, there's too many people throwing their hats into the design process. And then you start coding from specs, and the specs change.
So lately, I'm neither programmer or social butterfly. I could code righteously, but only if there's nothing to code. It's a Catch-22. Yossarian lives!