I also came to a pretty simple understanding over the years. If I'm coding and making progress on a project, I'm happy. If I'm not, or I'm stuck on something, I'm unhappy. This is a profoundly unhealthy way to live because life will pass you by. There is more to our existence than work, or even hobbies. And if AI lets me get more time for that, I am happier than ever.
I am happy someone else is also talking about addictive nature of vibe coding and its gambling-esque rewards. Would we see agentic programmers begging for tokens on kickstarter in future? That would be funny.
This is no different then carpentry. Yes, all furniture can now be built by machines. Some people still choose to build it by hand. Does that make them less productive? Yes. Will they ever carve furniture by hand for a business? Probably not. Can they still enjoy the act of working with the wood? Yes.
If you want to code by hand, then do it! No one's stopping you. But we shouldn't pretend that you will be able to do that professionally for much longer.
People will only build it by hand if there is a market for it. Otherwise it'll be mostly hobby software build for learning and entertainment (opensource). Businesses don't mind factory software Although the cost of developing software is going down and will be almost free, in that case, the price is actually of taste. The best designed easy to use Interface. My guess is there will be some people, even in future, who would prefer custom handmade artisanal software written entirely by hand. Those will be probably artisanal software collectors. Maybe there will be some art galleries in future who will auction this software as art pieces to be demonstrated in museums or galleries. These will be rare events. Most commercial software will be factory made.
I will do what i know gives me the best possible and fastest outcome over the long term, 5-10 year period.
And that remains largely neovim and by hand. The process of typing code gives me a deeper understanding of the project that lets me deliver future features FASTER.
I'm fundamentally convinced that my investment into deep long term grokking of a project will allow me to surpass primarily LLM projects over the long term in raw velocity.
It also stands to reason that any task that i deem to NOT further my goal of learning or deep understanding that can be done by an LLM i will use the LLM for it. And as it turns out there are a TON of those tasks so my LLM usage is incredibly high.
Feel hand/human written code of an experienced individual should be more valuable for a business than one created by agents. Surely, agents and humans might be using the same underlying frameworks or programming languages, but the value difference depends on the breadth and depth of experience. Agents gives you the breadth but an experienced individuals give you the depth in understanding/problem solving.
This is pointing out one factor of vibecoding that is talked about too little: that it feels good, and that this feeling often clouds people's judgment on what is actually achieved (i.e. you lost control of the code and are running more and more frictionless on hopes and dreams)
It really depends on the project for me. For example,I never enjoyed writing react code (or really any UI), just the outcome of my idea materializing in a usable interface. There is nothing creative or fun for me in almost any UX framework. It’s just a ton of predictable typing (now we need a fricking box. And another box. And another stupid box…) I’m more than happy outsourcing that. However, my thoughts are too random and imprecise that actually outsourcing it before to another person always felt disrespectful to them. I don’t have to worry about that with AI. My company is paying it, and when I’m prototyping a react thing every now and then, I burn few thousand dollars a day for the lols.
If they don’t like it, take it away. I just won’t do that part because I have no interest in it. Some other parts of the project, I do enjoy working on by hand. At least setting up the patterns I think will result in simple readable flow, reduce potential bugs, etc. AI s not great at that. It’s happy to mix strings, nulls, bad type castings, no separation of concerns, no small understandable functions, no reusable code, etc. which is th part i enjoy thinking about
Has anyone got any insights into what hiring software engineers looks like these days? As someone currently with a job and not hiring it is hard to imagine.
Has there been any sort of paradigm shift in coding interviews? Is LLM use expected/encouraged or frowned upon?
If companies are still looking for people to write code by hand then perhaps the author is onto something, if however we as an industry are moving on, will those who don't adapt be relegated to hobbyists?
I said something similar in a different thread but the joy of actually physically writing code is the main reason why I became a software developer. I think there is some beauty to writing code. I enjoy typing the syntax, the interaction with my IDE, debugging by hand (and brain) rather than LLM, even if it's less efficient. I still use AI, but I do find it terribly sad that this type of more "manual" programming seems to be being forced out.
Even if Claude writes 100% code, I think there will be a bifurcation between people who are finicky about 10 lines of code. And those finicky about high level product experiences.
I think the 10 lines of code people worry their jobs now become obsolete. In cases where the code required googling how to do X with Y technology, that's true. That's just going to be trivially solvable. And it will cause us to not need as many developers.
In my experience though, the 10 lines of finicky code use case usually has specific attributes:
1. You don't have well defined requirements. We're discovering correctness as we go. We 'code' to think how to solve the problem, adding / removing / changing tests as we go.
2. The constraints / correctness of this code is extremely multifaceted. It simultaneously matters for it to be fast, correct, secure, easy to use, etc
3. We're adapting a general solution (ie a login flow) to our specific company or domain. And the latter requires us to provide careful guidance to the LLM to get the right output
It may be Claude Code around these fewer bits of code, but in these cases its still important to have taste and care with code details itself.
We may weirdly be in a case where it's possible to single-shot a slack clone, but taking time to change the 2 small features we care about is time consuming and requires thoughtfulness.
I think it is pretty indisputable that there is a valuable place for AI. I recently had to interact with a very horrible db schema. The best approach I came up with to solve my challenge involved modelling a table with 300 columns. Converting some sql ddl to a Rust struct was simple but tedious work. A prompt with less than 15 words guided an AI to produce the 900+ loc for me. It took a couple seconds to scan it to see that each field had both annotations I needed and the datatypes were sane.
That is exactly the type of help that makes me happy to have AI assistance. I have no idea how much electricity it consumed. Somebody more clever than me might have prompted the AI to generate the other 100 loc that used the struct to solve the whole problem. But it would have taken me longer to build the prompt than it took me to write the code.
Perhaps an AI might have come up with a more clever solution. Perhaps memorializing a prompt in a comment would be super insightful documentation. But I don't really need or want AI to do everything for me. I use it or not in a way that makes me happy. Right now that means I don't use it very much. Mostly because I haven't spent the time to learn how to use it. But I'm happy.
Programming is a creative work. Replacing human creativity with pseudo parrot code generation impacts this process in bad ways. It's same reason many artists despise using AI for art.
Bean counters don't care about creativity and art though, so they'll never get it.
For me writing code is clarifying ideas, it’s an important part of the process.
Sometimes you start to see a radical way of simplifying what you want, that only happens if you are willing to transform what your requirements are if they turn out to be overly prescriptive.
I think though it is probably better for your career to churn out lines, it takes longer to radically simplify, people don’t always appreciate the effort. Plus instead if you go the other way, increase scope and time and complexity that more likely will result in rewards to you for the greater effort.
Initially I felt like this but now I've changed. Now I realise a lot of grunt work doesn't need to be done by me, i can direct llm to make changes. I can also experiment more as I'm able to build complex features, try it out and delete it without feeling too bad.
> “What’s the point of it all?” I thought, LLMs can generate decent-ish and correct-ish looking code while I have more time to do what? doomscroll?
You could look back throughout human history at the inventions that made labor more efficient and ask the same question. The time-savings could either result in more time to do even more work, or more time to keep projects on pace at a sane and sustainable rate. It's up to us to choose.
I find it helps me just forced to be focused on a task for a few hours. Just the blocked out attention I spend on it will help refine and discover new problems and angles etc. I don't think just blocking out the time without actually trying to code it (staring at a wall) is as effective.
I am TL of an Android app with dozens of screens that expose hundreds of different distinct functions. My task is to expose all of these functions as appfunctions that can be called by an LLM in response to free form user requests. My current plan is to build a little LangGraph pipeline where first step is AI documenting all functions in each app's fragment, second step is extracting them into app functions, then refactoring fragment to call app functions etc. And by build I mean Gemini will build it for me and I will ask for some refinement and edit prompts.
I also like writing code by hand, I just don't want to maintain other people's code. LMK if you need a job referral to hand refactor 20K lines of code in 2 months. Do you also enjoy working on test coverage?
It's a phenomenon you see in a lot of crafts. We enjoy the craft, but when it becomes all about the product and we optimize for that, the fun goes away.
57 comments
[ 1.3 ms ] story [ 54.3 ms ] threadIf you want to code by hand, then do it! No one's stopping you. But we shouldn't pretend that you will be able to do that professionally for much longer.
And that remains largely neovim and by hand. The process of typing code gives me a deeper understanding of the project that lets me deliver future features FASTER.
I'm fundamentally convinced that my investment into deep long term grokking of a project will allow me to surpass primarily LLM projects over the long term in raw velocity.
It also stands to reason that any task that i deem to NOT further my goal of learning or deep understanding that can be done by an LLM i will use the LLM for it. And as it turns out there are a TON of those tasks so my LLM usage is incredibly high.
If they don’t like it, take it away. I just won’t do that part because I have no interest in it. Some other parts of the project, I do enjoy working on by hand. At least setting up the patterns I think will result in simple readable flow, reduce potential bugs, etc. AI s not great at that. It’s happy to mix strings, nulls, bad type castings, no separation of concerns, no small understandable functions, no reusable code, etc. which is th part i enjoy thinking about
Has there been any sort of paradigm shift in coding interviews? Is LLM use expected/encouraged or frowned upon?
If companies are still looking for people to write code by hand then perhaps the author is onto something, if however we as an industry are moving on, will those who don't adapt be relegated to hobbyists?
I think the 10 lines of code people worry their jobs now become obsolete. In cases where the code required googling how to do X with Y technology, that's true. That's just going to be trivially solvable. And it will cause us to not need as many developers.
In my experience though, the 10 lines of finicky code use case usually has specific attributes:
1. You don't have well defined requirements. We're discovering correctness as we go. We 'code' to think how to solve the problem, adding / removing / changing tests as we go.
2. The constraints / correctness of this code is extremely multifaceted. It simultaneously matters for it to be fast, correct, secure, easy to use, etc
3. We're adapting a general solution (ie a login flow) to our specific company or domain. And the latter requires us to provide careful guidance to the LLM to get the right output
It may be Claude Code around these fewer bits of code, but in these cases its still important to have taste and care with code details itself.
We may weirdly be in a case where it's possible to single-shot a slack clone, but taking time to change the 2 small features we care about is time consuming and requires thoughtfulness.
That is exactly the type of help that makes me happy to have AI assistance. I have no idea how much electricity it consumed. Somebody more clever than me might have prompted the AI to generate the other 100 loc that used the struct to solve the whole problem. But it would have taken me longer to build the prompt than it took me to write the code.
Perhaps an AI might have come up with a more clever solution. Perhaps memorializing a prompt in a comment would be super insightful documentation. But I don't really need or want AI to do everything for me. I use it or not in a way that makes me happy. Right now that means I don't use it very much. Mostly because I haven't spent the time to learn how to use it. But I'm happy.
Bean counters don't care about creativity and art though, so they'll never get it.
I think though it is probably better for your career to churn out lines, it takes longer to radically simplify, people don’t always appreciate the effort. Plus instead if you go the other way, increase scope and time and complexity that more likely will result in rewards to you for the greater effort.
You could look back throughout human history at the inventions that made labor more efficient and ask the same question. The time-savings could either result in more time to do even more work, or more time to keep projects on pace at a sane and sustainable rate. It's up to us to choose.
I also like writing code by hand, I just don't want to maintain other people's code. LMK if you need a job referral to hand refactor 20K lines of code in 2 months. Do you also enjoy working on test coverage?
Succinctly: process over product.