7 ms·
I have a degree in CS from MIT and did professional software engineering from 2004 - 2020. I recently started a company in another field and haven’t done any r
by avalys 1y ago
I have a degree in CS from MIT and did professional software engineering from 2004 - 2020.
I recently started a company in another field and haven’t done any real development for about 4 years.
Earlier this summer I took a vacation and decided to start a small software hobby project specific to my industry. I decided to try out Cursor for the first time.
I found it incredibly helpful at saving time implementing all the bullshit involved in starting a new code base - setting up a build system, looking up libraries and APIs, implementing a framework for configuration and I/O, etc.
Yes, I still had to do some of the hard parts myself, and (probably most relevant) I still had to understand the code it was writing and correct it when it went down the wrong direction. I literally just told Cursor “No, why do it that way when you could do it much simpler by X”, and usually it fixed it.
A few times, after writing a bunch of code myself, I compiled the project for the first time in a while and (as one does) ran into a forest of inscrutable C++ template errors. Rather than spend my time scrolling through all of them I just told cursor “fix the compile errors”, and sure enough, it did it.
Another example - you can tell it things like “implement comparison operators for this class”, and it’s done in 5 seconds.
As the project got more complicated, I found it super useful to write tests for behaviors I wanted, and just tell it “make this test pass”. It really does a decent job of understanding the codebase and adding onto it like a junior developer would.
Using an IDE that gives it access to your whole codebase (including build system and tests) is key. Using ChatGPT standalone and pasting stuff in is not where the value is.
It’s nowhere near able to do the entire project from scratch, but it saved me from a bunch of tedious work that I don’t enjoy anyway.
Seems valuable enough to me!
- dnh44 1y agoLast summer I came back to software after about 12 years away and I pretty much had an identical experience to you with using AI as a helper to come back. I've now spent the last 6 months coding as much as I can in between consulting gigs. I'm not sure if I would have been able to get caught up so quickly without AI. I haven't had this much fun programming since I was at university hacking away on sun workstations, but admittedly I only write about 10% of the code myself these days. I'm currently getting Claude Code to pair program with GPT-5 and they delegate the file edits to Gemini Flash. It's pretty cool.
- zhivota 1y ago> I'm currently getting Claude Code to pair program with GPT-5 and they delegate the file edits to Gemini Flash. It's pretty cool. This sounds cool, any more details or any write up on how to do something like this?
- dnh44 1y agoI use a program called RepoPrompt to do it. The dev has a video here: https://www.youtube.com/watch?v=JzVnXzmZweg&t https://www.youtube.com/watch?v=JzVnXzmZweg&t
- socalgal2 1y ago> I haven't had this much fun programming I'm glad you're having fun. I wish I was having fun. I've had mixed results but quite often, for me, the GPT goes off the rails and does something completely stupid. It then doubles down. It's like talking to complete idiot who happens to have moments of lucidiy. If I get lucky and get a lucid response it's great. But so often I get the nonsense response. I mean literally as bad as the "there 3 letter Bs in the word blueberry" answer eariler today (https://news.ycombinator.com/item?id=44832908 https://news.ycombinator.com/item?id=44832908) accept code instead of spelling. I wish I knew what I was doing wrong.
- dumpsterdiver 1y agoJust trying to help, but maybe the LLM is interpreting words like “accept” differently than you think they are.
- iamben 1y agoA couple of things that really helped me (Claude is my choice for coding): - add to your global settings a few lines that say something like "don't write any code until you fully understand my requirements, ask questions until you are completely clear", this mostly stops it just going ahead and writing best guess just the first time. And then, - when it looks it's going off the rails, cut your loses straight away and ask it to write a prompt for another chat. Tell it to cover everything it knows about what you're working on and what you want to do. Paste that into the new chat and get it to ask if it needs clarification (and then if needed, paste between the two chats). The new chat often solves the problem the other one was stuck on first time. Hope they help - coding with AI has made me enjoy the process once again. I'm actually completely silly projects I've always wanted to do because I can get past the blockers so much more easily.
- 8organicbits 1y ago> all the bullshit involved in starting a new code base Have you looked at cookiecutter or other template repos? That's my go to for small projects and it works pretty well. I'd worry the LLM would add bugs that a template repo wouldn't, as the latter is usually heavily reviewed human written code.
- mitthrowaway2 1y agoFor a hobby project that seems fine, but for commercially valuable work how do you handle privacy concerns?
- bionhoward 1y agoCursor has a privacy mode with zero data retention and no training
- xena 1y agoSays who?
- mort96 1y agoAnd you're working in a context where you're comfortable shipping all your (employer's? client's?) code to some random US company based on their promises?
- tomduncalf 1y agoIf you work for a large org you’ll have some kind of enterprise agreement in place guaranteeing this. I can’t imagine they’d risk violating it regardless, the outcry could ruin them
- mort96 1y agoIf you work for a large org which has an official AI policy and agreements, sure. In those cases there is no problem; you're sending your employer's code to these companies in compliance with your employer's policy.
- UltraSane 1y agoYou have to trust them because their is no way to verify this claim.
- ecocentrik 1y ago
- sublinear 1y agoI think you're describing what was easily fixed in the past by better docs with examples.
- themafia 1y agoThat and better libraries and continued improvements based upon feedback from usage in the field. Then open source very recently took a drastic turn and decided that reimplementing things in a new language was the best way forward, to move fast and break things, and to let the reference implementation _be_ the documentation. I believe these two facts are connected by the financial interests of the companies that promulgate them. It's easier to believe since their financial interests are so directly entangled. I feel bad for the author of this article. They're being led down a technological dead end. As always, the top reply to any of these posts, is a bunch of vague and hand wavy explanation as to why the OP is "doing it wrong" and how they're "getting actual value!" Never a link to the actual project or output. Probably because we could all search the produced code, find the prior examples, and once again point out that "AI" is just "copyright whitewashing." This industry is no longer driven by engineering but by gross financial tricks.
- andrepd 1y ago> Another example - you can tell it things like “implement comparison operators for this class”, and it’s done in 5 seconds. Wow, it can do the same thing as a derive macro, but only sometimes, and it only takes 10,000x as long and 100,000x as much power :)
- makeitdouble 1y ago> found it incredibly helpful at saving time implementing all the bullshit involved in starting a new code base - setting up a build system, looking up libraries and APIs, implementing a framework for configuration and I/O, etc. Thanks for the very eloquent explaination. I feel that's where most people get the best value from GPTs. And that's also why ruby on rails like platforms are so popular in the first place. Avoiding the boilerplate from the start and focusing on what matters doesn't need to go through AI, same way we didn't need to stick to Java's generators and code factories. I kinda fear we lose some of these advancements as people move away from these more elegant stacks, but also hope the pendulum balances back when the hype fades away.
- jmull 1y agoThis is consistent with my experience… which is why I’m still an AI skeptic (relatively speaking, that is). Generally, it’s making easy stuff easier. That’s nice, but doesn’t change the game. Personally, I already know how to whip through most of the easy stuff, so the gains aren’t that large. I like to imagine a world where the front page of HN is clogged with articles about mastering the keyboard shortcuts in your text editor and combining search with basic techniques of reading comprehension. That’s the level of productivity gains we’re talking about here.
- satisfice 1y agoAccounts like this are well-meaning but unhelpful, because they do not explain the difference between our experiences and feelings. I’m always left with one weak conclusion: “I guess that guy has low standards.”
- lowsong 1y ago> I recently started a company in another field and haven’t done any real development for about 4 years. Don't take this as an insult, but "people who used to be full-time engineers, and are now a bit removed" are exactly the kind of people who are the very worst at evaluating LLM coding tools.
- godelski 1y ago> but it saved me from a bunch of tedious work that I don’t enjoy anyway. I play music and find practicing scales and learning music theory much more tedious and less enjoyable. I'd much rather be playing actual songs and having that flow where it is like the music is just coming out of me. But the reason I do the tedious stuff is because I don't get the latter stuff without the former. I can still learn to play songs without learning scales and just practice the lines. This is much more enjoyable and feels much faster. I'd even argue it is much faster if we're only measuring how fast I learn a single song. But when we talk about learning multiple songs, it is overall slower. Doing the tedious stuff helps me learn the foundation of everything. Without doing the tedious things I'd never develop the skills to sight read or learn to play a song by ear. I don't think this is different with any other skill. I see the same effect in programming. I even see the same effect in writing a single program. I think this is totally a fine strategy for "smaller" programs because the "gap" is small. But as the complexity increases then that gap widens. Most of my time isn't spent writing lines of code, most of my time is spent planning and understanding. Complexity often comes from how a bunch of really simple things interact. The complexity of music is not the literal notes, it is how everything fits together. Personally, I'll take a bit more time to write those lines if it makes me quicker at solving the harder problem. I still write notes on pen and paper even if I never look at them afterwards because the act of writing does a lot to help make those things stick.
- tptacek 1y agoI'm having trouble with this sentiment, because most progress in programming environments involves eliminating and automating away drudgery. The analogy you're making to playing scales and learning music theory applies just as much --- maybe even more so --- to automated memory management!
- PlunderBunny 1y agoNot necessarily disagreeing with your points, or the general argument, but I think the trade-offs and consequences of choosing a language with automated memory management are reasonably well understood, and manageable, but can we say the same about vast amounts of AI written code?
- tasuki 1y ago> I found it super useful to write tests for behaviors I wanted, and just tell it “make this test pass”. This is the way. I don't understand the people who do it the other way around. I want to control the executable spec and let the ai write whatever code to make it pass.