
Don't Call Yourself a Programmer - jambo
http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
======
mechanical_fish
Okay, I guess as someone with hard-won expertise I'm duty-bound to take slight
exception to this line:

 _Put a backpack on and you can walk into any building at any university in
the United States any time you want._

First, the nitpicking: Technically you can't get into Harvard's excellent
libraries without actually (a) being a Harvard student, or (b) working for
Harvard. (And if you're a programmer, I'm not sure which of those options is
going to prove more expensive.) But, of course, the rest of Harvard is open to
the backpack-wearer, and MIT even opens their libraries (I'm proud to
routinely impersonate a graduate of MIT) so this isn't much of an objection.

On a slightly more serious note: They also won't let you into the labs with
just a backpack. If you'd happily accept a sub-market wage to be taught
laboratory research techniques, in a piecemeal and haphazard fashion, by
sleep-deprived world experts equipped with state-of-the-artish equipment,
engineering graduate school is the game for you. And I did kind of enjoy
working in the lab, just not enough to keep that as a career. It's not that
great a career; you have to love it to stick with it forever.

Now, having said that, I cannot re-emphasize this line enough:

 _After you’ve escaped the mind-warping miasma of academia, you might
rightfully question whether Published In A Journal is really personally or
societally significant as opposed to close approximations like Wrote A Blog
Post And Showed It To Smart People._

All my journal publications mean nothing compared to the stuff I've scrawled
in the margins here at HN.

~~~
cperciva
_They also won't let you into the labs with just a backpack._

In a literal sense, no, that's not enough. In a practical sense, if you're
serious about doing research and have the necessary background to be able to
do good research, finding a faculty member who will invite you to join their
group as an unpaid "research assistant" is trivial.

~~~
mechanical_fish
This is _literally_ true.

But I come out of experimental physics, semiconductor engineering, and
biology, where "the necessary background to be able to do good research"
generally translates to "you have the kind of lab skills training that you can
only get by getting a Ph.D. in a lab just like ours, plus you know how to
write (or at least contribute vital portions of) successful grants to pay for
the equipment you'll be using and the reagents and parts and live animals that
you'll be consuming as you work". The thing is, lab benches are expensive,
_outlandishly_ expensive in many cases, so you'll have to earn your spot at
that lab bench by outcompeting whoever else might want it. The net result is
that, yes, with a modicum of talent you can probably always be an unpaid
research assistant, but the practical difference between that and a full-time
career in research is just a few thousand dollars in salary. ;)

(Or you can learn to build scientific equipment out of hardware found on the
side of the road. This can work well, if you choose your field carefully.)

Now, in a field like math or CS where adding you to a research group may
require only the occasional spare chair to park you in and a modest 5%
increase in the coffee budget: Absolutely, you can dabble in university
research as much as you want. This is one of the charms of such fields. Didn't
Erdös run his entire career out of spare chairs in other people's offices and
apartments? And, of course, MIT is legendary for the excellent work done by
people hanging around Tech Square snarfing up spare CPU cycles.

~~~
cperciva
I think we're disagreeing mostly on what "getting into the labs" means. Sure,
you can't walk into a lab filled with expensive equipment and start doing your
own research; but you could absolutely walk into someone's lab and start
helping to do _their_ research. My father studies chemical reactions in
supercritical water using a beam of spin-polarized muons from a cyclotron;
there's many millions of dollars of equipment involved in his experiments --
yet he still hires undergraduate students, because there's always plenty of
grunt work to be done.

~~~
mechanical_fish
Ah, okay, if you want to be an unpaid lab tech I agree that you can get that
job pretty darned easily.

It hadn't occurred to me, recently, to have such low standards for hanging
around in a lab. ;) The novelty wears off, you see.

EDIT: just to summarize for the audience, I believe cperciva and I are in
agreement with Patrick that it's easy to flawlessly impersonate a university
_student_ for free; We are debating the extent to which one may also
impersonate a _junior professor_. ;)

~~~
cperciva
Yes, "unpaid lab tech" is a pretty low standard. But if you hang around as an
unpaid lab tech for long enough, you start picking up more useful skills and
have a good chance of eventually getting paid. (No, I never did this. But I
know people who have.)

As for impersonating a junior professor: I wander into seminars and if anyone
doesn't recognize me they just assume I'm from the university on the other
side of town. Given my age they usually assume I'm a postdoc; but if I was ten
years older I'm sure they'd assume I was a faculty member.

Of course, "faculty member from a different institution" doesn't really get
you very much.

------
synnik
I love corporate, boring, "soul-crushing" work. Why? Because I can sit down,
whip out a basic CRUD form with a small approval cycle in a day. It saves a
company 100K over the year, I am loved by the customers, and because it is so
simple, it normally requires no maintenance. Maybe we update the fields once a
year or so.

At the end of the week, I've already saved the company more than my salary.
After a year, I am a critical asset to the company.

After 3 years, I've optimized everything, the ROI slows down, and I move on.

This pattern is not a tragedy. It doesn't crush your soul. It makes you a
prized commodity in the business world, with a chance to make a change in your
life every few years.

I have usually alternated between 3 years doing this, then 2 years doing
startup work. It has given me a much broader base of experience and skill than
anyone who stick to one one side of the coin. It also has given me years of
experience in large industries (banking, energy, etc.) which I then use to
find very real problems to which a startup can be applied.

I have led a very satisfying career, doing this for almost 20 years now.

~~~
davidwparker
I find that pretty interesting, and quite the opposite of my experience. I'm
guessing that it has to do with the size of the boring corporation.

I worked for a mega corp, and redtape and layers upon layers of bureaucracy
would pretty much make any project take months instead of a day. Additionally,
there were plenty of times where the right arm was working on something and
the left arm didn't know about it, so it was also working on the same thing.
Finally, the customers didn't really know what they wanted, the databases
weren't designed properly by a solid DBA, and really good system architects
weren't brought on early in the design, which resulted in an extremely poor
working applications.

All-in-all, it was definitely soul-crushing, and I personally have no desire
to do it again. YMMV.

~~~
Periodic
I'll add in that I expect 90% of enterprise programming is maintaining someone
else's code. It isn't making small CRUD apps, it isn't innovating, it isn't
bringing costs down, it isn't bringing profits up.

It is simply maintaining the behemoth they spent a fortune on N years ago
which was over-, under- and poorly designed all at the same time. It is just
keeping it working well enough that it can continue being used because as long
as it is working there's no reason to rewrite it. The words "rewrite" to an
executive mean, "do a lot of work and spend a lot of money to make something
we already have."

And there will have been non-FizzBuzz programmers working on that project
before you.

------
credo
_> >"Programmer" sounds like "anomalously high-cost peon who types some mumbo-
jumbo into some other mumbo-jumbo." If you call yourself a programmer, someone
is already working on a way to get you fired. _

I call myself as a programmer because I enjoy programming and do a lot of
programming as part of my job.

It is unlikely that I'll get fired because I run the (tiny) company I work for
:). and customers seem to like the products we sell in the app stores.

Prior to starting this company, I was a Principal Development Manager,SDE Lead
and Software Design Engineer at Microsoft. Describing myself as a programmer
or a developer didn't hurt me there either.

This is not to say that Patio doesn't make a good case about the need to focus
on value created. Regardless of profession, you have to focus on the value you
create. A doctor saves lives, a construction worker builds homes, a pilot
takes people home etc.

It is definitely possible for all of them to use MBA-speak mumbo-jumbo job-
titles to describe what they do. Alternately, one could be a bit more of a
plain-speaking, straight-talking person and just say that you're a doctor or a
programmer or a pilot etc.

~~~
mechanical_fish
Once you run the company it doesn't matter what you call yourself. That is
probably a great topic for another essay, assuming PG hasn't written it
already.

It might matter what you call the _company_ or the _product_ , however, since
that is the brand that the people who pay you are seeing.

Programmers are so literal. Let me try and translate: When Patrick says "don't
call yourself a programmer" he isn't necessarily saying "never use the word
'programmer' in the same sentence as your own name". What he's saying is: When
someone asks you what you do all day, don't just say "I program... stuff" or
"I program in Lisp". _What_ do you program? _Why_? What value do you create
thereby?

~~~
Jach
I'm a programmer. I program things. What, specifically, changes pretty
frequently still. Going into detail can be useful when trying to score social
points from the smalltalk question of "So, what do you do?" But depending on
what you program, I think for most people "programming" is sufficient compared
to "I currently write software to manage an elastic computer server farm
running data analysis jobs for people."

In fact I think the former "programming" can give you more social cred--if you
program things the other person can't comprehend an immediate use for, it may
hurt you. "Oh you're one of those people that don't do anything useful." If
they really want to know, they'll ask, and ask for more details if they care.

Of course, I agree in general that when whoring yourself out to the corporate
world it's best to make yourself sound as important as possible as long as
possible, which is basically what I got from Patrick's post. "Programmer"
doesn't contain enough information to make you seem important enough in BigCo.
It's fine for scoring social points.

~~~
icebraining
I think the point is to make your job description _less_ technical, not more.
You're not a programmer, you're "the guy who made $X for your company last Y".

~~~
Jach
That's a good point, it's not just about what you do, the effects matter. But
again it fits into the scoring social points game and making yourself look
extra important to companies.

~~~
dpritchett
It's not just social points, it's access to fulfilling work. The better you do
at conveying your unique value, the more likely you are to find someone who's
willing to pay you appropriately for work that's right at the edge of your
abilities. If you don't market yourself properly you'll be stuck on an HR
salary scale (e.g. Programmer III at 105% of standard compensation) doing
fungible work.

------
sutro
Back in the day, John Carmack would micro-blog on the finger protocol
(<http://en.wikipedia.org/wiki/Finger_protocol>). _finger
johnc@idsoftware.com_ got you Carmack's .plan file, a well-written and, for a
time, frequently-updated journal of whatever programming challenges he
happened to be facing at the time. _finger @idsoftware.com_ got you the id
corporate directory, a simple list of about 20 names and titles. The only
titles were CEO, designer, and programmer. In a tech world awash, even then,
with countless software engineers, senior software engineers, senior members
of technical staff, architects, chief architects, CTOs, rock stars, and
ninjas, it was always refreshing for me to see Carmack's humble programmer
listing.

All of my heroes in the field are programmers.

~~~
Confusion
When you have become sufficiently well known for your technical expertise, you
can once again call yourself a programmer. If you're lucky, you may have
gotten there while calling yourself a programmer. Patrick's point is that most
people can more easily get there by not calling themselves programmers.

~~~
eitally
This is because -- with the exception of computer scientific research -- the
impact programming parts of one's contributions nearly always pale in
comparison to the product or service one has created. Feel free to call
yourself a programmer, but be prepared to answer the questions "of what" and
"to what end"?

------
m0th87
> If you really like the atmosphere at universities, that is cool. Put a
> backpack on and you can walk into any building at any university in the
> United States any time you want. Backpacks are a lot cheaper than working in
> academia. You can lead the life of the mind in industry, too — and enjoy
> less politics and better pay. You can even get published in journals, if
> that floats your boat. (After you’ve escaped the mind-warping miasma of
> academia, you might rightfully question whether Published In A Journal is
> really personally or societally significant as opposed to close
> approximations like Wrote A Blog Post And Showed It To Smart People.)

The degree of arrogance in this article is astounding. I've worked at Google,
Microsoft, and IBM, and the work I've found _most_ satisfying is in grad
school.

To each his own. If you let something like this guide your life decisions, you
have much bigger issues to deal with than finding a so-called "README.txt for
your career as a young engineer".

~~~
mechanical_fish
How long have you been out of grad school?

If you are still _in_ grad school... Write us back in ten years and tell us
how academia is coming along. Meanwhile, _carpe diem_.

If you're out of grad school, tell us how much more awesome your career is
than those of your relatively-untrained peers. More money? More respect? More
challenges? What?

I went to grad school, and then I did a postdoc, and these things were indeed
_very_ fun hobbies [1], though very very expensive in lost income and
opportunity cost. But now I support a large number of PHP apps, make
significantly more money than I did as a researcher, have significantly more
impact on human lives than as a researcher, work less hard than a
researcher... And am, gosh, approximately ten years behind my peers career-
wise. Oh, those expensive hobbies!

Still, nothing wrong with having hobbies. Just do be sure to know the
difference between hobby and career. It can be similar to the difference
between the transient and the steady-state.

And if you're out of grad school and have managed to secure an awesome steady-
state career as an academic researcher with job security _and_ good pay _and_
time to spend with your family, your other hobbies, and your community, please
do write back and tell us again how arrogant we are.

\---

[1] In much the same way, I imagine, that the triathlon is fun.

~~~
_delirium
The main arrogance, I think, is his claim that journals are just blog posts
with more elitism, combined with a strange sort of anger towards academia
(which doesn't seem to be based on knowledge of how academia works; it's not
much of an ivory-tower fairy land, but really quite industry-like, with
professors as managers in charge of running moderate-sized organizations,
which they need to do PR, mentorship, and management for, along with
generating revenue streams to keep the lab provisioned and grad students /
postdocs paid).

As for journals, I like blogging, and hope to see academic publishing move
towards a more online, networked open model, but I simply don't think we're
anywhere near that. A typical blog post and a typical journal article are
miles apart, today, and _very_ few novel scientific results are produced in
blog posts. So if your goal is to advance science, you're probably going to be
part of academic culture in one way or another, and probably going to publish
your results in conferences or journals. That's also possible to do outside
academia or an industrial research lab, but relatively few people outside
those kinds of settings actually manage to get the time to do so, since their
local incentives don't reward it. In some cases they actively hinder it; I've
been working with some game-industry people who hope to publish some of their
AI techniques in venues like (<http://www.aiide.org/aiide11/>), but publishing
is often vetoed by their management.

~~~
mechanical_fish
All sorts of stuff in there.

Patrick stated that you can submit journal articles without being employed by
a university or think tank. This is true.

He also stated that, while it is perhaps thrilling to get a journal article
published to an audience of hundreds, it is perhaps _nearly_ as thrilling,
plus one hell of a lot less work, to write essays on HN for an audience of
tens of thousands. This is also true.

Don't conflate the two statements. Scientific papers and blog posts are not
the same thing, I don't think Patrick is claiming they are, and I'm actually
quite doubtful that they'll ever _be_ the same thing. (Anonymous peer review
is important, blogs don't support it, and the online systems that _do_ support
it don't look much like blogs, they look like online scientific journals.)

Now, on to other good stuff:

 _academia... [is] really quite industry-like_

Indeed, it is very much like an industry. One with a tiny handful of
customers, one of which is usually a major government. Often the government is
the _only_ customer. The difference between working for, say, a major military
contractor, or a major pharmaceutical company, and working for a university is
getting smaller every day.

It's nice work so long as your customer is buying. Once your only customer
stops buying, however, finding another one can be a real pain.

Meanwhile, it's true that industry doesn't generally give a hoot about
publishing new discoveries, often preferring to keep things secret. This is
too bad. However, before we conclude that the only alternative is to become a
professor, let me suggest that one could also look for a job where you can
sell solutions to customers _and_ keep control of your own IP, publishing it
as you will. If you want to be told many stories about how this can work, go
to an open source software conference.

~~~
_delirium
_let me suggest that one could also look for a job where you can sell
solutions to customers and keep control of your own IP, publishing it as you
will. If you want to be told many stories about how this can work, go to an
open source software conference._

I believe this is _possible_ , but if your goal is to do novel scientific
research and publish the results, it's exceptionally _uncommon_. I rely on all
sorts of statistical and machine-learning techniques developed by other
people, for example. It's relatively common to set up shop as an independent
data-mining consultant, and you can fairly easily pay the bills that way. So
you might think that they've produced some of the results I rely on. But the
way the economics work out, independent consultants rarely spend much time on
basic research. The actual techniques and advances, as a result, come almost
_exclusively_ from researchers in academia and industrial research labs.

In fact, I can't actually think of any influential advances in machine
learning from the past few decades developed by independent researchers. Heck,
looking through the R packages I use, even the software seems to come mainly
from a mixture of universities and places like Rand (biggest surprise in this
mini-inventory: lots of stuff from Merck, who I wouldn't have expected to be
open-source-friendly).

Nonetheless, that's actually my medium-term goal, so I hope you're right. ;-)

~~~
mechanical_fish
_the way the economics work out, independent consultants rarely spend much
time on basic research_

Am I wrong to read this as: "After forty hours a week spend on doing well-paid
work for clients, it's hard to find another thirty hours to scour literature
and write up results, while still having a life?"

Because I'd be cautious in assuming that academics work much less than seventy
hours a week. ;)

It's true, though: Doing an actual stint in academia is the right way to get a
lot of scientific publications out. But: It doesn't pay well. It's not the
most effective way of keeping yourself alive, or creating clear and saleable
value for others. That's why I call it a _hobby_. You are taking time away
from more valuable pursuits to advance the field, teach people, and maybe even
practice a little art.

I'm sad to see that people think my use of the word _hobby_ is so demeaning.
I'm a big believer in hobbies. Here's my philosophy of the ideal life: You're
born, you enjoy a series of hobbies (some of which may be _deadly serious_ ,
like Steve Jobs' hobby of inventing the future), and then you die. I suppose I
could look for a better word, but if the word doesn't express the concept of
_loads of fun_ it's not the right word.

Apparently writing essays on HN is the hobby of the day for me...

------
kamaal
One of the things that I see among hardworking smart people is they somehow
tend to use 'difficult work' as a yardstick to measure 'good work'. Difficult
work need not necessarily be good work. Unfortunately if you fall for this,
you will end up wasting a lot of time, effort and energy over years and at the
end wonder why you are not as rich as someone who does has half the difficult
work as you do.

'Good work' or something that brings long term financial success and happiness
is something that adds value to business you are serving to write software.
There are also many academic kind of jobs which involve a lot of algorithms,
math and precision science which won't deal with much of flavor business
software has today. That's not wrong if you are a academician by profession,
but that's a serious problem if you are doing software development for a
living.

Much large of software development today, has got to deal with learning tools,
knowing how to use a programming language to quickly turn idea to code, or fix
a bug or add a feature. Apart from this you must also know how to quickly
discover solutions to problems, even by searching on the internet. Being able
to discover has become more important that being able to invent these days.

Additionally you must know how to push long hours, work late nights and may be
on weekends. All this has fundamentally nothing to do with software.

All passion of working on something interesting, changing the world et al is
perfectly acceptable in your early 20's when you relatively have lesser
responsibilities. As we grow older our responsibilities will only increase,
the bills and expenditure will grow up. For vast majority of people, thinking
pragmatically in this case is important(I'm not saying this for everybody,
some can. Not all will make it, those how will not have to take the most
pragmatic way out).

That's probably why start up's are not for everyone. And that's why php et al
is still alive. Anything that helps you make those first dollars will win.

This is the sad thing about the real world.

Learn, but use the most pragmatic tool at the moment to serve your business.

~~~
nickknw
> "One of the things that I see among hardworking smart people is they somehow
> tend to use 'difficult work' as a yardstick to measure 'good work'.
> Difficult work need not necessarily be good work. Unfortunately if you fall
> for this, you will end up wasting a lot of time, effort and energy over
> years and at the end wonder why you are not as rich as someone who does has
> half the difficult work as you do."

A connection just went off in my head; this sentiment is echoed in Sirlin's
'Playing to Win' series of posts.

"I’ve never been to a tournament where there was a prize for the winner and
another prize for the player who did many difficult moves."

It's good advice. I mean, enjoy solving difficult problems, but it is
important to recognize that it can be... self-indulgent sometimes. There
certainly exist hard problems that are also good problems, but they are not
measured with the same units.

~~~
dlo
True, but when entering a new line of business, the ability to solve difficult
problems is a competitive advantage that a small start-up can leverage against
a large company.

"Use difficulty as a guide not just in selecting the overall aim of your
company, but also at decision points along the way. At Viaweb one of our rules
of thumb was run upstairs. Suppose you are a little, nimble guy being chased
by a big, fat, bully. You open a door and find yourself in a staircase. Do you
go up or down? I say up. The bully can probably run downstairs as fast as you
can. Going upstairs his bulk will be more of a disadvantage. Running upstairs
is hard for you but even harder for him."

Source: <http://www.paulgraham.com/wealth.html>

~~~
kamaal
That wasn't point of the post, the point was mere doing technically difficult
work and then assuming that will help you get that edge is often wrong. Or
putting it the other way, you must do what it takes.

The problem is few people take it as a gospel truth that if the problems you
work on are difficult you've got win bigger than the guy working lesser
difficult problems.

This goes even further with some people who consider the only way to win big
is to work with difficult problems.

That is when people get it completely wrong.

------
psykotic
> If you call yourself a programmer, someone is already working on a way to
> get you fired.

If you work at a place like that, I feel sorry for you.

Even the owner of my company lists himself on Twitter and his blog as just
Programmer at RAD Game Tools. Besides being the sounding board for us when we
have problems and ideas, he still writes more code than most of us can
regularly muster.

~~~
cbs
>If you work at a place like that, I feel sorry for you.

I came to the comments to express the same sort of opinion. I work at a place
that understands and values programmers. I can't imagine working in any other
kind of environment unless I was between real jobs and really strapped for
cash. If you're at a place run by a bunch of clueless MBAs that don't
understand the value of their in-house engineers you just don't have a good
(or reliable) job.

~~~
maaku
Are those MBA's clueless? Programmers are costs, and expensive ones at that.
We start off underwater on the value proposition. Saying "I'm a programmer" is
saying "I'm a large, fixed cost." The question for the businessman is always:
what value do you add, and does it exceed your costs?

Yes, there's value for an in-house engineering _team_ , but with widely
varying skill distributions and unevenly matched compensation. Managers know
this, and Patrick's point is that "I'm a programmer" is starting off on the
wrong foot as it just re-affirms that you are a large, fixed cost, saying
nothing about your specific contributions.

~~~
anthonyb
The value of programmers tends not be linear with cost though. Paying an extra
25-50% for decent ones gets you at least a 2x improvement, possibly more if
they can rewrite large chunks of your corporate code to improve it.

~~~
maaku
That's precisely my point. The question in the businessman's head is "are you
one of the decent ones? are we getting our money's worth?"

~~~
anthonyb
Yes, and it should be, but the answer, unfortunately, is that they typically
have _no idea_ who is a good programmer and who isn't, so they only end up
hiring cheap programmers.

In other words - yes, they are clueless.

------
_delirium
I'm not too into gatekeepers, so I'd like this to be true:

 _you might rightfully question whether Published In A Journal is really
personally or societally significant as opposed to close approximations like
Wrote A Blog Post And Showed It To Smart People_

But honestly I have never found a blog post that I could see as replacing
journal articles, if your goal is to promote advancement of scientific
knowledge. I _like_ blogs, and read them often, but they aren't normally in-
depth, with solid scientific evidence for their results, with discussion of
how they relate to existing results, etc. The closest is probably in
mathematics, where some of the mathematics blogging is quite high-level and
results in actual new discoveries--- but those blog posts are mostly written
_by math professors_ (e.g. Terence Tao's blog), which doesn't seem to be what
this article is proposing.

Where on the internet can I find blog posts of the same scientific standard
that one finds in, say, <http://jmlr.csail.mit.edu/> ? I read quite a few
statistics, data-mining, and machine learning blogs, and while there is a lot
of good content, I haven't found anything that I'd say replaces a journal
article; it's more along the lines of tutorials and tips and tricks (which are
also very valuable, but a different kind of contribution).

------
jambo
I spend a bit too much time on HN, as evidenced by the timing of this post,
and one of the dangers I've noticed is that I can become so fascinated with
the interesting things other hackers are doing that I lose perspective on how
valuable & relatively rare my combination of skills are. I suspect this is
true for others here.

Patrick gives insanely valuable advice for hackers who could be both create
more value and capture more of it by being aware of the big picture & the
motivations of others.

------
scottschulthess
Does anyone else think that this article is in poor form?

On the perils of describing yourself as a programmer: If you're hiring someone
to provide a specific skill set (programmer) you want them to be good at
programming. Would you hire an accountant if they didn't know accounting?
Should lawyers not describe themselves as lawyers? Doctors as doctors?

On the perils of selling yourself as an expert in a certain technology: I
spend a fair amount of my time learning about the specific technologies I use.
I've been doing this for a while and I don't know everything about sql,
postgres, mysql, mongodb, javascript, html, css, ruby, rails, unix, chef,
capistrano. But I've put thousands of hours into these things and the tools
themselves took thousands of hours to create. Either I'm really bad at
learning, or there is a lot to learn there and that information makes me more
valuable to potential/current companies. Sure, there is a baseline level of
skill you can achieve in programming where you can not suck at most stuff but
there is still a lot of valuable information that you don't know if you just
half assed your way through a Beginning Ruby on Rails book.

~~~
patio11
Reprising a comment of mine from earlier: the _actual work_ performed by most
lawyers is letter-writing at $X00 an hour. No lawyer describes themselves as a
"professional letter-writer" or "professional letter-writer specializing in
Mostly Empty Threats."

When "programmer" starts showing up with lawyer and doctor on "high status
occupations used as the canonical examples of professional jobs since you were
three years old" then programmers should _definitely_ start describing
themselves as programmers to anyone who will listen.

~~~
scottschulthess
How about a surgeon? Their actual core competency is performing surgery.
Should they not describe themselves as Surgeons?

Edit:

Are accountants high status? I'm not sure. They are generally regarded as
making a fair bit of money but they are boring. Probably a bit more high
status than a programmer, perhaps. But I wouldn't suggest to my accountant
friends that they stop selling themselves as experts at accounting.

And anyways, high status = social status, and how is that relevant to any of
your points? Social status is mostly useful for when you're trying to get laid
(because that's mostly when you are trying to impress people) or prove
something to your parents. We, as programmers, still get paid very well and
are valued by many many companies.

The lack "high status" thing in comparison to doctors and lawyers is just
because:

A) Laywers and doctors generally make more money. A lot of lawyers and doctors
make over 200K. Programmers, not so much.

B) Laywers and doctors are almost certainly better educated than programmers.
This education is validates a person in lots of ways, in that you are
automatically learned about a variety of topics with which to converse with at
parties, and that you are smart enough not only to perform as a lawyer/doctor
but to achieve the level of education necessary to do so (unlike programming,
where you only need to be good at your job and not necessarily good at 6+
years of higher ed).

C) The laywer and doctor professions have been around longer and are therefore
safer. Doctors are the most ancient and historically valuable professions.
Laywers, not nearly as much so, but for the past few hundred years they have
emerged as a staple profession. I like law a lot but I would devalue lawyers
over doctors a bunch.

D) It's harder to become a lawyer/doctor than a programmer, so it's a bigger
achievement.

E) The jobs generally require more social skills than working with computers.

Programmers will probably never be a high status job because of the above
reasons. But that doesn't really affect your argument, which is describing how
you should sell yourself to potential employers.

I'd like to reiterate that I'd prefer to well rounded people who are good at
programming and specifically good at our tech stack. That's the ideal. Take
classic ASP.NET programmer and tell him to write a complex Ruby on Rails
project and watch him flounder for months no matter how good he was at
ASP.NET. There's just a lot to learn. Now, for someone who is more seasoned,
used to unix, used to working with actual HTML+CSS+Javascript (instead of .net
controls) used to writing tests, used to dynamic languages, that person will
adjust fast, but not everyone will.

~~~
kamaal
Engineering is a older profession that Medicine. Remember it was wheel and
before that tools to invent the wheel that got invented.

Software is a sub branch of engineering. Like veterinary doctors. In fact man
kind had taken huge leaps in engineering before they took in medicine(Stuff
like Pyramids of Giza etc).

Doctors and Lawyers have a nature of work which if done badly or of
subjectively low quality a persons quality of life gets very hugely impacted.

Its like high risk, high gain.

~~~
anthuswilliams
That's why "Engineer" actually is a high-status profession. "Programmer", not
so much. There is a reason many programmers have tend to refer to themselves
as Software Engineers.

~~~
harisenbon
This is so true.

I went with my co-worker to talk with a client a few weeks ago. Even though we
do the exact same thing, we introduced ourselves differently.

I said I was a programmer, and the response was "oh, that's nice"

He said he was an Engineer, and the response was "Oh, that's so impressive"

Also the fact that here in Japan the average salary for "Software Engineer" is
almost twice that for "Programmer" and you can see why you would want to shy
away from that nomenclature.

------
ycapply2011
>> ”What is your previous salary?” is employer-speak for “Please give me
reasons to pay you less money.” Answer appropriately.

What is the proper approach to answering this question?

~~~
patio11
"You're better situated to judge my worth to your company than I am. What do
_you_ think I should be paid?" Counter with better offer.

My other stock answer: "As a matter of professional courtesy, I decline to
comment on specific policies of previous employers. You should appreciate
this, after all, someday someone will be asking about yours."

~~~
bmccormack
EXCELLENT suggestions. I'm 100% positive that being blindsided by the
"previous salary" question cost me thousands of dollars when negotiating for a
previous job.

------
bfrs
_90% of programming jobs are in creating Line of Business software: Most
software is not sold in boxes, available on the Internet, or downloaded from
the App Store. Most software is boring one-off applications in corporations,
under-girding every imaginable facet of the global economy. It tracks
expenses, it optimizes shipping costs, it assists the accounting department in
preparing projections, it helps design new widgets, it prices insurance
policies, it flags orders for manual review by the fraud department, etc etc.
Software solves business problems. Software often solves business problems
despite being soul-crushingly boring and of minimal technical complexity._

Wasn't this precisely the insight of the founders of Infosys in the late 80s?
Together, the Indian outsourcing giants, Infosys, TCS and Wipro have amassed
huge armies of "programmers" to meet these needs. I stay away from CRUD stuff,
because 1. I don't expect to be very successful competing with armies. 2. I
don't like being a part of a huge army.

~~~
kamaal
You are not getting the whole point about business. Businesses run on supply-
demand scenarios. Only every once in a while something new comes around like
iPhone, or Google search or Windows operating system etc etc. And the
likeliness of you working on them are as close to negligible. Otherwise what
ever you will ever work on, where ever you will ever work at, and its success
will often have to often abide by the laws of supply and demand in the market.
And the money and long term success flows in the direction where the supply-
demand flow is.

When you are talking of big IT bellwethers, they are in a business of
supplying services at affordable costs. Aren't you seeing the massive
potential in this business? today maintenance and services massively outweighs
product development and this is time tested truth. Because once you develop
something you have to maintain it all the time. Also this is the only
business, where you can retain your technical hands on and still climb the
corporate management ladder. Combining both parts of the world. This will give
you an edge, to add value in both areas. Also these companies, offer massive
infrastructure, training and experimenting grounds which a start up in India
can never possibly offer. You also get access to great books, and huge network
of good people. If you are lucky you get opportunities to travel around the
world, doing business,learning and enjoying various cultures around the world.
Also their pay is difficult to match.

The start up scenario in India is really messed up badly. After so many years
we get to see only one flipkart and Infibeam. And from what I have been
hearing its no honey and milk there. Its your usual 'safest way to production'
route that they take. They are generally Java heavy shops. I wonder if all
this trouble is worth. If all you want to work is on Java.

After few years if you see you peer in a big IT bellwether(who is/was as good
as you) being more successful in terms money and life style. Don't be
surprised, he is in a place where there is steady supply of money and
opportunities.

Its like you will be average among the best. And he will best among the
average.

Another thing that I have noticed is start up's in India and especially
founders are extremely stingy. They tend to see developers as tissues(use and
throw entities). And chances of large number of people making into start up's
are also lesser. And there aren't too many good start ups.

Also these Indian IT companies did a major job of propelling India to global
IT forefront. If they were to go away, we will loose massive amounts of
employment opportunities, exposure and more importantly confidence to open
start ups in the future. Remember they were themselves start up's some time
back.

------
Goladus
The language stuff is only part true. It's true enough, perhaps, that it's not
usually the most important thing to emphasize on a resume, especially if
you're doing simple CRUD apps, but nevertheless programming languages and
their implementations are varied and complex.

Yes, you can become productive in a new language after 6 months of using it,
but most people will still have a long way to go before they can claim a
reasonably high level of proficiency, especially if there's significant
dissonance between the languages. Going from Java (or most languages, really)
to Python isn't going to be too difficult, but a lot of that is because Python
is a very easy language to get started with. But even with Python it will
probably be a lot longer before you really understand some of its less obvious
features, pitfalls, performance profile, and are comfortable writing idiomatic
code. For a more complicated language, like Perl, or a more distant language,
like Haskell, it'll probably be a lot longer.

------
xarien
Fantastic post. I'd also recommend any "programmers" to invest a couple years
in a systems integration engineering role as well. It's generally a great
place for picking up some skills many programmers / engineers lack:

* Communicating with internal and external customers

* Understand systems from a broader (higher level) perspective

* Ability to translate wants and needs to technical requirements and specifications that are implementable

* Ability to sell yourself as well as the product / service

* Give constructive criticism as an internal customer to programmers / software engineers (great chance to view the role @ 180 degrees)

~~~
viraptor
I'd also add - meet all the influential people in different teams. From my
limited experience, even if you're on a low position you suddenly start
talking to team leaders and people who they assign to talk to you (usually the
ones who have a clue). Great start for networking.

~~~
xarien
Honestly, for networking purposes, look no further than participating and
volunteering in a national non-profit group. It'll give you access to both
depth and breadth.

------
consultutah
I agree wholeheartedly. That's how I promote my consulting biz, "More money
for your business."

It is amazing how devs think that dollar value should equal effort. It does
not. And this doesn't just apply to software. It applies to anything and
everything. The value of something is what someone is willing to pay for it in
that one split second when they click "charge my card".

~~~
jamesbritt
_It is amazing how devs think that dollar value should equal effort. It does
not._

I think most consultants and contractors reach a point where this clicks. At
first they think, well this will take me X hours, so it's worth Y dollars.
Later they think, this is apparently worth X dollars to the client, so I'll
bill Y dollars, where Y is way closer to X than any how-long-it-takes
calculation.

It's the difference between "hard work should be rewarded" and "value should
be rewarded."

------
ajtaylor
Patrick has some great advice.

I'll add my own anecdote: earlier this year I had an interview which required
taking a plane. I decided to wear my suit on the plane, and it was an entirely
new experience. I can't put my finger on exactly what it was, but the people
simply seemed nicer, more pleasant and accommodating. If you want people to
think of you as a professional, dressing the part certainly helps.

~~~
miles_matthias
I hate the fact that people get treated differently because of what they wear.
It's ridiculous and unfair, but that is reality.

And that's one of the biggest things I took from this piece: Yea, it all sucks
and is ridiculous most of the time, but it's the way the game is played. Play
it or get left behind.

~~~
ajtaylor
It's definitely a game. One that's rigged (and not in your favor), but you
better do your best or you might not get a second chance.

------
blumentopf
_Many asked how to know what programming language or stack to study. It
doesn’t matter._

It does matter in so far products come and go and you don't want to accumulate
knowledge on a product that's going to disappear from the market.

I worked with SGI IRIX from 1991-1996. The company has since gone bankrupt
twice and IRIX has disappeared from the market. All the knowledge I
accumulated on IRIX is worth nothing because it's no longer in demand.
Practically noone still has IRIX machines in production.

In 1996, I switched to Linux. It had a vibrant community and you could feel
it's growing rapidly. Turns out that knowledge is still valuable.

So it's really important for engineers to keep a close eye on the marketplace:
If something's getting out of business or out of fashion, stop investing time
in it. Instead, be on the lookout for stuff that's growing. In general, open
source stuff has a longer lifetime because it can be forked if need be, wheras
proprietary stuff is often problematic as companies change their mind on a
whim. HP/WebOS is a recent example.

~~~
div
The programming language or stack does not matter to whoever is hiring you.

The fact that you knew IRIX was a good indicator that you'd be able to pick up
Linux.

It's also today a good indicator that you'd be able to pick up Windows if you
set your mind to it.

Your advice is solid from an engineer to engineer point of view, but Patio's
advice takes an egineer to business perspective.

------
mattdeboard
> _Many people already successfully employed as senior engineers cannot
> actually implement FizzBuzz. Just read it and weep. Key takeaway: you
> probably are good enough to work at that company you think you’re not good
> enough for. They hire better mortals, but they still hire mortals._

This is one of the most important career lessons I've learned first-hand of
late.

------
reinhardt
_71~94: Your equity grant is worth a lump sum of money which makes you about
as much money as you gave up working for the startup, instead of working for a
megacorp at a higher salary with better benefits._

Or phrased differently, you get to work for a startup you believe in and enjoy
instead of a soul-crushing megacorp, with (almost) no cost.

This counts as a win in my book.

~~~
kamaal
You are making the assumption that working in a Start up always compensates
for the losses through equity. That is true only if the Start up wins and ends
making money or sells for good enough amount to money pay you that chunk.

But if it doesn't you loose time and money. And have to deal with added
frustration of that loss and finding a new job.

At the same who is almost as good as you would have never been through all
that. Made more money with the same learning experience as yours.

Its not about the positive scenario that's the problem here. Its the negative
scenario.

~~~
reinhardt
The "positive" (actually breakeven) scenario is what the "71-94 roll" refers
to in the OP. The more common negative scenario is if you "roll 1-70", I
didn't dispute that. I simply did a half-full glass rephrasing of the 71-94
case instead of the original half-empty version.

------
mk
This article has tons of gold in it besides the "don't call yourself a
programmer" part. I actually thought the paragraphs past that were better,
especially for the younger crowd. I want to send this post to every kid that's
about to graduate college.

------
statictype
Great read. Probably patio11's best yet (TLDR: A summary of pretty much all
his comments here on HN). Thanks.

------
motters
Not very good advice. It's basically an accountants view of engineering, which
can be summarized as follows:

\- Only be interested in increasing profit or reducing cost

\- Don't care about what you do unless it conflicts with the above

\- Treat people you meet as commodities

\- Produce cruddy code, because "good enough" is all that matters

\- Good engineering is not a "profit center"

\- Don't bother keeping up with new programming languages or new techniques

~~~
div
You may disagree with those views, but if they are predominant among the
people who have final say in hiring you, and at what salary, then the advice
is good.

The whole point of the article is to force a typical engineer to look at how
most of the world perceives him, and work with that.

If you have to talk to another engineer as part of a hiring process, talk all
the shop you want. If you're talking to business people, try to talk about the
business advantages of what you do.

~~~
_delirium
_You may disagree with those views, but if they are predominant among the
people who have final say in hiring you, and at what salary, then the advice
is good._

Are they, though? I can see they might be if you're in consulting (as the
author of this post appears to be), but I've never heard of an interview at
somewhere like Google or Intel that wants to hear you talk about Providing
Value; they want to know your technical skills.

~~~
miker64
No, the technical interviewers want to know your technical skills, because
they advise the people who pull the trigger on your hiring whether you will
provide value. Now, it's been a while, but my Google interview involved
straight technical interviews and several interviews that were less about
technical detail and far more about discerning my longer term value to the
company.

------
rewind
"Want to get trained on Ruby at a .NET shop? Implement a one-off project in
Ruby. Bam, you are now a professional Ruby programmer — you coded Ruby and you
took money for it. (You laugh? I did this at a Java shop. The one-off Ruby
project made the company $30,000. My boss was, predictably, quite happy and
never even asked what produced the deliverable.)"

Unless an employee actually gets permission to do this, this makes him
incredibly selfish, and is a good way to get fired (and deservedly so), no
matter how good he is.

~~~
wallflower
Technically, the employee would not be fired right away.

He or she, however, would be red flagged for close observation by being put on
a Performance Plan.

Basically, a PP is required to legally fire you. For example, if you had a bad
record of coming in at a consistent time, they could put you on a PP. In this
PP (which you would have to sign as a condition of further employment), there
would be a contract for coming in between 9 and 9:15 for the next thirty days,
with a small margin of forgiveness. PP are used to document that you have
behaved poorly or acted wrongly in the corporate context. Once you are put on
a PP, it is a prelude to a firing. You can successfully get out of a PP, but
it is stressful.

For the hypothetical Ruby programmer in the Java shop, the PP would probably
involve something insidious like LOC.

~~~
jamesbritt
_Basically, a PP is required to legally fire you._

Where are you talking about? Laws vary, even among the states in the USA.

~~~
wallflower
When I mean _legally_ , I mean to protect the company against being sued for
firing you. Yes, there are cases where there are immediate terminations. PP
assist in the less egregious cases where there is gray areas. In fact, you can
argue that the entire point of an HR department is to protect the company from
getting sued.

~~~
scottschulthess
It depends on the state. You can't (successfully) sue a company in
Massachusetts (like California) for any reason besides discrimination. They
don't need to give a reason why they fire/lay you off. They just fire you and
that's how it goes. Not all states are like this.

~~~
Daniel_Newby
> You can't (successfully) sue a company in Massachusetts (like California)
> for any reason besides discrimination.

Being fired while belonging to an Identified Minority is harassment and
discrimination unless done according to a documented failure of a Personal
Improvement Plan.

------
gfodor
A little cynical, but overall mostly rings true. I also have found that
focusing on business/product goals and good communications skills dwarfs the
ability to hack when it comes to success.

------
bkmontgomery
Personally, I think this is an interesting article, and I got two things out
of it:

1\. Effective communication with people from various backgrounds is important.
This is incredibly hard, and it does require practice. Those that succeed
typically communicate very well.

2\. I mentally replaced the "don't call yourself a programmer" mantra for
"tell people _why_ you're doing what you do - what problem do you solve and
how is it valuable". If you work for a business, you also need to have some
basic understanding of business. Successful organizations probably have more
people that really try to find their role in the "big picture" of the company,
and they strive to use their place to create value.

~~~
dpritchett
I'm going to start reversing my elevator pitch. From now on I help save my
company millions of dollars each year by enabling analysts to find and address
operational inefficiencies in our national retail operations. Oh, and I do
this by leading and implementing a range of business intelligence solutions
using a suite of .NET-based BI and data warehousing tools.

I think I used to say something about programming web applications to generate
numbers for middle managers to review.

------
mattmiller
I think this is the best OP has written yet. A lot of people in this thread
are fighting with his b/c they make apps or run a small company.

Not living in the bay area I see what he is saying, most programmers are not
selling apps, or selling small consumer applications. Most make internal apps,
and many of those internal apps are more interesting than mobile apps or web
apps.

------
xpose2000
I'm new to the startup game, and most of my hunches that Ive formed over the
past 6+ months are proved true by this post. This is insanely good advice in
this post, one of which involves modesty and confidence.

I'm never going to be modest from here on out and will act like a pompous
douche when deemed necessary. I see people act this way ALL the time, and I
figured people could see right through their bullshit. Apparently not, as it
clearly does not matter if they are right - only if their bullshit is
passable. Apparently being modest does not work to my advantage. I have no
choice but to play the game.

~~~
patio11
Restrained, professional confidence will work as well or better as "pompous
douche", and it won't compromise your principles.

Picture a heart surgeon. Given an opening like "Wow, you save people's lives
all by yourself" he doesn't say "Oh, it's nothing", he says something like "My
team saves people lives. It is a privilege to work with them."

------
tokenadult
Does this cause people to read "The Genius and Tragedy of Patrick McKenzie"

[http://www.sebastianmarshall.com/the-genius-and-tragedy-
of-p...](http://www.sebastianmarshall.com/the-genius-and-tragedy-of-patrick-
mckenzie)

(posted last month by an observer of the author of the submitted post here)
with a different reaction?

~~~
Matti
It was posted in 2010 and generated the following discussion:
<http://apps.ycombinator.com/item?id=1720244>

------
cloudhead
It seems like the author had a really hard time. If you're a software
engineer, work at a software company if you want to be happy. Negotiation
isn't what's going to get you the job either, programming is.

~~~
logn
I agree. Working at a software company makes it more likely you'll enjoy your
job as you're around a lot more people that just get it. In an IT dept. you're
frequently battling the culture of whatever company you're in to create
conditions suitable for building good software. Plus you're a little too close
to the customer (the business).

------
namank
Well now I can honestly reward myself for picking the University of Waterloo.
All of the points made by this article are well understood by second+ years of
Waterloo Engineering.

How?

The coop program i.e. the four month work then four month study program.

Except maybe for the startup stuff. That said, there are are overarching
initiatives being undertaken by uWaterloo to infuse entrepreneurship and
student success. The most popular one? <http://velocity.uwaterloo.ca/>

------
Natsu
> Perceptive readers will note that 100 does not actually show up on a d100 or
> rand(100).

It also jumped out at me that the zero case is not handled (it occurs on the
rand(100), if not the die).

He's got a great point about learning negotiation skills, too, but I've read a
lot of things and feel that what I lack most is actual live practice. I think
this is similar to the point about meeting people and shaking their hand and
how different that is from meeting some person online.

------
kooshball
>Actual grooming is at least moderately important, too, because people are
hilariously easy to hack by expedients such as dressing appropriately for the
situation, maintaining a professional appearance, speaking in a confident tone
of voice, etc. Your business suit will probably cost about as much as a
computer monitor. You only need it once in a blue moon, but when you need it
you’ll be really, really, really glad that you have it. Take my word for it,
if I wear everyday casual when I visit e.g. City Hall I get treated like a
hapless awkward twenty-something, if I wear the suit I get treated like the
CEO of a multinational company. I’m actually the awkward twenty-something CEO
of a multinational company, but I get to pick which side to emphasize when I
want favorable treatment from a bureaucrat.

is it really expected or even appropriate to wear a suit to an interview in
the valley? i remember doing that during for my internship interview and i
felt silly sitting next to my interviewer at lunch who was wearing shorts and
flip flops.

~~~
gizmo
The point is to dress _appropriately_ , not to wear a suit every day. Some
companies expect you to show up in a suit and some don't. So figure out which
and act accordingly. If your interviewer is wearing flip-flops then you
clearly overdressed.

------
cool-RR
Thanks for this manifesto patio11! I read it a couple of times and thought how
I could apply it to my career.

There are 2 parts in it that I have difficulties with, and I'd appreciate
clarifications:

\-----------------------------

"In the real world, picking up a new language takes a few weeks of effort and
after 6 to 12 months nobody will ever notice you haven’t been doing that one
for your entire career."

How can you say that? Sure, an experienced and intelligent programmer can
learn to program in Language X in a few weeks, but do you think that after a
year he will reach the same level of efficiency of a similarly experienced and
intelligent programmer who has 8 years of experience programming?

Sure, you'd know most of the important things that the 8-year guy knows, but I
was taught that the worth of programmers is exponential to their talents. Say
that if you're at the 99% percentile of Language X developers, there are (say)
about 1,000 people like you in the world. If you're in the 99.99% percentlie,
there are now only 10 people like you worldwide. Wouldn't that result in a
much bigger price that you could put on your services?

\-----------------------------

"Profit Centers are the part of an organization that bring in the bacon [...]
Cost Centers are, well, everybody else. _You really want to be attached to
Profit Centers._ "

I don't understand this.

Let me see if I got the terms right: Profit Centers are "where the money comes
in from", and Cost Center are "where the money comes out of". But of course,
Cost Centers do not exist because CEOs are looking for ways to flush money
down the tubes-- it's just that Cost Centers bring in money in indirect ways.
For example, let's say that you're a CEO, and you have hired an expensive
programmer to write a script that periodically checks that your backups are
valid. That would qualify for a "Cost Center", right? And everyone would agree
that this is a wise investment.

So what am I supposed to do if I'm hired to do this kind of job? Decline it
because it's a Cost Cetner?

You also suggest to "engineer your transfer [from Cost Center to Profit
Center] after joining the company". Wouldn't that be kinda douche-y? I mean,
I'd be pretty pissed if I hired a guy to do Job X and then he was trying to
engineer his way into Job Y because that's where the money is.

\-----------------------------

Thanks again for the post!

~~~
barry-cotter
Cost centres are to be minimised as far as possible. This occasionally means
they will be minimised more than is wise and there will be an emergency when
this shows up and someone has to fix it.

Nevertheless _a Cost Centre is a kind of janitor_ , an absolutely necessary
thing that should be done, at the minimum cost that lends itself to an
acceptable standard. Another concept that might enlighten you in this context
is _Core Competency_. Everything that is not this can in theory be outsourced.
In practice it may not be worth outsourcing because it would cost too much in
time, money or communications overhead but the company exists to charge money
to do its Core Competency and everything else is detail.

 _Don't be detail._

If you are hired to work on a cost centre you attempt to make or save money
and either get a raise/bonus for doing so, or move to where you can, whether
in the company or in another one.

Finally, being only "kinda douche-y" makes you vastly less douche-y than just
about everybody in the executive suite. Your colleagues are mostly not your
friends. Your manager is definitely not your friend. Your manager's manger's
job is partly to get as much value (work) out of people like you for the least
money possible.

If you are ever in a job where you and your (over)manager are directly
antagonistic run like hell, but 100% aligned incentives are very, very rare.
If you want keywords try "principal agent problem".

You are not a sarariman, you will never have either job security or loyalty
from above so don't act loyal from below, it just makes you a chump.

------
gruseom
Is this article's claim about Google -- that the programmers closest to
Adwords revenue have highest status (edit: and/or pay) -- true? It contradicts
what I've heard.

~~~
emmett
I don't think he said they had the highest status...I think he said they were
the best paid. I'm not sure if that's true or not, but it's a very different
claim.

(I too have heard differently)

~~~
haldean
This is not true -- pay is not based on project.

~~~
dirtyaura
But bonus is.

------
rdl
I'm kind of terrified of "At the end of the day, your life happiness will not
be dominated by your career." Hopefully he means that primarily for employees,
not for startup founders, and even then, I know a lot of people who work in
research, engineering, etc. where career is by far #1.

~~~
pseale
Hopefully he _doesn't_ mean it just for employees. The Hacker News community
has a bent towards "startup = happiness" which I disagree with, but all things
considered, is better than the screddit "eSports is important, and it's
important to practice Starcraft" bent.

~~~
kamaal
>>The Hacker News community has a bent towards "startup = happiness"

This is something that even I have observed, in some cases I have even seen
when people take it like "only startup = happiness".

------
invalidOrTaken
One of the takeaways I get from this is that if you can't prove value, you
can't demand payment for it. Proving usually involves measuring.

How does one go about measuring? They're not about to give a "mere programmer"
access to the sales data or whatever.

------
prakash
_I recently stumbled across a web-page from the guy whose professional bio is
“wrote the backend billing code that 97% of Google’s revenue passes through.”
He’s now an angel investor (a polite synonym for “rich”)._

Any idea who this person is?

------
LVB
I did appreciate the section about programmer skill and not to underestimate
yourself too much, simply because it was a feel-good paragraph. By regularly
reading a variety of tech blogs and trying to keep up with software goings-on,
I've put myself on a drip feed that constantly reinforces: "Holy crap... every
programmer out there is developing mind blowing software in languages you've
never heard of in the course of a weekend. Meanwhile, you're dribbling out a
few dozen lines of C in a day."

Who knows where the truth lies, but for the next few minutes I'll just enjoy
the slight buzz from the article.

------
16s
My employer calls me a programmer. They print it in on my business cards and
hang a sign on my door that reads "Senior Systems Programmer"... so I'm a
programmer and I'm not ashamed to be called that.

~~~
TheFuture
Seriously, how dense are you to think this article has to do with the title on
your business card?

This is about programmers that seem to love to undervalue their skills, and
then anonymously bitch in online forums about how stupid everyone else is and
underpaid and under appreciated they are.

~~~
16s
I only mean to point out that _I_ don't call myself a programmer, but others
do.

------
fduran
"Your GPA largely doesn’t matter (modulo one high profile exception: a
multinational advertising firm)."

Nice jab at Google.

------
fanboy123
Enjoyed the post. Do programmers really not know who Peter Drucker is?

~~~
greenyoda
It would be sort of sad for programmers to not know who Drucker was, since
he's the guy who coined the term "knowledge worker" to name the class of job
roles that encompasses programmers (and also a large percentage of the people
who use computers and software in the business world).

(See <http://en.wikipedia.org/wiki/Knowledge_worker.>)

------
jbwyme
I feel like this article takes a very pessimistic view. To be great or have
success in any field, doing anything, you are going to be up against "bad
odds". If the odds of success were in everyone's favor then it wouldn't be
"success" anymore. If anything this is a very discouraging article for people
who may be aspiring to accomplish something great which I feel like the HN
community is all about.

Perhaps I've misunderstood the authors intentions? The parts about young
people in start-ups, and how it becomes a downward spiral if you aren't in the
lucky 10% is such a negative view it hurts. Specifically the "odds" of
succeeding and the relative unimportance of the connections you make during
that time because [paraphrased] "most of the connections you make in the
start-up world are with other start-ups who are likely to fail as well". This
is just such a losing mindset to have. If the only thing you are concerned
about is not failing then you have no chance to do anything of importance. The
choice is yours.

I apologize if I've missed the point here as I know there were a lot of other
parts in the article about adding value to your career and understanding how
corporate structures work. I do believe those are great things to understand
but the tone of the whole thing really struck a nerve.

------
forensic
Patio is like a modern day Phillip Greenspun. Trying to turn childish
programmer nerds into responsible engineering professionals.

------
cek
My favorite from this article: Networking: it isn’t just for TCP packets.

Seriously, get out there and grow your network. Do it by getting over being
shy and smile more. Ask how you can help others. And ask for nothing in
return. You will be shocked (over time) by how much you actually get back.

------
randomdata
On the not calling yourself a programmer part: It may be a local thing, but
the term engineer was usurped by government to essentially refer to someone
who does things by the book. As such, engineer has come to mean someone who
has trouble seeing the bigger picture and won't break some rules to deliver
something amazing.

Obviously that is not true of many engineers, but the damage to the term is
already done (again, perhaps only locally). I find it hard to take programmers
who call themselves engineers seriously as a result, even if they are really
good at what they do. My advice is not call yourself an engineer if you
develop software. You want to use a title that makes people think you do
amazing things.

~~~
theshadow
To be honest I cringe whenever I hear programmers refer to themselves as
"engineers". Maybe it's because here in canada engineering is regulated and
you are not allowed to call yourself an engineer by law unless you posses an
an engineering degree.

------
7952
In most domains engineering is not the biggest challenge. The challenge is in
a dozen intersecting domains that have little to do with engineering. Calling
yourself a programmer is like a guitar make telling people he is a carpenter.

------
cageface
_In the real world, picking up a new language takes a few weeks of effort and
after 6 to 12 months nobody will ever notice you haven’t been doing that one
for your entire career._

I wish more HR/recruiting people understood this.

~~~
anon1385
I have put in at least a few weeks trying to learn Haskell. I certainly never
got to the point of being able to solve real world problems with it. Even
after 2 years of coding in C most days of the week I wouldn't claim to know it
well, and wouldn't be able to keep up with a 'real' C programmer. I've also
spent far more than a few weeks (cumulatively) using Javascript and don't
really have a solid grasp of the language (although in that case I have made
no effort to actually learn the language).

Maybe this just reflects my poor aptitude for programming and I've very much
behind the curve, so to speak. In which case it is probably correct that
recruiters would do well to avoid recruiting me and to filter out those who
are not able to learn new languages in a few weeks.

------
sliverstorm
_At the end of the day, your life happiness will not be dominated by your
career._

That said, a crappy career can put a serious chokehold on life happiness. You
spend close to half your waking hours at it, after all.

------
untitledwiz
Best quote -- "He’s now an angel investor (a polite synonym for “rich”)."

------
mhartl
_Strive to help people. It is the right people to do_

A heads-up for patio11: There is lots of good stuff here, but it needs to be
copyedited. There are a bunch of little errors like the one quoted above.

~~~
finnw
This could be another little error, or it could be intentional. It's hard to
tell:

 _It is <%= Date.year %>_

~~~
viraptor
Seems intentional. I find it slightly funny - about the same level as d100.
You need to be min. lvl5 nerd to get it.

------
cageface
_For example, consider an internal travel expense reporting form. Across a
company with 2,000 employees, that might save 5,000 man-hours a year (at an
average fully-loaded cost of $50 an hour) versus handling expenses on paper,
for a savings of $250,000 a year._

I should have demanded a bonus for the in-house purchase req system I wrote to
replace the antiquated, pen & paper system we had been using for years. I feel
better about the salary I was drawing with this in mind.

------
Finbarr
This post touches on nearly everything. Some interesting snippets - well worth
a read if you are a [insert appropriate spin on how you add value as a
programmer].

------
Fluxx
I don't agree with _everything_ he said, but in terms of completeness about
working as a software developer vs what you learn in school this is spot on.

------
atomicdog
>If a Python shop was looking for somebody technical to make them a pile of
money, the fact that I’ve never written a line of Python would not get held
against me.

>Much of Fog Creek uses the Microsoft Stack. I can’t even spell ASP.NET and
they’d still hire me.

A bit presumptuous, perhaps?

------
Brajeshwar
You might like to read this too, "Are you a programmer or a coder?"
<http://brajeshwar.com/2007/are-you-a-programmer-or-a-coder/>

------
agentgt
Networking, networking, networking... "The classic its not what you know but
who you know". Also super confidence (even if your wrong). I wish it was
different but then again I'm not smart so maybe I'm glad :)

~~~
wglb
I agree. However, I have begun modifying it slightly to describe what I think
to be the true objective of what networking is: "It is not what you know but
_who knows you_ ".

------
Ygor
Paul Graham, Computer Programmer

[http://en.wikipedia.org/wiki/Paul_Graham_%28computer_program...](http://en.wikipedia.org/wiki/Paul_Graham_%28computer_programmer%29)

------
swah
We must create bacon, not bring it :) Like that pg's rant.

------
pixie_
I have a degree in engineering, but when people ask me what I do, I say I'm a
computer programmer because that's what I am and I'm proud of that.

------
Hrothgar15
"Producing beautiful software is not a goal." Speak for yourself! That is my
goal; money is a mere byproduct enabling it.

------
atarian
This is definitely some of the best advice I've heard. Thank you very much for
posting this.

------
sampsonjs
Excuse me, but the company decides what the titles for positions are, not the
applicants. And I'm sure no one with "Software Engineer" in their title ever
got laid off. "But the article is really telling you to pick a job where
you'll be considered King Shit!". Thanks for that great advice.

------
mynameishere
Is it okay with you if I call myself a programmer even if I become CEO?

------
ekanna
fantastic article...

------
freemarketteddy
I think Patrick is missing a niche segment of Hackers who have been making a
lot of money in last few years.They are the independent Mobile App
Developer(iOS/Android)

If you choose this path then you dont even have to start a company,all you
need to do is make awesome apps.It might be a little hard to start but in a
year you should be making good enough money to go independent and then sky is
the limit.It is not only possible but probable that you will write better
applications (using services like Parse) than entire megacorps.

~~~
patio11
Everyone knows I pay my rent by making bingo cards for elementary
schoolteachers and bear no ill will for small businesses, right?

If you are sufficiently skilled to create a popular iPhone app, you can
sleepwalk your way into either $100k+ as a salaried engineer or $200+ an hour
doing contracting work. The _vast_ majority of app devs will not reach these
numbers.

~~~
freemarketteddy
With all due respect...I think that the factor we are trying to maximize is
not money...It is overall life satisfaction and happiness as a hacker.

Personally I would choose 80K a year building my own awesome apps ,making a
name for myself,travelling the world ,meeting awesome people than making 200K
at xyz corp where I spend my day exchanging bullshit emails with upper
management.

~~~
patio11
I'm very, very sympathetic about those goals. :) Please do more research about
the app market. Most people will not achieve $80k or anything close to it as
independent app developers. I wish you every success.

~~~
xiaoma
I deal with app developers every day. I read a feed of iTunes store rankings
regularly in the course of what I do. 80K is not an extremely rare level of
success. In fact, even one of my old college buddies with a total MS-stack
background has eclipsed it.

I'm not really in a position to share details, but for A-level geeks, there is
much, much more than 100-200k to be made. It's true that most people won't
achieve that. Much like 90% of sales-people's income are at sub-median levels,
it's closer to a power distribution than a gaussian one.

------
matomesc
Good read, i totally agree with some of the points made.

------
daviddaviddavid
How jaded.

Sounds rather like a "Guide to Success in High School" written by the guy that
graduated with perfect grades but got his ass kicked every day.

Well, not everybody gets their ass kicked every day.

I absolutely cringe at the idea of a bright-eyed young programmer becoming
prematurely jaded based on somebody else's experiences.

"This post aspires to be README.txt for your career as a young engineer."

Definitely failed in that regard for this young engineer and I hope it fails
similarly for my cohorts.

~~~
angelbob
I'm sorry to hear that. Well, you can become jaded in the normal course of
events if you prefer.

When that happens, remember that this article exists. It's good for tactics
later, when you realize you can use it.

I've been programming professionally for 15 years, and programming at all for
almost 25 (now I feel old). I'm a fantastically skilled, experienced and
versatile programmer, even for that experience level. I am, by any reasonable
metric, highly successful. I work on very interesting problems. I work for a
cool yet profitable company. I do code and not management, and I otherwise get
the computer programmer dream job. I may be jaded by long experience, but I'm
not bitter and I have no reason _to_ be bitter.

Patrick is totally, completely, 100% on the money with this article.
Everything he says is true. Remember where you saw this so you can come back
to it in a few years.

~~~
xpose2000
Not only that, but I am printing this article out and saving it to remind
myself of how it really is and not to fool myself into ever thinking
otherwise.

