
Do call yourself a programmer, and other career advice (2013) - luu
http://yosefk.com/blog/do-call-yourself-a-programmer-and-other-career-advice.html
======
eldavido
McKenzie (original article's author) worked probably a decade outside a major
center of tech R&D before taking a job at Stripe. A lot of his advice is
written from that viewpoint. It's valuable because a lot of the world operates
as he describes.

I think the big lesson is that life inside industry clusters (finance/media in
NY, Hollywood, Silicon Valley, oil and gas in Houston) is quite different from
life outside. In industry clusters, jobs are way more specialized, standards
are higher, and "geek skills" pay off way more. A few jobs ago, we engaged a
consultant for decent money to tune our postgres implementation. I can't
imagine that job existing, or paying that well, outside of a major center of
Internet software development like SF/SV. I'm sure there are analogs in oil
and gas, or any other clustered industry.

~~~
WalterBright
> I'm sure there are analogs in oil and gas, or any other clustered industry.

My dad was the ops officer on an Air Force base in the 1960s. His job was to
keep the base operational. The Vietnam War was ramping up, and the AF's need
for transport airplanes outstripped their jets, so they pulled a bunch of
propeller transports out of retirement.

The mechanics, however, were unable to get the old propeller engines to
produce the rated power. They followed the directions in the manual, and it
just didn't deliver. Frustrated, they pulled out of retirement some old
mechanics from WW2.

Those old guys never looked at the manual, they just listened to the engines,
tinkered with them, and soon got them delivering the power.

There's a lot of specialized expertise that never makes it into any manuals.
But I still love the idea that those giant engines were tuned by ear :-) Those
mechanics were the real deal.

~~~
karatinversion
This reminds me of a story I once heard about shipbuilding during WW2.
Supposedly, although designs and blueprints were made in great detail,
following them today wouldn't give working ships, because the workers
implementing them at the time saw where the designs wouldn't work and fixed
them of their own initiative.

In a way, the opposite of today's optimizing compilers.

~~~
pjc50
This was part of what got the RAF Nimrod programme eventually cancelled; they
were ancient airframes that required an ongoing supply of spare parts, but as
you describe building parts from the original plans didn't fit properly.

~~~
KineticLensman
Yes, each airframe was essentially a completely different aircraft, although
each was notionally built from the same plans. Bids for upgrades that were
generated against a single reference airframe went massively over budget when
executed because no two planes were the same.

The other thing that got the programme cancelled was the crash of Nimrod MR2
Aircraft XV230 in Afghanistan in 2006, as described in exhaustive detail in
the Haddon Cave report [0 - pdf]. Part of the cause was design flaws
introduced over years of updates, that interacted with each other fatally.

[0]
[https://assets.publishing.service.gov.uk/government/uploads/...](https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/229037/1025.pdf)

------
smnrchrds
"Don't Call Yourself A Programmer" [0] is from 2011. "Do call yourself a
programmer" from 2013. The world, especially the world of tech has changed a
lot in the past decade. A good advice from 2011 is not necessarily a good
advice in 2020. Perhaps" _programmer_ sounds like _anomalously high-cost peon
who types some mumbo-jumbo into some other mumbo-jumbo_ " was correct at the
time, but is no longer true after a decade of software eating the world. Have
either of the two authors, or even someone else, written a revisited up-to-
date version of this advice?

[0] [https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-
pr...](https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

~~~
waheoo
I prescribe the the fact programmer is the most accurate term for what I do.

Im not an engineer, im far closer to an architect and an analyst. But those
things are both from other fields and confuse things.

A programmer needs to be across aspects of engineering, architecture, business
analyst, designer, copy editor, ux, accounting, lawer, marketer and even a bit
of project management.

That doesnt even begin to cover the domain knowledge often leaking into
network admin, sysadmin, operstions, support, and various other functions I
get thrown into.

Engineer, in my experience, just doesnt quite cut it.

We are general purpose knowledge workers with the single defining
characteristic of continuous learning.

If i had to put a new label on it, id say we are process automaters. But since
our focus is on programming computers to achieve this automation and "bring in
the automators" makes us sound like robots or bankruptcy auditors, i would say
programmer is a pretty clear good fit.

~~~
executesorder66
Software developer always seemed to me to be an unambiguous and good name for
what we do.

It takes programming, and all the things you mentioned, to develop software.

On top of that it is not an overloaded term with some other title from some
other industry.

~~~
waheoo
Is programmer overloaded from somewhere else too?

I like software developer. Its probably the most commonly understood term too.

Odd fact, accountants sometimes hire interns called "coders" because they code
account transactions.

Its one of the most tedious jobs I've ever had.

~~~
executesorder66
Not that I am aware of. But as I mentioned, programming is not the only thing
that software developers do.

I mean I'd image that attending meetings takes up a huge amount of time for a
CEO. But they aren't called "meeters" because that's not all they do.

~~~
waheoo
Right but id hazard thats an exception to the rule. How many jobs come to mind
that dont label based in their primary function? Because the jobs that do
label based on primary function are very easy to come up with.

Brick layers, plumbers, painters, miners, accountants, lawyers, sailors,
banker tellers.

Software development is a thing, and software developer perfectly fits that
view.

I guess I just think* a software developer is a professional whereas a
programmer is more apt for things like open source development. Programmer
being more of a general term encompassing software developers.

*Nuanced and subjective thoughts.

------
dang
Discussed at the time:
[https://news.ycombinator.com/item?id=6033135](https://news.ycombinator.com/item?id=6033135)

There are more dont's than do's:
[https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=comments%3E10%20Don%27t%20call%20yourself%20a%20programmer&sort=byDate&type=story&storyText=none)

------
franciscop
> Again, I don't disagree, but rather offer an alternative view, equally
> internally consistent. I have stayed at one job for more than a decade, in
> large part because I'm rather attached to the people I work with. To be
> sure, I got raises, and I was ready to quit over employment terms – but it'd
> take much more than 10%.

In my experience and talking with friends it is rare that changing jobs _only_
jumps 10%. You are usually looking at a solid 30-50% increase in salary in
early-mid career (~10 years). Outside the US, for late career there's a lower
ceiling if you only consider local companies.

------
sergeykish
I prefer to think of myself as Software Developer.

I want GTD, working product with real users. I like solving use cases with
product owner, balancing technical debt, the patchwork of system
administration, use of libraries and writing code.

I've thought about myself as programmer until entering freelance. It appeared
the act of programming computer is not valued. No need for clever code, make
it simple, iterate.

------
bjarneh
> Forget any pride of craftsmanship – you're going to churn out embarrassing
> junk.

McKenzie was at least somewhat correct. Very rarely do you end up in a place
where you have time to create something you are truly proud of.

------
yllus
It still comes down to: Would you rather be seen as someone who creates value
(profit), which is a "developer", or who works on odds and ends for the
company and ultimately costs money, a "programmer"? Given the two options I
think the most advantageous option is obvious.

I will admit however that my view on this is rather arbitrary. I don't think
we really have a good way to resolve what's best.

------
starpilot
Can anyone link me to one of those jobs where most people could not do
fizzbuzz? Thanks. In the age of leetcode that seems vanishingly unlikely.

~~~
kristopolous
Honestly, I'd probably fail it because I wouldn't believe they'd ask me
something so trivial.

I'd question the heck out of it looking for tricks. Then I'd probably think
"no they want something complicated. It can't be that"

I'd probably totally fail it. I've been writing code every day for over 25
years but if you asked me that in an interview, I'd totally completely utterly
fuck it up.

I'd walk out and the interviewer would think me profoundly incompetent. Then
I'd go home and have a terrible day thinking "wtf was that? All he wanted was
that. You could write that when you were 7 on an apple 2, wtf were you doing?"

So now I'm just enjoying my time contributing to open source. Whatever.

It's a great time to not work, unemployment is lucrative.

~~~
collyw
I got asked it one time and did it fine. Then they asked me to do it without a
modulo operator. I had a mental block as it is so easy and obvious to do it
with a modulo operator that it was kind of difficult to think about doing it
another way.

Likewise I got asked about python with 2 list comprehensions. Then I got asked
to do the same thing without an intermediate variable. Basically they wanted a
nested list comprehension. This was not a difficult task, but not something
that I ever do, as I find nested list comprehensions terrible for readability
- I always use an intermediate variable. It would be easy to mess this up
under the stress of an interview.

~~~
kristopolous
What's the demonstration trying to show here?

Those things frustrate me in interviews, I can think of 4 ways to immediately
do it but I know for a fact they only have 1 way written down and it's my job
to guess it. If I say "you can make a field" and they have zero knowledge of
number theory well my chances go right out the window.

To them I obviously have a "wrong" answer. They ask you to be clever but only
in some proscribed secret way that they have no intention of disclosing.
Nonsense.

If instead I respectfully show them the multiple ways, it's still naturally
"combative" because there's no other way to reliably answer the question.

They're just asking for experience to fail. They're looking for something who
coached themselves, not someone who actually knows anything.

No wonder silicon valley is awash in cargo cult driven shit software. Look at
the process.

Yet again an interview process that selects for dimwits.

Might as well guess what number they're thinking of

~~~
AnimalMuppet
That's only because the interview process is being run by people who don't
know what they're doing. They may be able to code, but they're amateurs at
interviewing.

You could do the exact same thing, but with sanity. When you ask what they do
without the modulo operator, you're looking to see if they just have a
cookbook method memorized, or if they can handle having to adapt it. You don't
have a "right" answer - if their answer works, it works. If it's kludgy, that
might be a bit of a mark against them, but less so if they _know_ that what
they did is kludgy. And so on.

It's not all like what you describe. There are people who can actually
interview.

------
bluedino
With the current state of software, you have application integration services
like Celigo and Boomi that allow 'ordinary' users to do the job of a
programmer.

Before, you'd need a skilled programmer to take 3 months to link together
applications or data from different companies, and your accountant can do it
in an afternoon using a graphical interface.

~~~
msh
Well certain IT jobs move away from IT and other jobs show up. While
somethings are easier there are also need for more it persons, esp on the
higher end of skills.

------
doggydogs94
Since 99% of the people in the world do not know the nuances of computerland,
I just say that I work on computers.

------
0x262d
Very pleased, but also confused, to read two quite good and quite different
articles on the same topic in a row that both coherently referenced Marxism.

FWIW I work at a not-originally-software-native company that is pushing in a
more software-first-oriented direction, as much of the world has since 2011,
and that undermines the title "don't call yourself a programmer" more than
anything, but also some of the other points in the 2011 article. I do think
much of the cynical stuff in the 2011 article is very important for naive tech
enthusiasts and naive young professionals to understand, and it seems full of
good advice, but the linked 2013 article is also a good counterbalance.

