5 ms·
I find reports on how others are using LLMs to code interesting to read. I've personally found LLMs to have recently crossed the "uncanny valley" of programmin
by caust1c 2y ago
I find reports on how others are using LLMs to code interesting to read.
I've personally found LLMs to have recently crossed the "uncanny valley" of programming for me, meaning that I'm much much more productive than without them.
I find that if you're really good at describing a problem and the constraints you want to solve, using a language it knows well (like Go) and following well known patterns in that language, you can describe thousands of lines of code and get accurate results.
Maybe this isn't vibe coding speicfically, but I actually review every line of code that the LLM puts out. It doesn't take long if you know what you're reading, and the LLM make a weird solution to the problem. Usually if I'm specific about how I want it solved, it does it well.
I also found it useful to say "Please tell me your plan to implement the solutions and ask me about any ambiguities that need clarification." In other words, don't make your own assumptions.
The results are incredible. Thousands of lines of code that maybe not stylistically like mine, but are structurally very accurate to what I'm looking for. Giving function/interface signatures and code examples works wonders.
- jprokay13 2y agoI recently set up a conventions.md file for Aider along with configuring sonnet 3.7 with reasoning. It really was another leap forward for me with AI. Using it for exploratory analysis of solutions is the best rubber duck I’ve ever had
- hbarka 2y agoCan you share what properties you set?
- dinfinity 2y agoI've started with a 'taskfile.md' (but the filename is irrelevant). It contains: - AI assistant instructions (with things like: "for a new task, ALWAYS first present and discuss different approaches before starting implementation", "update this file with relevant information while working", "unless prompted otherwise, work on the first task in the current tasks section of this file") - basic info about the project: general, technical (general architecture, dev setup, etc.) - locations of generally important stuff in the repo - general context of the current task - task specific locations of important stuff in the repo - relevant (non-sensitive) task specific data/variables - list of the current active/relevant tasks. I tweak the file a bit for a new task and then just add only the taskfile.md as context, add a '.' as text in the Cursor agent chat window and it's off. Works like a charm. Next step will be to add MCP servers and just point it at an issue in the relevant issue tracker in the task file.
- bicx 2y agoWhat dev tools/processes are you using? I’m enjoying the enhanced capabilities of Windsurf with Sonnet 3.7, but I mostly use it for analyzing and problem-fixing in a huge codebase I recently inherited. I have yet to feed it anything like a PRD.
- deleted 2y ago[deleted]
- jbverschoor 2y agoSame.. huge productivity boost, and in general it writes better code than me, because quite frankly, I'm pretty lazy with the first lines of code. But yeah, the better you know how to describe what you want, the better the results. Not really a difference from humans, eh?
- Aperocky 2y agoJust like Google or Stackoverflow. There was a time when I felt my greatest programming ability is googling, I think that transferred well to LLMs since googling and asking question on stackoverflow required a very similar skill set.
- nyarlathotep_ 2y agoDigging through source was also helpful to me (I still do it quite a bit) GitHub code search was for a time quite useful, especially for somewhat arcane configuration (over the years, stuff like Cloudformation properties that aren't frequently used, cmake stuff, webpack and others come to mind) Often grepping through a codebase where I know another example resides of something similar with a vague idea of what i'm looking for helps.
- HappMacDonald 2y agoMan.. there are times when trying to debug some error yields no search results and no leads to follow other than "dig through megabytes of the arcane source code with no context of how it's meant to fit together" and if it were possible to have an LLM be able to RAG an entire git repo online and answer questions about it, that would be pretty choice. I've had basically zero luck with RAG myself so far, especially as I always try to go the local route for better infosec vs relying on cloud solutions like copilot. But trying to tap an LLM to help grok a public github repo wouldn't cover any sensitive data so I wouldn't mind using the cloud for a task like that.
- Aperocky 2y agoThat still works today, LLM tend to almost always hallucinate when you ask it for source details despite it being trained on it. Especially if the behavior is strange enough that trigger the look into the source.
- nyarlathotep_ 2y agoExactly, I never use LLMs for looking up the specific CFN properties for that exact reason. Populating a resource in a template sure, but the code-spelunking is always done to find the arcane property/value for said property.
- condensedcrab 2y agoI’ve found it very helpful to write out the boilerplate to allow you to write the few lines needed to do what you conceptually want to do. Also great with figuring a regex pattern in 5-10s instead of getting derailed by SO or Google search.
- skydhash 2y agoAre there many such lines? People are gripping about boilerplate like they're writing XML by hand or Java with Notepad, but the few actual boilerplate I've seen are easily solved by snippets and code generators. Other things that look like boilerplate are in fact specific code that only fits the current context. And more often you only need to write it once, then either abstract it away or copy-paste it and edit it.
- cube2222 2y agoI believe most of these people (including myself) in this context are just talking about boring / obvious / easy code. And yeah, I’d say a large percentage of code changes I do is plumbing for the few interesting ones. AI handles the boring bits very well, and to me that is the most energetically draining part of coding (the hard parts are fun and invigorating). Whether it only fits the current codebase’s context or not doesn’t really matter, you just give it important samples from and info about the codebase at the start of your prompt. My baseline prompt length is ~30k tokens due to that. I do review and polish everything that’s generated though, as needed. Vibe coding (not even reading / understanding the generated code) I believe was coined primarily for having fun in side projects. If you’re using it for production code then you’re likely holding it wrong.
- condensedcrab 2y agoYeah, the context that comes to mind are basic class methods or simple data cleaning functions for messing with numpy/pandas data
- analog31 2y agoAre projects finishing quicker?
- winrid 2y agoAbsolutely, especially when working with frameworks or runtimes you're not very familiar with.
- dingnuts 2y agohow am I supposed to notice and fix the myriad bugs produced if I'm not familiar with the framework or runtime? and if I am familiar, how is prose literally ever more terse than the actual code? to me it just comes down to which one is less typing and that's still Just Writing The Code Myself as far as I can tell I mean maybe it'd be different if I spent hundreds of dollars on 4o-pro but trying the free models have made me want to pay even less, it's all a massive waste of time compared to just using Kagi to look things up
- analog31 2y agoFrom my own standpoint, it's an even simpler proposition. I program, but I don't develop software. I'd like to know if the AI changes the way we answer the question of when a project will be done.
- winrid 2y ago> how is prose literally ever more terse than the actual code All the time. Open an android project and tell Claude to create a social feed, or as a recent example I told Claude to add waitlist support to a registration system in Django. It did a better job than most juniors I've worked with, and I think it cost a couple dollars. I tuned it a bit afterwards, but saved me lots of time and energy. With one one sentence prompt it updated the models, created the migrations, found and updated all the views...
- majormajor 2y agoMy issue with that approach is that it's easier for me to write code than to read code and grok all the subtleties of one approach vs another. Writing thousands of lines? I'm actively thinking about the specific method. Reading thousands of lines of someone else's code? I might fall into a more passive mode and miss a problem. I am more likely to do the reverse: write it myself, have LLMs summarize it or suggest how to test it/break it/whatever. In many situations a sufficiently-described statement of "here is exactly what I want the code to do" is not significantly easier to write than the code itself. Especially when the AI is doing the annoying tedious bits through autocomplete suggestions, vs letting it try to do the whole thing based on a sufficiently-described prompt.
- HappMacDonald 2y agoHmm, I like this idea of "write napkin code and let LLM review/expand". In principle one can probably be quite fast and loose at this stage after all, and as you mention for coders it's often easier to express an idea in napkin code (be that "pseudocode" or real code with just zero effort into correctness as a pilot hole). I think I'll experiment with this as well.
- Volundr 2y ago> Reading thousands of lines of someone else's code? I might fall into a more passive mode and miss a problem. Or just bad design. I use AI a fair amount for my personal work (my employer currently bans it), and what I've found is it's a great accelerant, BUT you have to be super vigilant with it to keep the quality decent. It's very good at producing code that will make it past your average code review but has design issues that are going to make things harder down the road and getting it to refactor these itself can be quite difficult at times. I generally find myself in a loop of asking the AI to do something, doing a few rounds of refinement with it, especially around test cases, then a manual refactor/cleanup pass over the tests, followed by a manual refactor of the code. When I read accounts of other people gushing over AI, allowing them to do some semi-complicated thing in under an hour, it really makes me worry about how this is going to affect the readability of the average codebase in a few years' time.
- eesmith 2y agoCould you try the problem I posted at https://news.ycombinator.com/item?id=42145308 https://news.ycombinator.com/item?id=42145308 ? The Python solution took me most of a day to write, and I've been curious on how an LLM would handle it.