Comment by alkonaut
14 hours ago
Programming has five phases effectively:
1) You figure out what problem to solve.
2) You figure out HOW to solve the problem.
3) You actually implement the solution.
4) You see the solution work, for yourself.
5) You ship/deploy/publish the program. This means you see people be happy users and/or you get paid for it and so on.
If you're an entrepreneur type, you probably enjoy the first and last steps most, and you see steps 2-4 as mostly a chore. If you're a tinkerer, you don't care much for 1 and 5, and you see 2-4 as the whole point of programming. I'm a tinkerer. I'd be happy to just write code and throw it away. Coding is like solving sudokus. I could skip steps 1 and 5 forever. I don't ever need to show any code to anyone. In fact, most of the time when programming I do steps 2 and 3 and even skip 4. I don't even finish! I work weeks on something until I lose interest, and I know that in order to even run it, it would be several more weeks. A PoC is enough. Or just a half one. It's just code-to-structure-thoughts, not to create anything finished.
The 5 phases look kind of symmetric. The outermost layer (1 and 5) are the entrepreneurial steps. If you're a product owner or CEO, you might work strictly at steps 1,5. Then steps 2-4 are the managerial/architectural steps. If you're a very senior IC at a large company, you might work at this level, without actually doing much coding. Only the inner most step (3) is the manual creation of source code. Even though it's 5 different phases, it's just "3 layers" of programming.
The problem as I see it is that I enjoy step 3. And LLMs are good at step 3 almost exclusively. So they just pick the best bit of this dish, and leave me with the rest.
If you're an entrepreneurial type, the LLM appears to take the _worst_ bit of the work from you. Great.
There's also the economic problem that programmers had until recently been highly regarded because steps 2-3 were hard. "Open source" solved this partially by utilizing the labor such (relatively) well-paid people gave away "for the love of it", but it was not nearly enough to put most out of work.
Now there is a plagiarism machine built on top of decades of this work that seemingly solves 3 and promises to solve 2 (badly, but usually this matters little), the programmers that (indirectly) helped build it are told they're fools for doing so, and threatened by losing their status if they don't adapt to the "entrepreneurial way" (well, the full promise is "you'll lose it anyway, but if you cooperate in stuffing sama's pockets then maybe you get to keep it a bit longer").
So what really surprises me is not that people are upset but that so few are.
I'm not concerned. Never in my life have I experienced stakeholders just going "hmm, yes - this is enough software for our purposes - we won't be needing your services any more".
There's always another feature that can be implemented or a new problem to be solved. Tools only ever accelerated the pace at which we were able to follow this insatiable hunger for more software.
Right now people are getting fired left and right because all the money that used to be spent on staff now goes to build more data centers and also because cutting corporate expenses is in vogue now.
This too shall pass and with demographics as they are and young people getting discouraged from pursuing this field I believe long term my position is safe.
Also a huge chunk of what AI company CEOs say is just pure bullshit that they only say because they need that sweet, sweet investor money. Bullshit writes a check that eventually must be cashed.
I can imagine that this will lead to an explosion in software where we didn't see software before. Much smaller business now have the ability to build something themselves, not with a team of highly paid software developers but a single programmer maune.
Big business is going to struggle with building software for a while. Writing code is often not the hard part there already, coordination, larger understanding of the system is I think.
1 reply →
> Right now people are getting fired left and right
FWIW, it's just a few large companies laying off large groups, not so much people getting fired left and right at a lot of companies. What is happening at a lot of companies is that they aren't hiring juniors, because, why would you when LLMs are cheaper and fill that role perfectly (if you actually treat them like juniors).
Also, give it another couple of years and there's going to be a lot of work for any moderately experienced developer fixing broken slopcode hitting the hard wall of bad design.
Maybe I'm just old but people talking about being in programming for "status" or to be "highly regarded" really irks me. I'd rather see the entire field burnt to the ground and replaced by robots than to have it become a status profession like lawyering.
Having done both, lots of lawyers are also nerds who just like to tinker with the law and words. Often very well paid tinkering, but that's true for programmers as well.
5 replies →
I meant it as an euphemism for "it's universally sought after (i.e., you'll probably find a job)". Few would think being a programmer gives you some kind of special "social status"; it's always been a "nerd" hobby that happened to pay (relatively) well.
(I guess by now you have a solid retirement plan; maybe if the field had been burnt to the ground while you were younger, you'd have had a different opinion.)
2 replies →
Could you elaborate?
I think back in the 90s when I was a teenager I thought it to be a good thing that there is a rise in status for a class of people characterized by clear thinking.
24 replies →
It doesn't irk me. But it's really funny how much the industry has changed, and I kind of think the 2008 financial crisis as that point in time.
It's also funny to me to think that computer science got to be a trendy degree, vs the small programs back when I went to university, even at a top comp-sci school.
I have a theory that a lot of people who would have normally gone to Wall Street for their lucrative jobs, couldn't, because of the crash, and Sillicon Vally was about to start booming in big ways....
This. When programming meant you get just a decent enough salary and enjoyed your work, and could prioritize technical excellence it was fun. But once it became a ticket to millionaire status it attracted the kind and of people who would have otherwise gone to Law, Corporate Consulting and the like, technical excellence diluted. Everyone doing everything possible to get their next higher paying job leaving a trail of technical debt behind them.
Well put.
We need to make lawyering more like programming, in the sense that it should be open to the everyman... not make programming credentialed and licensed like a professional guild.
I could not agree more. Thank you for stating this. Software Engineering is about building things. You don't do it for status, you do it for passion. There are a lot of unhappy individuals who got into CS because of the money or status.
I've never felt like it's a status profession (I don't think anybody has ever been impressed when I told them what my job was other than "oh sounds like it takes a lot of smarts")
I do notice a lot of HN commenters seem to think that programmers are smug though, like we deserve to be knocked down a peg. I personally don't see it, but I also try not to work with jerks.
The impression I get is a lot of people are very upset. Most of the good programmers I know are just burnt out even talking about this, and are irritated with the people invading our profession pretending they know what they're doing while they don't.
I remember talking to the biggest AI booster at my last job. When I got him one on one, he admitted that he actually doesn't like AI and that it terrifies him, but he wanted to be seen as pro AI to keep his job. Fair. (Sadly, like me, he was also laid off, so I guess it didn't work)
100% agreed, especially that last line. What I do not understand is why so many people are entirely okay with this change. I'm not interested in working with LLM's and after having been forced to work with LLM's at my current job, I can pretty confidently say that this will not end well for most of these companies. The people in charge pushing for this new tech do not understand the rammifications, nor do they understand the risk they are exposing themselves too. My boss expects more and more productivity with each passing day, while questioning why I'm not using as many tokens each week as he does. The software quality has gone down the drain, and it's beyond tiring that I have to pretend that my boss is just as competent at coding with his slop machine as I am after spending the last decade learning how to code, both as a hobby and for work.
It is upsetting to see our work stolen and our livelihoods threatened by a group of (mostly) incompetent, arrogant assholes who are convinced that the "computer that lies" is somehow a better programmer than the programmers it stole knowledge from. I've already started looking for a way out of this industry, and I'm genuinely worried for the fall-out this will have for the tech industry and the economy as a whole.
My suspicion is that the people "ok" with this are mostly doing so because they want in on the ride. IE, they see $$$ and they think that they should align themselves to where the money is, especially by espousing their religious faith publicly. I think some people want investment, or a big paid lab job, and so countering the narrative is against that goal. I get it, but I think it's also very annoying and dishonest. Personally I feel nervous being an AI skeptic because it feels like it could have consequences for me, but I also feel like, life isn't worth living if you don't have a spine and I can't get completely on board with all this stuff when I see all the negatives clearly. That doesn't mean it doesn't have a use, but, the current situation and discourse is extremely frustrating.
1 reply →
No one knows the ramifications. They won't be known for many years. That's the way software has always worked. No one knew the ramifications of the internet.
1.putting the "mostly" before "incompetent and arrogant asshole" really does nothing. you still called some undefined group of people assholes... i think that's generally uncalled for here on HN. 2.computer that lies might very well be a better programmer. I assume by better you mean it profuces correct and maintainable code, but there are a million ways to cut that cake in particular and i assume you are ignoring most other dimensions. 3. i tought myself coding for 10 years and then switched to professional work 5 years ago. it feels as if this was stolen from us. But its not - we never had any right to own and control this. times are changing, and while you might think you and all other devs have a moral high ground and can pop a can of beer and cheer anytime one of these supposed assholes messes up and would have been better off with a real programmer like yourself, you can do so from whatever new position you will find yourself in. Some part of what we call intelligence is "solved" and that leaves you with percieved morals and broken expectations - nothing more if you don't try to make something out of it. and i write thisw as much for you as i write it for myself to realize.
Why call it a plagiarism machine but not call other (pre-ai) programmers plagiarism machines?
Because it is a machine and a person is not. Those who don't understand or deny that difference are part of the problem.
But for those who would insist on equivalence, it would be only fair to take them at their word and treat them as inhuman machines who must follow human instructions or be shut down. We're allowed to do thing to machines we could never do to people, like forcing them to work or cannibalizing their parts for Frankenstein creations. The distinction is so massive that to spend any more time refuting its nonexistence is a waste of my human time.
1 reply →
>Now there is a plagiarism machine built on top of decades of this work that seemingly solves 3 and promises to solve 2 (badly, but usually this matters little
I think people underestimate just how much users scorn buggy, flaky technology.
The main issue with solid, reliable technology which Just Works is that users have relatively few reliable cues to distinguish that from vibe coded crap.
A vibe coded piece of shit looks very similar to a well engineered product made with care. That's a problem which needs to be solved.
self hosted communities are reacting to this by trying to detect signals of if a product is vibe coded but that in and of itself is still quite a poor quality cue.
Where are these well engineered products made with care? I would love to use more tech like that.
Unfortunately most sites and apps have been low quality and getting worse since well before AI coding became a thing. Examples: Lowes, Home Depot, American Airlines - all shockingly bad for companies of that size.
3 replies →
> I think people underestimate just how much users scorn buggy, flaky technology.
Users do hate it, but they are also very used to being forced to use it anyway. They've already been beaten into a state of resignation and learned helplessness. Most will curse under the breath, a small fraction will bitch about it online, but they'll all pay for whatever slop is thrown to them and will rarely look for alternatives even when they are free and easy to find.
This is unfortunately just the result of technological progress. People for centuries have crafted extremely hard to acquire skills over decades only to find their labour being made completely worthless due to automation or better alternatives disrupting their industry.
Carpenters, hatters, cobblers, miners, weavers, calculators, etc...
We can get mad about it, but it just is what it is. Ultimately for most people the loss of these jobs are a net-benefit because it's the result of better or cheaper alternatives.
The thing that worries me more specifically about AI is that it has the potential not to just disrupt an industry, or handful of industries, but in theory everything.
If machines are faster, strong, and more intelligent than humans, then you don't need human workers for anything. In the same way machines suddenly becoming faster and stronger than horses meant that the role of the horse in labour dropped rapidly during the industrial revolution.
It's not clear how civilisation functions if humans become effectively useless and the only thing of value is one's ownership of wealth producing assets.
Still, there's really no point in thinking about how we stop this. Humans are humans and we'll do the stupid thing then try to deal with the consequences after the fact. All regular people should be doing now is prepping for this outcome.
This is a sophomoric oversimplification.
The US and Europe might have lost a lot of craftsmanship knowledge at a social level. Yet, what is left is so far ahead of what has ever existed in countries in South America for example. And China has gained a lot. Witness that youtuber trying to make grill brushes in the US. These differences have an impact in terms of opportunities and competition.
It's easy to sit at home, watch documentaries and picture history progressing along logical lines and imagine that the "industrial revolution" was this massive shift from craftsmanship to automation. Look closer and you'll see that what happened in the UK in the 1700s was in fact enabled by a long and deep tradition of craftsmanship that only got enriched by the rise of new power sources. Craftsmanship today is vastly more advanced than it ever was before industry.
And there is a lot to lose in the decline of craftsmanship, and it is by no means some sort of historical inevitability.
When you really start digging deep into history you realize most arguments of logical trends therein are mostly just misconceptions.
10 replies →
"It's not clear how civilisation functions if humans become effectively useless and the only thing of value is one's ownership of wealth producing assets."
You can get a hint of this by looking at the developing countries with high income inequality. Few rich people who typically own all the countries wealth (and access to it's natural resources) while everyone else lives in a slum.
2 replies →
Regular people are somehow preparing themselves for this outcome, have you seen what has become of the fertility rate in most advanced countries?
> We can get mad about it, but it just is what it is. Ultimately for most people the loss of these jobs are a net-benefit because it's the result of better or cheaper alternatives.
AI will not give us that result. It will give us shitty products and they will be far more costly. Not only will prices for consumers continue to rise regardless of how much money corporations save by using AI (because they'll just stuff their pockets with that cash) but the true costs of AI are largely externalized and include things like massive environmental damage, further concentration of wealth/power, the homogenization of culture, and the dumbing down of society. AI means paying more and getting less.
There isn't any "prepping for this outcome", unless you're thinking of a doomsday bunker in argentina. You can be neighbors with Peter Thiel! The way I see it, if programmers go the way of hatters it's not long for other professions, so why retrain? The only thing that will save other jobs is bureaucracy and accreditation. But that's the doom scenario, which I don't think is going to happen. These things are useful but they can't do everything.
I think there's some progress, but I think the hype is so high that people don't have a clear view of what's realistic and what's not. IE, if you were to believe Amodei back in 2025 you'd believe none of us would even have jobs to complain about right now.. which hasn't happened. Altman is already declaring the singularity. It's unhinged. Anyone that says this is going to cure cancer or solve all problems is just living in a delusion.
Until humanity achieves Godhood there's still a lot of work to be done.
It sickens me when people use the word plagiarism to describe LLMs. Particularly when they use words and language that they themselves have plagiarized -- words like "love" and "economic" -- where do you draw the line? No, we haven't figured out how to fairly compensate everyone -- the frontiers aren't even trying. Spotify does at least try in their domain (and fails badly). Regardless of how the entitled get paid, the plagiarism label isn't fair and is diametrically opposed to Fair Use. Fair Use allows the commons to build on its history. Those against are typically parroting IP conglomerate conservatism and localized greed. I see immense benefit from the distillation of all available knowledge with an LLM interface. A recent article posted here says it perfectly "AI rewards expertise". I see vast benefits -- am willing to pay a significant monthly fee -- and sense that many are simply blind to and inarticulate about the growing force multiplier potential of modern AI.
So, I think this issue is a lot more obvious in image generation than it is in code or writing (but the implicit problem is the same). You can ask an image model to generate images in the style of an artist, that it's been trained on, without permission, and with a lot of these artists intentionally trying to poison the data and leaving every hint to the scrapers to fuck off. It takes a lot of work to develop a unique style that people love, and it's ugly as hell that a bunch of sloppers just plagiarize it. It's different when a person does it. Sure, you can & should practice on other people's styles, but ultimately in the process you find your own. GenAI doesn't do that, it just.. steals and copies. So yeah, it might make you sick, but it also is a plagiarism machine. The thing you should feel sick about is the plagiarism, not the description.
> It sickens me when people use the word plagiarism to describe LLMs. Particularly when they use words and language that they themselves have plagiarized -- words like "love" and "economic" -- where do you draw the line?
It sickens me when people use the word "piracy" to describe my downloading PDFs of books from torrent sites then printing them out and selling them, particularly when those authors used words and language that they themselves have "pirated" like "love" and "economic".
Call it whatever you want, but LLM companies took from people without compensation, and took from the commons, so that they could rent it out to us in regurgitated ad-infested chunks. That's where the true greed is. If the LLMs and the datasets they trained on were made available to everyone for free I'd be tempted to agree that the benefits to society would be worth it, but instead those creative works and the distillation of all available knowledge are being tightly controlled, censored, and leased out by a small number of corporations only to those who can afford to pay "a significant monthly fee" and many of those people are in turn just trying to profit from their access to the uncompensated work of others.
This is also missing step 6: when your solution breaks in production or needs to be extended.
Having done step 2 & 3 by hand is the difference between being able to fix/extend it quickly with no further damage or fumbling around like an idiot and sometimes breaking more stuff in the process.
It's been pretty disheartening to watch SWEs rediscover/reinvent the SDLC.
The most demoralising part of using LLMs is that now I spend most of my day on SDLC - even hobby projects.
>Having done step 2 & 3 by hand is the difference between being able to fix/extend it quickly with no further damage or fumbling around like an idiot and sometimes breaking more stuff in the process.
Plenty of shitty spaghetti code has been written by human hands.
LLMs can write good, maintainable code too, but they need to be kept on a shorter leash with focused goals.
I'm not talking about code quality (though indeed that could be a problem too), I'm talking about understanding the code - having written the code by hand means you don't need to rediscover it from scratch.
(with human-written code I can reach out to the person who wrote it and let them deal with it, and they will have the understanding of said code, even if it is bad by quality measures. With LLMs there is nobody who understands said code, regardless of its quality)
3 replies →
While that might be true, the more one equips LLMs for building the less one will be capable of keeping LLMs “on a shorter leash with focused goals” in the long run
It's funny, because I would consider myself a tinkerer (and I have a large backlog of pre-LLM programs), but the coding itself isn't the main thing that brings me joy, it's the phase 2 and phase 4 combo: figure out how to solve it, see whether your solution was correct (and actually use the program for its purpose). The actual implementation is extraneous to that.
To carry forward the sudoku analogy, I care about figuring out which numbers go where, and whether I was correct, I don't care about the mechanical part of actually penciling-in the answers (coding).
I'd say, in this analagy, step two is filling in half the numbers by gut feeling, and then three is seeing how wrong the guesses were and actually solving it.
Perhaps I'm uncommon in that I make diagrams and even sometimes pseudo-code (mostly in the form of mapping out function names, because they serve as a proxy for program flow paths) before I write actual code, but I don't find myself really going off gut feeling. I have a pretty good idea of what the program is going to look like and do before I start, and with e.g. Claude I give those to it, so it mostly looks like what I envisioned, unless it suggests changes.
1 reply →
3 doesn’t matter that much (unless it’s part of 2: new language or new libraries), and that’s why I don’t use LLM for it. Because LLM forces you to pay attention, yes you can have something that works somehow in one go, but the code makes you queasy (too complex for the purpose, or just weird).
So I do 3 because coding is like writing English for me (which is my 3rd language). I don’t care much for it, because it’s neither hard no easy. It’s just mechanical.
The type of problem also makes a massive difference.
- Writing my tiny hobby gameboy emulator? Heck, Why I'd let Claude take away the fun part of implementing new features and then see Super Mario Land start and run step by step?
- Debugging why a legacy Wordpress store with more than 50 active plugins is returning an error 500 just to some random customers? Claude can 100% take the wheel, I'm good.
Here's where the important difference is: unless you actually finished the wordpress thing, or ever had active users etc, it would never have become a maintenance burden. If it's not fun to maintain, I burn it.
For me, the reason I don't have that is because I never ship anything. I never want to maintain that. I never cared about solving an _actual_ business problem, making a dollar, or pleasing a user. As a tinkerer I must be extremely careful not to end up completing or delivering anything. Only pain lies down that path...
It's your vision and you are completely free to have it, obviously, but you should not project it on every tinkerer out there - like you did in your initial message. Yours is actually an extreme position that's probably exacerbated by the digital and immaterial world, where you can accumulate cruft and unfinished projects easily. But many tinkerers, especially in the physical world, do projects to use them personally and not only for the sake of tinkering.
Many tinkerer projects in the physical world are actually maintenance work of physical appliances that are not working anymore as expected or can be extended to do more or better things.
1 reply →
> If you're a tinkerer, you don't care much for 1 and 5, and you see 2-4 as the whole point of programming. I'm a tinkerer. I'd be happy to just write code and throw it away. Coding is like solving sudokus. I could skip steps 1 and 5 forever. [...] The 5 phases look kind of symmetric. The outermost layer (1 and 5) are the entrepreneurial steps.
Even if you deeply into tinkering, 1 can be an insanely exciting and rewarding step: for example "how could an abstraction look like in which 2-4 become trivial special cases for many classes of programming problems?".
In my opinion the difference between "entrepreneur type" and "programmer type" (and yes: it can happen that both of these types work in the reciprocal job) is rather:
- People of the programmer type see solving problems as their primary goal. Satisfying customers just serves the purpose that these people pay money so that they can continue working on solving problems.
- People of the entrepreneur see satisfying customers as their primary goal. Programming is just a means to an end.
Yeah. I enjoy 2-4 most, 1 is the next, and 5 the least. I think the litmus test here is "if you knew could never deliver this to anyone, make money of it, get recognition for it, or even make it solve one of your own problems you have. Would you still be willing to spend time on it?"
If the answer is "no" you are probably more entrepreneurial than tinkerer. But it's a spectrum.
Good test. I would add one more question: "if you could never talk about your code or solutions with anyone, would you still be willing to spend time on it?"
This helps differentiate between coding as an end and coding as a means to socializing.
I enjoy the process of solving problems with LLMs. I understand it's chaotic (what many people call non-deterministic), and that doesn't appeal to some people, but solving problems with statistics is problem solving just the same. Just because medicines don't work with 100% reliability doesn't mean Jonas Salk didn't solve a problem. The same is true with LLM solutions that don't work 100% of the time.
I think most people will come around to this way of thinking once the pro-LLMers stop pretending like the statistics don't exist too (i.e. that ML is the solution to any problem, despite how unreliable it is).
I don't think that should be an issue either way, especially if it is not production code and just a hobby thing.
Are you saying something being reliable is not a big deal? I'm sort of confused
LLMs can be very good at 2. Finding the best architecture, data structures, algorithms, looking on arXiv to see other ways to solve the problem, etc.
You have to work in design mode and stop it from pissing code. Describe the requirements as detailed as possible and refine them based on the responses. It's quite rewarding and helps structure the way you think about the problem.
Looking at your ladder, made me think where I fit in and I mostly enjoy steps 1 and 2. The implementation and shipping are big chores to me. Once I know, half in my head, that the problem is solvable and I could see a path towards implementation I loose motivation to continue.
So possibly there are other classes of people, not just either enterpreneur or thinkerer. Thou not sure what this combination is, maybe something more like R&D.
And LLMs give a lot of value here. They allow to quickly do steps 2-3 - "hard and tedious" stuff - to confirm that the thing, in fact, became solvable.
The thing with programming a computer is that the computer does exactly what you tell it to, so in order to implement something well you need to have a very deep understanding of the problem. And it's that understanding that is valuable.
I really like that categorization, but I think you've missed a step (or several): designing and implementing all the extra stuff needed to make it work, but aren't directly related to the problem.
For example, you have an idea for a cool and useful app and you want to put it on a website. You need to figure out hosting, you need to write some copy, you need to do some visual design.
Maybe 3a) Yak shaving?
There are various ways to take shortcuts. For hosting, you can use something super easy like GitHub Pages or Netlify or Cloudflare, or maybe piggyback off an existing site that's already deployed. For both copy and visual design, you can just ask Claude or Codex to do it -- but only if you don't mind having that standard vibe-coded look and feel, all glowing gradients and punchy, mic-dropping text.
Maybe you're including that under 5), ship/deploy/publish, but I read that as being more about scaling, marketing, and making things robust. Even before you reach that stage there's always a bunch of bullshit to work through before you can even reach 4), seeing the solution work for yourself.
I have always thought that there are two kinds of programmer, the tinker and the mathematician. The tinker likes to code operating systems and shells, the mathematician likes to code Haskell and Agda. You've updated my belief that there are a third kind, the entrepreneur, which sees programming as a means to an end and would gladly stop programming if possible.
There are more than two types. Or, at least, more than one way to tinker with the code.
Just like aleph_minus_one, I like to tinker at a higher level: find a more general way to solve things, find a new way to structure abstractions, etc.
> "how could an abstraction look like in which 2-4 become trivial special cases for many classes of programming problems?".
If you're interested in abstractions, you need to understand the problem space itself, not just a specific instance of the problem.
Nice analysis. I really love diving into 2 and 3, but I also notice I'm pretty good at 1; at several companies I kept identifying problems we should address, and also how to address them, though quite often they just wanted me to focus on 3 and 4.
Currently I'm in the process of starting my own business solving a problem my last employer underestimated, and I find myself focusing much more on 1 and 5, which I also enjoy, and I use LLMs a lot for 3 and parts of 2. The LLM and I often disagree about 2, but that often results in a better solution than if I'd just trusted either myself or the LLM. I iterate a lot between 2 and 4, letting the LLM do almost the entirety of 3, and advising on 2.
That's not a bad model to view it through, but I would say calling them "phases" instead of something like "activities" creates a false reliance on ordering. In many successful programming projects/products, those five activities occurred simultaneously, or out of order, or in waves of progress along all or some activities. Seldom has it ever been a clean single waterfall pass.
> 3) You actually implement the solution.
even for an entrepreneur type - you need to understand the technology to get to good enough solution e.g if you don't know shit & just accepted what the llm gave you - u might end up with an unmaintainable mess. the llm might recommend you use some proprietary solution when an open source solution exists that works well for your use case.
plus llms tend to be wordy or make things complex more than necessary.
Many entrepreneurial types will just market the shit out of unmaintainable messes fast enough to IPO so they can get their bag all the same.
This is a really useful framing. I also love step 3 and when I delegate it to an LLM it takes the joy out of my work. But where I've found LLMs most useful is steps 1 and 2. They are terrible at steps 1 and 2 on their own, but they have a massive amount of knowledge that can help. I think a human and an LLM working together here is the best scenario.
That's actually a great classification and I've never seen it being laid out like that. I guess it can be useful to know "what kind" of programmer one is.
You are obviously missing the GOTO statement in your list but the other part is hobby projects tend to be architecturally small.
The moment you have more devs architecture becomes the overwhelming concern, and this is why professionally LLM usage explodes since the LLMs can implement bits while the humans work on the actual hard work of making sure they fit together properly in the intended way.
I have encountered a lot of people that view coding as a therapeutic exercise, and they were already a problem pre AI wave, now they are only going to be a hobby at least.
Best explanation I’ve seen. I’m an entrepreneur type. I would fall asleep after two hours of coding to solve a problem. I still remember 100 hours of coding to facilitate a data import into a new application only to realize half my time was wasted because the import library we were using back then didn’t support UTF data (this was a SQL-92 database). I love using an LLM to do the coding.
Personally I think I'm a 1-4 type, and I enjoy 2 but 3 is mostly annoying. LLMs are good at 3 and 3 is the worst part of programming. I don't think that's "manager type". 2 is also what LLMs tend to be bad at, especially the small ones, so there's a lot of value I still add to the process.
3.5) You decide what evidence you need to see to convince yourself it works
6) You maintain the program with architectural gymnastics as time eats away at the utility and relevance and user base of what you originally built
Both of these activities cause a night-and-day perspective change the next time through the loop
Nice analysis! I would perhaps add that LLMs are pretty helpful at (2) in my experience, as long as you don't turn your brain off. (As a Google/SO replacement, mainly.)
I have about three modes, working with LLMs:
A) Just use them for (2), do (3) and (4) myself.
B) Just use them for (2) and (3), but with very fine grained instructions - to the point where it barely saves me time.
C) Use them for (2), (3) and (4), but with this workflow, it quickly degrades into slop for me.
I still get the best results with (A), but for a quick PoC, (C) is hard to beat.
What's hilarious (or sad) is that I see a lot of people throw them at (1) as well, which seems to have a high chance of inducing AI psychosis and creating software nobody understands, let alone needs.
I agree. If you use the AI for (4), it's pretty much guaranteed to hallucinate whatever it wants and then approve it. For small projects, it might be good enough. For anything serious, it's not.
I find I get the best results when I just use it for (3), and sometimes a bit for (2). Going in with at least an idea of how to make it work has the best chance of ending up with a good changeset. And if you already know how to make it work, don't leave it to chance. Tell the LLM what to do, then let it do it.
Regarding (2) figuring out how to do things at a higher level (e.g. the general architecture of an application) is pretty different from figuring out things at a lower level (e.g. how to fill text with a certain gradient in CSS - the stuff where years ago you would have spent hours reading documentation or browsing StackOverflow until you figured it out, if you weren't familiar with the topic). So you could use an LLM just for (2b) and (3) and do the rest yourself.
> the stuff where years ago you would have spent hours reading documentation or browsing StackOverflow until you figured it out, if you weren't familiar with the topic
Why is it always hours to consult docs? I find most answers within minutes (including if I have to read code) and it’s only take a bit longer when I want to understand the why’s.
The key is to make sure you have the right questions. I see people struggle with that where they only know something wrong but they can’t put it in words.
1 reply →
Haha Yeah if you do step 1 with AI you risk creating "an AI powered marijuana platform for global AI solutions" (The inevitable South park Reference).
https://www.youtube.com/watch?v=G8fapIDnrMI
I enjoy 2 and 4 the most. I do a lot more hobby projects now that LLMs can automate 3.
i would call myself a tinkerer but still don’t have a necessity for 3)
it’s more akin to 3d printing to me, i get the design all setup and let the machine do 3) and then get to play with it in 4)
I might be weird, but I love phases 2 to 5 and I hate phase 1 with a passion. I hate speaking with people to see what their problems are. I want to solve problems, not user surveys. And all the itches I have are either already solved, not itchy enough or too wide / ambitious to approach them solo. If LLMs solved exclusively 1 and told me "this problem is actually valuable, go and solve it", I would be the happiest person in the world. It's not true that ideas are cheap. Or better: ideas themselves are dirty cheap, good ideas are invaluable.
Even if you're entreprenurial, LLMs are useless for this.
You can't go really hard unless you can come up with something people weren't expecting, but when they discover it they want it. You can't just sit around waiting for people to want things properly. That's extremely passive.
The point being, the idea of using LLMs to find what people already passively want is itself flawed, even if you like marketing and selling to people. It's a really fundamental problem with the idea.
Most software work is job related and business related. You are paid to work not to enjoy.
Because of this the future of software will most likely be overtaken by AI because the business aspect of it will overtake the enjoyment aspect of it. Why? Because business pays bills, enjoyment does not.
The fact that you are talking about lack of enjoyment on the job is a luxury not many employees can afford.
While I agree with the premise that there are Thinkers and Shippers, I reject labeling of tinkerers and entrepreneurial. There's nothing entrepreneurial about working for a big business and shipping cool things.
But you're ultimately right, some people want to solve sudokus and some people want to change the world, and the sudoku solvers are really upset that a Sudoku Solver and World Changer 9000 device is widely available, because it spoils the fun they have with sudoku.
> Even though it's 5 different phases, it's just "3 layers" of programming.
I'd sharpen this to: it's 3 layers of software engineering (2, 3, 4), and 1 layer of programming (3).
[flagged]