We continue to grapple with AI and how it's impacting our lives by trying to find comfort in comparisons to the past, or to other things that we do. But the reality is, there's never been anything quite like this before, and it's forcing us to redefine how we value work, art, craftsmanship, and output. Sometimes, those redefinitions are extremely uncomfortable.
Very well said. I don’t like seeing hackernews submissions that are LLM generated.
The joy of hackernews was seeing applied human ingenuity, most of these weren’t successful products anyway. Just like I don’t watch computer chess games, we should have an easy way to distinguish AI generated software, art etc and then I can happily avoid them.
> What's the real difference in that gray area? I'm not sure. I think it hinges on something that has to do with making versus asking to be made, even if that line isn't particularly clear.
For me the difference is in the extent that I can reason about how changes in the input affect the observable behavior of the output. When the executable the compiler outputs doesn’t behave in the way I intended, then in 99.99% of cases this is completely on me, and, importantly, I could have predicted it from the source code. Conversely, I can analyze any such misbehavior by reasoning on the source code. This doesn’t hold to any remotely comparable extent for the relation between vibecoded programs and the prompts used to create them.
I agree with the article. I've never understood the notion of some LLM people saying you shouldn't care about the end result, and you should do it for its sake. It made me feel like a narcissist and that I was programming for showmanship, but I think making is inherent to (most) people's satisfaction and it's hard to tell something was made by you when all you did was prompting.
Maybe a hot take, but I do think, that even from seasoned developers, the idea they've been doing the 'logical' part so long they'd have it done anyway without AI and it'd only take more time is delusional, when, from personal experience, even when I code something I 'know' and I've 'done', I have to remember stuff, google what isn't ingrained in my brain, and so on.
I don't know if the author would consider this a part of making, but a single thing you build is, obviously, a mix of things you've built. I no longer sense this minor feeling of 'making' when I'm doing something. To make a logic that's part of a bigger system and see it running, thinking how it's gonna be once it's all done... I no longer feel that.
Interesting - I'm just the opposite. I had 100 side projects rattling around in my skull for years but had no desire to spend even more time on the computer after all the time at work on one, even though all of them from a technical perspective were well within my skillset. So now I can actually get them out of my head and basically for free with almost no effort. Maybe the way we view side projects is different - if you were doing a side project just for the love of the game, then yes I can see LLM outputs not scratching that itch. But if you are doing the side project because of some tangible benefit of it, then LLMs are great.
It's the complete opposite for me, my interest in side projects has exploded.
It was never about writing every line by hand, it was about solving a problem and making my life better. LLMs let me do that at a speed never seen before.
I was and am and avid Home Assistant fan but the number of automations/scripts I now have is higher by a magnitude than ever before. Few things would reach the level where it made sense to spend my time writing and debugging a workflow but now I can speak my automations into existence.
Yesterday I got a candle warmer, I wanted to set it up so when I turned it on it started a timer to turn off and I wanted a push notification to see if I wanted to extend the timer when it was close to finishing. All things I knew were possible but HA YAML is miserable (all YAML is) and the UI is not much better (it's a hard problem, I get it). I prompted Claude and had a working implementation in <10min. Additionally it asked if I wanted to auto-turn off if I left the house (yes!) and if it should auto-start the timer if ever detected the candle warmer was on without a timer set (power loss, HA restart, manual interaction with warmer).
My HA automations have never been more bulletproof and if they do something wrong it's as simple as telling Claude Code and having it fix the problem. For example, my motion activated lights (motion sensor -> HA -> smart switch) were working great but I realize that while in the shower my main bathroom lights would sometimes turn off. 1 prompt later and Claude grouped up my motion sensor in the shower to the one in the bathroom so if motion on either was detected the lights would stay on but the shower light would only turn on if its motion detector detected motion.
HA is only one small part of my LLM usage but it's representative of my overall point.
Complete opposite for me, and it is important you hear this. I spend $200 a month Anthropic on Claude Code uplift more free time while no boilerplate yet success and is much more fulfilling now than in the pre-agentic era of hobby coding.
I started using them a long time ago to type Greek characters, but then I switched to vscode with a vim extension and it didn't support that keybinding so I lost the habit. Might work with the neovim extension now.
edit: Yep, but you have to add "k" to the list of "control characters handled by neovim" in the extension's settings.
I think this gets to one of the important points which is we tend to view a hammer as a tool (an extension of ourselves), but we don't tend to view our direct reports as such.
There's a line there somewhere that gets crossed.
Part of it has to do with direct one-to-one determinism. I pull that lever, the excavator bucket pulls up a ton of earth. There was no extra decision made in the middle. And it was completely reproducible.
We might even go so far as to say, "I moved a ton of earth." Even though it was the backhoe that did it.
Back to CNC, consider the manager who orders the machinist to use the CNC to make a widget. Does the manager qualify as a machinist?
I think most people would say, "No. Not unless he coincidentally was one."
There's another person in the middle in that case. That level of indirection is somehow making the manager not a machinist.
I speculate it has something to do with the fact that the machinist in the middle is an independent being that holds knowledge to make things go. The manager gives a very high-level instruction and doesn't instruct the machinist on how to do it.
And I think LLMs are starting to feel (to folks like me) a bit like that machinist. They're not deterministic like the backhoe and the compiler. And they seem human, convoluting the matter further still.
> And when I do have Claude create something for me, I just can't say that I made it. Other people can, but I just can't.
This is basically me. I still love having Claude build things for me, a lot of it is just things only I will ever use, but it fulfills my needs, and that's worth it for me.
I use it two ways I guess: to get unstuck while coding something myself, and to automate building side-projects I have no time for but that linger in my head for years.
>It's not just the loss of the craft and the problem-solving challenge and whatever else. It's the loss of making.
It's the loss of understanding. When you make something, you gain a deeper appreciation for the nuance of all that is required to breath life into it. When you outsource understanding to another (agent, contractor, w/e), you're losing the nuanced understanding of the creation.
>After all, you create the prompts, don't you? You said you were proud of doing things. Isn't that doing a thing?
This feels like the difference between putting together an ikea futon and building a hand-hewn table from logs. The fidelity of your understanding is different depending on how deeply you're engaging. But not felling and drying your own timber doesn't mean you can never make something from dimensional lumber.
I'd take the author's word "making" to mean something more like "having enough understanding of the implementation of the task, that you could recreate the output without recourse to the same set of tools".
Tested against their examples:
>I had a new front deck put in [by a contractor]
As a consequence of this addition, did you learn enough about decks so that you could you reproduce this feat if no contractor were available? If no, you didn't make the deck. If yes, you were probably watching/helping the whole time, and you can claim (at least partial) makesmanship.
> any more than using a hammer to drive nails does.
If you didn't have access to the hammer, could you still accomplish the task of attaching two boards together with a nail? Likely yes, use a rock. It's harder, but the understanding of driving the nail is transferable to other implements.
> What if I had an AI-powered hammer and asked it to hit a nail for me? What's the difference? But at that point, I can't say that I hammered it.
This one contradicted his compiler example. He says that he did write the Fibonacci program, even if the AI-powered compiler translated it to assembly. So by similar reasoning, you can claim you hammered a nail with an AI hammer, so long as you understood the aspects of hammering which the AI took care for you to such a degree that you could reproduce the effects even in the absence of the AI hammer.
The crux of the tension is around "what did you learn from the implementation of this task". If you learned enough to reproduce the objective without the assistance of AI (perhaps much slower), then you can claim the high fidelity understanding that came from making. If you didn't internalize anything, and the AI/contractor managed complexity on your behalf, then the output was commissioned, not made.
I think where people get worked up about this, is that it's not easy to tell what understanding other folks are taking away from their AI usage. It does seem like a bifurcating event where some people are going to net gain understanding of their world due to these new tools, while others will net lose understanding.
I can look at a project I worked with others on a decade ago, and pick out which parts I wrote, which parts others wrote, remember pitfalls from this part, a struggle we had in that part, even if I have no memory of actually doing them.
I can't do that with a project we worked with AI on two weeks ago. It all just blurs together into "someone wrote a prompt and code came out".
i guess there's different point of views here and it depends a lot on what you're trying to do.
As a swe i've always enjoyed the process of designing solutions to problems: design a great architecture, find the right abstractions that make everything fit naturally, write good clean code, etc ... that's what i enjoy doing.
Now there's the part where i've had these ideas for years that i've always though that i'd be cool to work on. But basically it would have required a 10 person team for months, out of reach. Now i have Claude, Codex and Grok and i've already built many projects.
The code isn't pretty, i didn't enjoy it as much as i would have if it were done manually, but i did something i never could have done otherwise.
There's some fun in the process though. I feel like a team manager and i occasionally step in to push for some architectural changes or code rewrites because things become too brittle because of not good enough architecture.
I'm trying to get it back. I went through a period of 2 months or so where I didn't want to do anything not even watch TV except drink. So I've been sober for a couple weeks now, think I'm starting to get it back. But I'm still lazy af right now. I miss making hardware, I design/make my own cameras and little self navigating robots. I did finally fix my camera after it rolled across the floor of my car during a tight turn and something inside it broke/wouldn't turn on. Idk... I bought so many old vintage c-mount lenses and would take each one out, produce a video, and then I lost interest doing that... so now I have a bin of random vintage c-mount lenses and a desk trinket (camera). The positive though is I got two SWE jobs out of these hardware projects. But yeah hope I get it back.
I usually do instantly lose respect when I hear some project is vibe coded... I get that's how it is now but yeah. To me when you say "I made this" but it's actually claude code that shat out the code well... ultimately though it's about money and freedom. You can do whatever you want to do, I need to get my own freedom then do what I enjoy.
I know many people agree but I can’t really follow this sentiment. I can still take pride in something I “made” with an LLM even if I did not write a single line of code for it. I wouldn’t show it around and proclaim what a great programmer I am, because I did not program it, but coding was never the main goal, it was always the means to create the finished end product. When I plan a remake of my garden and then hire a professional landscaping company to build it, I can still sit on my patio in the sunset with a cold beer and be proud of my new cozy environment.
I feed the same way about software. My vibe coded guitar tab editor has features that no other software has that I needed and it’s solving a real problem I had. I would never have created it without AI, because I simply don’t have the time besides my job, family and other hobbies (like really practicing playing guitar). So fine, tell me I shouldn’t be proud of it, but don’t tell me I did not “make” it because it simply would not exist if I hadn’t created it.
> don’t tell me I did not “make” it because it simply would not exist if I hadn’t created it.
So like when I went to a restaurant last week and "made" a cheeseburger with no lettuce and extra onions, because it wouldn't exist if I hadn't created it.
To me, making something can mean you did the physical work of its creation even if there's no particular creative expression, like "I made a peanut butter and jelly sandwich."
It can also apply to tasks where you've offloaded a bunch of work that once would've been done by hand, like "I made this bench using a circular saw."
Where things get hairy even with physical objects is processes like CNC or 3D printers. If you download "Articulated dragon.stl" from a website and press the print button, did you make that? Personally, no. But if you designed your own flexy dragon and printed it, then yes. If you set up a relief carving on a CNC machine or do a perfectly fit inlay, are you making that? Operating these still takes quite a bit of knowledge and skill, but different knowledge and skill from hand woodworking. What if the tools improve and become very easy to operate?
I don't think there's a hard line you can draw. But if there is, it's somewhere between "did everything by hand with no assistance from recently invented tools because those are cheating" and "ordered a sandwich and waited for the finished result to show up."
Interesting. I'm not sure if I'm on one side of this or the other.
I enjoy cooking. I grab a recipe and start gathering ingredients and prep them and then cook them. The food usually turns out really good (I have a lot of practice, you see, I'm getting up in age and I've done this for a log time). So, the question is, am I any less of a cook because I follow someone else's recipe instead of writing my own? To make this even more interesting, I was cooking for some friends some years ago, and one said the food was great. The other mentioned well, it must have been a good recipe. I have to admit that stung a bit. They didn't mean it that way though.
I'm rambling, but the question is, at what point is something _your_ work?
So you did not build a wardrobe unless you cut, dried and sliced your tree yourself, and used muscle powered tools.
Power tools or buying kiln-dried planks is forbidden, you might as well go to IKEA, buy you set and claim you "built" it.
You cannot also claim you built a custom sensor for your smart home if you based it on ESP32 and any of the ecosystem tooling. You might as well buy it from Phillips or Siemens if it exists, or just sit in the corner and sulk. Using advanced tools is forbidden.
I swear luddites are going more and more extreme in their analogies.
When Claude Code/Codex first came about I'll admit it depressed me a bit, but I ended up realizing that the "code" part wasn't the part that I actually enjoyed about software engineering.
Instead, what I've been doing for my personal projects has been about designing algorithms with TLA+. I write that by hand, model check and sometimes even prove the properties I think are interesting or useful, and then tell Claude to implement it based on the spec. Usually I still need to correct the generated code but it's a lot less.
Certainly in these cases, I take pride in what I did, because ultimately the "Invisible Hand" always means I'm outsourcing some of the work of a project no matter how involved I want to be. If I build a deck outside, I'm not forging the nails myself, I'm not growing and chopping down the trees for lumber, I'm not designing my own power tools, etc. There's always a level of outsourcing of the work that I don't find interesting or that I don't know how to do, or don't have the resources to do myself.
With software, the parts that I end up feeling proudest of, and this predates widespread use of LLMs, are the algorithms and tricks I come up with to build something. When I figure out a way to avoid a lock, or figure out a way to use less memory, or figure out a way to increase throughput, I'm less concerned with the actual "code", and much more concerned about the "how".
If all you care about is the end product and not how it's made, then you never become a better person. Your capacity for thinking and solving problems will never grow. You will never be an expert. Experts care about the process.
Of course, you may not care, and that's fine. It's important that people not be delusional about this though. A person with no medical knowledge and an AI will never be as good as someone with prodigious medical knowledge and an AI. The same is true for any profession, whether programming, music, writing, etc.
I completely agree with you, because I usually think the same way and I'm more concerned with the result than the path taken to achieve it. But you shouldn't forget that there are definitely people who work the exact opposite way. They don't care at all about having something functional in their hands at the end, because they just enjoy the process of building. And as soon as it's finished, they tear it all down anyway just to start over again with a different approach.
Plenty of comments already. "I made this" is a reserved concept for one's hands being in the clay. It's different. It is its own experience. And it is different from any other approach toward the end result. That's it.
> but don’t tell me I did not “make” it because it simply would not exist if I hadn’t created it
You did NOT make the software that you generated with AI. But there's nothing wrong with you feeling proud of initiating it. If anyone tells you that you shouldn't feel proud of the prompting you did, please just ignore that person.
I can relate to and sympathize with time constraints and convenience arguments, but I think it’s more accurate in both the landscaping and app examples to say it wouldn’t exist if you hadn’t _asked/paid_ for it.
And you could have made it and then you could have been proud of it. And at least some of time, that’s more valuable than an unspecified “product”. I’m more attached to things I made than things I bought.
> coding was never the main goal, it was always the means to create the finished end product
I think that's the main difference. For many of us, the process and how we grow through that process really is as important as, if not more important than, the result
I think this is some of the most interesting revelation to come about during these times: there seems to be two kinds of people – those for whom the act doing something well has the highest inherent value, and those for whom accomplishing well has the highest inherent value.
This of course doesn't mean the former group doesn't care about the outcome, or that the latter group does poor work. But the dichotomy seems very real. We've had conversations at work where the room splits in two and both sides struggle to grasp how the other side can possibly feel that way. Everyone involved respects eachothers' skills, but we've never known about this fundamental schism until now, and it's like discovering that half your coworkers are aliens.
This goes straight to the compiler and whether that precludes original craft. But I think it would be more relevant to discuss the use of open source packages.
Because I absolutely feel I made entire SaaS products, cool ones, by hand and they sat on a multitude of packages and infra I but glued together.
For frontend, I tailored templates, and instead put energy and time into making modern frontend toolchains and Django backends work together. This was satisfying to understand and build.
Being at ease with the minute details of Django or latest flags of esbuild felt like knowing the various modes of my Dewalt or Dewalt-colored power tools.
Building with AI is not a passive activity, and doing so well and efficiently, there is a ton to master and it evolved a great deal in the past six months.
So leveraging the tools using custom skills, custom CLIs, etc this is very important and very valuable thing to do. I would classify it as a serious contemporary computer science skill that should be taught in addition to the fundamentals.
Presume now, you're making and leveraging all of the modern bells and whistles of Claude Code and Codex. That is, you're reading the release notes and you have personal tooling so you can switch between them easily.
You can build incredible things with sustainable release workflows and reasonable security and possibly more than what a solo dev's "production quality" of yore.
I know this because I had Fable look at an entirely "hand crafted" SaaS I built over two years and it found about a page of bullets just in p0-p1 that I had not caught in my artisanal best effort. They were real issues, maybe unlikely but still things that I would have fixed if I had known.
But what can not be replaced is *taste*.
You can build all day and night and if it ain't good people won't use it. If you can't describe it in a way that makes sense to people they won't care.
If you build something people don't want you've not really made anything more than we did before we had AI as a tool.
I do think it can still achieve the same level of satisfaction if it is built well. Because it actually does take a lot of skill and knowledge to make something well using agentic programming. This is regardless of whether people want it.
One area that I find really compelling and useful now is controlling hardware that I've struggled to use in the past, like the BlackMagic ATEM video switcher/controller. They are very powerful and can turn your space into an incredible video studio. The software that ships with them is probably appropriate for experienced video techs. The last time I setup a studio to run a webinar with one it took me a couple of days to get it working how I needed.
Yes, I love tinkering with hardware so there is that and I did enjoy figuring it out.
Today I had a webinar that needed to be setup quickly and thought it would just be a raw Zoom feed. Instead, within an hour, I had a full video switching system with embedded graphics, feeds from a laptop configured with live content, multiple cameras, etc and a custom html page specific just to todays webinar to drive it all.
I've used a number of 3rd party apps for the ATEM series. They all have to boil the ocean.
This kind of personalized project tech is the perfect software hole for llm's to fill.
I have a slightly different approach. I've done this as both a profession and a hobby for around 18 years now, and even these days i spend quite a bit of time "making" things i take pride in. Be it decisions (decision fatigue is a battle), code written, architectural improvements, etc. I don't generally feel lacking in this area.
Where i've felt lacking for the last ~5 years though is output. Specifically blocked by having the energy to create all these damn ideas.
I find LLMs neat, albeit their own type of exhausting, as they open up a lot of possibilities for things i want. Ie software i've wanted but have never cared to find the time for or didn't have the time for.
LLMs feel like a software equivalent to a 3D Printer. I don't have to carve it out of wood now. But also like a 3D printer there are some tasks that LLMs are just horrible for. So it's a niche, a skill even, to find software you want that also are a good for for unsupervised development. It's also of course massively more risky than a 3D printed doohickey depending on its internet access/etc.
With that said i still don't really take pride in something vibe coded. I just take enjoyment out of using a thing that i've wanted but never had time for.
>Convert this C program into x86_64 assembly for Linux.
I made this argument yesterday that this is the real breakthrough for coding. Languages, syntax, frameworks, etc. no longer matters. ASM, Fortran, even punch cards are back on the menu if you're bold enough to prompt for it.
Firstly, this is the best TLDR I've read in a while and it convinced me to read the whole thing.
> TLDR: I gain a lot of fulfillment by making things. I don't consider things built by others at my request to be made by me, and are therefore much less fulfilling. And then I feel sad. This article starts strong and then heads off into the weeds.
Secondly, maybe this conversations boils into: what level of abstraction are we comfortable working at?
I mean that to the tune of "To bake an apple pie, you must first create the universe".
Few people will create the universe (please introduce yourself, if you are one); some will buy the apples and the crust and put them together; some will make the crust from scratch; some will grow the apples from seed; some will follow a recipe; some will buy a frozen pie; some will simply buy the pie.
I think we can all agree that buying the pie is not baking it. But what about the others? To me, there's an argument that all of them are "baking the pie", just taking place at different levels of abstraction. And I think you can take pride in any of them, and hopefully more pride in whether the pie is delicious and well-shared.
We're in a big interconnected social system. If you're landing changes, it's dependent on the internal tooling, internal documentation, and the broader social system that you're a part of. Attachment to individual outcomes is the problem. The productivity comes from the integration.
Maybe the sense of alienation people are experiencing right now is because code is the one concrete thing they drive which is "independent" from this social matrix. Most of the real value I've ever delivered doing this SWE thing wasn't through code, it was through understanding the system, recognizing issues, and working with leadership on addressing them
Back when I was an OSU student I taught myself a lot about practical systems programming, and I was consulting Beej's Guide to Network Programming daily. I kept lamenting to myself that I wished the expensive university was proving as useful as this guy's free website.
Awesome that it has come full circle, great hire by someone.
Hugely generous in all the work you put into the public domain and I've been reading your guides for years.
BTW I also started in computing in 1978 on a DEC 10 Mainframe (in Assembler and then C) and Lunar Lander was my first game but played on a DECwriter (basically a line printer with a keyboard).
I mean its not the same at all. There is a very satisfying and gratifying experience from writing software yourself, AI hardly comes close.
When writing the code and having to understand, I feel real connections being made in my brain and a deeper understanding of the language, domain area, and logical concepts. AI is simply not the same level of mental engagement and exertion.
But clearly for work/business requirements using AI is a no brainer for efficiency and speed(which are key concerns for a business). This is under the assumption that a professional is able to review and guide the agentic tooling for a proper output.
In order to truly be a professional in terms of software engineering, you need to write a significant amount of programs manually for some time. I don't think that people with 0 prior experience with programming will be effective if handed AI.
I use AI for programs for work, and have written manual programs in the past. I want to go back to writing things manually(as to not atrophy important brain regions) so will probably do some personal projects in this manner.
But I don't see a point in writing a book with AI, writing an email with AI, composing a message with AI. Because using AI is leveraging a predictive machine to expand on intent, and the intent in communicating is best done yourself.
In my opinion sending AI content as posts, messages, or correspondence is poor application of AI at best, downright disrespectful at worst.
I do "take pride" in things I put my time and thinking into, regardless of whether it is assisted or not. For example, I am somehow proud and like some songs that I produced using Suno because of the days I spent iterating on them.
Also in vibed projects that I put my time on. It is also true that it's been a long time without going back to a class or system I coded by hand just to "admire it" and get that feeling of, "omg, this class is fire!"
In my opinion, the personal threshold of 'making' says more about the remnant era in which you were raised in rather than about the specificity of the act itself?
Your grandparents lived in an era where it was common for men to build their own homes.
Your parents lived in an era where it was inconceivable for a piece of furniture to not come fully assembled in their per-fabricated home.
We now live in an era where homes are made in mass scale and we assemble our own furniture. Did I make an IKEA table? I don't know. I paid for it, drove it home, and assembled the machined parts and added the same size Allen key to my collection. It's certainly not a table without my contribution. But I couldn't have built it myself from scratch.
I now tell the computer with the magic words please and thank you because I skimmed a research paper saying it'll be more cooperative in completing my tasks.
Did I make a game in unity where I just mishmoshed the preassembled assets together? I don't know. The only difference between IKEA furniture and my game is the permutations of my asset combinations, really.
77 comments
[ 4.0 ms ] story [ 134 ms ] threadThe joy of hackernews was seeing applied human ingenuity, most of these weren’t successful products anyway. Just like I don’t watch computer chess games, we should have an easy way to distinguish AI generated software, art etc and then I can happily avoid them.
For me the difference is in the extent that I can reason about how changes in the input affect the observable behavior of the output. When the executable the compiler outputs doesn’t behave in the way I intended, then in 99.99% of cases this is completely on me, and, importantly, I could have predicted it from the source code. Conversely, I can analyze any such misbehavior by reasoning on the source code. This doesn’t hold to any remotely comparable extent for the relation between vibecoded programs and the prompts used to create them.
Maybe a hot take, but I do think, that even from seasoned developers, the idea they've been doing the 'logical' part so long they'd have it done anyway without AI and it'd only take more time is delusional, when, from personal experience, even when I code something I 'know' and I've 'done', I have to remember stuff, google what isn't ingrained in my brain, and so on.
I don't know if the author would consider this a part of making, but a single thing you build is, obviously, a mix of things you've built. I no longer sense this minor feeling of 'making' when I'm doing something. To make a logic that's part of a bigger system and see it running, thinking how it's gonna be once it's all done... I no longer feel that.
It was never about writing every line by hand, it was about solving a problem and making my life better. LLMs let me do that at a speed never seen before.
I was and am and avid Home Assistant fan but the number of automations/scripts I now have is higher by a magnitude than ever before. Few things would reach the level where it made sense to spend my time writing and debugging a workflow but now I can speak my automations into existence.
Yesterday I got a candle warmer, I wanted to set it up so when I turned it on it started a timer to turn off and I wanted a push notification to see if I wanted to extend the timer when it was close to finishing. All things I knew were possible but HA YAML is miserable (all YAML is) and the UI is not much better (it's a hard problem, I get it). I prompted Claude and had a working implementation in <10min. Additionally it asked if I wanted to auto-turn off if I left the house (yes!) and if it should auto-start the timer if ever detected the candle warmer was on without a timer set (power loss, HA restart, manual interaction with warmer).
My HA automations have never been more bulletproof and if they do something wrong it's as simple as telling Claude Code and having it fix the problem. For example, my motion activated lights (motion sensor -> HA -> smart switch) were working great but I realize that while in the shower my main bathroom lights would sometimes turn off. 1 prompt later and Claude grouped up my motion sensor in the shower to the one in the bathroom so if motion on either was detected the lights would stay on but the shower light would only turn on if its motion detector detected motion.
HA is only one small part of my LLM usage but it's representative of my overall point.
I started using them a long time ago to type Greek characters, but then I switched to vscode with a vim extension and it didn't support that keybinding so I lost the habit. Might work with the neovim extension now.
edit: Yep, but you have to add "k" to the list of "control characters handled by neovim" in the extension's settings.
Is his required knowledge of metals, assembly complexity, tolerances, just waved away because he doesn't turn the dials or change the tools any more?
Yes. The CNC doesn't act on its own.
If I ask the CNC "make me a widget", am I a machinist?
There's a line there somewhere that gets crossed.
Part of it has to do with direct one-to-one determinism. I pull that lever, the excavator bucket pulls up a ton of earth. There was no extra decision made in the middle. And it was completely reproducible.
We might even go so far as to say, "I moved a ton of earth." Even though it was the backhoe that did it.
Back to CNC, consider the manager who orders the machinist to use the CNC to make a widget. Does the manager qualify as a machinist?
I think most people would say, "No. Not unless he coincidentally was one."
There's another person in the middle in that case. That level of indirection is somehow making the manager not a machinist.
I speculate it has something to do with the fact that the machinist in the middle is an independent being that holds knowledge to make things go. The manager gives a very high-level instruction and doesn't instruct the machinist on how to do it.
And I think LLMs are starting to feel (to folks like me) a bit like that machinist. They're not deterministic like the backhoe and the compiler. And they seem human, convoluting the matter further still.
This is basically me. I still love having Claude build things for me, a lot of it is just things only I will ever use, but it fulfills my needs, and that's worth it for me.
I use it two ways I guess: to get unstuck while coding something myself, and to automate building side-projects I have no time for but that linger in my head for years.
It's the loss of understanding. When you make something, you gain a deeper appreciation for the nuance of all that is required to breath life into it. When you outsource understanding to another (agent, contractor, w/e), you're losing the nuanced understanding of the creation.
>After all, you create the prompts, don't you? You said you were proud of doing things. Isn't that doing a thing?
This feels like the difference between putting together an ikea futon and building a hand-hewn table from logs. The fidelity of your understanding is different depending on how deeply you're engaging. But not felling and drying your own timber doesn't mean you can never make something from dimensional lumber.
I'd take the author's word "making" to mean something more like "having enough understanding of the implementation of the task, that you could recreate the output without recourse to the same set of tools".
Tested against their examples:
>I had a new front deck put in [by a contractor]
As a consequence of this addition, did you learn enough about decks so that you could you reproduce this feat if no contractor were available? If no, you didn't make the deck. If yes, you were probably watching/helping the whole time, and you can claim (at least partial) makesmanship.
> any more than using a hammer to drive nails does.
If you didn't have access to the hammer, could you still accomplish the task of attaching two boards together with a nail? Likely yes, use a rock. It's harder, but the understanding of driving the nail is transferable to other implements.
> What if I had an AI-powered hammer and asked it to hit a nail for me? What's the difference? But at that point, I can't say that I hammered it.
This one contradicted his compiler example. He says that he did write the Fibonacci program, even if the AI-powered compiler translated it to assembly. So by similar reasoning, you can claim you hammered a nail with an AI hammer, so long as you understood the aspects of hammering which the AI took care for you to such a degree that you could reproduce the effects even in the absence of the AI hammer.
The crux of the tension is around "what did you learn from the implementation of this task". If you learned enough to reproduce the objective without the assistance of AI (perhaps much slower), then you can claim the high fidelity understanding that came from making. If you didn't internalize anything, and the AI/contractor managed complexity on your behalf, then the output was commissioned, not made.
I think where people get worked up about this, is that it's not easy to tell what understanding other folks are taking away from their AI usage. It does seem like a bifurcating event where some people are going to net gain understanding of their world due to these new tools, while others will net lose understanding.
Conversely, there are 100k+ LoC codebases from years ago that I can still generally walk through in my mind's eye
I can't do that with a project we worked with AI on two weeks ago. It all just blurs together into "someone wrote a prompt and code came out".
As a swe i've always enjoyed the process of designing solutions to problems: design a great architecture, find the right abstractions that make everything fit naturally, write good clean code, etc ... that's what i enjoy doing.
Now there's the part where i've had these ideas for years that i've always though that i'd be cool to work on. But basically it would have required a 10 person team for months, out of reach. Now i have Claude, Codex and Grok and i've already built many projects.
The code isn't pretty, i didn't enjoy it as much as i would have if it were done manually, but i did something i never could have done otherwise.
There's some fun in the process though. I feel like a team manager and i occasionally step in to push for some architectural changes or code rewrites because things become too brittle because of not good enough architecture.
I usually do instantly lose respect when I hear some project is vibe coded... I get that's how it is now but yeah. To me when you say "I made this" but it's actually claude code that shat out the code well... ultimately though it's about money and freedom. You can do whatever you want to do, I need to get my own freedom then do what I enjoy.
You can be proud of having commissioned a thing… be it landscaping or software… just not for making anything you didn’t.
And of course there are shades of grey in between, depending on how critical you were to the doing.
You didn't make it
So like when I went to a restaurant last week and "made" a cheeseburger with no lettuce and extra onions, because it wouldn't exist if I hadn't created it.
To me, making something can mean you did the physical work of its creation even if there's no particular creative expression, like "I made a peanut butter and jelly sandwich."
It can also apply to tasks where you've offloaded a bunch of work that once would've been done by hand, like "I made this bench using a circular saw."
Where things get hairy even with physical objects is processes like CNC or 3D printers. If you download "Articulated dragon.stl" from a website and press the print button, did you make that? Personally, no. But if you designed your own flexy dragon and printed it, then yes. If you set up a relief carving on a CNC machine or do a perfectly fit inlay, are you making that? Operating these still takes quite a bit of knowledge and skill, but different knowledge and skill from hand woodworking. What if the tools improve and become very easy to operate?
I don't think there's a hard line you can draw. But if there is, it's somewhere between "did everything by hand with no assistance from recently invented tools because those are cheating" and "ordered a sandwich and waited for the finished result to show up."
I enjoy cooking. I grab a recipe and start gathering ingredients and prep them and then cook them. The food usually turns out really good (I have a lot of practice, you see, I'm getting up in age and I've done this for a log time). So, the question is, am I any less of a cook because I follow someone else's recipe instead of writing my own? To make this even more interesting, I was cooking for some friends some years ago, and one said the food was great. The other mentioned well, it must have been a good recipe. I have to admit that stung a bit. They didn't mean it that way though.
I'm rambling, but the question is, at what point is something _your_ work?
Power tools or buying kiln-dried planks is forbidden, you might as well go to IKEA, buy you set and claim you "built" it.
You cannot also claim you built a custom sensor for your smart home if you based it on ESP32 and any of the ecosystem tooling. You might as well buy it from Phillips or Siemens if it exists, or just sit in the corner and sulk. Using advanced tools is forbidden.
I swear luddites are going more and more extreme in their analogies.
Instead, what I've been doing for my personal projects has been about designing algorithms with TLA+. I write that by hand, model check and sometimes even prove the properties I think are interesting or useful, and then tell Claude to implement it based on the spec. Usually I still need to correct the generated code but it's a lot less.
Certainly in these cases, I take pride in what I did, because ultimately the "Invisible Hand" always means I'm outsourcing some of the work of a project no matter how involved I want to be. If I build a deck outside, I'm not forging the nails myself, I'm not growing and chopping down the trees for lumber, I'm not designing my own power tools, etc. There's always a level of outsourcing of the work that I don't find interesting or that I don't know how to do, or don't have the resources to do myself.
With software, the parts that I end up feeling proudest of, and this predates widespread use of LLMs, are the algorithms and tricks I come up with to build something. When I figure out a way to avoid a lock, or figure out a way to use less memory, or figure out a way to increase throughput, I'm less concerned with the actual "code", and much more concerned about the "how".
Of course, you may not care, and that's fine. It's important that people not be delusional about this though. A person with no medical knowledge and an AI will never be as good as someone with prodigious medical knowledge and an AI. The same is true for any profession, whether programming, music, writing, etc.
You did NOT make the software that you generated with AI. But there's nothing wrong with you feeling proud of initiating it. If anyone tells you that you shouldn't feel proud of the prompting you did, please just ignore that person.
And you could have made it and then you could have been proud of it. And at least some of time, that’s more valuable than an unspecified “product”. I’m more attached to things I made than things I bought.
I think that's the main difference. For many of us, the process and how we grow through that process really is as important as, if not more important than, the result
This of course doesn't mean the former group doesn't care about the outcome, or that the latter group does poor work. But the dichotomy seems very real. We've had conversations at work where the room splits in two and both sides struggle to grasp how the other side can possibly feel that way. Everyone involved respects eachothers' skills, but we've never known about this fundamental schism until now, and it's like discovering that half your coworkers are aliens.
Because I absolutely feel I made entire SaaS products, cool ones, by hand and they sat on a multitude of packages and infra I but glued together.
For frontend, I tailored templates, and instead put energy and time into making modern frontend toolchains and Django backends work together. This was satisfying to understand and build.
Being at ease with the minute details of Django or latest flags of esbuild felt like knowing the various modes of my Dewalt or Dewalt-colored power tools.
Building with AI is not a passive activity, and doing so well and efficiently, there is a ton to master and it evolved a great deal in the past six months.
So leveraging the tools using custom skills, custom CLIs, etc this is very important and very valuable thing to do. I would classify it as a serious contemporary computer science skill that should be taught in addition to the fundamentals.
Presume now, you're making and leveraging all of the modern bells and whistles of Claude Code and Codex. That is, you're reading the release notes and you have personal tooling so you can switch between them easily.
You can build incredible things with sustainable release workflows and reasonable security and possibly more than what a solo dev's "production quality" of yore.
I know this because I had Fable look at an entirely "hand crafted" SaaS I built over two years and it found about a page of bullets just in p0-p1 that I had not caught in my artisanal best effort. They were real issues, maybe unlikely but still things that I would have fixed if I had known.
But what can not be replaced is *taste*.
You can build all day and night and if it ain't good people won't use it. If you can't describe it in a way that makes sense to people they won't care.
If you build something people don't want you've not really made anything more than we did before we had AI as a tool.
I do think it can still achieve the same level of satisfaction if it is built well. Because it actually does take a lot of skill and knowledge to make something well using agentic programming. This is regardless of whether people want it.
Where i've felt lacking for the last ~5 years though is output. Specifically blocked by having the energy to create all these damn ideas.
I find LLMs neat, albeit their own type of exhausting, as they open up a lot of possibilities for things i want. Ie software i've wanted but have never cared to find the time for or didn't have the time for.
LLMs feel like a software equivalent to a 3D Printer. I don't have to carve it out of wood now. But also like a 3D printer there are some tasks that LLMs are just horrible for. So it's a niche, a skill even, to find software you want that also are a good for for unsupervised development. It's also of course massively more risky than a 3D printed doohickey depending on its internet access/etc.
With that said i still don't really take pride in something vibe coded. I just take enjoyment out of using a thing that i've wanted but never had time for.
I made this argument yesterday that this is the real breakthrough for coding. Languages, syntax, frameworks, etc. no longer matters. ASM, Fortran, even punch cards are back on the menu if you're bold enough to prompt for it.
> TLDR: I gain a lot of fulfillment by making things. I don't consider things built by others at my request to be made by me, and are therefore much less fulfilling. And then I feel sad. This article starts strong and then heads off into the weeds.
Secondly, maybe this conversations boils into: what level of abstraction are we comfortable working at?
I mean that to the tune of "To bake an apple pie, you must first create the universe".
Few people will create the universe (please introduce yourself, if you are one); some will buy the apples and the crust and put them together; some will make the crust from scratch; some will grow the apples from seed; some will follow a recipe; some will buy a frozen pie; some will simply buy the pie.
I think we can all agree that buying the pie is not baking it. But what about the others? To me, there's an argument that all of them are "baking the pie", just taking place at different levels of abstraction. And I think you can take pride in any of them, and hopefully more pride in whether the pie is delicious and well-shared.
Maybe the sense of alienation people are experiencing right now is because code is the one concrete thing they drive which is "independent" from this social matrix. Most of the real value I've ever delivered doing this SWE thing wasn't through code, it was through understanding the system, recognizing issues, and working with leadership on addressing them
Back when I was an OSU student I taught myself a lot about practical systems programming, and I was consulting Beej's Guide to Network Programming daily. I kept lamenting to myself that I wished the expensive university was proving as useful as this guy's free website.
Awesome that it has come full circle, great hire by someone.
Hugely generous in all the work you put into the public domain and I've been reading your guides for years.
BTW I also started in computing in 1978 on a DEC 10 Mainframe (in Assembler and then C) and Lunar Lander was my first game but played on a DECwriter (basically a line printer with a keyboard).
I'm still as passionate about IT as I was then!
But clearly for work/business requirements using AI is a no brainer for efficiency and speed(which are key concerns for a business). This is under the assumption that a professional is able to review and guide the agentic tooling for a proper output. In order to truly be a professional in terms of software engineering, you need to write a significant amount of programs manually for some time. I don't think that people with 0 prior experience with programming will be effective if handed AI. I use AI for programs for work, and have written manual programs in the past. I want to go back to writing things manually(as to not atrophy important brain regions) so will probably do some personal projects in this manner.
But I don't see a point in writing a book with AI, writing an email with AI, composing a message with AI. Because using AI is leveraging a predictive machine to expand on intent, and the intent in communicating is best done yourself. In my opinion sending AI content as posts, messages, or correspondence is poor application of AI at best, downright disrespectful at worst.
Also in vibed projects that I put my time on. It is also true that it's been a long time without going back to a class or system I coded by hand just to "admire it" and get that feeling of, "omg, this class is fire!"
Your grandparents lived in an era where it was common for men to build their own homes.
Your parents lived in an era where it was inconceivable for a piece of furniture to not come fully assembled in their per-fabricated home.
We now live in an era where homes are made in mass scale and we assemble our own furniture. Did I make an IKEA table? I don't know. I paid for it, drove it home, and assembled the machined parts and added the same size Allen key to my collection. It's certainly not a table without my contribution. But I couldn't have built it myself from scratch.
I now tell the computer with the magic words please and thank you because I skimmed a research paper saying it'll be more cooperative in completing my tasks.
Did I make a game in unity where I just mishmoshed the preassembled assets together? I don't know. The only difference between IKEA furniture and my game is the permutations of my asset combinations, really.