Bingo!
You pretty much nailed it with everything you said.
"The fact is that your material well-being is rarely in jeopardy
because of a missed deadline, so your reaction is fully up to you."
This is what keeps my sanity.
Great posting! Love it!
thx, M.
Just my thoughts exactly.
I tend to think of being a programmer is very similar to be a bumble
bee;
you get up in the morning, you fly around in nature,
look for the most beautiful flowers, and when you find them you collect
them, take them home, press the flowers, put them between pages in a
book, and later,
you can show the flowers to your friends and neighbors.
That is how it is.
Just keeping it real.
Hmm... payed hundreds of thousands for a computer science degree...
couldn't find any jobs... But I can see why people keep telling me it
should be easy to find work! Thanks for the discouragement! I think
everyone has actually been suggesting that I'm too dumb to
program...
If you have no passion for your craft, I hope you can find the energy
to constantly update your skills when you're 50.
I started in FORTRAN in 1968. Today I'm working in Java and MongoDB
and studying Scala and Go.
You tell them! Thanks for the post :)
Excellent post.
One thing I would add is that one still needs to be choosy where one
works.
I've worked at places where the programmers are treated pretty much
as galley slaves, because much of the coding is non-creative (i.e.
generating new reports by modifying SQL statements from old reports,
etc.)
There are coding sweatshops out there, so just be careful.
"Little or no required education"
True of most jobs, apart from those with well-established
professional school tracks like law and medicine.
"Good compensation, even for mediocre performers"
This is good? Unless I'm a poor performer myself, this only serves to
fill the job with mediocre coworkers.
"Millions of jobs"
This is meaningless. I only need about one job at a time. Some of my
friends who are most happy with their lives (and wealthy) have jobs that
are perfectly unique in the world.
"No physical effort"
This is a huge downside. Programmers are often very unhealthy due to
it. It certainly makes the job less satisfying.
"No health or legal risks"
Item #4 is a big health risk, and if you don't think there are any
legal risks then you must be new here.
The reasons your friends gave for leaving their other professions are
bizarre, too:
"at some point, you resent your manager being the age of your
kids"
"Sometimes I just want to enter the classroom with a machine gun and
open fire"
These sound like personal problems, not occupational problems. I've
known teachers, but none who sounded like this. I've known people who
worked for younger managers, but none who sounded like this. You don't
think programmers ever have to work for younger managers?
It sounds like you're just in it for the money, and everything else
is just a rationalization for that. I'm not going to convince you of
anything else, because if you're looking for something in 2012 that pays
well "even for mediocre performers", it's pretty much programming or
politics. I can only say that some of us are not primarily in it for the
money, and I dearly hope that when I'm 50, I still care about my craft
more than my paycheck.
Totally agree. Here's my take – not trying to one-up but to reinforce
– from 2004.
http://pl.atyp.us/wordpress/index.php/2004/04/high-tech-work/
Sitting in a comfy place at whatever hours solving puzzles for good
money is a pretty sweet deal. Even if I could make it in some other
career I'm not sure I'd want to. I'm 47 now, been in the business 20+
years, and I'd gladly give up coworkers and schedules but I doubt I'll
ever stop programming.
I'm the opposite. I love programming, but my record of making money
at it is horrible. I do have a CS degree... but I could never complete
my contract jobs or deal with clients/employers. So I ended up getting a
part-time job in retail. It's so freaking easy compared to
programming.
I'm still programming, but nothing that needs to meet client demands.
Now I'm making mobile games... hopefully I can make some money from
that.
The money is very nice and I doubt I'd program professionally if I
couldn't make a living but the thing that keeps me in programming is
constant available wealth of knowledge. There are so many interesting
and applicable things to learn, even after two decades I can learn
something new every single day without hardly looking.
Except that for every one good American programmer there is 100
equivalent in India working for a quarter your salary. In 50 years
programming will be worthless as a money making profession.
I thinks it's not like that :D
I'm a programmer (mostly) and my wife is a lawyer. I built a bank and
a credit card company and she is a very very talented lawyer. I'm just
good programmer.
We both make the same amount of money.
My point is: The amount of money you make is directly proportional to
your rarity. That's it. Nothing else influences how much money you make.
Be rare, needed, you will make money.
Thing is, rarity is hard in some areas. You need to be an great
lawyer to actually be rare. These days, any lousy programmer that can
roll you an app is also rare.
That will change naturally, it will become hard to be a rare
programmer.
For those concerned about competition from programmers in India, I
would suggest to stay away from certain languages and technologies. 95%
of the programmers in India program only in Java and C#, and use the
Windows operating system and related technologies (Exchange, SharePoint,
SQL Server).
If you want to make an excellent and comfortable living in the U.S.
as a programmer, you need to focus on your career on C++, Perl, Python,
Ruby, and operating systems like Linux, Solaris, and FreeBSD, and
databases like MySQL and PostgreSQL.
Outsourcing to those shops is like hiring the workers in front of
Home Depot, only good if your project is the programming equivalent of
yard work.
Boy you must be a joy to have in a team!
Amazing post! printed and hanged on the wall!
As a programmer, I've wanted to switch to being a therapist. Rates
are as high, or higher, and you have the same sort of work environment,
but you never have to actually accomplish anything!
> "No health risks"
I'm sure sitting on your ass 8-10 hours a day is a health risk. Maybe
not as bad as working in a factory breathing in nasty chemicals all day,
or dodging falling trees as a lumberjack, but a health risk
nonetheless.
58++
Whats the opposite of young and smart?? wait don't answer that. Got my
BSCS cal state Hayward 1999 at age 43 after a long career in
construction (loved that too but... . coding / greeter at wal depot...
tough choice but. Happy and grateful to be plugging away at a ugly
hairball java web app every day. BTW Mitt wants me to wait till i'm 79
for my medicade/ssecurity.
> Good compensation, even for mediocre performers
> No health or legal risks
I have a master's degree in Computer Science and Engineering and I've
been programming since I was a kid. The last ten years I've been making
around $10k a year, because on my first job I got repetitive strain
injuries that still haven't healed. Programming made me the poorest
person I know, and I have constant health problems. A couple of years
ago, I wouldn't even have been able to write this comment.
I fully agree with that article. Having complained about my
programming job in the past (basically because I'm somewhat underpaid
and we are somewhat understaffed), actually that is just whining.
If you have some talent and interest in programming, pretty much
everything Yossi wrote is true — very hard to imagine easier money
nowadays.
Programming is not a healthy profession by any measure. It's not just
stress eating at you. It's mere fact that you sit all day long that will
kill you and significantly shorten your life span.
There have been incredible number of studies all confirming how
horrible sitting all day is for you. And what is worse, you can't even
make up for it if you do decide to counter balance it with 1 hour of
running or cycling afterward. Negative effects of sitting all day are
not negated by regular exercise at all.
Programming profession should be though of as something transitory (a
thing you can perhaps do 10-20 years) but you should have an exit
strategy for your own benefit.
I don't believe the author is in this occupation ONLY for the money.
I rather believe that he outgrown the "passion" and "curiousity" factors
and now strives to be good / exceptional at what he does, so that the
money keeps flowing.
These days it doesn't take a 16 hour working day to keep up with the
stuff you need to be better than average developer, unless you work for
a very ungrateful b*stard.
So IMO, the message here is: "be good enough or a little better than
that, but no more than that". Simply because many employers don't
deserve exceptional programmers anyway.
I'm 47, programming for money 28 years, 25 of them fulltime. I
endorse your message. Barring a lottery win, I'll do this until I die. I
can't imagine what else I'd do that would pay me 6 figures to listen to
Pandora all day while I sit at a computer.
If you can code (and amazingly, this includes those with the ability
to competently cut-and-paste from Google searches), you should be able
to find work. You might have to move, but it's there.
The price for this sweet gig is that you have to be a lifetime
learner. I started out on DBASE III, VMS and Tops. Then came the
C/assembler days. Then a stint with Visual Basic (possibly the most
criminally easy money generator ever), and then it became all about (and
still is) full-stack web stuff.
I can imagine a better life, but none of the bands ever worked out :)
This will have to do.
Love this
I really like the impression you made on HN crowd who declare you a
sellout.
This IS a way of stating hard truths worthy of a native Russian
speaker.
"passion burns out, whereas greed is sustainable"
Classic.
@Roger — problem is, no one else understands what flowers even are
:(
Regarding health risks — I'm 45 and try to keep in reasonable shape
out of the office. In the office I've changed to a standing desk. Remove
the comfy chair from your life! Replace it with Gofit Balance board http://goo.gl/I7tal
Just starting to learn programming having come from the science
consulting field. I don't agree with the belief that in 20 years
programming will be outsourced to cheaper labor pools. So far the jobs I
have (WordPress mostly) are from word of mouth. Are you telling me that
your local business manager is going to recommend someone in India to
his golf buddies, or a local programmer who he has met with and has a
strong relationship with? Use your location to your advantage.
You are right... IF money is your primary goal.
But we give up health by sitting on our asses for decades. We give up
integrity by making choices based on paychecks, not principles. You are
delusional if you deny the negative health and personal aspects of
spending decades sitting in front of a computer screen.
BTW, If you do not know people who have quit programming for other
careers, you need to get out more.
Unfortunately I realized the truth in your words after my law school
graduation. I run a paper chase in my pajamas while I telecommute every
day; but I get to call the shots and spend more time with my family. If
I had to run the same paper chase in a suit as a lawyer I would've put a
gun in my mouth long ago.
Your intelligence jumps out of the page. Great post.
>>No health or legal risks
Wow!!
And after that it was just tl;dr
Can you tell me where do you get so much work ?
I am a 50 year old VB.NET slacker and make > 100K. Very easy money
and about 50% of my day is spent on Bing searching things that interest
me.
@Jim Strathmeyer: learn how to spell "paid", and you may have a
chance.
Programming, despite what your expensive professors told you, is not
about computers: it's about people and how you work with them.
I didn't realize this article would resonate with so many people.
That explains why there is so much shitty software out there.
People like you hold society back. Do what you're good at, not what
pays more. You're just a coward.
Most of what you say is nonsense. And all you morons saying, "good
job", you're bunch of frickin nitwits.
Real software engineering is hard work. If it were "money for
nothing", we'd be overflowing with idjits like you, and we'd all be
getting minimum wage.
Get a clue, dufus.
@Lee Yes, your message about outsourcing to India is agreed upon by
many. However, I'm pretty sure you don't have much direct experience
with Indian software outsourcing. It seems like a great idea on paper,
but the quality is (often) total shit. Don't believe everything you hear
about how we'll all be outsourced in X years. It's not happening...
The only time I've ever seen a company be successful with large-scale
programming projects done overseas is when they're big enough to set up
over there and hire directly. I've worked with some fantastic teams in
Bangalore and Shanghai, but they were fellow employees at the time, not
a job shop. The really good overseas programmers end up at places like
this. The mediocre ones do outsourced projects, which usually end up
getting thrown out completely within 12 months.
@rb, @km
I don't think anyone was claiming it was an *easy* job. But it beats the
hell out of 95% of the alternatives. The "money for nothing" crowd crops
up regularly (think the early "portal industry" players), but they
eventually get found out, and they go off and do something else. You
have to be able to do the work, period. But if you can do the work, it's
a great job.
@rb I'm really good at lying on a sofa and reading internets all day
along. Do you suggest I should pivot doing this instead of
programming?
@Jim Strathmeyer: I paid <$10K for a CS degree; subsidized
education. I guess I'd try programming first if I had to risk the pile
of money that they charged you – luckily, you can try to program
professionally without getting any sort of certification. I don't know
your situation; I can say that I, for one, would probably make a lousy
lawyer, and there's luck involved in having your natural abilities match
the current demand.
@Kat: so your suggestions are programming or politics? I'm sticking
with programming, then. There aren't that many jobs in politics, and I
don't think I'd be very good at it.
I agree with you. I actually took some time off from college to try
and figure out what else I'd rather do for a living besides programming,
but no other career options were nearly as enticing. So I'm back :)
In response to some of the comments...
Job security– as long as we have computers, we'll need programmers.
As long as the people hiring speak only English and live in the same
time zone as you, they'll be hiring people who also speak English and
live in your time zone.
If you have a CS degree and cannot find a programming job: Please,
please, write a blog about it and post it to Hacker News. I genuinely
want to know how that is happening.
@Matt: a fascinating story; I wonder how an employer in retail is
easier to deal with than a software type of employer.
@Lee: people have been saying programming would be made a commodity
through outsourcing for many years. Outsourcing is hard. I don't have an
explanation, really, it just clearly is, from experience; obvious
problems are time zone differences, language barriers, and mentality
differences, but I don't know what's "the big problem", it's just clear
that outsourcing to low-wage countries still didn't eliminate
programming elsewhere. Also, one option – not the only option, but a
perfectly possible one – is that salaries will rise in low-wage
countries more than they'll fall in the developed world as a result of
globalization.
@Robert: ahem... anyway, it's much harder to make it as a
therapist.
@Paul: so which occupation is better?
@Mickyd: Interesting!
@Martin: oh my! I started feeling that I'm getting repetitive strain
injury once; I was terrified, changed my typing habits, and it stopped.
I think we'd all be better off, as a society, if schools had mandatory
typing courses (and phased out writing while they're at it – a horrible
way to enter text, that.)
@Dimitar: if someone is "exceptional", great, and definitely not
worse than "good enough". I just wanted to say it was good money.
@Ilya Kasnacheev: I don't think they all do. In fact, this is
apparently one of my more popular entries on HN. I think my more
technical writing is much more worthy of attention, really, because
stuff like this bit here is something anyone can write in half an hour,
but I guess it's my fault; I'm just worse at making that type of thing
entertaining enough.
@Dave Armstrong: let's say money isn't my primary goal; it's probably
one of my secondary goals though, isn't it? So the question is, what
occupation do you recommend? And, who of your friends switched to which
career from programming, and how did it work out?
@MS: Interesting!
@F: erm, if you're looking for work, and Jerusalem is a good location
for you, and you can print that binary tree – drop me a line...
@Happy MS Coder: interesting!
@rb: you could demonstrate your bravery by signing with your real
name and a link to a website where you expose your brilliant thoughts to
public criticism. I'm of course leaving your comment to document your
bravery and brilliance for posterity.
@Yossi: This posting has been successful, based on amounts and
breadth of commentary. I would agree with the rarity comment – I myself
am not a genius programmer, but I love and care deeply about the code I
write, am social, am constantly ears perked on best practises that
actually work...but most of all, I have a PhD in psychology and kick ass
with consumer analytics. I am living comfortably...probably due to my
rarity.
@Martin: with that amount of experience, I am totally flabbergasted –
how can that be possible? Which languages and skillsets do you have on
your roster? Skillful people USUALLY do end up having a comfy living in
software business, based on what I've seen. Sorry for you :(
@everyone fearing outsourcing: I've worked with outsourcing to
Pakistan, India, former Soviet countries...and especially the India
threat has seemed void. The overhead from language, cultural differences
(oh the love of hierarchy and avoiding true responsibility),
time-zone-hassles, skillset hiccups, rising wages...you name it is so
large, it makes developing new apps totally braindead idea. HOWEVER, for
simple maintenance type tasks for well documented environments, where
the job is about impossible to do wrong, outsourcing has seemed
financially a good idea in environments I have worked in. But I believe
the threat when I see it happening. Thus far, no.
58 years young, still coding, it has only gotten more interesting as
the years go by...
With years passing I become more interested in what I can do, not
what I can learn.
know thyself.
I was once afraid of the "Indian Outsourcing Threat" — my company was
sending loads of work there via Tata, and it did look pretty bleak.
Then management saw the results — terrible, repetitive code with
early/simple bugs copied hundreds of times. We still have Indian coders,
but now we employ them directly (not through TCS/WiPro/Infosys), only
hire the very-best/most-passionate ones, and pair them with our
most-experienced Western talent. Oh, and we make it fun too!
It's not Indian vs American — it's the people born to code and enjoy
it versus people who simply should have chosen something else to do, for
everyone's sake.
Thanks, this is a mature and intelligent article. I am approaching my
mid 40s and code for over 30 years during which I have been developing
some mayor online systems. The coding profession allowed me to freely
move continents a few times and live in the 'greatest' cities on earth –
although these days I prefer the outdoors.
A few years ago my net-worth became enough to retire on modestly,
which effectively resulted in riskier jobs and discontinuing being an
employee. Today I telecommute and make more than ever while working
fewer hours than ever. No more wasteful office politics, unnecessary
meetings or frustrating commute and coding just takes less time – I am
simply experienced and know how computers work, even if languages and
APIs change over time. Fortunately I am also in outstanding health
according to the doc.
However, the passion is gone. Things are different when you are a
young kid in an organization and get a kick out of coding circles around
the majority of others. But in the long run most of these others are
quite well off as well by now. At some point you do ask yourself is this
really what you want to fill most of your days with. For me the answer
now is: No. But it is the best type of work for my kind and allows me to
pursue things I truly care for.
But besides the authors excellent points, coding is very creative
when building a system from scratch and often quite fulfilling when
taking a large system live. I don't need to take crap from anyone. I
don't need to compete on BS to climb the management ladder. I am
independent and if it doesn't work out (for example in places sadly
occupying some of the vulgar immature fools above) one finds a mutually
acceptable exit strategy and moves on. There are plenty of
opportunities.
I tried at some point to change my market to NFPs even at
significantly reduced pay (made up for by more fulfillment) but the
truth is they don't need the level of sophistication I enjoy in coding
and my graphic design skills for static content are limited. So passion?
The fire of the youth is gone and priorities have changed. Job
satisfaction? Reasonable and better than most people I know across the
world. Happy? Certainly not unhappy because of coding.
I'm a software dev. My brother is a lawyer. We live in Germany and he
is making much more money than I do. Ok, I'm studying again and can't
work fulltime, but even his hourly rate is 3 to 4 times my hourly
rate.
What is really interesting is he seems to be driven by greed a lot
more than I am.
Since I was 14 years old I never wanted to be anything else than a
programmer. He easily could have become a programmer with a CS degree
too and I think I could have become a lawyer, but I don't like to wear
suit and white collar shirts. I usually wear jeans & hoody like a
lot of developers do.
We're really glad that we live in Germany and so hadn't to pay
hundreds of thousands for university education. If you have to do that,
than I would think it would be much better to just learn programming by
yourself, because it doesn't make much sense to put that much money into
knowledge that changes that rapidly as modern programming environments.
You'll learn some crucial things in CS courses at university like
algorithms and data structures that won't change but the majority of
things you use in day to day programming is changing more rapidly than
university can adapt. University often still teaches how to write Java
in Germany, when students gets jobs as Ruby, ObjectiveC or JavaScript
devs.
Another profession? Advertising.
@Richard Metzler: I have two problems with being a lawyer: first, I'd
probably be bad at it – it's conflicts, very combative, it'd be very
stressful for me. (Even computer security is a bit hard for me – I sort
of prefer cooperative environments and don't function very well when
constantly exposed to outright malicious hostility.) Second, I think
lawyers' compensation varies wildly, the market is rather saturated, and
you either make it or you totally don't make it; I guess this isn't a
problem if you feel you're a natural, or if you aren't particularly
risk-averse. What I like about programming is that mediocre performers
do well, so for a good performer, there's a lot of distance to go until
hitting the bottom, presumably, even once the market gets worse for
whatever reason, and then again, it makes for a less competitive
environment.
@jedrek: advertising? What sort? (Director of ad clips? Market
researcher? ..?)
"passion burns out but greed is sustainable" is the best utterance
I've heard in a long time
I've thought about becoming a musician before, but the lifestyle
change is so dramatic. You really don't make money for a long time.
Those bi-weekly sums of money are placating.
> What _else_ do you want to be doing when you're 50?
tenured research.
@leoboiko: if one feels he can count on getting a tenured research
position, all power to him.
Yossi,
Excellent article. The theme, and especially the quote about passion
vs. greed, meshes in an interesting way with a series of posts by
another author I like, Cal Newport. He's in the midst of exploring the
topic of passion as it relates to the touchy-feely "Follow your passion"
career advice of the last few years. He thinks that's awful advice. I'm
going to recommend this article to him as additional food for thought.
In the meantime, if you want to look over his thoughts on the
subject:
http://calnewport.com/blog/category/features-rethinking-passion/
All this talk about programming being an unhealthy job should
consider biking to work and joining a gym. I go to the gym for lunch 2-3
times a week and have a personal trainer. Also a stand up desk is
crucial.
I find that most developers aren't unhealthy because of work but
healthy because of what they do after work. Sure. Sit at a desk for 8
hours but go home for another 4-6 hour gaming marathon and your body
will suffer.
As for money, I started seriously programming 4 years ago. I was not
paid much (started at $40k) and worked some crap jobs but I can't think
of another profession where I more than tripled my salary in that amount
of time and I still get offers for more money every other week.
Great article, stay healthy though, get some outdoor hobbies going
with friends, family, self and you will get fit and come up with all
sorts of business ideas, currently traing for a marathon myself.
I'm 57, and expect to be working (programming) for another fifty
years or so.
I owe, I owe, it's off to work I go...
We are supposed to be "eniemies" if not me and you, then our people,
but this article is freaking amazing.
Уехали-то (если не секрет) по своей воле или ребенком?
Не жалеете?
С дружеским приветом из города трех революций :)
@Rami: so where are you from? Peace :)
@VM: I left during my early teenage years together with my family; I
wanted to leave, very much, but I was underage so in that sense it
wasn't my decision, so that's the full answer to your question. No, I
never regret it; wish you all the best of luck back there.
"There's also a thing about material wealth – it's easily taken
away."
Material wealth will always be taken away — you can't take it with
you, after all.
@J: well, in that sense, you probably can't take your professional
ability with you, either... I was talking about a tad less extreme
case.
Awesome post man, "dil ki baat keh di tune toh" :P
@Yossi: Rami is an Arabian name. Peace.
I'm 42, and I've been programming since 1990. I can't imagine
enjoying anything else more. I get paid a ton of money to do stuff that
I really, really enjoy doing. Plus I get to say things like 'You know
the systems that do {redacted} ? I helped invent those."
Are there health risks? Sure – if you choose not to exercise, choose
to eat poorly, and allow your job to stress you out, yes, you can be
very unhealthy. But that is in your control. If you eat right, exercise
and stay calm, the health risks of the job are exceptionally low.
Legal risks – if you start your own company or such, then yes, there
can be. Otherwise, the legal risks are often borne by others.
Can't find a job in programming? Can't make good money at it? I'm
sorry. (really!) You're not a bad person, but you are not typical in our
industry. Having been employed for 19.75 out of the last 20 years, I
have an admitted availability bias. But in my experience, highly
competent programmers are never looking for work for very long.
But, I must disagree – programming is very, very hard. For most
people. For most people, learning how to program is like learning how to
speak chinese while riding the vomit comet and playing Halo at the same
time. Most people don't have the affinity.
Those of us that do have the affinity – programming may be complex,
and sometimes frustrating, but it's a heck of a lot easier than trying
to convince someone why they should be buying the car you want to sell
them. Egads!
Great article.
@Ziad: Rami is also an Israeli name :) (My guess is that there's no
common root there, unlike several semitic names which do have a common
root.)
@jb: yes, there's that problem with selling a car...
Anything is easy when you have a brain, but most people don't.
Most of the things you state don't apply outside israel or other
small markets, though. Everyone knows english and it's much easier to
import 2, 3 or a dozen people from other countries to replace you. And
they'll do it, even if it costs more money and nets them less in return.
Because they have endless billions to waste, and managers only become
successful in these environments by having as many employees as
possible. And it hurts them much more for wages to go up to keep a few
talented employees than it does to hire a dozen or even a hundred
incompetents. Not to mention it takes a big heart to intentionally hire
someone better than yourself – in large environments full of losers
there's a great deal of competing by sabotaging the competition.
There's also only so many "real" jobs where you might make use of
your algorithms book, compared to an endless amount of GUI and web jobs
that any 14 year old could do.
But personally I love it, though I do think it's stressful. Well,
it's either too stressful or way too boring depending on how much the
continued existence of your company depends on you and how new the
company. But the 100th iteration of someone else's code, that's not
really programming at all – only if you make it yourself do you really
find out all the problems and really have to do the serious work on
it.
Paul M. Parks:
The right advice is not to follow your passion but to do whatever you
can’t not do. Those we call writers are those write
impulsively, not those who write for pleasure. In all forms of art it is
the same. But this is not limited to the arts, or to anything. Some
people can’t help keeping their place tidy. Or can’t stop themselves
from tweaking and tuning and diddling their car. Whatever it is, the
less like recreation it seems, the more likely they are to say
it’s not what they want to be doing – yet it will be what they
choose to do whenever given the choice, rather whatever they are
passionate about.
Everyone has the things they would like to be doing, and the things
they actually choose to do – and the sets are often wildly disjunct. Yet
people build their self-identities out of the things they are passionate
about rather than out of what they actually do.
I impulsively try to make my computer do things I want it to (which
is almost always connected in some form to writing; ways to read it,
ways to write it, ways of publishing, etc.). The question is not whether
I still want to be doing this when I am 50, the question is what could
possibly happen by then that would make me able to stop.
Greed may be sustainable beyond passion, but compulsion and obsession
will leave its bones in the desert.
And if you can monetize your compulsion (not all of them are amenable
– not everyone is dealt a lucky hand), you will do well.
@Aristotle Pagaltzis: You have a point, I guess. My angle is, I
wouldn't have approached computers if it weren't for the money, and much
of the stuff I spend time thinking about somewhat compulsively is stuff
directly related to work for pay. The amount of "truly" non-work-related
programming that I do is rather minimal.
"And if you plan to quit programming, I wonder what your alternative
is". You don't have one. You purvey an abstract service which is
entirely predicated on the continued functioning of the economy. And
since most economies are now sustained only by quantitive easing, that
ought to cause the more thoughtful of you to ponder.
@Rich: erm... first of all, I'm not a survivalist. Some things in
life I won't survive and I'm fine with it. If your QE comment hints at
the presumed upcoming collapse of civilization, then I'm willing to
collapse together with it.
That said – there's usually life after a collapse, as the collapse of
the USSR shows, among other examples. Life goes on, and work must be
done. Some of that work is software, and many programmers did well in a
post-collapse Russia. You can call this service "abstract" or
"concrete", but there's a service; a program gets written and it does
something. Of course if there are no computers after the presumed
collapse and no work for computers, sure, the service would become
rather "abstract". But typically, once a certain technology becomes
widespread, economic turmoil doesn't make it go away.
Also, everything in life is "predicated on the continued functioning"
of something. Hunting and gathering is predicated on the continued
ability to hunt and gather, an assumption which breaks when Europeans
conquer your land. Life is tough that way.
Jim Strathmeyer and others:
While programming is making a computer do what you want it to, making
money from it requires convincing 'someone' to hire you. Often that
'someone' takes arbitrary qualities (ex. first impressions, appearance,
how you shake their hand etc.) into account more than actual skills.
Sometimes they even have no idea about actual programming.
Another problem is that many jobs are filled via 'word of mouth' and
recommendations rather than advertised in the local newspaper. This
makes it more difficult in our industry for anyone not lucky enough to
'have contacts' or be pulled straight from college.
Unless you have tried jobs and 'failed' you shouldn't consider
yourself 'too dumb' as the skill-sets for programming and 'breaking into
the job market' are somewhat orthogonal.
Disclaimer: I've never had a meaningful job in anything.
On the Uplink forums (space.com, while they still had forums...), we
once got to talking about the types of people who worked at NASA (the US
gov. agency). Largely whether the folks there were actually there out of
a love of 'everything space', or for the money.
While NASA is certainly the kind of place millions of American kids
dream of being (and have for decades), there's some reason to think a
lot of folks there are just in it for the money. Many of the engineers
there earn ~75k to 80k US dollars annually... Which is above average for
engineers. And well above the average wage in that country... But
slightly below the typical wage for aerospace engineers with the same
experience. (Those same people can go to one of NASA's subcontractors,
Boeing/Lockheed, for a few thousand more a year. And then go back to
NASA for less money again).
...There's always the cynical possibility that people who really just
want a good paying job and don't care about Humanity's Future In Space ™
could be displacing people who've wanted to be there since
childhood.
One of the NASA guys on that thread said that maybe 1/4 to 1/3 of the
people he knew there worked there for the money. Vast majority were
there out of passion for the field.
That strikes me as a good job to have.
(As an aside, reading that partially restored my faith in humanity. Even
ignoring the fact I'm a hopeless romantic with a picture of an asteroid
for a desktop background) (As a further aside, wow am I rambling...)
Excellent read. I do hope that I'm still programming when I'm 50...
but I also hope it's not still in C++. :)
I think you are below thirties, wait until you are at my age, and
witness the new platforms shock on your courier, see when the trend is
android oriented and you have to start all over again!
@Ob.: so if I'm doing embedded stuff (OS-free), is it a good hedging
against platform changes?.. Anyway, I had quite some platform knowledge
which is now worthless – for example, I did Windows CE development a
decade ago.
You're from Russia? Hmm, that's kind of sexy. Your Enlgish is better
than perfect! I guess you've been in the States for a long time, huh?
Btw, that one quote in your article that reads ""Sometimes I just want
to enter the classroom with a machine gun and open fire". ...You might
want to re-word that a little if you know what I mean. Happy
holidays!
Erm... I've never been to the US, and my English isn't that good
(which I don't find particularly embarrassing, under the assumption that
if it makes English-speaking folk to cringe, it's sort of a karmic
punishment for all the conquests of the past that earned the English
language its widespread use.)
As to re-wording – I'll know what you mean if you point it out.
Hello all. I am a 40 year old attorney, practicing for the last 13
years. I never wanted to be an attorney, but with a family at the age of
22 it seemed like the best thing to do at the time. Ironically, I have
always disliked writing, reading and public speaking, lol. I am an
analytical, math and problem solving type person.
Well, I am now looking into getting a Computer Science degree. I am
burned out with the law and I think I could enjoy CS/Programming work.
Is there advantage in the market place for a CS/lawyer (other than
patents)? Any other thoughts would be greatly appreciated. And yes, I
would need to make 100k fairly soon after completion of degree. Thank
you in advance.
I think the nice thing about a CS degree is that you'll know if you
like it during the first semester or two; a basic introductory course to
programming will often be enough (unless it has a reputation of being
done badly, in which case you might not want to jump to conclusions too
quickly).
Lawyer/CS other than patents – I wouldn't know; there are a bunch of
contexts where legal knowledge could be valuable but all the lawyers I
know who work in programming or somewhere near it stay away from
anything that to me looks like law-related work.
I think $100K/year is a reasonable amount to make in any large
high-tech company if you're in the US but I'm not, so again I'm hardly a
source of practical advice. Generally as a programmer you can get
"valuable" rather quickly in the sense that replacing you is very
painful and then you're in a good bargaining position.
A lot of what's happening in programming is "dirtier" than, say, math
– human whims are heavily involved and that can be very frustrating if
you have a strictly analytic approach where you take a clearly defined
problem and you find a correct solution. This unfortunately is not
something you can see in a CS degree where they give you rather clearly
defined assignments and you deal with neither users nor vendors nor
teammates or managers. I'm fine with it – I've evolved in my approach to
this stuff but my starting point is that I like to please and it's not
hard for me to take human desires into account even if they seem
nonsensical on several grounds. But I know people who're extremely burnt
out because of these things.
In this sense I think programming is perhaps not that different from
law – there's a lot of communication going on with all the upsides and
downsides you'd inspect. To me, the one big difference between law and
programming would be that programming is much less adversarial or not
adversarial at all much of the time. Program source or a tutorial are
written in order to help a fellow programmer; legal prose is written to
prevent mischief by adversary, to put in very simplified terms. This is
why I suffer when reading legal texts despite generally enjoying reading
(I have some experience with, well, patents.)
I guess programming is also more like math than law but it's very far
from pure math; I'd say that switching to programming is a safe bet if
you want to get to a less adversarial context but not a safe bet if you
want to get into a more "sound" realm with more "absolute truths". In
fact I work with a gal who was a lawyer and who likes her problems
"sound" and she has a lot of frustrations from the "dirt" that the human
factor brings into her work. She's a great programmer and I think she
likes programming better than law, but it's an example of what I mean by
"not necessarily safe bet".
Thank you for your thoughts. Your comment regarding "abolute truths"
is interesting. A "sound" realm is appealing to me. Perhaps Computer
Engineering could provide this?
I guess I'm somewhere on the border between programming and computer
engineering (I deal a lot with chip design and accelerator design), and
I'd say that it's still rather far from "sound", though generally
lower-level work (as in drivers or VLSI) is somewhat closer to
"soundness" then higher-level work (as in web apps or UI), simply
because less people have any idea what you're really doing and more
people are terribly afraid that the thing will not work for mysterious
reasons and they leave you alone as long as you supply working stuff and
prevent their nightmares from materializing. The ex-lawyer I mentioned
specializes in lower-level stuff, BTW; the upshot is that it's better
but "it's still far from math".
My guess would be that "soundness" has trouble surviving contact with
"The Real World" and would be most easily attainable in academic
research; though I've never done any of that and wouldn't be surprised
if someone who has would have a different view of the matter.
Personally, I think that my work on computer architecture has been my
biggest success and a very large part of why it worked out was
relationships with people – convincing people to work on the stuff,
"selling" the ideas internally, writing documentation and tutorials that
make the stuff accessible to users, etc.; I made some technical
contributions myself but I never was the strongest programmer working on
the stuff and of course I never was the one with the deepest
understanding of hardware (I have no formal training in electrical
engineering) – what I was really good at, and what was especially
important at the beginning, is talking to everyone and figuring out what
they want, explaining it to others, "bargaining" over details, etc.
We don't know what the world will be after 50 years,so just to make
effort for the explicit present :-)
Well, it's different for everyone, but without exception, everyone
reading this will be 50 somewhat earlier than in 50 years from now.
Another cool thing about programming is that it is rarely, if ever,
just programming. It is also other things: making games, sending robots
to Mars, making cars safer to drive, building networks... the list is
endless. And if you get bored with making games, you can always try your
hand at sending robots to Mars. But you'll still be programming.
Oh and, "passion burns out, whereas greed is sustainable" is just
awesome.
Thanks!
I absolutely love being on my laptop/computer online fiddling around
the internet, researching, learning...
I decided to Google my love of being online and how I could use that
to make money at home; and your article was the first that appeared on
the search.
Is there a pre-test to determine if I can be a programmer? If so,
where would I begin?
You could take an online Python course in Coursera. I'm not sure it's
the best out there but it's decent reportedly. If you feel a wish to
complete the exercises – as in, "damn, I wonder why this doesn't work?!
c'mon!", and if you eventually manage to do it (some might be harder
than others but everyone's different but you must be able to eventually
succeed, right?), then I'd say it's a pretty good predictor.
It's not as hard as it can sound since if it's really not for you
then you'll see that you hate it and bail early, and if it's for you in
fact then it's not a waste of time to finish the thing...
Hello, Yossi Kreinin,
Interesting article. I was trying to find a suitable profession for
me and I believe I'm moving to the right direction. In school I studied
biology, chemistry, maths and won first places in maths nationally. I
tried to do biochemistry but I did not really like lab work and thus
quit that stuff.
I am on my gap year now and I'm doing an intensive study on
programming and I find it very difficult(maybe due to the fact that I
learn non-stop like 12 hours a day). I completed edx.org course by MIT
and quite liked it. However, many people claim that you have to find
what you love and I don't know whether programming may be a good career
for me. I like puzzles, learning in general, I was the only stranger in
my class who did read encyclopedias because it was fun. However, I have
a really bad trait: I lack persistence and get angry when problem does
not budge. That irritates me and I want to throw away everything. I
think that's just bad trait I developed over time...
I, as an INTP(if you believe in Meyers-Brigss), did extensive reseach
on what is suitable for me and found that problem solving, thinking is
suitable for me. Which includes programming, maths, all sciences. Also
I'm aspiring to start my own company which may be ambitious for
introvert but I believe I'm capable of overcoming my lack of ability to
communicate.
As I think now, I can eliminate physics because I like it just for
'extra reading', chemistry( because I loathe the idea of working with
that chemicals ). The problem is which burns me a lot: all blogs I read,
all successful programmer's traits I researched, seems like the guy
started young, like 8 year-old, programmed with Commodor 64, created his
first big project when 15 and so on...I was not like that. When I was a
child, I used to play games, deconstruct computer and put it back, and
read loads of books on variety of topics. Which made me
well-rounded...but general knowledge never pays in this world and thus I
don't know whether I am capable of handling CS course in one of the top
unis in the UK. Now, I learned fundamentals of java and started reading
Android books to create some nice stuff: maybe twitter app.
Sorry for long and messy block of text but I would like to hear
opinion of every programmer whether it's possible to succeed for
me...
Best regards.
I never programmed until age 17 (I don't count Logo and Pascal that I
was "taught" in school); I haven't started my own company or anything,
but I'm doing fine, and there's plenty of people like me.
It sounds like you could do well as a programmer; as to picking what
you love – I didn't, worked out well. People who loved computing as
children actually suffer in the industry sometimes because a lot of the
stuff is not lovable and when you expect everything which is part of
your job to be extremely enjoyable than reality is much more frustrating
than it is when approached with more balanced expectations. I guess
persistence is a good trait, though so is "impatience/laziness" since
the latter leads you to look for shortcuts that you can often find if
you care to look for them; anyway, if you studied for 12 hours
systematically, that sounds like more than enough persistence...
If you don't see something more intriguing and/or better paying than
programming right now than I think it makes a lot of sense to choose
programming (in particular, nothing prevents you from switching to
something else and programming is a great thing to switch from, since
you can often work part-time for a long time to finance the switching
efforts such as learning or low-paying entry-level jobs in the new
career that you choose.)
"but passion burns out, whereas greed is sustainable" – this entire
blog post was quite humorous. Thanks for making my day.
You're welcome :)
@Eduardo, that's a crock. How many guys do you think there are in the
world than can write a world class physics simulation? How many guys can
design and implement a new, cryptographically sound hash algorithm?
The rarity in computer science is in specialization, which probably
has broader possibilities than even the medical field when you consider
cross-industry domain knowledge. With things like advanced robotics, 3D
printing, ubiquitous drones and basically all future scientific
breakthroughs being utterly reliant on software, I only see that
growing, not shrinking.
Code monkeys will always be code monkeys — but that doesn't diminish
growth and innovation at higher levels. In fact, if anything, demand for
those kind of people in support and maintenance roles can only increase
as a direct result of innovation done by specialists.
oh ,a ha,very good
Great and encouraging post. I'm already over 50, have been in
linguistics, which I get along with but don't really enjoy it, except
it's good money, but have been dabbling with code for decades. I first
learned IITRAN in the 70s (anybody know what that was? sort of like
Fortran but different, as I recall), now wish I'd continued in it – I
was offered a job as a systems analyst by IBM back then but for some
reason didn't pursue it. Now I'm thinking of getting back into it and
your post gives me some impetus!
Linguistics? Interesting! (I don't know a whole lot of people who
studied linguistics, but those whom I know sort of look at it as a
vocation rather than a thing you do for money; the closest occupation to
the latter that I know of being simultaneous translation.)
Its all about how you enjoy your profession. I am from India and
stands very much closer to outsourcing. My boss is a foreigner, and he
has an Indian team of programmers. What Tim Jones said got relevance,
but its a fact that the quality delivered in India is increasing day by
day. And the very same day where Indian quality meets quality abroad
(and for 1/10 of the wages abroad) , everyone will start outsourcing to
India. And according to the current trend in India, everyone after
completing college is trying for a programmer job (in all langauges like
java,php so and so) . So I think after 10 years, programmers will be
have less demand globally.
Well, maybe; I did hear it 15 years ago already. I think it's really
hard to outsource programming, and then another possible outcome is that
programmers' wages in India will rise instead of wages elsewhere
dropping. I think the gap is often already much less than 10x.
Also I'd expect India to have plenty of its own tech companies
instead of mainly providing outsourcing services in such a scenario.
Software is all design and zero manufacturing, so why not run your own
companies if you're good at it? It's not like a manufacturing industry
where it makes sense for design to happen at country X and for
manufacturing to happen at country Y, these being two things requiring
different skills, regulated by different laws, etc.
Hmm.. In that sense, may be India should rule the industry after 10
years? As you said lots of small companies are budding up here, starting
an it firm was a news 4 years before, but not at all now.
Well, that's perfectly possible, but then I'd expect wages to rise in
these firms to attract the best talent. The US currently rules the
industry and you can get employed there and elsewhere on reasonably nice
terms; it's not clear that would change if India or anyone else became
the leader. It's in particular not necessarily relevant what the level
of wages in the average population is; I think wages would rise to poach
the best people anyway, up to the point where it's not economical to
raise them anymore. (In particular, currently rising programmer wages in
India simply means that they get more productive so higher wages are now
economical so firms have to pay them – otherwise would would it happen
despite there being more programmers, right? At least a commenter above
claimed wages were rising there – I'm not following these things
myself.)
What would unquestionably mean trouble for programmers is falling
demand for software – then wages would drop because firms wouldn't be
able to make a profit with higher wages. As long as demand remains as
insatiable as it appears to be now, more programmers might simply mean
more well-paid programmers, as things more or less were up until
now.
My $.02; I don't claim to understand the economics of software very
deeply.
I'm 49, love programming, and would do it on the side for free if I
had to work in another industry. What is wrong with me? :-)
Well, it's as valid a rebuttal of the original thesis (that wanting
to program starting at a certain age is unlikely) as mine – perhaps more
valid...
What a joyful posting! Just like many others on your site.
I keep reading it again and again and it feels just as good as for the
first time :)
Thanks :)
Yossi: the word around our country is that the job market is tough
for older engineers. Since I see you are now a manager: do you find
yourself or your colleagues hiring many 40something or 50something
engineers?
In a heartbeat. From my end, the job market is rather tough for
employers – most candidates don't know shit, and an employer can't
really afford to discriminate based on any criterion if they want to get
a reasonable programmer.
Some people will indeed want to discriminate against more experienced
candidates though – where "more experienced" can be 28 years old –
because they think they don't offer a compelling job for someone
experienced and other reasons along those lines. I think it's crazy to
not be able to find uses for a good candidate, but there are such
attitudes.
But I don't know. I mean the market could change at any moment. If
someone knows of a better way to make money and they can do it then
fine; all I was saying was, "really wanting to do this" considered in
isolation from the simple question of how one pays one's bills is not
how I recommend to look at it.
Yossi
Tx very much for your response .. 2 more questions:
1. What would be your reaction to a CV of someone who programmed for
10 years and then moved into management 7 yrs ago and wants to program
again?
2. On the Mobileye website, there are only junior positions being
offered. Do you think that might have something to do with the fact that
"most candidates don't know s—-"?
1. By itself it's not a problem; I had a manager who quit to become a
teacher and then went back to programming, and he was good at it all
along. Particulars depends on the cover letter explaining why get back
into programming and the CV itself.
2. I have nothing to do with Mobileye's website, what job openings
are listed or how they are described. One thing which is largely true
for Mobileye and which I think is good is that you usually get to senior
positions by starting at the bottom; Mobileye relatively rarely hires
someone to a senior position, regardless of their age – though
experienced people often move faster into senior positions, and they're
sometimes hired with the intent of being promoted if everything works
out well. (The observation is my own and does not reflect company
policy, nor is backed up by stats.)
Mobileye relatively rarely hires someone to a senior position,
regardless of their age – though experienced people often move faster
into senior positions, and they're sometimes hired with the intent of
being promoted if everything works out well.
I think that is consistent with what is done by most local companies
like Checkpoint, NDS etc.
Unfortunately you reach a point in your career (long before age 50)
when (after being fired or laid off) you can't just "start over again"
in a junior position at a new company (ie. even if you are willing to,
the young manager won't want to hire you into his young inexperienced
team). At that point you are really screwed.
Whereas in the US, companies will generally create a specific number
of senior positions and hire experienced people to fill them.
Well, a lot of people, myself included, are in fact willing to hire
experienced people into a non-management position; and an experienced
person doesn't necessarily have to move into management to get better
compensation once hired, either.
Well, a lot of people, myself included, are in fact willing to
hire experienced people into a non-management position
The fact that you are a fair and decent guy doesn't help engineers
who are 40ish and have their applications tossed into the trash by
Mobileye HR ("didn't they see that all the jobs listed said 1-3 yrs of
experience?")
The people on here claiming regular exercise cannot counteract
sitting all day and the ones who can't find work with a BSCS are
amusing.
I'm sure both of these groups are trolls and they're performing quite
well at it. I'm just not crossing over the bridge. There is sufficient
evidence routine exercise increasing your life span and statistics
backing up claims that computer science is a hot field.
Then again, the good programmers don't work in industry... just
saying.
I was so inspired by this article and everybody's comments. I'm a 30
year old lawyer from Greece who desperately wants to change her path! I
completed a Harvard edX course (CS50), which was in C, and am looking to
learn some other programming languages. Ideally, I'd like to learn how
to program and design games. But I'm a little hesitant to make such a
big change in my 30s. On the other hand, I've always been good in puzzle
solving, maths etc. and never in anything regarding law! Any advice?
Should I go for it? On which languages should I focus to begin with?
Thanks everyone!
I work with a gal who made the switch from law to programming at
around your age; she got a BA in CS which is a good standard path. How
to get education otherwise I don't know in the sense that there's the
question of what employers expect and value, but of the standard stuff,
I think it's important to take an introductory programming course with
abstract data types, recursion, etc.; data structures; theory of
computation; algorithms; and basic math – calculus, linear algebra,
discrete math, and probability theory (the math can be skipped but
knowing it opens more options). Languages – Python is good to get shit
done quickly; C is good for speed and stuff like drivers/embedded
systems; C++ is horrible but is very widespread and perhaps unavoidable
in many kinds of games; JavaScript is what the web uses; and then you'd
want any language depending on immediate needs. In terms of
nice-to-learn first language, I think Python and Java are good
options.
I'm hardly an expert on programming education so take it with several
grains of salt :)
Thank you so much, Yossi! Your answer has been really helpful. I was
thinking of Python as well. I also think that C is a good language that
could provide someone with the basics and introduce him into the frame
of mind of programming. Oftentimes, I say to myself 'what are you
getting into'; all my friend think I'm crazy, but I want to try it!
We'll see how it goes! Does your friend work as a programmer? It's
encouraging to know that someone made it in her 30s!
Sure, she works as a programmer with us right now.
Argh. I was hoping for a magical way OUT of programming.
All the benefits are one thing, the down-side:
1. Management – they're almost always needing a bail-out of the
stupid decisions they made. Guess who's on the hook? The paper-pushing
manager? No, the programmer.
2. Crap Code – "we don't have time to do it right" so we nickle and
dime ourselves (with more time & effort) after the paper tiger is
released *appearing* like we did the job. Then, you get to spend a lot
of days trying to make future requirements work without breaking what's
already working and basically slopping spaghetti code around. And, in
some shops you get the honor of having your name on it via source code
control. Oh, the joy of getting up in the morning for this.
3. Crap is King – per #2, it's true. Sloppy developers abound and the
good ones have to live with it, either cleaning it up, integrating with
it, or worse: living under their orders b/c they're a better a** kisser
than others and politicked themselves into such a position over the more
competent.
4. Value-added – vendor recurring revenue strategies have programmers
busy, at least in the enterprises, with upgrades, migrations, etc. that
really add no bottom-line value to what the software was doing. It's the
vendor benefiting. Of course, if you wait too long you may have a dearth
of available skills in a given version or technology, but that's usually
many years vs. the mad rush vs. what's being done in most shops. And,
managers come-and-go, so they need to leave their fingerprint on
something for the next rodeo they're off to.
Therefore, if you have no real need for autonomy to make higher-level
decisions than just a binary tree (for example, like given in the
article), programming MIGHT be for you.
I find few human beings who can be a machine doing mindless tasks
that much of the programming world is.
If businesses re-org'd the management-over-hands-on developers (and
there is a way to do it) it'd work better for everyone (except the
managers, truthfully, many are liabilities and overhead more than net
gain productive)
Erm... So what's your preferred alternative? Gunning for a
sufficiently high management position, picking a different profession
altogether?
Solid, reliable coders that work from home for medium-to-large
companies building and maintaining business applications are the new
"lawyers" or "professors" of today.
It used to be that lawyers worked in oak-paneled offices, sipped
martinis at lunch, and earned decent upper-middle-class salaries for an
easy day's work. Now the law and architecture professions have become
overly-competitive with suppressed salaries and outrageous educational
debts.
It used to be that university professors worked easy hours and earned
good money and held their jobs for life. Now they must scramble for
funding amidst layoffs just to keep a weak salary that barely seems to
cover the loans from their 10 years of education.
But if you can earn $75K to $100K with full benefits and work from
home in your pajamas doing programming, you're really earning more like
$125K to $150K because of the lack of commuting costs and the
flexibility in housing location. You can raise a family. You can work in
a peaceful environment. You learn new things regularly.
It sure beats the alternatives. Sitting in "cubicle hell" all day?
Sitting in meetings all day trying to sound important and take credit
for things you don't understand? Sitting in rush hour traffic? Listening
to idiots drone in the office? Sitting in crowded airports? Pressing
palms on the convention room floor?
Being a programmer is like being a writer...but with more brains and
a higher salary.
It gets boring after years of doing it...but it sure beats most of
the alternatives.
I absolutely agree,as an Italian that worked previously for the
mafia, all the body slaughters and having corpses in the trunk of my
ferrari cars was really disturbing..
I moved to programming and get the same money without the
disadvantages (unless when I code C++)...
Glad to hear that the career change is working out for you!
Post a comment