←back to thread

Nobody knows how to build with AI yet

(worksonmymachine.substack.com)
526 points Stwerner | 3 comments | | HN request time: 0s | source
Show context
lordnacho ◴[] No.44616832[source]
I'm loving the new programming. I don't know where it goes either, but I like it for now.

I'm actually producing code right this moment, where I would normally just relax and do something else. Instead, I'm relaxing and coding.

It's great for a senior guy who has been in the business for a long time. Most of my edits nowadays are tedious. If I look at the code and decide I used the wrong pattern originally, I have to change a bunch of things to test my new idea. I can skim my code and see a bunch of things that would normally take me ages to fiddle. The fiddling is frustrating, because I feel like I know what the end result should be, but there's some minor BS in the way, which takes a few minutes each time. It used to take a whole stackoverflow search + think, recently it became a copilot hint, and now... Claude simply does it.

For instance, I wrote a mock stock exchange. It's the kind of thing you always want to have, but because the pressure is on to connect to the actual exchange, it is often a leftover task that nobody has done. Now, Claude has done it while I've been reading HN.

Now that I have that, I can implement a strategy against it. This is super tedious. I know how it works, but when I implement it, it takes me a lot of time that isn't really fulfilling. Stuff like making a typo, or forgetting to add the dependency. Not big brain stuff, but it takes time.

Now I know what you're all thinking. How does it not end up with spaghetti all over the place? Well. I actually do critique the changes. I actually do have discussions with Claude about what to do. The benefit here is he's a dev who knows where all the relevant code is. If I ask him whether there's a lock in a bad place, he finds it super fast. I guess you need experience, but I can smell when he's gone off track.

So for me, career-wise, it has come at the exact right time. A few years after I reached a level where the little things were getting tedious, a time when all the architectural elements had come together and been investigated manually.

What junior devs will do, I'm not so sure. They somehow have to jump to the top of the mountain, but the stairs are gone.

replies(15): >>44616871 #>>44616935 #>>44617102 #>>44617254 #>>44618137 #>>44618793 #>>44621101 #>>44621200 #>>44621741 #>>44621995 #>>44622452 #>>44622738 #>>44623119 #>>44624925 #>>44624959 #
zwnow ◴[] No.44616871[source]
So you are relaxing and the AI is coding? Neat! Way to replace yourself, hope you won't cry after your job once it is gone.
replies(3): >>44616920 #>>44616930 #>>44617503 #
1. rhdunn ◴[] No.44617503[source]
I'm using AI assistants as an interactive search and coding assistant. I'm still driving the development and implementing the code.

Where I use it for is:

1. Remembering what something is called -- in my case the bootstrap pills class -- so I could locate it in the bootstrap docs. Google search didn't help as I couldn't recall the right name to enter into it. For the AI I described what I wanted to do and it gave the answer.

2. Working with a language/framework that I'm familiar with but don't know the specifics in what I'm trying to do. For example:

- In C#/.NET 8.0 how do I parse a JSON string?

- I have a C# application where I'm using `JsonSerializer.Deserialize` to convert a JSON string to a `record` class. The issue is that the names of the variables are capitalized -- e.g. `record Lorem(int Ipsum)` -- but the fields in the JSON are lowercase -- e.g. `{"ipsum": 123}`. How do I map the JSON fields to record properties?

- In C# how do I convert a `JsonNode` to a `JsonElement`?

3. Understanding specific exceptions and how to solve them.

In each case I'm describing things in general terms, not "here's the code, please fix it" or "write the entire code for me". I'm doing the work of applying the answers to the code I'm working on.

replies(1): >>44621361 #
2. skydhash ◴[] No.44621361[source]
Why I don't bother with LLMs for the above is:

1. I usually just pull up the docs for the CSS framework, give it a quick look over to know what it offers and the nomenclature and then keep it open for all the code examples.

2. I've serialized json in enough languages to know the pain points, so what I usually do is locate the module/library responsible for that in that language. And then give the docs/code sample a quick lookover to know where things are.

3. With nice IDEs, you launch the debugger and you have a nice stack frame to go through. In languages with not so great tooling, you hope for a trace.

It's not that your workflow won't yield result. But I prefer to be able to answer 5 successive why's about the code I'm working on. With PRs taking hours and days to be merged, it's not like I'm in an hurry.

replies(1): >>44625326 #
3. rhdunn ◴[] No.44625326[source]
For 1 I tried looking through the bootstrap documentation but couldn't find it because they called it "Pills" and not what I was thinking. So I then tried google to search for it but that didn't work.

For 3 -- Sure, that can help. But sometimes it is difficult to follow what is going on. Especially if that comes from a library/framework you are unfamiliar with such as AWS.

I've also used it to help with build errors such as "Bar.csproj: Error NU1604 : Warning As Error: Project dependency Foo does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results." -- That was because it was using a fixed version of the module via the "[1.0]" syntax, but my version of NuGet and/or Rider didn't like that so once I new that and the range syntax specifying "[1.0, 1.0]" worked. I was able to understand that from the LLM response to the error message and telling it the specific `<PackageReference>`.