Don't Call Yourself A Programmer, And Other Career Advice (2011)
kalzumeus.com
kalzumeus.com
That's a perfect description of what I do. I'm proudly a Programmer.
Programmers are essentially a type of translator. They translate constraints expressed in human language to constraints expressed as computer language.
At the higher levels you have more say how exactly that happens in terms of system topology, but at that point you're no longer just a programmer, but an architect.
Nothing is 'wrong' with it. You just do it at the detriment of your own career.
Even an idiot can put two and two together and conclude that if their business value depends on programs, then programmers create business value.
Nothing is wrong with it. Donald Knuth proudly describes himself as a programmer.
But a good chunk of the people reading this comment probably make more money than he does, and title inflation is part of the stupid game we have to play to earn outsized rewards.
So proceed with caution.
-- Ken Thompson, in his 1983 Turing Award lecture, "Reflections on Trusting Trust".
However the "software engineer" title is also applied to a lot of untrained programmers, so I'm not saying that this term is analogous to "dentist" even if it should be.
That’s literally it.
Being disconnected from ground-floor workers has been the hardest part about remote work, on that note.
(Also, "not appeasing those moneymakers" is the quickest way to get broke and become unemployable but hey, you do you.)
As much as I want to believe this, I think the ability of developers separates itself in different “classes”. The senior devs who can’t complete a fizzbuzz are probably not the competition for the jobs I want.
Some can still code, and that’s your competition. Many cannot.
Whiteboarding Yet Another Graph Search Problem With Perfect Syntax[1] might be beyond their current short-term abilities, but I'd be surprised if they couldn't produce pseudocode and architectural design that solves most real-world problems.
On the other hand, there are plenty of "seniors" who couldn't write code in the first place.
[1]Everyone knows which employer does this.
Most of the best developers I know would fail a technical interview for their current job.
But to be fair... is that an actual technical interview?
Yes, that's because they can't code.
(No, connecting APIs and navigating information complexity landmines isn't coding.)
In silicon valley software companies (e.g. Google, FB, Twitter, Stripe, Airbnb, Uber, and all the smaller companies following the same interview & career ladder playbook) a senior engineer or L5 is just someone with around 5+ years of experience. They might have a few more meetings and spend a bit more time working on design docs, planning, mentoring others, etc. compared to more junior engineers, but their primary job is still writing code. Even at higher levels like Staff and Principal engineers, less time might be spent writing code and more time in meetings, leading committees, approving the largest in scope design docs, etc. but there are so few of these people and the bar is so high to get there that they were at least at one time some of the strongest engineers at the company, and they still code sometimes even at this level. In the entire IC track at these companies, I suspect you'll find approximately 0% of people that are so incompetent they are just unable to implement fizzbuzz. In the management track you'd find some, but even there I suspect quite a low percentage.
In other industries, maybe banking, large contractors, more old fashioned megacorps like the GE's of the world, I think there might be more "architect" and other technical tracks that are allegedly still programmer IC tracks but where the senior folks are much further removed from programming and wouldn't be able to implement fizzbuzz.
I got asked this problem and my mind went completely blank and I had to solve it from first principals, making some of the same blunders I see others making when I work with them through it.
When I see people claim that senior devs can't FizzBuzz, I have to imagine what they mean is that they do some silly error because they are under pressure and you have to remind them about "what about 15?" or something. I've interviewed hundreds of developers and only two had trouble implementing a loop and conditionals as a concept.
If you are completely fine with your salary and job atmosphere and have no further ambitions then great, that's good for you; not the case for me and many other programmers looking to break their back less and make more money however.
I've personally been a real-time witness to how I flunked interviews -- and rarely, some sort of business negotiations -- due to sending the wrong signals: clothing, general demeanor, tone of voice, wrong topics (programming languages or amount of servers etc.), and others. I've been there when I failed those, I even cried after some of them, but I gave myself time to reflect and extracted my lessons.
Are people super shallow in how they judge you? Feck yes they are, there's no ways around that fact. But one thing I am learning after I hit 40 and wanted something more than being a yet-another-programmer-drone-fearing-for-his-job, is that rebelling against reality and not making a strategy to exploit the said reality is foolhardy and downright at a teenager level of being disconnected with reality. Or, to use more HN-friendly lingo: it's not productive.
I find it interesting how many people here rebel against the realities the author outlined. And yes they are realities, not fantasies. People will judge you by your clothes and people will try to negotiate you down and the moment you budge they lose all respect for you; to them you are no longer a potential business partner, you are now a lowly slave they can boss around so they want to quickly wrap up the dinner with you and leave. Those dynamics do exist.
IMO it pays off to see all this, acknowledge it, stop rebelling against it, take a few deep breaths, and learn how to exploit it.
Evolution. Those who adapt best will survive.
I am looking to change my life and that's why I feel the way I do about all this. If you are happy with your life I can only envy you and congratulate you for being in a state of internal harmony.
Programmers are in such high demand that it’s the opposite of a dirty word. What’s being described feels more like mid- or late-career advice where you might want to specialize to keep advancing. That can mean deep-diving a domain, like the post suggests. It can mean focusing in a category of comp sci, like distributed systems or ML. It can mean consulting. It can mean management. Etc.
I’m experiencing this now. I was attached to a theoretical (in the way that startups are) profit centre which just got whacked and now I am being shifted over to “business support.” Accordingly, we are the last to hear about anything.
Boss used to be consulted on things. Now he is told via email of who he now reports to.
"Engineers are hired to create business value, not to program things"
FFS. True enough, but it's still claptrap. One quote from George Orwell really struck for me: "speaking the truth in times of universal deceit is a revolutionary act."
It's why now when people ask me what I do, I say "programmer", not "software developer". Actually, I usually say "computer programmer", because otherwise people get confused and think it might be to do with programming videos. Like programming your video recorder was a job, or something.
Enjoy being a programmer, from this you'd never have to retire. Enjoy the freedom; it shouldn’t be all about money and optimizing the optics of what you do, just to force some perspectives.
I also am the best programmer in the whole IT department and the only one who has no CS background.
The bigO crowd will disagree but even the hard core comp sci types will go much further with real soft skills.
In the US, the title "Professional Engineer" is roughly equivalent and similarly requires a license.
but there has also been recent litigation and a court has ruled that having a degree from an engineering school in an engineering discipline entitles one to use the term https://reason.com/2019/01/02/judge-confirms-that-oregon-eng...
the reason for the requirement and confusion is essentially building codes and other government regulations: if you want to build or repair a building, you need to hire people to certify the work as meeting building codes; those people need licenses. But at the same time, a company can hire a bunch of fresh engineering graduates to work a such a project and not every one of them needs a license. Unfortunately, we just have the one word engineer that applies to both. "Licensed engineer" would be a clearer distinction than "Professional engineer"
I was promoted to "Assistant Systems Analyst" (but I wasn't actually assigned to assist anyone).
I was promoted again to "Systems Analyst" (I wasn't in fact a systems analyst - real systems analysts don't program, and I've never analysed a client's processses and systems).
I was promoted to "Consultant". I confess I did do some consulting for clients; but the job was mainly programming, as before.
I was hired as an Engineer (I was nothing of the sort).
I was hired again, as a "Senior Developer". I was "senior", in that I was the oldest person in the company. I had no reports, and my duties were the same as all the other peons in the company.
I've done many other things than programming during that time; for example, I've designed complex systems of interacting components (which I understand is now known as "architecture"). I've done a lot of sysadmin; in fact I once had the job-title "systems adminstrator" for a short while.
The whole time, my real job has been programming computers. I'm not a professional; I belong to no professional bodies. I'm a tradesman, or perhaps a journeyman craftsman. I know I'm not a Master Craftsman. My trade is programming, so in point of fact I am a programmer. I'm certainly not ashamed of that; most people I know are incapable of doing the work I do.
There's no shame in being a tradesman. Hell, my electrician probably earns more than me; he has to get certified every year. He's more like a "professional" than I am.
And FWIW, I'd much sooner have my pay inflated than my job-title.
And maybe companies should learn that they need programmers especially good ones otherwise you get something like Salesforce
Yes it does.
anything new to add?
Some previous discussion:
2 years ago (which is basically same as now) https://news.ycombinator.com/item?id=21303181
5 years ago https://news.ycombinator.com/item?id=12548043
7 years ago https://news.ycombinator.com/item?id=8147008
Must be an American thing. Where I'm from this screams "did not practice due diligence", which is a big management ouchie.
The f*ck??
* For loop, int 1-100
* if int%3 == 0 && int%5 == 0, print fizzbuzz
* else if int%3 == 0 , print fizz
* else if int%5 == 0, print buzz
* else print int.
How difficult is that??
(And remember that "senior" only references to years of experience; if you have 10 years of copy-paste experience, then congratulations, you're now a "senior".)
Now that I have enought, I do call myself a dev so that it filters annoying interractions.
oh well
Patio11 is one of the grands hommes of this site.
I strongly suggest you have less certainty and more curiosity when you come across something like this.
I would not follow this advice if your really have no business being there. Most universities in the US are in fact private institutions and this would be considered trespassing if you are found out. You might have an easy time blending in, but if any faculty (not just police, at least at my institution) asks to see your school ID, you are required to produce it.
My university was crawling with non-university people who were legitimately there.
You could randomly tap the glass and people would let you in.
I'm not sure why you'd bother though for computer science. There are plenty of very high quality lectures online.