Programming Is a Dead End Job
thecodist.com
thecodist.com
What is more, managing is a different job than programming. Not a lot of programmers really internalize that until they try out being a manager. Architecture, and technical leadership in general, is still another job. It takes the ability to internalize massive amounts of detail, organize it into some coherent frame work and then communicate that framework as needed to various levels in the language they understand. So for programmers they need to know how the parts fit together, for managers they need to know how the parts integrate with the business process, for sales they need to know how the parts make them better than the competition (or equivalent to).
From an economic standpoint, being able to generate 1000 lines of syntax error free code per day, is perhaps the best possible programmer you could be, but its never worth more than 10 programmers generating 100 lines of syntax error free code a day.[1] So yes, there is an economic limit on your pay.
The good news is that generally that economic limit is much higher than the cost of living, and you can run at that limit for a decade or more, so you can be reasonably expected to save enough to retire and not have to work any more.
Dead end jobs are jobs that will never pay you enough money to save for retirement. Programming isn't one of those jobs.
[1] Yes the 9 women, one month joke applies for short sprints but in general not for longer coding projects.
Anyway, I support this trend and I've been known to do it myself sometimes. It's a little disorienting when the hypothetical subject of a thread flips genders halfway through, but the person is only hypothetical anyway, so why not?
Value differentials for programmers derive from knowing the right code, not typing up any code that suffices, and I think pay reflects that. 1 KLOC of the right code can easily be better than 10 KLOC of the wrong code, even if the 1 KLOC is buggy and the 10 KLOC has no bugs.
I think programmers are valuable in a power law way, and this can be based on intelligence, domain knowledge, experience, math skills, and other things.
You can command a much larger salary if you either have technical/math abilities that almost no one else has (like a Google search engineer), or you can have an economically valuable product sense (like a proven, high-paid early start-up engineer), or you can know a domain in an economically useful way (many technical founders).
Programming is an army-of-one kind of job, even if you work in a larger team. Insightful programmers are better than dogged ones by orders of magnitude. I look for programmers who are creative, self-driven, and knowledgeable.
EDIT: I ended up editing this for the first 18 minutes it was live. Premise is the same, but I wanted to work on how I said everything.
I agree with this sentiment. It's more effective to find the correct company and correct project within that company to make sure the lines you write are valuable. That's where the money comes from. I know some dudes who are smart and great coders who are making (relatively) little, because they are working on fun things with limited economic value. On the other hand, there are guys who are merely good programmers who are making a lot more, because they sought out projects with very high value and impact and moved those forward. Although it's hard to say how either group can complain too much considering the relative luxury of even entry-level programming jobs in this market.
Part of the reason that startups can be so lucrative is not that a lot of code is being produced, but that code doing something never before done is being produced. The code is not the product, the behavior it's implementing is. It's a subtle distinction, but an important one.
I have blue collar friends from high school who envy what programmers do and make and I do what I can to try and persuade/teach them to learn to code and make a better life for themselves.
Edit: I thought the original "blue collar" remark was sarcastic. Am I wrong?
I would bet money that in less than five years, a lot of software people will be unemployed -- again. (If I win, good. If not, good. :-) )
I've been through the dotcom crash and minor disturbances after, and the jobs never "disappeared". Yes, there were layoffs, pay cuts and hiring freezes. But not all jobs disappeared, and most of the people who lost their jobs found new ones after a while. I'm not diminishing the pain and suffering of those who got caught in bad situations there, but it's not like the whole IT disappeared and people went back to abacuses and wired telegraph.
I wrote "all jobs" in one place and in another "a lot of software people [...] again".
Since you were also there, what I meant should be obvious...?
In my Swedish job market, there was also something similar around a decade earlier. But it was not only for software people.
Electricians, mechanics, heavy machinery operators in Alberta can make $150,000 in the oil sands before overtime, plus fly-in/fly-out costs; in the major urban centers, upwards of $100,000. If you're young, add in overtime and you're looking at $150-200k+. Foremen and supervisors can make up to double.
A programmer in the Bay Area will top out around $200k as a senior member of technical staff.
Peter Drucker called these folks "knowledge technologists": http://www.economist.com/node/770819 ... And believed probably will be the majority of workers in a developed countries over the next century.
Blue collar refers to jobs that involve physical labor. The term arose when people on the factory floor would wear blue coveralls, and people that worked in the offices off the floor would wear white button down shirts.
Why exactly every job needs to have a clear path to CEO or be considered a dead end or blue collar job is a mystery to me.
and that's only one problem. you may reach (or ever want to) the top, but if there is a low ceiling that is going to put so many pressures on your career.
and people have to look ahead and see the trend. newer stuff is coming out faster and faster. The 'hard' stuff is paying more and more and requires less and less people to do it, while the easy stuff is consistently either being outsourced or made so easy 'anyone' can do it.
and unemployed beyond 40 dead in the industry? are you kidding me? we have less IT/programming jobs today than we had in the late 1990s. Where do you think those people went, they just up and died? they had to pick a new industry
>>> newer stuff is coming out faster and faster.
I see no indication of this. Actually, most of the things that were with us 10 years ago are still around, and introduction of paradigm-shifting concepts massively slowed down due to massive size of the market which would not allow quick change and incurs massive legacy costs. You could maybe introduce new HTML version in a year in the 90s, but now you're stuck with HTML 4 for decades because literally millions of applications depend on it and they are not going to change, and HTML 5 is rolling out in baby steps, despite all the cool stuff it proposes. Looks what happens to XP - they have a massive install base and now Microsoft can not get rid of it, however hard it tries. Market size is enormous now, and so the pace of adoption of any paradigm-shifting concepts is much slower than before.
>>> we have less IT/programming jobs today than we had in the late 1990s.
Could you back this up with some data? I haven't found the data that support this conclusion. The programming jobs are shifting around and moving, but I don't see IT being smaller now that it is in the 90s, even accounting for the dotcom bust. Where is that "less programming jobs" coming from?
[1] http://www.indeed.com/q-Cobol-jobs.html
[2] http://cis.hfcc.edu/faq/cobol
Edit: removed wrong data.
making a web page today in 'html' is NOTHING like it was 5 years ago, let alone 10. you're simplifying it way too much.
if you were a web designer, and just stuck with what you taught yourself back in 2005, you would be out of a job. you constantly have to learn new libraries, new languages because no software operates on an island. yes, every field must adapt and add changes, but none so much as like with tech.
all of this is COMPLETELY irreverent anyways. IF you want to be a programmer, and not look ahead to your future to find out what you will need to grow into, BY ALL MEANS. And if you think people will still find your skills valuable even though you don't plan on updating them constantly, good luck.
the point is, if you read the article and dont want to gamble with your future, a programmer is a dead end job in the sense that if you are not moving into some sort of managerial position, there is no where to go.
>>> IF you want to be a programmer, and not look ahead to your future to find out what you will need to grow into, BY ALL MEANS.
This is a false dichotomy. I want to be a programmer AND look into my future, and I do, thankyouverymuch. I do not want to be a CEO, it's not a job for me, I'd suck at it. But I don't suck at programming, and that's what I want to do. And I think there are lots of opportunities around to earn your bread and butter on it.
>>> that if you are not moving into some sort of managerial position, there is no where to go.
That's plain wrong - there's everywhere to go, and you confirm it yourself by noticing new things appearing all the time. That's where you go - doing new things! You don't have to have a 'C' in your title to live a fulfilling professional (or personal) life. Of course, if your goal is to have that 'C', go ahead - but there could be many more goals than that.
This site seems to disagree with you: http://www.bls.gov/opub/btn/volume-2/careers-in-growing-fiel... . I work with numerous people over 40 actually.
Also, I beg to differ that learning a new programming language is a big deal. We've yet to see a single complete disruption in the way we program... It's still editors, compilers and debuggers in the end.
From an economic standpoint, being able to generate 1000 lines of syntax error
free code per day, is perhaps the best possible programmer you could be, but
its never worth more than 10 programmers generating 100 lines of syntax error
free code a day.[1] So yes, there is an economic limit on your pay.
If all you ever do is code functionality that other people dream up, in a system design that someone else specifies, then I agree completely. For a lot of engineers, that's how they operate. Maybe that's how they want to operate, maybe that's the best way for them to operate.For other coders, and this depends as much on the company and corporate structure as it does on the individual, they are the ones dreaming up new products, new approaches to old problems, layout solid foundation that 100s or 1000s of engineers can build upon, or specifying an approach and methodology which ships the product 6 months sooner with twice the functionality or half the bugs. They are the engineers that make your entire organization not only more efficient, but literally capable of things that they weren't capable of before. That's when you start getting into the same type of ROI from that programmer as that SVP is supposed to be providing.
The problem is most organizations simply aren't organized to promote and reward these engineers, and that's the "dead end". The last time I worked for a company I didn't own, literally the only way I could find to make any real money was to do my programming inside the sales organization, so I could be paid on commission for writing code for "major accounts" which would only later be taken up by the core engineering team and become a full-fledged product line.
Being a quota carrying engineer, with variable compensation and benefits like 'Presidents Club' was living in a different world from the engineering org. What I found was that, when working for someone else, in order to justify significantly higher pay, I had to be more directly driving increasing sales. Doing the exact same work inside of the engineering org, even with the same sales impact, would have paid significantly less.
As a mere programmer, sure, but senior developers get well into the six-figure range, and with some luck, those stock options are worth quite a bit.
Sure, not everyone gets to work at Google at an early stage, but their IPO minted a good number of 'mere' programmer millionaires.
From an economic standpoint, being able to generate
1000 lines of syntax error free code per day, is
perhaps the best possible programmer you could be,
but its never worth more than 10 programmers
generating 100 lines of syntax error free code a day.
This is just plain false.The problem here is of course as I noted this is very hard to manage and evaluate except way post-factum (and even then there are little of robust tools and methods to do it with any rigor) so it's hard to know for sure. But in many cases, "you know it when you see it".
*assume: (communication/coordination overheads) + their pay < your pay
First, very few people become millionaire CEOs. If thats your standard for success, then every path likely leads to failure because no path reliably leads to that kind of success. Some paths are more likely than others, but none are very likely for the average person.
Part of the reason for flat-ish career trajectory is that programmers earn more at the start than most. Some professions have more of a premium on seniority and experience than others. Senior doctors and lawyers for a combination of the above 2 reasons probably have steeper salary growth than programmers. That said, good 10+ yrs programmers do earn pretty damn well. 10 years as a doctor or lawyer and you're still considered a youngin.
Anyway, if you're the CEO, you aren't a programmer. If he's claiming that being a programmer is not a good starting point for becoming a CEO, I think he's wrong. Look at all the over 40s who were coders at some point, many transitioned into management or something else. Programming actually offers a lot more of that kind of opportunity than anything else.
Honestly, to be in the top 95% of incomes at the entry level and then to complain that you're in a dead-end job . . . it just smacks of a lack of awareness about what a real dead end is like.
It's important not to forget cost of living in that area is abnormally high.
Programmer salaries are not "insane". A half-decent programmer is worth $500,000 to the business and costs about $100,000. A good one is worth over $3 million, and only costs about $150,000.
Programmers are actually incredibly fucking cheap right now, if you know what to do with the talent.
The talent is rarer than the capital, and the capital often isn't owned by the decision-makers (VC) but the people who control the capital are the ones who get more arrogant. Why? Because capital is easy to demonstrate, and talent is hard to prove. It's especially hard to prove talent without breaking social protocol, which is the real advantage of pedigree. Everyone knows that there are plenty of sharp people without pedigree, but proving you're one of them requires being extremely assertive. Professionally, it's often better to be presumed intelligent and thereby be able to optimize for social polish alone.
One answer: http://en.wikipedia.org/wiki/Acqui-hiring
The reason it has to be done with equity instead of salary is because there's a principal-agent problem with salary. People collect their salary regardless of whether their contributions actually are worth a few million. And so they have every incentive to sit on their butt - or at least, not take any risks and just do what got them the initial salary grant - in the meantime.
The average mid-size company is a monument to bureaucracy, ruled by mediocrity and incompetence.
If you willing to go over the bridge, then your paying $2k/month
Even if you don't make CEO, you can get to several multiples of an engineer's salary with a 100% success rate with this plan. Let's face it, a software engineer is far from a top tier occupation, and for good reason. You can hire very high quality people with 10 years of experience in eastern Europe for $30/hour.
Obviously, it's not impossible to become a millionaire CEO. People do it. There The requisite work, skill, risk, talent and luck just isn't comparable to 'become a programmer.'
Becoming a programmer requires one to learn to program, at university or some other way and get a job programming which isn't to hard if you can program. At neither step are you competing to get through gatekeepers and bottlenecks in a most-will-fail situation.
You easy steps to becoming a CEO require you to go through several of these competitive bottlenecks. In any case my point was just to point out how silly it is to say 'most programmers don't become millionaire CEOs, it's a dead end job.'
What's better, I can do that _while_ actually living in the Bay Area. Just because I can and I like moving back and forth between here and home.
Am I wrong? To become a "millionaire" (using it as a synonym for wildly financially successful) doctor or lawyer, you generally make the majority of your money through either an invention or marketing skills. What career isn't a "dead end" applying this logic? Real estate, maybe?
* Do you love to report the news? In most jobs as long as you continue to be a reporter you will likely have a limited set of promotions you can get...
* Do you love woodworking? In most jobs as long as you continue to be a carpenter you will likely have a limited set of promotions you can get...
* Do you love photography? In most jobs as long as you continue to only take photos you will likely have a limited set of promotions you can get...
Even in you look at areas like law, the top 10% of earners in the profession are not the ones who do all of their own legal research and brief writing. They're the GCs at publicly traded companies or equity partners at large law firms, where they're responsible for the work output of tens or hundreds of lawyers. Which means, yikes, they're managers too.
The managers set the wages. Therefore, they will be well-paid, and their contributions will readily recognized.
This is simplistic and does not explain everything, but I think it is a major ingredient.
It really depends on the managers. We live in a culture that rewards paying oneself well, even to the detriment of others' pay. Root cause analysis.
Executives get promoted because they've proven to be able to get groups of people to work together to achieve something. Most programmers don't want to or can't do that. Our trade is mostly one of individual contributions, often as part of a team but generally we're not responsible for more than our own tasks, and we're generally not blamed when one of our peers can't keep up.
Unless, you know, several high-ranked managers collude together. Like it happened with Google and Apple.
If the team is successful and hits a home run, then the manager benefits a lot.
If the team crashes and burns, then the manager is at significant risk of job loss.
(Yes, office politics will come into play and managers will do their best in the latter case to diffuse blame, but the point is, they are the most visible elements of their respective teams.)
I hear this frequently, but I'm not sure it matches my experience well. Among people I've known and worked with, I haven't noticed that managers get fired at any greater rate than non-managers.
I haven't looked at any actual statistics on this; maybe management really is much riskier. But I can't help suspecting that the idea that management (and especially executive) pay is justified by greater career risk may be mostly a story told by managers to make themselves and others feel better about pay differentials.
Most people don't like firing people they have worked with for months or years. Most people don't like getting fired. The savvy manager who knows organizational jiu-jitsu and can explain with a great story can often come up smelling like roses after disaster. The naive manager who assumes that everything is the way the mission statement says it is ... will be out on his ass.
See: http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-o...
However I entirely agree. By the definition of "who gets to be CEO," every job except senior executive is dead end!
'Our parent company's former CEO started off as a programmer 25 years ago, switched to manager; in 15 years he went all the way to being CEO of a $4B company. After 10 years he retired recently with mansions and cars and no worries. Meanwhile I work with people who started around the same time and who are still senior software engineers.'
So the author just picks one person that happens to be the CEO evetually? What about the rest majority of managerial forks? They probably are stuck in corporate ladder and even may be fired already. The chance of a person working on a corporate managerial job evetually becomes a CEO is likely no higher than a tech person eventually becomes a CTO. So why just pick one CEO person to illustrate managerial role is more promosing than tech role? Comparing the max value of a group to the average of another group is unfair.
Also, I program because I love programming. Even if you gave me one billion dollar making me manage people for the rest of my life instead of writing code, I would still turn it down. If doing the thing I love is dead end, then I beg a different definition of dead end. Okay, just use author's definition of dead end as slight chance of moving up, but I just don't care as long as I love the job I am doing.
__
An interesting side note is programming as a hobby. But I would still rather programming both at work and a spare time, as long as the day job I do making me happy.
Simple mathematics shows it is very unlikely for any random person to become a CEO. After all, if everyone is a CEO, who is being managed?
Once you become a manager in charge of five developers you're suddenly able to affect 5x (well, not quite, but..) the change within a company. And yes, yes, I know - you're not actually doing the change, but you are responsible for planning, organising and maintaining it, which in many ways can be more valuable to the company.
When a project is managed by one manager and coded by five developers, you could easily lose replace two of those developers with little impact. If you lost the manager (who is calculating deadlines, coordinating with other departments, pitching for funding, as well as managing the individual developers) the project could run into problems quickly.
On the face of it, it seems unfair - the developers are the ones actually writing the code after all. But the HN trope that managers are useless and feckless isn't correct.
Really? In my experience managers can be replaced rather easily, or at least more easily than it is to a replace a single engineer. It always takes some time for the new software engineer to learn the specifics of the project, and even more time to really grasp the business domain. The new manager has stuff to learn too, of course, but in my opinion it's less than what a new engineer needs to learn.
In addition, if you replace two software engineers, you pretty much lose two man-months of work, but replacing a manager shouldn't cause much problems in the first month.
Possibly true. But think about how most engineering managers attained that role...it was because companies thought they were good engineers, despite little if any evidence that they'd ever make good managers. Throw in a dash of, "we don't really have a training budget" for this new profession (which it is...management is an entirely different profession from engineering), and you have a recipe for disappointing, easily replaceable parts.
The problem being that replacement "good" managers and engineers aren't just sitting around waiting for you to hire them - they're already in good jobs - see also: http://www.joelonsoftware.com/items/2005/01/27.html
Additionally, for managers, you can't promote from your summer interns.
Developers on the other hand are the worker-bees/ants. Individually replaceable but as a collective, the backbone of an colony/swarm! A queen bee cannot survive without its attendants.
Marx got it all wrong, the owners who provides the means of productions and the proletariat who provides the labor are partners in hand.
Why are some people so individualistic to nitpick on why they make $80K yr and drive a Prius vs. someone else who makes $250K and drives a E-class, when we are all together in this together for the same goal for the greater good of the same collective, for the investors and maximizing the shareholder value???
There are exceptions of course, but the unequal pay has nothing to do with skill as far as I'm concerned.
Which is where I fundamentally disagree with you. Optimised database indexes (for example) can be valuable to a company. But if the company lacked a developer who could optimise them, they could get by - they'd just have to get more/faster servers.
You can't throw money at organisational and communication skills in the same way. In fact, doing so usually makes it worse. If you don't have managers that know the company, can interact with other stakeholders and otherwise just manage people, you're screwed.
If you think that kind of stuff is secretarial work then I could just as easily counter by saying that development is basically just glorified word processing. And should be compensated as such.
Every communication layer you add to this mix has an enourmous cost. It is a bit like playing Chinese Whispers.
I think the first level of important management is managing teams of teams or portfolios of projects
Look up complexity theory. There are plenty of cases where hardware will not make up for a poorly written sql query. If the people giving direction don't understand the technology, they will make stupid decisions like thinking that they can fix a bad query by throwing hardware at it.
>You can't throw money at organisational and communication skills in the same way. In fact, doing so usually makes it worse. If you don't have managers that know the company, can interact with other stakeholders and otherwise just manage people, you're screwed.
This statement has done nothing to convince me that managers have skill that is so hard to find as to justify their high wages.
You certainly need managers, but I think it best if you pick a suitable engineer for this role precisely to avoid the database example you just provided. An engineering manager should get a higher pay than their peers, because they are not only experts in the domain but also have some people skills.
But a non-expert manager? Their only skill is communicating and giving orders? This is role that should ideally go away.
As a developer who has also been a director and a team lead:
- Good programmers get pretty good wages in the current market. I wouldn't call earning 6 figures a "dead end job".
- The number of people you manage is important to a manager, not a programmer
- Becoming a CEO is important to someone that wants to manage a company, not to someone that wants to write code
There are many rewards in writing code, if that's the job you like. You can write code that makes a difference in a company which does something you agree on. You can create a new company or product from scratch. You can spend your career learning new stuff. All of this is exciting to me!
If your definition of success is a truckload of money, retiring at 30 and being the boss of 100 people... you shouldn't be a coder, but that's a very narrow (and let me add, totally shallow) definition.
The magic in being a carpenter or a painter or a builder of any kind(including programming) is that you can create something from nothing. The jobs may suck but I still have the power to, whenever I want, execute and actualize my ideas.
I pity those with vision but no means to at least prototype that vision themselves. That's dead end to me.
Builders are magicians and they're certainly not inoxorably linked to their boring day jobs.
"Programming as a profession is only moderately interesting. It can be a good job, but you could make about the same money and be happier running a fast food joint. You're much better off using code as your secret weapon in another profession."
"People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines."
"Of course, all of this advice is pointless. If you liked learning to write software with this book, you should try to use it to improve your life any way you can. Go out and explore this weird, wonderful, new intellectual pursuit that barely anyone in the last 50 years has been able to explore. Might as well enjoy it while you can."
Waitress is a Dead End Job, WallMart employs are a in a Dead end job, hairdresser is a dead end job.
Whoever makes > 60k $/yr is not a dead end job.
Please let's try to realize how lucky we (as programmers) are to live(/and work) today.
Why the hell would I want THAT? Are you crazy?
Sky is the limit only for people who have right combination of skill and luck.
Don't forget hard work and persistence! :)
But that's when it hits you. You're still in your 20's... is that all you're ever going to be? Hey, the six figs is great, and you're on track to retire earlier than most, but was that it? Is that why you kicked butt in school for ~20 years, to write [insert field] code to make someone else rich?
It's a tough realization to make, but for most anyone, in most any industry, they'll get to the same place. Then you get to decide if you want to (1) make achieving as high a level as success as possible you're life's mission or (2) live a good life and let work simply be the source of your sustainable from M-F. In the end, we're all going to be worm food, so do something that matters to you in the time you've got left.
Moreover, if someone really is an amazing coder, then there's a good chance that he/she started the career at a good salary level, while people in other profession were still grinding at work. Why complain now if you didn't stop to brood over the situation then. That's Karma :)
If you want to stay in your comfort zone that's perfectly acceptable. But don't whine! Comparing a programmer and a CEO, asking why one should earn higher for seemingly equal amount of work is not right. Being the CEO means taking risk, putting together business plans, qualifying ideas, cutting deals, leading teams, handling legal and financial work, hiring people for all functions. The blogpost itself is peppered with examples of people who took the risk and made it big. How many software engineers really want to handle all these complexities?
There simply aren't enough top spots for everyone. Some love to lead, some love to code... some love to do both. You make your choices. Of course some people do get lucky and some people even win by clandestine ways. But the focused, hard-working one has his place. Everyone doesn't want a mansion and Ferrari. I don't. Why make that a parameter for success!
I even have a Master's of Management, which I enjoyed.
But I love being a senior analyst. I want to be a senior analyst forever. It's enthralling to me. I decline management job offers. It's not worth a few extra bucks for me.
I'm putting my savings toward a tech angel fund for when I'm too old to program. I'm working on side projects that might blow up big time one day. There are other options besides management.
If you enjoy what you do and can make £50k out of it then you should be pretty happy with your life.
1. Surround yourself with amazing people.
2. Carve out specific times for development work.
3. Focus on high-value projects.
4. Make it clear why a coding CEO is good for the company.Entry Level Developer (coding 100% of the time)
Senior Developer (coding 50%, managing 50%)
Manager, Lead Developer, etc. (managing 100%)
from the time you take a senior position, you're essentially being groomed to manage the team you're on. Whether you're another level between developers and your director/manager or simply the manager, you essentially stop coding.
I think this is the point. It's not so much that programming is a dead end, the inherit structure of most companies is flat relative to the position. It's an interesting idea, how do you give a guy seniority and a nice pay raise, without taking away what he probably loves to do? Obviously for most companies, it means increased responsibility and pay = managerial tasks.
For the last several years, I've been in this purgatory. I love programming, but every senior position means a reduction in my development role and an increase in managerial responsibility. The problem now is my skillset is at a place where I'm pretty much at the ceiling. It's hard to say, "I have a senior level skill set, but don't want to be a manager." I know my two options are to either bite the bullet and get into management (which to me is like adult daycare) or start my own company.
As of now, I'm already laying the groundwork for a startup, so I can transition out and do my own thing in the next two years.
If you love to program the choice is easy. It's not like programmer wages are so low you have to live under a bridge.
Personally I'm psyched that people will actually pay me to program, because if they wouldn't, I would still be programming.
I have flirted with 10 of millions of dollars in wealth, but I don't seem to have the timing to make it stick.
But at the end of my life, if my kids can say he loved what he did, he loved us, and he loved life. I will be a lucky man indeed.
Is there any job that this truth wouldn't apply to? Being a CEO is a full time job that has it's own requirements. It's not simply a title that you slap on a normal job.
Edit: that said, I don't consider it a dead end job if you have to switch out of programming to keep advancing because often to become an engineering manager at companies they want you to have programming experience. I think a dead end job is one in which your experience serves no purpose or as no pre-requisite for better paying jobs.
No need to go to boring management positions.
Facebook, Microsoft, and Google have parallel tracks for programmers and managers. You can progress all the way up to Senior VP equivalent as an engineer with no management duties. These roles include compensation equivalent to traditional CEO level roles.
Eg. http://www.forbes.com/sites/ryanmac/2014/02/28/meet-jeff-rot...
It is a lot harder to make "Director-equivalent programmer" in those companies than to make Director. In terms of skill, hard work, and intelligence, the competition is a thousand times tougher.
One salient note is that at FB you can switch between parallel tracks whenever you like. Eg. Any director level engineer can switch to being a director level manager and vice versa.
Here's a spoiler - most people will not be rich.
A good samurai's aim is to be the best at skills. His all work is dedicated towards a "kingdom". Every samurai doesn't wants to become a king. They just want to server their king.
And the King's duty is to take care of its army and people. I think king's jobs is highly overrated. In real life its difficult to be a king. In the end its just a job with lots of responsibilities.
If they're not gonna pay you in gold get 'em to pay you in some other way. All the prestige stuff ("a seat at the table", job titles, authority, etc) isn't actually worth much anyway.
Technologists who also have a lot of domain knowledge are gold dust to many companies because they can straddle the world of business and IT and help bring the two sides together to develop better solutions. Much of the business of computing still baffles a lot of very intelligent people, so if you can act as the translator between these to sides then you can definitely broaden your horizons.
The thing is as well, that you may not have to give up programming entirely. I've managed to lead IT projects, and then once they were delivered go back to working on programming again.
edit - Somehow, I goofed and lost the rest of my post. Anyhow, I noticed that in a separate blog post, the author said something like "Programming isn't just a job for me, but a way of life." I questioned whether that is something you can say of a job that is truly dead-end.
A choice between doing what you love and making a big payout by doing something else. This assumption is wrong.
On one level, there is truth to what is stated--- but it correlates more to big company paths, people who have a conservative view on their ability to leave an impact on the world, and people who are narrowly focused on programming for programming's sake.
It's not about "switching" to management (this thinking is big company), it's about taking your technical skills and making things happen. If that means you have to be a startup founder or a leader (CTO, CEO, VP engineering, whatever) who ends up not coding much anymore to make that happen, so be it. The point is if you love programming, do it, get amazing at it, solve real problems... and you'll have limitless potential in the future.
Being a programmer/engineer gives you the ability to find and build real solutions to problems in the world. If you're good, being able to build things = creating a startup or partnering with others to take on big things.
Regardless of statistics on the rate of success of startup endeavors, this potential and this opportunity make being a programmer completely worthwhile and rich with potential. You do not need to be a manager to have financial success. What you need is equity, equity that appreciates massively in a successful company. Financial outcome is a nice side effect of starting or joining a startup but not the only metric of success.
IMO, the more "correct" way of looking at a career as an engineer is what other smart people have blogged about. After graduating, join the best mid-level (in terms of size) startup you can (or hell, start your own). The relationships and the higher opportunity for rapid growth will serve you well down the road--- whether that means you're an executive or still an engineer who codes. And it's this perspective that creates a healthier mindset where you aren't thinking "Oh when should I jump ship into management" but rather "if I build X, it could solve Y in Z industry... I can partner with A and together we can make it happen or I'll start a side project and build a solution and see if I get traction": http://hunterwalk.com/2014/03/08/new-grads-midstage-startups...
I think the problem with programming is that programmers are assumed to be interchangeable; or at least, management would like to think so. To me, this seems absurd, I'd rather have one good programmer than 10 mediocre ones. (And good programmers are rare, but not impossibly so). The problem is that programmers that are 10x more productive don't get paid 10x more. (And seriously, some programmers really are 10x more productive than average).
The hardest part for me to cope with is that the y-intercept of programming is significantly higher than that of business, but the slope is much less. So while I might be making twice as much as my business peers when I first graduate, they will eventually overtake me.
Makes me wonder if maybe I should be switching my major to economics... does anyone have resources for people who have successfully transitioned from programming to management/business?
I'd love to go back to work as a programmer (still keeping my skills sharp and up-to-date just in case), but the best gigs available promise the same title/salary 5 years on.
I didn't want to have to make that jump to management. Rather, I started with an analytical role and moved up (well I actually left soon after).
While there aren't many exec-level programming jobs out there, there are plenty that still require analytical skills. While none of the execs where I worked crunched numbers themselves, they reviewed other work and poked holes in business analyses. I think analytics career paths are perfect for the people who like engineering but want the upward mobility into management.
This is not strictly true. Programmers are relatively well paid. You can decide to live significantly below your means, and invest the rest.
For example, my neighbor once referred to his Oldsmobile as his "quarter million dollar Olds". I asked him what he meant, and he said that was the current value of the stock he'd sold to buy it.
And IT manager is a really crappy job if you love to code. Also, it is very difficult to go from becoming IT manager to IT director or higher, especially in bigger companies.
VP of IT in large companies is filthy rich territory as per OP, but for everyone VP of IT, there are several hundred developer. Opportunity to become VP, or even director is not all that common.
This is so much true.
>Opportunity to become VP, or even director is not all that common.
Completely agree. You hit nail on the head.
If you are really good in programming these days you can achieve more than ever before. But if you really like programming that much, then making money isn't your highest priority.
The fact that are way better payed jobs, it's a reality (lawyers, investment bankers). If you are in it for the money then you might want to consider another career (e.g. investment banking).
One of the best ways to get a new position is to start performing the work of that position before you have it. If you're already doing to the work you can remove the risk in figuring out if you'll be capable in the new position.
In an ideal world for programmers, the only thing a company would be bothered about is the cleverness and the programming complexity of the product and would reward its programmers more. Such a company is bound to fail in the real world.
Also: "in 15 years he went all the way to being CEO of a $4B company. After 10 years he retired recently with mansions and cars and no worries"
If not having any worries is your goal, I'm not sure that CEO is the right career path for you.
Having no worries(at least financially) 'after' busting my ass for 10years is definitely a good career plan.
It seems the author equates the accumulation of "things" with success. If your goal is own more stuff, I guess that would constitute success.
Happiness has always been my goal. By that metric, I'm wildly successful.
Non-technical business types don't appreciate the art and beauty, and history - of the craft.
I agree that pay starts well (but its earned), but in a real world scenario, programming is relatively tough work with limited upside, relatively. I agree w/ OP.
I am realistic and I know most of company think programmers are replacable. But I think it can change if everybody does.
Programming is not a dead end job, if every company like google, atlassian or github does, I mean paying well their developers and treating this as a real profession.
I don't think they are mutually exclusive. Sure, being good at programming doesn't imply you'll be good at managing. But there are plenty of great programmers who successfully
> Programming is not a dead end job, if every company like google, atlassian or github does, I mean paying well their developers and treating this as a real profession.
I don't buy this. Even at Google, there is a psychological cap on how much engineers can make—you'll never see a programmer pulling in, say, $10M a year. That's the point: as a programmer, there is a society-wide cap on your pay, some level at which you will eventually plateau. As a manager, there is no such cap: you can eventually be the CEO.
I became a programmer not because I wanted nice cars but because it's helping me earn enough money while doing something that doesn't annoy me too much. It helps keep my sanity.
If you're just going to arbitrarily pick some hypothetical comparison, sure, it's limited. But that isn't a useful contrast.
Most managers are in dead-end jobs themselves (the mere facet of the pyramid dictates this). Very few rise higher, and are more likely to have young upstarts jump above them. Most make fairly poor pay -- I worked as a dev lead at a bank and was at a pay scale that put me above every single non senior VP or above in the entire organization.
50,000+ employees. My pay as a developer was in a band normally reserved for a small handful of executives. The very, very few who went the management route and won the lottery, so to speak.
I absolutely love this profession, and have resisted all paths that would pull me out of it. I make great money for doing something I love.
Then, new management comes in or your boss makes crazy development decisions and your project becomes a sinking ship. I just dropped a contract that was exactly this. I got tired of being forced to make bad decisions, which I know will lead to the failure of the project/company.
This is why I started my own company. There are no limits to my salary.
Edit: I guess I should add, of course legal matters depend on location. AFAIK much of the developed world has legal structures that allow risk to be limited to the "company" and not risk the shareholders' personal assets (ie Your personal assets).
I am an owner / co-owner of 3 (US-based) LLCs, and I can tell you from experience that banks will require a personal guarantee, joint and several, of all principal owners, for any non-collateralized loan or line of credit.
The same is generally true of most lessors, as well. Some (most?) tech incubators / hubs / innovation centers are the exception, and I am sure also some smaller 'mom-and-pop' lessors. But once we moved out of those, we had lessors wanting us personally guaranteeing our 3-5 year leases, although we were able to negotiate those terms away with some of them.
We were able to secure net-30 terms from suppliers, however, that did not require a personal guarantee.
Even if you managed to somehow navigate these waters without anyone requiring a personal guarantee, zero is generally not the bottom limit. If you are a founder, or an owner, you most likely have brought assets and/or money into the venture.
and of course let's not forget operational credit cards (you are exposing yourself if you don't use an amex to pay for certain things) - that's the owners'/founders' credit on the line (at least at first).
As a director of a limited company in the UK - it's virtually impossible to get a loan without a personal guarantee by the director, unless your company has as much money as you are trying to borrow - in which case getting a loan is slightly pointless.
Entities lending money are not stupid. You can't just start a new business, incorporate, and then go out and have your corporation get a loan. Lenders are obviously aware that the corporation is not credit-worthy, will demand personal liability on the loan, same as they would if your business had no corporate form.
In fact; at last count I've tried 14 different ventures over the past 20 years.
Many of those had a net loss over the course of their life. As self-funded companies they have brought my income below zero.
As a IT consultant with clients; that is unlikely to happen, though, and I have used such a business to fund a lot of my other ventures.