Is Programming a Lucrative Profession?
itwbennett writes "A pamphlet distributed by blogger Cameron Laird's local high school proclaimed that 'Computer Science BS graduates can expect an annual salary from $54,000-$74,000. Starting salaries for MS and PhD graduates can be to up to $100,000' and 'employment of computer scientists is expected to grow by 24 percent from 2010 to 2018.' The pamphlet lists The US Federal Bureau of Labor Statistics as a reference, so how wrong can it be? 'This is so wrong, I don't know where to start,' says Laird. 'There are a lot of ways to look at the figures, but only the most skewed ones come up with starting salaries approaching $60,000 annually, and I see plenty of programmers in the US working for less,' says Laird. At issue, though, isn't so much inaccurate salary information as what is happening to programming as a career: 'Professionalization of programmers nowadays strikes chords more like those familiar to auto mechanics or nurses than the knowledge workers we once thought we were,' writes Laird, 'we're expected to pay for our own tools, we're increasingly bound by legal entanglements, H1B accumulates degrading tales, and hyperspecialization dominates hiring decisions.'"
If you have experience, and are willing to lead a team, you can make decent money. Of course, how do you get experience?
Modding "-1, Troll" is not a proper response if you disagree with me. Try reason.
This is one of those contexts where the standard deviation would be helpful, or even a graph showing the distribution of salaries.
I know some developers that are highly specialized in low-level DSP programming, and they make plenty. Also, if you are also responsible for architectural decisions and architectural design, you make more. I don't know many people who are just programmers, but I would have to assume they make less. My advice for programmers is take on more responsibilities and/or try to become a specialist. Unfortunately, there is a large supply of programmers, probably because the barrier to learning is quite low compared to say, FPGA design and development.
My starting salary in DC contracting with the Feds was $70K. Flash forward to a year of living in Cincinnati and my salary dropped to $40K. Now I'm back in DC contracting for Feds again. Starting salary? $105K.
60K in a place like Cincinnati, not bad. 60K in DC, can't live on it. Be sure to take regional salaries into consideration.
That's a terrible analogy. It's like saying a novelist is a book mechanic.
"Amateur night" object oriented systems are impossible to maintain, and Sharepoint is a train wreck. But you're right - as non-programmers increasingly come to view software as "easy", it devalues the profession.
Guess it's time to stop reading Atlas Shrugged, pretending that those above us in the hierarchy are looking out for us, and start forming a union, eh?
It is by my will alone my thoughts acquire motion; it is by the juice of the coffee bean that the thoughts acquire speed
Goes for programming and infrastructure and all things IT -- you have to move around a lot. Employers in general have no interest in paying you more once you work there. If you want another $15k, you have to move elsewhere. Time at a company is spend padding resumes and earning certifications. Then you move. You might move back to the original company if they make a better offer. Employer logic is "We got the guy for $x, why should we pay him any more once we have him?" Doesn't matter if you complete a second degree while you're there, move from jr. developer to lead designer, take on more responsibilities, you'll get piddle-shit raises.
This kills me. I don't want to be job-hopping. I'd like to build some time with a place, earn some kudos and sweat equity. But those things don't exist. Been at a company a month or twenty years, you are equally expendable. Treat your employer the same way. And die a little inside. People want to think of the office as family because we're social creatures. Few people enjoy living life out as a lesson in Randian objectivism, looking for leverage in the battle of who's screwing whom. We aren't meant to live like that.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
If you listen to people who don't do tech work talk about techies, you'll quickly realize that a lot of them do in fact put techies on roughly the same level as mechanics or bricklayers. You can think of yourself as a "knowledge worker" all you want, but the fact remains that you are going to be treated like a bricklayer. My most educated guess on why this is true is that techies produce useful products. In most businesses, the act of producing something (rather than selling something or organizing other people to produce something) severely limits your chances for advancement past the equivalent of senior foreman.
There are 3 ways to avoid this fate that I know of:
1. Do some serious and visible work for your company about issues that aren't tech-related. For instance, if you provide intelligent input about pricing, the salespeople will respect you a lot more.
2. Work at a company who's business is technology, which is still run by a techie. Make sure to leave once the suits take over.
3. Start your own company, and watch out that you don't completely become a suit.
I am officially gone from
Guess it's time to stop reading Atlas Shrugged,
That's good advice for anyone.
... and then they built the supercollider.
I agree with that. I have worked with nondegree'ed devs who were fantastic... in fact ALL of them were fantastic.
Which explains why they were employed. In order to make it without a degree one has to be way above the rest. Mediocre developers without a degree soon find themselves either unemployed or in school.
Ironic.
I am very small, utmostly microscopic.
I know that is a lot of crap! I live in the uk and earn roughly £25K, prob about £35K? I've always thought that to really make money out of a programming career, you have to start you're own business, do it for yourself with an original idea. Otherwise you do seem to end up becoming another wheel in the cog. I might be wrong, but its just the way things seem to be to me.
Simply put, there's three factors that determine what you're going to make. Where you work physically (Palo Alto and Austin have significantly different pay rates for the same job), where you work financially (startups pay less than huge companies, state governments pay less than the feds, banks pay less than almost everyone ;^), and where you work professionally (it's unlikely that an C or Java programmer with 10 years experience will make as much as a CCIE w/ 10 years experience). A CS/BS is a ticket to ride, but you still gotta find your seat on the car and some have a better view than others :^).
"I don't think software should necessarily be free
It's an excellent analogy because that's how managers and other non-computer scientists in many (maybe most) workplaces view their software developers, software engineers, web developers, sysadms, etc. I spent years fighting to educate my coworkers who didn't understand what a web developer does, and put up with frequent comments like "any monkey can make a web page" and "I can make a web page in Word"... like "making web pages" was what my job was actually about (and, yes, those are actual quotes from high-level professionals).
Never ever let anyone tell you what you can or should earn. Your salary is your choice. Do what you love, take control, and don't whine. This approach has worked well for me for the past 30 years. I've survived more than a few industry changes over that time.
This is why languages like Java, C#, and VB need to die. It seems that nowadays, these are all that is taught at colleges. My company hires these "dudes" right out of school, and they suck. We do real-time embedded systems. We use "real" languages (predictable languages) like C, C++, Ada, Fortran, and assembly. We do use scripting languages for tools and build systems. These "dudes" come in and think because they are lost, it is the language's fault, or the coding conventions are to restricted, or there is too much process, or the testing is too much. I try to help them because they don't learn thing like real-time or fault-tolerant in school, and all they ever uses were kiddie languages. But they won't listen.
You get that attitude even amongst programmers... hell especially from some programmers.
I'm no web developers, I know enough web design and development to be sure I'm no web developer and I've seen some fantastical cockups from programmers who've decided they are web developers.
I'm in software. I freely admit my spelling and grammar skills SUCK. :)
(re)Learning spelling would be a good idea. I'd hate to be the one to debug human resources code with a variable named /*Whether or not higher subject*/
bool higher=False;
which actually determined if someone was hired, but another coder thought it was a boolean for hierarchical levels, and was making it flip-flop between true/false.
Coders, as the future jacks of all trades, need to know a little of everything, and a lot of the fundamentals.
Why is your company hiring people that only know interpreted languages when your company mainly uses "real" languages? That's very strange to me. I also find it odd (and funny) that you that you blame programming languages for your co-workers incompetence, then in the next sentence complain about how your coworkers blame a programming language for their incompetence.
As C++ programmer with 10 years of experience, and about 5 years of C# experience, I can tell you that C#, Java, etc. can be very useful tools for the right type of software. People who know these languages can be very valuable for the right company.
To be honest, if I were a manager I would not hire someone who is so narrow-minded about programing languages. Computer Science is not a static field. Don't expect them to teach the same things they taught 20 years go.
Abaddon: An Xbox 360 Indie game
After 15 years I can say to the younger generation coming in with 100% certainty - go independent.
What does this mean? Well obviously you need experience so getting a job to bootstrap yourself and pay your rent is first priority. But what you do on the side will impact your career greatly.
Things you can do in your spare time:
1. Work on an Open Source project and wrap it into a solution you can sell as a service
2. Create your own shrink-wrapped application and sell it
Either way you are partaking in the foundation of wealth - ownership. Only through ownership can you be truly "free" in the western world. Owners are first class citizens in any country. Everyone else is just a worker bee.
Just to convince you let me break down a little math for you. I currently bill our clients at around $190/hr for my programming services and I'm in an average "enterprise software" development position. But I only get a fraction of that - let's say around $50/hr for argument's sake. Some goes to infrastructure but the majority of that profit goes to the ownership. If you are the owner you get it all. Yes it's more work. But let me ask you this - would you put in 10-20 more hours per week to make 3-4 times as much? And that's just the tip of the iceberg. Some indy developers have really made a name for themselves and a fortune to boot.
And if it all fails, you still have that experience to learn from. Nothing ventured nothing gained.
A friend of mine went through this as a graphic designer, in the 80's. Once Adobe software showed up on the receptionists' desk, she knew it was time to get out. By not forming a professional group, they let their worth be watered down.
What programmers need to do is form a professional society that has licensing, regular career development, etc. and get employers to sign on and have various levels of gov't require licensed work for public software projects. 'Course, this may be too late. Probably shoulda' been done back in the 90's.
I drank what? -- Socrates
There's another reality: it's really, really hard to manage projects remotely. I have tried this for a number of projects, and have learned the following things:
Not that I disagree entirely that it may be more difficult to manage someone in India, and I've certainly heard horror stories, but come on. These could all be applied to just about any remote contractor who isn't worth their salt. I have worked with/currently work with plenty of Indians who really knew/know their stuff.
God, schmod. I want my monkey man!
That's a critical point. It seems that economists (especially but hardly exclusively) have forgotten that without people, economy doesn't even have a reason to be. The entire point of an economy is to provide for it's participants. It's good or bad is to be measured exclusively in terms of how well it serves it's participants.
Given the supposed growth in the economy, it SHOULD be possible right now to support a family of 4 with a house and 2 cars on a single 20 hour a week income.
Unfortunately, as long as labor is treated as a market like any other, it is literally impossible for the masses to ever see the benefits of high technology. Ideally, machines work so we don't have to, but when labor is a market, machines work so we don't get jobs (or income) at all. The only way to make things equitable and progressive while even pretending to use market dynamics is to create an artificial labor shortage. Otherwise, all of the benefits of an expanding economy and improving technology will inevitably accrue only at the top.