I guess when you get to a certain age (I'm 45) I stop caring whether something like this has social value. I enjoy it anyways.
Wanting to know how things work always brings me back. I don't care if an AI coded small or big parts of it, I still want to know how it works, how to make it better - what's holding the AI itself back from being a more effective programmer.
I feel like I got into programming when it was seen as low-status profession in the late 80s. And it went through levels of hype and collapse. Maybe this is the ultimate collapse. But I still want to take apart the watch to see how it ticks.
If society collapses because 80% of white collar jobs disappear, I guess I'll just be in my basement wanting to know how a linux kernel driver works.
/rant
I really have no idea what I'm going to do, but I can probably still sit in the basement hacking kernels when I'm done with my whatever day job.
If I had to go do that again, the main problem would for me would be that I don't think I could stand in one place for that long anymore, my thigh and lower back start stinging and want me to sit down (at least they do when I cook at home).
I interacted with way more people at a fast food restaurant than I do now, and got to interact with customers as well. Which wasn't always positive, but it was at least interesting to see all the various people that came in.
Also it was a lot more laid back and less serious than what I do now (which is work on web apps for large corporations).
Also at least I knew what I worked on was going to get used. I've been on too many projects that end up getting cancelled, or only used by a small handful of (high paying) clients, etc. Or specific features that end up getting cancelled or delayed indefinitely, etc.
Too bad it pays so little, or I'd actually consider it for a change of pace (well, more likely I'd want to try being a barista instead, that seems more enjoyable and a lot less walking on greasy floors).
At least I am not tied by family so I can be relatively mobile, I moved to Singapore from my European country since the market was not great and I managed to get hired here.
Anyway in my current company the bottlenecks are completely different than AI so it will take a fair amount of time to even apply AI properly to development here.
i promise you this is not true
understand the chemistry of fats an denaturing of proteins, understand myoglobin; it is not much different than understanding anything.
nothing stops you from trying to make the best burgers in the world
be curious, ignorant and kind
On the other hand there are lots of companies hiring still, so you could also keep working as a software engineer, if that's what you're good at.
The job has changed a lot though, it's not about writing code by hand anymore.
https://www.eatfaceplant.com/menu
They even have a working shake machine.
So those of us that fight against becoming managers, it was for love of programming and the related technical details, as it usually comes with a payment and career ceiling.
And being unemployed beyond 50 years old in many countries that see being a programmer as yet another office job, means too old for employment, and too young for retirement.
I think quite a lot of these programmers don't fight against becoming a manager, but it's rather that they don't have traits (character traits, demeanour, low on dark triad traits (it is known that the selection process and work reality for managers actively selects for these), ...) that are necessary to get "selected" to become a manager.
The only thing is, we’re all managers now. We’ve been given a fleet of robots to support a set of outcomes. We have to set expectations, monitor outputs, coach, intervene, step back, onboard new team members, train regularly, make sure they have the tools they need, etc and so on. Are those “soft skills” or just engineering? I’m curious if and how people are lacking in these areas when it’s just text.
Doesn't matter what traits they have, the only way up, to get that raise, additional benefits, or not being thrown into some improvement program is to accept becoming a manager in one of its various forms, or go elsewhere where hopefully there is a more sane career path.
You did not get my point: it is not about non-acceptance of becoming a manager, but rather about having traits that commonly imply that "those in power" won't select you for becoming a manager.
People aren't selected, they are dragged into their Peter principle role.
Sure they might make my work life hell, but i've always considering my programming hobby to be completely separate from work.
I don't remember this at all. I became a professional programmer in 1987, but perhaps it was the fact that I went directly to Unix, did not pass go, did not collect $200 and worked entirely on systems programming that helped skip any of the "low-status" of people doing RDBMS/forms work ?
I started my CS degree in '94, and my junior year was... weird. Suddenly a quarter of the faces in the lab were not the types you would ever expect to see there.
No, you didn't! If you are 45, then you were 5-10 years old in the late 80s. You might have started playing around with programming at that time, but you didn't "get into" it in any professional sense. I am willing to bet anything that you had no knowledge, let alone concept, of the professional status of programming at that time.
When I eventually went to college in the late 90s / early 2000s that attitude seemed to switch. Add to that today's coding bootcamps for kids. It seems like quite a different world.
I'll probably do the same (actually doing this), camping in the woods or something, using a camper van.
If you enjoy it for the sake of it, do more of it. You don’t need society with you.
If, however, your job is to build value for a user, then you or the man or the system are to naturally optimize for what’s productive to that end. Arguing about generics doesn’t create any/enough value. It doesn’t build a product.
These are two different sides of the profession and serve different ends.
> I was so naïve that I thought progress could only go one direction, because that’s all I’d ever known.
As kids growing up in Eastern Europe in the 80s and 90s the world felt like its getting better every year. More peace, fewer borders, more opportunities, better technology.
Everything was getting better every year and we took it for granted that this is a law of nature.
Or a more recent time. I think how mechanical engineers felt in silicon valley over the last 40 years as basically 'making and shipping" was all exported to china. I have some mechanical engineer friends whose life got smaller and smaller.
To contrast, I have some philosopher friends and they discuss about food (they, unlike me, love cooking shows), travelling, but also philosophy. There is never any feeling of "this is work, we don't talk about this". It's very refereshing. And I imagine writers talk a bit about writing too.
This does not fit my experience. It's rather that many passionate programmers are rather eager to talk about what they do at work (at least if they are allowed to), but the common situation is that what they do at work is barely interesting to people who are not at least somewhat interested in programming topics.
I am friendly with my coworkers and might occasionally spend time with them outside of work, but, for the most part, all my closest friendships are not from work and not in the same profession (outside of the few I picked up in school).
But some of the worst experiences I’ve had with coworkers were with those who made programming part of their identity. Every technical disagreement on a PR became a threat to identity or principles, and ceased being about making the right decision in that moment. Identity means: there’s us, and them, and they don’t get it.
‘Programmer’ is much better off as a description of one who does an activity. Not an identity.
I hope AI liberates us from that dumb facade of pretend innovation. In some ways, us programmers got way too full of ourselves and filled our lives with pretend work porting apps from one thing to the next thing with no actual change in end-user value
Elegant, well-written and technically sound projects will continue to exist, but I’ve seen too many “well crafted” implementations of such technically vexing features as “fetching data and returning it” that were so overengineered that it should have been considered theft of company money.
It can mean a category flag someone waves, an identifier we ask others to respect, a group we choose to belong to, a way of understanding what it is we like about ourselves, or something we quietly aspire to.
it suddenly struck me that there has never, AFAIK, a single-word noun for a C++ programmer. not sure what, if anything, this implies.
NullPointerException is the Java world. In C++, dereferencing a null pointer is rather undefined behaviour.
To clarify/nuance. Even if there was no economic nor social incentive for me to program; I'd still tinker with it, AI coding agent enhanced or not.
At the end of the day, I like the mental model of programming, and I am somewhat uninterested in shaving every millimeter of friction off of every surface I touch on my computer. Does that make me a worse programmer? Maybe? I still delivered plenty of high quality code.
Yeah, screw those people. I count myself as lucky that I've only worked with 1 person who was seriously CRITICAL of the way other's worked... beyond just code quality. However, I always enjoyed a good discussion about the various differences in how people worked, as long as they could accept there's no "right" way. That's what the article brought up for me, and I wonder how much that happens these days.
One of my fondest memories was sitting around with a few other devs after work, and one had started learning Go pretty soon after its public release... and he would show us some new, cool thing he was playing around with. Of course those kind of organic things stopped with remote work, and I wonder how much THAT has played into the loss of identity?
In every pursuit there are secretly 3 different communities. Those who love doing the thing, those who love tinkering with the gear, those who love talking about it.
HackerNews and the internet in general are dominated by people who like to nerd out about the gear of programming (IDEs, text editors, languages, agent setups, …) and the people who like to talk about programming. The people doing most of the work are off on the side too busy doing the thing to be noticed.
By that metaphor, AI-controlled code-generation is more like large-scale automated manufacturing: the sort of thing that produces Ikea flat packs. I'm not knocking that; I own my share of Billy bookcases. But it's not what I do. It's not what I'm going to do in the future. There's a place for large-scale manufacturing and there's a place for hand-crafting, and this is even more true for software than it is for physical goods.
Final note: throughout my career I've know a few people with an outlook similar to mine. I'm always delighted to run into them, but they've never been common.
However, my best advice as someone with many distinct interests is to avoid tying any one of these external things to your identity. Not a Buddhist, but I think that's the correct approach.
He sort of comes to this conclusion in the final "So then, who am I?" section. The answer is you are many things and you are nothing. You can live deeply in many groups and circles without making your identity dependent on them.
If you're a programmer, what happens when programming isn't needed anymore?
If you're a runner, what happens if you get injured?
It's always been helpful personally to remind myself that
I am not a programmer. I am a person who programs.
I am not a runner. I am a person who runs.
> AI hasn't eliminated programmers or programming, and it never will.
It might not fully eliminate them tomorrow, but this technology is being pitched as at least displacing a lot of them and probably putting downwards pressure on their wages, which is really just as harmful to the profession. AI as it's being pushed is a direct attack on white collar CS jobs. There will always be winners and losers, but this is a field that will change in many ways in the not so distant future because of this technology - and most current CS prospects will probably not be happy with the direction the overall field goes.
Even if you do not personally believe this, you should be concerned all the same because this is the narrative major CEOs are pushing and we know that they can remain crazy longer than we can remain solvent, so to speak.
I've been a programmer for 15+ years, now running engineering teams. The transition forced me to confront this exact identity crisis - am I still "a programmer" if I spend more time reviewing PRs, designing systems at the whiteboard, and coaching junior engineers than writing code?
What I've realized: the craft I fell in love with - understanding systems deeply, reasoning about tradeoffs, building elegant solutions - that doesn't require typing code. It's a way of thinking.
The social identity issue is real though. When I was actively coding, I had opinions on frameworks, war stories from production fires, and the satisfaction of shipped features. Now my "war stories" are about organizational design and hiring. Different tribe.
Maybe the healthier framing is: programming is something I do (and love), not something I am. That way, when the activity changes - whether due to AI, career evolution, or burnout - the core identity remains intact.
That said, I still sneak in side projects on weekends. The joy of making something work is irreplaceable.
Maybe the social group the author is referring to has split up (forked)? For example, I wouldn't call anyone producing vibe coded AI stuff a "programmer". That noun will be reserved for the original group.
How about "software developer"?
> How about "software developer"?
Rather: AI prompter. :-)
Why do I even want this identity? I have to wear this hat simply because we living in a modern feudal world.
Now come back to the "social identity" defined in the article -- "computer programmers". I do care about this identity, but as all identities, like tags, you gotta beautify it a bit -- you have to attach some meaning to it. Without the personal meaning, you handle the power of definition to other people, who naturally don't care about you.
The tag I created for myself is "Kernel Programmer", initials in capital letters. My motto is "There are programmers, and there are system programmers, and ultimately there are kernel programmers" and I want to put it on my table in print. Don't get me wrong though, my work has nothing to do with kernel programming. It is not system programming either. It is even more abstract (and boring) than your usual FE/BE programming. But I do kernel programming as a hobby, and as a hobby I'm my own master and I'm willing to apply the most stringent standard to myself, which I'll never do the same to my work BTW.
And who can say that I'm not a kernel programmer even when it is just the XV6 kernel? Who can say that I'm not serious about kernel programming when I'm ready to write as many tests as I can imagine for a very early Linux kernel?
Life is meaningless and I have to create meanings out of the void. That's it.
... and "ultimore" there are assembly programmers, machine code programmers, ASIC microcode programmers, ... :-)
BTW definitely would love to do more professional assembly or microcode, if possible! I'm planning to migrate a very old kernel to different architectures and there is tons of assembly code, or, to be more precisely, more cursed GCC inline assembly code in the kernel. E.g. everything in string.h is in asm.
Unfortunately, most of the jobs (and the industry as a whole) evolved into something else that was all about money and growth and image, and not at all about the craft of programming or the creative nature it provided.
I feel like this happened long before LLMs became a thing
As someone who was inspired by people like Steve Jobs, Steve Wozniak, Dennis Ritchie, Ken Thompson, Alan Kay, and other major figures of computing, I’m not inspired by Elon Musk, Sam Altman, Mark Zuckerberg, and other current tech leaders. But the current leadership is the current leadership, and they have set the tone not only for our industry, but society as a whole.
While I am not opposed to LLMs per se, LLMs in software development, in my opinion, have made the relationship between the employer and the employee crystal clear: employers own the means of production and can dictate how they want their employees to work. Despite the limitations of LLMs, if employers want them to be used because they feel they could ship faster, then employees at those companies have no choice but to use them if they want to keep their jobs. Some employees might not even have the option of using LLMs since they may get outright replaced by them.
The employer has always dictated the terms of employment, but software engineers have enjoyed many decades of relative freedom and negotiating power due to their in-demand, hard-to-replace skills. Indeed, there are many companies where engineers had significant influence regarding the company’s software.
LLMs, combined with other economic factors (the end of ZIRP, the software industry being dominated by a tiny handful of powerful players), are threatening to change this by reasserting the power of business owners and managers to set the agenda.
Even before LLMs, I felt the software industry has moved away from craftsmanship, quality, and creativity. LLMs in software development may accelerate this, since there may be fewer opportunities for engineers to push back.
I think software craftsmanship is going to end up becoming just like art. Unfortunately it will be paid for accordingly, and that’s the unsettling thing that many of us need to adjust to.
I think it's reasonable to have the act of programming be a big part of your identity—it certainly is mine—without necessarily hanging your sense of self on any one particular job.
I think this is a great take. Culture is not a monolith in space or time. Write for the rebels far away or the ones yet to come.
Unfortunately, I’m convinced this is where the industry is heading. my job pays me to solve problems efficiently, not to have opinions on idiomatic Java
Curious: Now that AI programming is getting good, is anyone using AI to chop away at boilerplate and/or simplify it? For example, is anyone skipping the ORM and just having AI write SQL and build objects from a datareader?
ORMs would be my next battle, but SQL injection could become an issue if not treated carefully, so I would still consider libraries like SQLDelight or other SQL first libraries
Do you know many plumbers or doctors who are so connected to their work that they do plumbing or doctoring as a hobby?
I personally try to avoid such Programmers when possible, they usually overengineer everything they touch just for the sake of engineering. Without even realizing there is a problem.
Compare to jobs like writers, scientists, carpenters, mechanics, etc that are much closer to programmers in spirit and do have a lot of people doing them in their free time.
I work for a very big tech company and I have no one to share this with.
What is he talking about? AI?
I can't relate. Maybe it's because his identity vaguely repulses me. Although in some ways I'm part of it, I never liked the programmer subculture that he's mourning.
I find AI exciting because I don't know where it's headed. If it can do my job better than me, that's even more exciting. Maybe I'll have to find a new job or just learn to use new, diffeent tools but either way, change is interesting.
I now enjoy going between software and hardware/EE/mech, between writing code and CAD, between bits and metal working, between creating structures both virtual and physical, and bringing an engineering mindset to it all. There's still a lot of creative outlets out there, and a lot of community.
Aim high and grow your identity!
I'm a recent CS grad and have zero experience in anything physical or on the engineering side but I think I would enjoy it. I'm a bit intimidated by it, is there a path you'd recommend taking in learning?
From there you can explore automation like pick n place machines, engraving, CNC plasma/routers, CNC subtractive machines (lathes/mills/etc). Or you can come back towards programming with PCB design and custom firmware.
If none of that sounds interesting, you can pick up an old project car from an MG to a Jeep XJ and everything in between.
The world is huge and getting your hands dirty is a really nice balance to time on the keyboard. The only downside is there's no ctrl+z or ^[u but sometimes that's where you learn the most.
My very hot take is that I do more of this now that I have access to Claude code than I did before. The above is the fun part of programming. You know how they say wood working is 90% sanding? Well Claude automates the sanding. You could use it to automate the fun parts too, but you probably shouldn't, for 2 reasons: Claude knows sanding, he's great at sanding. Other stuff? Not so much! He's happy to try, but he's just not great at it!
And secondly, while you could have Claude do the fun parts, where's the fun in that?
It's limiting and dangerous. Limiting because you're relying on a relatively small network in the brain, governed almost entirely by your conscious ideas to provide a set of features of who you are. And dangerous because if something else comes up, if you discover something new about yourself, you change, or your circumstances, or the world around you changes and it affects one of your "identities" - that alteration can leave you lost. As the author seems to be saying.
Instead of these quips of, "you need to know who you are", "who are you?", "know yourself" - we should rather be trying, continually, in a never ending process, to discover ourselves.
Anyone questioning this methodology gets a 'enjoy being left behind' mantra akin to the 'have fun staying poor' of the crypto bro 5 years ago.
We didn't feel the same impact moving from assembly to high level languages probably because there was a smaller programmer population perhaps? And computers weren't underpinning the lives of all people.
IMHO, the danger with the current trend isn't necessarily the change to the day job of a "programmer". It is that this leads to a concentration of power in a small group of people. Then again, computer hardware were always the produce of a very small number of players and we managed to live through that without too much of a catastrophe. In aggregate, the world got better. Like with any new technological development, there are pros and cons. It is up to us as a society to amplify the pros and attenuate the cons.
Yes, writing a beautiful piece of code by hand is fun - and yes, the days of doing purely that for a living are probably disappearing soon, but there is no going back. Make peace with it and evolve.
They burn out, or worse become toxic, because their shallow identity led them down the path to being a “Real” engineer and at the end of the day we’re not actually participating in any sort of real value creation beyond attention monetization.
The mystique wears off quickly and they don’t have real hobbies or interests, they basically talk about RSU packages at lunch and the latest tweets etc. I used to joke privately because almost every time we had lunch they spent most of the time discussing the optimal path to walk.
It’s unique in some way- you can’t be a good doctor or lawyer in middle school and the value system is geared towards maximizing paychecks and working in big tech. Once the reality sets in that you’re going to be doing sprint planning + standups for the next 20-30 years it can be a weird shock.
My first job was at a FANG and I lasted about 2 years- I remember riding the escalator in and seeing how miserable everyone looked on my first day. As an eager junior I reached out to the principal engineer in my org for mentoring, asking him what I could do to be better, faster. He told me: “go find a wife and don’t worry about work- you’ve got a long time left”.
At one point I looked at the senior guy running sprint planning and realized I didn’t want to be him. I bought a 1 way ticket and put in my 2 weeks. Went on to backpack around for a year then ended up at a startup where I made a bunch of friends working on real problems.
What's been happening to software development from the 2010s onwards is closer to what happened to manual craftsmanship as the industrial revolution took off, than to the effects high-level programming languages and abstractions had on the field. Many attempts have been made to turn software development teams into assembly lines; between ultra high-level frameworks and AI, we've had all those "new-new" formal methodologies and extreme offshoring, for example. Another factor that contributed to the status quo is the fact that programming has become well-paid, which inevitably attracted people who are in it for the money and made it an attractive target for "cost optimization".
Not all hope is lost, however. There are two significant differences that set programming apart from traditional crafts: performance and security. There's no universal recipe for either—LLMs and large bloated orgs suck equally at both. Smaller players still can largely outperform behemoths if they have the right idea, similar to what WhatsApp did to Microsoft's Skype or to what Anthropic is now doing to OpenAI, Google and Microsoft. And as for security, just look at Apple's and Google's bug bounties.
At its core, software development is still a meritocracy. This hasn't changed despite the trillions of dollars that have been poured into making it a quantifiable problem. Organizations that refuse to accept this have their projects fail. As for the influx of money-oriented programmers, it might have skewed the proportions, but it definitely did not drive out all of the passionate ones. Keep your head up.
Also, I must say I like the irony of this post making it to the front page of a website that's usually full of headlines of the likes of "How I used Claude to code a revolutionary JavaScript framework running 100% on Amazon Lambda" :)
The world of tech is experiencing schisms and reformations all at a pace unseen in history. But tech is still not worth making one's religion or identity.
Delight in whatever you do and find ways to be in service of others. I am certain many of the brilliant people here reading this will not be doing the same thing a decade from today, but many of those who we consider good people, will be doing new things with the same heart of generosity. Perhaps from that is where we should build our identity.
I can finally put into words my frustration with NixOS. The most elegant solution to the ultimate problem already exists, yet no one is actually interested in solving the problem! In the end, we just got another convoluted system of incomprehensible boilerplate to wrap the existing boilerplate with, and incompatibilities are resolved just-in-time with more boilerplate.
This isn't the first industry mandated madness. Software engineers have supported any fad that their overlords dictated for a long time. It is always the mediocre 100 IQ people who act as mouthpieces for the industry and temporarily get ahead of their more intelligent colleagues.
It is no different now. You can see who is a paid shill and who is not. Python projects like NumPy, members of which are on the take from PyTorch, go to great lengths to rationalize AI usage. Anaconda people who take AI money join in.
Projects like Zig, which are much more interesting, move away from Slophub.
What concerns me is the silence of academics. There are enough tenured professors who could speak up, but they have been intimidated by various speech restrictions from different political parties over the last decade. Or they want that next industry grant.
A programmer is someone telling machines what to do - we will be doing more of that than ever in human history. That said, "coders" not so much - maybe its better to identify as a "person trying to help and care for others" than a profession, since the former will always have a place in society.
it's about enjoyment
someone else on here analogized this perfectly: coding with AI is like solving a solved puzzle. you engage other neural pathways to get the result you want, but "the thing" that made me love doing this for work is completely removed.
We've been seeing this claim for months and yet I don't know any vibe-coded ventures worth a lot of money.
> Being able to code doesn't make you better than the "plebs" who are creating massive value with a vibe coded tool.
> [...] I noticed AI could really code better than me [...]
AI code output is generally considered mediocre (in the sense of "on the median"). If it codes better than you, it might be that your code output is generally below average.Might it be the case that you don't grasp how good one can get with computers and thus not realize that one could be much better than you are at programming them? Did you consider for a moment the possibility that you were missing something?
Point is, this isn't trivial, it is the kind of thing that ends up saving work over the long haul.
Or include this in my agent 'rules' files.
GOOD EXAMPLE
query=f""" SELECT foo FROM {sometable} WHERE {condition} """ answer=spark.sql(query).toPandas()
BAD EXAMPLE
answer=spark.sql(f""" SELECT foo FROM {sometable} WHERE {condition} """).toPandas()
If that is so, then your whole comment is inconsistent and akin to "I do all my poetry with LLMs now and I don't see what people have against it: it's often better than me at punctuation!"
If you think software quality isn't tied to readable (clean) code...
But then it's like the software architect role got phased out completely soon after I graduated. The radical ideology that software architecture doesn't matter started becoming mainstream... And code quality got really bad. I swear, I thought this industry had become a pure "job creation factory" just churning out unnecessary complexity to create jobs. Is still think it is the case.
Byt anyway now with AI, a lot of people are finally acknowledging that architecture is important, that coding is the easy part... Yada yada... Now everyone is finally saying what I'd been saying for over a decade... And it's like I'm finally able to shed this coder /code monkey identify which was shoved upon me and I can now start to use words like "software engineering" and "software architecture" again...
I don't think that's true. What I do think is there's not historically been space for junior software architects. It's long been seen as the senior role you graduate to, not a position for a new grad who knows lots of theory but has little practical exposure.
It was always this, for everyone other than programmers.
This reminds me a little of the Go champion (the game, not the language) who announced he was giving up the game after a computer beat him. It's a bit like giving up running because cars are faster.
I never wanted to "grow out" of programming, but it feels like that's what I'm doing. I'm leaning into activism and real-life stuff, and programming is only a tool, which is sometimes useful and sometimes not.
I was always a "Love of the game" programmer. I went to a business incubator recently and saw two guys vibe-coding with Claude. One was using speech dictation. That's crazy to me. Programming should happen at a keyboard.
I have my excuses - Claude will eventually cost more. AI that runs on Someone Else's Computer is not free software, and it will never respect you. The keyboard is an elegant weapon from a more civilized age. These excuses are sort-of true and sort-of pointless.
Programming is a means to an end. I guess when the chips are down, most people program to make money, which means working for disgusting people who have so much money that they can change the course of history for the worse.
I programmed for fun, and that meant lots of programming. Now I want to program for justice, and that will mean less programming and more grass-touching.
This does not imply that you cannot use the AI "badly". Call it "malicious compliance" if you want ... :-)
AI happens to work in the same direction as the one the author is worried about but none of their theses would be much different without AI.