The software profession is in the same state that the auto industry was in, in the 1970's. And facing even heavier competition for each job.
When I started my career, 15 years ago, you could be trained on the job. You could go on to make 100+k/year, just programming. And you would continue to be trained.
But now companies can hire from abroad very easily. People coming in from abroad will work for 40k/year or less. Because their goal isn't the software career it is to get a Green card.
People here on L-1 visa get paid far less. And the companies that hire them, exclusively hire from within their own country (and ignore resumes from ordinary U.S. Citizens).
The world has 8+billion people, and with that number there are 24 potential workers for every working U.S. citizen. Don't even try competing, because as a U.S. citizen you will need several hundred thousand dollars over your lifetime just have a living wage, while a worker who comes here from abroad need only about 6000$ or less per year to achieve what is considered to be a living wage in their home country.
Your best bet is to bend your career path with the times. Choose a career that makes use of that which is culturally unique about yourself. Your fluency in English and writing skills could make you an excellent documentation professional. Documentation is not as easy to outsource (and consequently gets paid very well right now).
You can still code for free on the side, many people do. Maybe it will turn in to a programming career (for a few it has).
Further you are better off being the hammer (owner, manager) and not the nail (software engineer) in the software industry. Get an MBA and a technical degree can be a better, more lucrative path. (Be the hammer, not the nail)
The great fallacy in the software industry today is that companies are looking for great talent to fill their software engineering positions. When the fact remains that most H-1b visas are issued to people right out of college with bachelors degree, from a foreign university. These same H-1b workers are then brought in to the United States where the experienced U.S. worker (often with a more advanced degree) is required to train the foreign worker. The U.S. worker (the one with more talent and experience) is then let go.
Discussion on:
View:
Show:
I wonder when the cost of living will go down, which is the only thing that can make Americans "competitive" again?
... if you are willing to live like they do abroad. Look at the illegal migrant farm workers. They live 5, 10 to a house, might share one or two old vehicles amongst themselves, and live very frugally in terms of power usage, gadgets, clothes, etc. I have had times in my life where I needed to cut expenses to the bone. I promise you, you can work as a cashier at WalMart, cart collector at the grocery store, or a basic laborer on construction crews near minimum wage, and live a better life than the average person in many of those countries live!
The difference between the cost of living in the US and abroad is *not* the *cost* of living, it's the bottom standard that an American considers acceptable. For example, before my wife moved in with me, I would only turn on the heat or A/C in extreme conditions, and as a result, my gas/electric bill was typically around $60 a month. The day she moved in with me and we started setting the thermostat to *her* preferences, as well as other habits she has (leaving TVs and lights on all the time), the power bill started averaging $250 a month.
So yes, if you are willing to live competitively with the third world, you can still compete on price.
That being said, Indian developers are now commanding salaries around half of what US developers make. Factor in the expenses of communications, the time delay issues (everything has a 24 hour turnaround), the cost of regular visits, etc., and I think that companies that really do the analysis are finding that offshoring is not quite the cost saver that they thought it was.
J.Ja
The difference between the cost of living in the US and abroad is *not* the *cost* of living, it's the bottom standard that an American considers acceptable. For example, before my wife moved in with me, I would only turn on the heat or A/C in extreme conditions, and as a result, my gas/electric bill was typically around $60 a month. The day she moved in with me and we started setting the thermostat to *her* preferences, as well as other habits she has (leaving TVs and lights on all the time), the power bill started averaging $250 a month.
So yes, if you are willing to live competitively with the third world, you can still compete on price.
That being said, Indian developers are now commanding salaries around half of what US developers make. Factor in the expenses of communications, the time delay issues (everything has a 24 hour turnaround), the cost of regular visits, etc., and I think that companies that really do the analysis are finding that offshoring is not quite the cost saver that they thought it was.
J.Ja
I had to laugh when you described your $60 utility bills -- your experience was exactly the same as mine before marriage.
It's my understanding that the cost of living is increasing in many places in India. As the middle class grows in India, more people want cars, and iPods, and big screen televisions. It's inevitable that labor costs will rise in India, China, and other places that are currently outsourcing hotspots.
But, as Toni pointed out, outsource services are getting better at what they do. They'll continue digging into the software market in the US, taking away jobs from US programmers.
IMO, it's not just the loss of jobs that makes software engineering unattractive as a career. It's that outsourcing provides a low-cost alternative to hiring local talent. It means that jobs that may have paid $80,000 in the past will be offered at $50,000, simply because the employer knows they can outsource the work for $40,000 if no one takes the job.
Outsourcing degrades the profession (IMO). It's making the software engineering profession much less competitive than it used to be. In most cases, the employer couldn't care less about a person's credentials -- all they want is the product to be built or maintained at the lowest cost.
The last paragraph of your post is exactly my experience. By the time the overhead of outsourcing is figured into a project's cost, outsourcing is much less rewarding than initially planned. However, too often short-sighted management sees a $20 an hour outsource vs $60 in-house, and makes a decision that costs US jobs.
It's my understanding that the cost of living is increasing in many places in India. As the middle class grows in India, more people want cars, and iPods, and big screen televisions. It's inevitable that labor costs will rise in India, China, and other places that are currently outsourcing hotspots.
But, as Toni pointed out, outsource services are getting better at what they do. They'll continue digging into the software market in the US, taking away jobs from US programmers.
IMO, it's not just the loss of jobs that makes software engineering unattractive as a career. It's that outsourcing provides a low-cost alternative to hiring local talent. It means that jobs that may have paid $80,000 in the past will be offered at $50,000, simply because the employer knows they can outsource the work for $40,000 if no one takes the job.
Outsourcing degrades the profession (IMO). It's making the software engineering profession much less competitive than it used to be. In most cases, the employer couldn't care less about a person's credentials -- all they want is the product to be built or maintained at the lowest cost.
The last paragraph of your post is exactly my experience. By the time the overhead of outsourcing is figured into a project's cost, outsourcing is much less rewarding than initially planned. However, too often short-sighted management sees a $20 an hour outsource vs $60 in-house, and makes a decision that costs US jobs.
Less expensive often times means "cheap"
The code stinks and can't be maintained. The quality of the work being done in the US is still much higher than the work done via out sourcing. I'm not sure that will be fixed any time soon. There are so many factors that will be difficult to overcome.
In any case, I think it's still a growing field and the ability to understand what needs to be done as well as get it done will continue to grow in importance. That is difficult to do from India via a conference call.
I've come to find that the difficulty in system development ISN'T the coding. That's the easy part. The hard part is determining what needs to be done.
The code stinks and can't be maintained. The quality of the work being done in the US is still much higher than the work done via out sourcing. I'm not sure that will be fixed any time soon. There are so many factors that will be difficult to overcome.
In any case, I think it's still a growing field and the ability to understand what needs to be done as well as get it done will continue to grow in importance. That is difficult to do from India via a conference call.
I've come to find that the difficulty in system development ISN'T the coding. That's the easy part. The hard part is determining what needs to be done.
It is possible to make a killing in the smartphone ecosystem. Can anyone back me up on this? Afterall the article did suggest that being smart will need to be one of the skills that a budding programmer will need to possess.
The smartphone ecosystem isn't a great way to make money, unless you are using the apps to drive some other monetization (like apps that are a value add to differentiate your company, or apps that are advertising another product). The app stores got taken over by the 99 cent and free apps, and almost no one is making money selling mobile apps right now, except in a few rare cases.
J.Ja
J.Ja
10-4 on the quality thing. The title of this reply is -- no joke -- a comment left in some C# code by a former green-card contractor at the company I currently work for. His code was the absolute worst -- his approach to handling errors was to insert Try..Catch blocks around everything, but with no code in the Catch section. Errors were trapped, of course, but the user was never informed and no effort was made to handle the exception.
(BTW: The translation of this comment is "Validate info of tab before tab changed")
(BTW: The translation of this comment is "Validate info of tab before tab changed")
This is basic commerce! When its cheaper, it will come from some where else. Talent or goods or services, same thing.
Stapler pins (from the day that i know) have been coming from China to Sri Lanka. Google maps and lonely planet have made the jobs of the tourist guides old fashion!
You guys in US need to stop whining about it and see what your edge is! You have many more oppotunities in the field it self.
Stapler pins (from the day that i know) have been coming from China to Sri Lanka. Google maps and lonely planet have made the jobs of the tourist guides old fashion!
You guys in US need to stop whining about it and see what your edge is! You have many more oppotunities in the field it self.
And you lived in the US, what would your advice be to your child on how to capitalizing on the "Edge" they can provide?
In the IT field, companies are generally more apt to off shore technical jobs/work like low value, dba, qa, help desk, programming work. If you're going into these areas, just be prepared for it, ensure you're at the top of your game and more important focus on getting results while on the job, as referrals and references are key in this market. On the other hand, the more 'customer facing' IT jobs such as, IT business analyst, project manager, software deployment consultant or business consultants are less likely to be off shored. Generally, there's enough of a gap in quality when off shoring, so it makes sense for companies to keep these roles in house.
Hope it's helpful, good luck.
Hope it's helpful, good luck.
I've been in the IT industry for 15 years, 8 of them as an IT consultant. You should learn more about the real issues in IT/ the H1B program and off shoring. And be leary of anyone who's accusing American's of "whining" in this very bad economic climate. We have every right to be concerned about jobs, especially IT jobs that are being outsourced by the thousands. I suggest looking at these issues and ensure your that your child, if they want to get into IT, get involved with Medical IT, or other IT areas tied to stable businesses (e.g. medical, energy, government).
I wouldn't solicite advice from someone who doesn't live here or from someone who looks at the unemployed, or those who are concerned for the future of IT, as complainers... These are real issues and we in the US need to support one another. In the long haul, even with the best education, experience and technical degrees, many IT workers are struggling, because much of the IT work is being off shored to workers in other counties who charge $15/per hour. It's a sad reality, but it's not about skills or degrees in this case, simply a matter of $dollars and cents. Just be prepared for this and be sure to write your politicians to stop the H1B/ Doha Round programs.
Best.
I wouldn't solicite advice from someone who doesn't live here or from someone who looks at the unemployed, or those who are concerned for the future of IT, as complainers... These are real issues and we in the US need to support one another. In the long haul, even with the best education, experience and technical degrees, many IT workers are struggling, because much of the IT work is being off shored to workers in other counties who charge $15/per hour. It's a sad reality, but it's not about skills or degrees in this case, simply a matter of $dollars and cents. Just be prepared for this and be sure to write your politicians to stop the H1B/ Doha Round programs.
Best.
My friend, ....
The US currently employs socially irresponsible trade policies which are eliminating IT jobs, and depressing salaries/rates for IT workers, so corporations can make more money. Sorry dude, we can "whine" about poor health care and well these policies warrant some additional "whining" as well. Actually, we need more discussion about these issues, okay more "whining" if you will =). This a DEMOCRACY, this is freedom of speech,... what a great country where the populous can in some cases push politicians to do the right thing. I suggest, you stop whining about all of the whining and educate yourself on these very real issues in the US. It's clear based on your post you don't have a real grasp of these issues.
By the way, you should be informed that you have fired from your job and you're being replaced by someone in Africa who can do your job for 10 cents per hour. Please no "whining", discussion, or blogging about this as we make the transition. You may want to try and educate yourself, get another degree or certification... but even then we are not sure if we, or any other company will hire you back =P. Don't forget, there's always unemployment... but when you get back on the market, you may be able to get a job making $1/3 of the salary you are making now,... again we're just not sure that this will even happen, but wish you all the best.
The US currently employs socially irresponsible trade policies which are eliminating IT jobs, and depressing salaries/rates for IT workers, so corporations can make more money. Sorry dude, we can "whine" about poor health care and well these policies warrant some additional "whining" as well. Actually, we need more discussion about these issues, okay more "whining" if you will =). This a DEMOCRACY, this is freedom of speech,... what a great country where the populous can in some cases push politicians to do the right thing. I suggest, you stop whining about all of the whining and educate yourself on these very real issues in the US. It's clear based on your post you don't have a real grasp of these issues.
By the way, you should be informed that you have fired from your job and you're being replaced by someone in Africa who can do your job for 10 cents per hour. Please no "whining", discussion, or blogging about this as we make the transition. You may want to try and educate yourself, get another degree or certification... but even then we are not sure if we, or any other company will hire you back =P. Don't forget, there's always unemployment... but when you get back on the market, you may be able to get a job making $1/3 of the salary you are making now,... again we're just not sure that this will even happen, but wish you all the best.
I don't know if the person who asked the question really wanted to do video games vs. corporate programming, but video game development can be less than $500 for the software needed (assuming he already owns a computer). All you need is a place to live (your parents' house?) and some time. I do recommend some form of official training, though; if you can't think abstractly enough to program, the training course will let you know.
As for software, you can use C# with the XNA Game Studio (first download Visual Studio 2008 or 2010 Express C# edition, then the XNA Game Studio 3.x), MilkShape (if going for a 3D game), some form of TorqueBuilder by Garage Games, and the GIMP for textures/images.
If you want to do an XBOX Indie game, you'll also need a $99 per year fee for the Indie license, and $50 for a Gold Xbox Live membership. Otherwise, it's free for PC development.
As for software, you can use C# with the XNA Game Studio (first download Visual Studio 2008 or 2010 Express C# edition, then the XNA Game Studio 3.x), MilkShape (if going for a 3D game), some form of TorqueBuilder by Garage Games, and the GIMP for textures/images.
If you want to do an XBOX Indie game, you'll also need a $99 per year fee for the Indie license, and $50 for a Gold Xbox Live membership. Otherwise, it's free for PC development.
Any individual working on a game is going to have a very difficult time making ends meet. The days when a simple 2-D game like Tetris or Asteroids would keep a person entertained, much less be a compelling purchase, are long, long gone. "Real" game development (these days) requires millions of dollars in graphics, sound, etc. Also, the programming skills necessary to utilize physics and graphics engines are considerable. Just stupid stuff like collision detection and flicker-free animation requires some pretty significant programming skills.
(However, it is really cool -- as you point out -- how inexpensive the tools have become! Graphics and physics engines used to be terribly expensive, and are now very accessible to everyone.)
(However, it is really cool -- as you point out -- how inexpensive the tools have become! Graphics and physics engines used to be terribly expensive, and are now very accessible to everyone.)
You're right about a 2-D game not making a compelling purchase, but that's an "old school" model. There is money in online games (think Zynga - Farmville, et al.), and online purchases of stuff for playing a game. It's actually ridiculous, but that's the train I want to ride.
That's the edge you need - follow the market and follow the money.
That's the edge you need - follow the market and follow the money.
You should change that CS career to an MD. They haven't outsourced doctors to India yet.
Perhaps in some areas, outsourcing will be a little problem by companies that haven't felt the burn yet. However, in many areas, outsourcing has been tried and has been repealed because of all the problems and inflexibility. Banks, trucking companies, trading firms, large chain stores, (etc) have always been hiring and the salaries are still very good as long as you don't live in a hyper-inflated area (such as california, ny, dc area).
Internships can help a great deal in getting your foot in the door, but even without them, you could easily land a job paying $55K out of any 4 year school.
Programming is not and never will be going the way of manufacturing. There will always be some company that needs changes made or integrations performed on its internal systems, and they will prefer an in house employee with company/industry specific knowledge to do it.
The big difference programming makes is that after you learn enough, you can go into almost any industry you want, and that can't be said for many jobs. However, expect your salary to top out at around $80K with 5 years experience unless you go into management afterward.
Internships can help a great deal in getting your foot in the door, but even without them, you could easily land a job paying $55K out of any 4 year school.
Programming is not and never will be going the way of manufacturing. There will always be some company that needs changes made or integrations performed on its internal systems, and they will prefer an in house employee with company/industry specific knowledge to do it.
The big difference programming makes is that after you learn enough, you can go into almost any industry you want, and that can't be said for many jobs. However, expect your salary to top out at around $80K with 5 years experience unless you go into management afterward.
"Programming is not and never will be going the way of manufacturing" -- where have you been the last 10 years? It's already gone in many places.
I agree there will "always be some company that needs changes", but they sure ain't paying what they were paying 10 or 15 years ago. Many of my friends were making in excess of $150k in the mid-90s as independent software contractors, and virtually all of that work has disappeared.
$80k with 5 years experience? Are you serious? A guy with a BS in computer science and 5 years experience is lucky to get $60k or $70k these days.
I agree there will "always be some company that needs changes", but they sure ain't paying what they were paying 10 or 15 years ago. Many of my friends were making in excess of $150k in the mid-90s as independent software contractors, and virtually all of that work has disappeared.
$80k with 5 years experience? Are you serious? A guy with a BS in computer science and 5 years experience is lucky to get $60k or $70k these days.
I guess it depends on where you are. My experience is primarily in North and South Carolina. There are plenty of businesses that DO NOT outsource. The reasons that they don't can be because they can't (defense and some banking sectors) or that they won't because they need local employees that either have to travel or deal with clients that want to talk to people that speak native English and have a similar vernacular (many others).
I understand that not everywhere is going to be the same, but good results are still there if you go to the right places. My knowledge is mostly of the charlotte and raleigh areas of NC.
I know plenty of people that fit what I said earlier. I know a guy with just a high school diploma and 3 years of .Net experience that just left his job for a job that pays $76K with all kinds of nice benefits.
I know a guy with 3 years of experience and a BS in CS that makes $70K, a guy in raleigh with 2 years and a master's in CS that makes $63K with awesome benefits, and the list goes on and on.
It all depends on the industry and company you go into. Insurance, software specific companies, stock trading companies, mortgage companies, and bigger banks all are paying premiums and you don't need more than 4 years experience if its in in-demand skills.
If you don't believe me, just do a careerbuilder search in IT with a salary filter, and you'll see several that meet the criteria, but keep in mind that a lot of companies don't post it. Also, you can go to glassdoor.com and sign up (for free after you post an anonymous salary or review to help the site) and you'll see the same thing from actual employees. Hiring is rampant now in the banking area and a lot is contract to hire.
Yes, gone are the days of "the gold rush" in software development, but is still plenty of good jobs out there that pay well.
My dream was to be a programmer, and if someone is passionate about it, then they should know what's available. Anyone that doesn't have the drive to solve problems and is looking just for a check probably won't last long.
I understand that not everywhere is going to be the same, but good results are still there if you go to the right places. My knowledge is mostly of the charlotte and raleigh areas of NC.
I know plenty of people that fit what I said earlier. I know a guy with just a high school diploma and 3 years of .Net experience that just left his job for a job that pays $76K with all kinds of nice benefits.
I know a guy with 3 years of experience and a BS in CS that makes $70K, a guy in raleigh with 2 years and a master's in CS that makes $63K with awesome benefits, and the list goes on and on.
It all depends on the industry and company you go into. Insurance, software specific companies, stock trading companies, mortgage companies, and bigger banks all are paying premiums and you don't need more than 4 years experience if its in in-demand skills.
If you don't believe me, just do a careerbuilder search in IT with a salary filter, and you'll see several that meet the criteria, but keep in mind that a lot of companies don't post it. Also, you can go to glassdoor.com and sign up (for free after you post an anonymous salary or review to help the site) and you'll see the same thing from actual employees. Hiring is rampant now in the banking area and a lot is contract to hire.
Yes, gone are the days of "the gold rush" in software development, but is still plenty of good jobs out there that pay well.
My dream was to be a programmer, and if someone is passionate about it, then they should know what's available. Anyone that doesn't have the drive to solve problems and is looking just for a check probably won't last long.
Interesting information! I'll check out the sites you mention -- down here in Florida there appears to be quite a bit of outsourcing. Also, the payscales tend to be less than in many other parts of the country.
The info you provided is very encouraging. I've been planning to go back to contract work this year -- at least then the compensation is more directly linked to performance. (I'm on the low end of your citations -- with 2 master's degrees (MBA, MS) and 17 years of solid SW development experience.)
I agree emphatically with your thoughts about "know[ing] what's available" -- it's foolish for me to sit here, frustrated with my current position and not doing anything to improve the situation.
(BTW: I lived up that way -- Winston-Salem -- a few years back. Pretty nice part of the country. The people in NC are the real deal.)
The info you provided is very encouraging. I've been planning to go back to contract work this year -- at least then the compensation is more directly linked to performance. (I'm on the low end of your citations -- with 2 master's degrees (MBA, MS) and 17 years of solid SW development experience.)
I agree emphatically with your thoughts about "know[ing] what's available" -- it's foolish for me to sit here, frustrated with my current position and not doing anything to improve the situation.
(BTW: I lived up that way -- Winston-Salem -- a few years back. Pretty nice part of the country. The people in NC are the real deal.)
MD's have their own issues (malpractice, lower fees from insurance companies, stress...).
If you like programming, give it a try. Why not? We will all be working until we drop so there should be plenty of opportunities to try new things if programming doesn't work out. Keep learning - make yourself marketable.
I have been programming for 25 years and have seen lots of outsourcing but somehow I keep managing to find jobs. The pay is not great anymore and maybe the prestige is lower than it used to be, but you can make a living at it. It depends what your goals are.
If you like programming, give it a try. Why not? We will all be working until we drop so there should be plenty of opportunities to try new things if programming doesn't work out. Keep learning - make yourself marketable.
I have been programming for 25 years and have seen lots of outsourcing but somehow I keep managing to find jobs. The pay is not great anymore and maybe the prestige is lower than it used to be, but you can make a living at it. It depends what your goals are.
It's not rampant, but it serves to warn one that you simply need to be among the best.
http://www.msnbc.msn.com/id/6621014/
http://www.nytimes.com/2006/04/19/business/19leonhardt.html
http://www.msnbc.msn.com/id/6621014/
http://www.nytimes.com/2006/04/19/business/19leonhardt.html
I was getting ready to write a response explaining why I would not recommend any young person go into IT, particularly software development. I was going to talk about how things were back in the mid-1990s, when I started, and how they have changed.
And here is Jake Leone, who has written it for me.
Well, done, Jake. Well done.
And here is Jake Leone, who has written it for me.
Well, done, Jake. Well done.
Thank you for sharing your perspective, ... finally somone who gets it. =)
interesting in and of itself, then not just no hell no.
Despite the lady waffling about software development just being about gluing more stuff than was ever thought possible together. Those of us capable of more than that, are all watching with great interest for this poorly designed inefficient teetering monument to incompetence to come crashing down on management ears.
Generally it's hard, unsatisfying, repetative and gets very little respect, so unless you were going to do it anyway, don't bother.
Despite the lady waffling about software development just being about gluing more stuff than was ever thought possible together. Those of us capable of more than that, are all watching with great interest for this poorly designed inefficient teetering monument to incompetence to come crashing down on management ears.
Generally it's hard, unsatisfying, repetative and gets very little respect, so unless you were going to do it anyway, don't bother.
just like it.
Should I be a programmer was never a question, how and when, no if involved. After that I've had good times and bad ones. The biggest challenge faced by corporate IT developers is persuading management to let us use our talent, not finding ways to use it. Those are all over the place, if you enjoy the doing in and of itself.
The last thing we need is yet another poor deluded fool coding for prestige, power or money. Sit in your basement and invent AI, if that's your goal.
Should I be a programmer was never a question, how and when, no if involved. After that I've had good times and bad ones. The biggest challenge faced by corporate IT developers is persuading management to let us use our talent, not finding ways to use it. Those are all over the place, if you enjoy the doing in and of itself.
The last thing we need is yet another poor deluded fool coding for prestige, power or money. Sit in your basement and invent AI, if that's your goal.
If you do retail software, the programming department is treating like gods of all creation and profit. It really isn't always so dreary. The only thing that really annoys me is the same thing that annoys every developer, having to support legacy code, and having to suffer restraint on innovation because "we are not ready yet for that".
Also, I am so sick of reading boiler plate business talk from "The Big Book Of Business BullS**t" on every contact from management.
Also, I am so sick of reading boiler plate business talk from "The Big Book Of Business BullS**t" on every contact from management.
Legacy retail software

To be fair, working on something new, as in really new is a rare opportunity for most of us, worth wadimng through teh usual cpation change and rebranding drivel to get there.
To be fair, working on something new, as in really new is a rare opportunity for most of us, worth wadimng through teh usual cpation change and rebranding drivel to get there.
Would you rather be working a cash register at Target? Selling cars, or homes, or insurance or IC Fab machines?
Teaching is satisfying - if you're willing to halve your pay. And hold on through budget season - you're not safe if you're good, only if you're senior.
I don't think software is harder than digging ditches, plumbing, cooking, commercial fishing, or being waitstaff at the local TGIF. Oh, maybe being the manager of the TGIF will be grand?
With insdustrialization and mechanization of work it gets repetitive - as part of making the work process more efficient and driving down costs. Fork-lift drivers drive fork-lifts - all day and they don't usually switch to doing electrical work in-between shipments.
We are not all going to be an overpaid CEO or other C-level executive. If not, this seems an agreeable way to put bread on the table, get a chance to think and create and not get home any more achy, tired or injured than I was when I left.
Teaching is satisfying - if you're willing to halve your pay. And hold on through budget season - you're not safe if you're good, only if you're senior.
I don't think software is harder than digging ditches, plumbing, cooking, commercial fishing, or being waitstaff at the local TGIF. Oh, maybe being the manager of the TGIF will be grand?
With insdustrialization and mechanization of work it gets repetitive - as part of making the work process more efficient and driving down costs. Fork-lift drivers drive fork-lifts - all day and they don't usually switch to doing electrical work in-between shipments.
We are not all going to be an overpaid CEO or other C-level executive. If not, this seems an agreeable way to put bread on the table, get a chance to think and create and not get home any more achy, tired or injured than I was when I left.
There are equally unrewarding jobs out there, but occasionally I get something interesting to do, and what ever choice I make, food on table, roof over head and clothes on backs is why I'm taking this crap.
The whole article made a lot of sense and was well written, until the editor entered the last paragraph in which she attributed a rewarding career only on the basis of getting into good schools and achieving high grades.
My personal opinion after 5 years of interviewing software engineers locally and abroad is that the most creative and high EQ minds are those with average or above average GPAs. So i beg to differ on this point!
Thanks
My personal opinion after 5 years of interviewing software engineers locally and abroad is that the most creative and high EQ minds are those with average or above average GPAs. So i beg to differ on this point!
Thanks
IF you don't mind corporate mentality that will hire slave labor (China) over you because they can hire a dozen of them vs. one of you even at entry level. (They'll still go with India over us, even though they probably think that India is starting to get greedy.)
Face it, Some places here in the U.S. are expensive, no matter how much of a miser or how frugal you are...
IF you are going into software development, it better be because you really like it, otherwise you'd be better off becoming Mr. Goodwrench (or equivalent) if you are after money. AND if you do go into it, expect an uphill battle even for the cheapest paying IT jobs because they'll scam you out of the running for the H-1b Visa slaves.
Face it, Some places here in the U.S. are expensive, no matter how much of a miser or how frugal you are...
IF you are going into software development, it better be because you really like it, otherwise you'd be better off becoming Mr. Goodwrench (or equivalent) if you are after money. AND if you do go into it, expect an uphill battle even for the cheapest paying IT jobs because they'll scam you out of the running for the H-1b Visa slaves.
Great article, the military reference is true. I spent 10 years in the Air Force as an aircaraft mechanic and when I started my desktop support career my troubleshooting skills were 10 times better than my co-workers. Those skills allowed me to get promoted several times.
its really really beneficial for me bcoz i m Graduate engineer but i couldn't justify my self that how should i start with Software field but after seeing your guidance i got my target and path as well . thnank you so much Toni Bowers .
whenever i will be able to U.S. i would like to meet with you any how .
Yours sincerely
Er.Ajay Parashar
Banglore ,India
08105526289
whenever i will be able to U.S. i would like to meet with you any how .
Yours sincerely
Er.Ajay Parashar
Banglore ,India
08105526289
I read so many articles talking about Programmers and Software Engineers, but no one ever bothers to take the time to define each profession.
I am inclined to think they are one and the same. Software Engineer write software (the blueprints), and Programmers write software. What is the difference?
I am inclined to think they are one and the same. Software Engineer write software (the blueprints), and Programmers write software. What is the difference?
We write code from blueprints.
In smaller companies however, they are often the same thing, far as I know.
In smaller companies however, they are often the same thing, far as I know.
Programmers are generally thought of as Application Programmers, namely those who code instructions for business such as banking, insurance, investments etc.
Software Engineers develop/enhance software tools such as Access, Excel, FTP etc
HTH
Software Engineers develop/enhance software tools such as Access, Excel, FTP etc
HTH
a programmer took a design usually in some sort of pseudo code and implemented (translate in many cases) into a target language.
Sound simple but back then you were much closer to the machine.
So you had a systems engineer doing the high level work design work from requirement and the programmers realising it.
There are other titles, Architect, Devloper, Solution provider...
The distinction between programmer, developer and software engineer is pretty much dead now, execpt in one or two niche areas.
Sound simple but back then you were much closer to the machine.
So you had a systems engineer doing the high level work design work from requirement and the programmers realising it.
There are other titles, Architect, Devloper, Solution provider...
The distinction between programmer, developer and software engineer is pretty much dead now, execpt in one or two niche areas.
Software Engineers design software while programmers code software.
Building business applications start with a lot of initial documentation covering gathering requirements, prioritising needs, designing, testing, change managment, confguration, costing etc.
Programmers in a business environment can't run off and start coding applications. They have to be guided by scoping documents in order to make products that are fit for purpose.
Of course yo will usually find people with hybrid skills but this is the simplest way to make sense of the confusion.
Building business applications start with a lot of initial documentation covering gathering requirements, prioritising needs, designing, testing, change managment, confguration, costing etc.
Programmers in a business environment can't run off and start coding applications. They have to be guided by scoping documents in order to make products that are fit for purpose.
Of course yo will usually find people with hybrid skills but this is the simplest way to make sense of the confusion.
Whenever I code software, I design as I'm coding, so I'm the Software Engineer/Programmer.
I think the difference is more distinguished in a larger org where someone designs the software, then someone codes it from the design docs/UML.
I think the difference is more distinguished in a larger org where someone designs the software, then someone codes it from the design docs/UML.
Very risky especially as you encounter business change and things crop up that weren't captured earlier. Always a good thing to have a mix of skills in a team.
In my experience, a programmer can only effectively handle design issues on the program he is writing. If the project requires more than one program, he may be able to decide how to organize the processes, or he may have trouble. Given a truly large project requiring perhaps hundreds or thousands of library routines and dozens or hundreds of programs all which must be fully coordinated and integrated, many programmers will be involved but there will probably be no programmer on the team really capable of grasping the overall requirement and developing a comprehensive and coherent design for the work. This is the province of the engineer.
As an example, I once worked on a factory automation project which was very complex. The company was building a new processing area, designing the process as they went, which was to be completely automated. There was no programmer anywhere near this project who could figure out how to make it work until I was hired as a consultant. The effective way to manage the processes was through a series of independent re-entrant modules to respond in real time to inputs from machine sensors, another control program to handle overall management and to communicate with the shop-floor control terminals, and a complex data structure which became the communication between the machine control modules and the control program. When properly designed, the system worked very well indeed, responding in real-time (milliseconds) to sensor inputs via a token-ring network from machine controllers and issuing controls back to other machines as needed, and also allowing complete management through the shop-floor terminals. Very neat.
We had one programmer whose only experience was with RPG coding in a large mainframe batch-processing installation, and he spent all his time trying to change things to a traditional batch-process cycle (the RPG cycle). He had absolutely no idea how to do anything in real-time. His initial assignment was to develop a data dictionary for the project, and he had no idea how to define the data requirements since he had no idea how the system would work and what data structures would be necessary to support it.
That's the difference between a programmer and an engineer.
As an example, I once worked on a factory automation project which was very complex. The company was building a new processing area, designing the process as they went, which was to be completely automated. There was no programmer anywhere near this project who could figure out how to make it work until I was hired as a consultant. The effective way to manage the processes was through a series of independent re-entrant modules to respond in real time to inputs from machine sensors, another control program to handle overall management and to communicate with the shop-floor control terminals, and a complex data structure which became the communication between the machine control modules and the control program. When properly designed, the system worked very well indeed, responding in real-time (milliseconds) to sensor inputs via a token-ring network from machine controllers and issuing controls back to other machines as needed, and also allowing complete management through the shop-floor terminals. Very neat.
We had one programmer whose only experience was with RPG coding in a large mainframe batch-processing installation, and he spent all his time trying to change things to a traditional batch-process cycle (the RPG cycle). He had absolutely no idea how to do anything in real-time. His initial assignment was to develop a data dictionary for the project, and he had no idea how to define the data requirements since he had no idea how the system would work and what data structures would be necessary to support it.
That's the difference between a programmer and an engineer.
In view of the 70s, programmers could only write code after analysis and design has been done by systems anayst, this means they could only write code to solve a specific problem, but software engineers possess the skills in all/most stages of software development process from requirement analysis and different technics of requirement gathering,feasibility study, system design, coding etc
From the IEEE Software Body Of Knowledge:
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software
It think that a software engineer possesses the knowledge, skills and habits to:
Design multiple approaches to a problem.
Analyze (and quantify) the effectivness of each approach with respect to quality, cost, schedule, requirements and performance.
Architect a system which is based on a (optimal) chosen design, a system which will be maintainable, extensible, usable and fullifilling all systemic needs of the solution.
I think that a software engineer has a broad perspective - understands any physical or electrical systems underlying a solution (think of embedded software);
understands and plans for the IT dept installing/provisioning the product as well as the user getting data; plans for release and retirement, data migration, evolution - e.g. SaaS;
understands not just a single family of platforms and tools, but is versed in many and can pick the best for a given need(windows, linux, RTOS, RoR, PHP, Spring, Java, .Net, MFC, Web-based, Client server, xUnit, FitNesse, UML, Agile, C++, STL, ATL, Thin Client, RIA, C#, Haskell, Groovy, F#, Ruby, Qt, OpenCV, and on and on)
Quality - they know methods on how to create and analyze a quality design, how to create and analyze quality code, how to create and analyze processes to produce quality products, how to create and analyze tests for quality, how to do failure analysis. All within the given constraints of the "iron triangle".
It's more than just code and I think with the advent of Software as a Service, it is becoming more of an industrial process - there are needs now for process control methods since we make software that makes "data based products" over and over again.
In a lot of ways I think it's getting more interesting and I'd like to see more bright, well-trained folks get into the business so that we lead in software innovation.
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software
It think that a software engineer possesses the knowledge, skills and habits to:
Design multiple approaches to a problem.
Analyze (and quantify) the effectivness of each approach with respect to quality, cost, schedule, requirements and performance.
Architect a system which is based on a (optimal) chosen design, a system which will be maintainable, extensible, usable and fullifilling all systemic needs of the solution.
I think that a software engineer has a broad perspective - understands any physical or electrical systems underlying a solution (think of embedded software);
understands and plans for the IT dept installing/provisioning the product as well as the user getting data; plans for release and retirement, data migration, evolution - e.g. SaaS;
understands not just a single family of platforms and tools, but is versed in many and can pick the best for a given need(windows, linux, RTOS, RoR, PHP, Spring, Java, .Net, MFC, Web-based, Client server, xUnit, FitNesse, UML, Agile, C++, STL, ATL, Thin Client, RIA, C#, Haskell, Groovy, F#, Ruby, Qt, OpenCV, and on and on)
Quality - they know methods on how to create and analyze a quality design, how to create and analyze quality code, how to create and analyze processes to produce quality products, how to create and analyze tests for quality, how to do failure analysis. All within the given constraints of the "iron triangle".
It's more than just code and I think with the advent of Software as a Service, it is becoming more of an industrial process - there are needs now for process control methods since we make software that makes "data based products" over and over again.
In a lot of ways I think it's getting more interesting and I'd like to see more bright, well-trained folks get into the business so that we lead in software innovation.
Stay far away from software development. As a reformed CS Student I switched Systems/Network Engineering. At least a warm body is needed onsite to do that job. However, even we have the same challenges as software developers. Ours come in the form of "paper certified" ex-Jiffy Lube employees who think that since they graduated MCSE bootcamp, they can call themselves an "Engineer". Even worse is that they are willing to undercut you by $20-30k a year. Keep in mind that $40k is a lot of money to someone who is used to changing oil or waiting tables.
What's become annoying is that HR departments can't tell the difference between a real Engineer and the "Paper Tigers". Look at the IT job descriptions these days. As long as you have the right buzzwords on your resume, you get to play with the big boys.
IT as a whole is in bad shape--at least compared to what it was in the 90's. You have to differentiate yourself to earn a decent salary these days. No longer can you walk into a building and demand six figures. No longer can you pull down a $75k with signing bonus from day one. You now have to work your way up from the bottom, doing menial programming or desktop repair work or even (*gasp*) pro bono work to build your experience and reputation. This is what happens when a market becomes flooded from both within and without.
Gone are the days where you can "go into computers" and make good money.
What's become annoying is that HR departments can't tell the difference between a real Engineer and the "Paper Tigers". Look at the IT job descriptions these days. As long as you have the right buzzwords on your resume, you get to play with the big boys.
IT as a whole is in bad shape--at least compared to what it was in the 90's. You have to differentiate yourself to earn a decent salary these days. No longer can you walk into a building and demand six figures. No longer can you pull down a $75k with signing bonus from day one. You now have to work your way up from the bottom, doing menial programming or desktop repair work or even (*gasp*) pro bono work to build your experience and reputation. This is what happens when a market becomes flooded from both within and without.
Gone are the days where you can "go into computers" and make good money.
I have seen the decline: HR/Management not knowing a skilled I.T. person from an unskilled one, competing with jobs with people who don't have communication skills and therefore how can they write good software, outsourcing + more visas issued,.... it is sad. It used to be a much better career than it is now. It is part of a bigger problem of American consumers (and businesses are consumers also) buying things produced in other countries. It creates a "false" higher standard of living that promotes the decline of our country. Everybody needs to buy American and support Americans and if that means doing with less, then we should do with less. Just some thoughts about how everything is related. In my opinion, I think it is sad that companies insist on spending less money and getting a lesser product (that may end up costing the same due to longer implementation timeline plus fixing) and thinking it is equal.
- Keyboard Shortcuts:
- Prev
- Next
- Toggle

































