3 ms·
>you're going to end up with a system you don't 100% understand very quickly This has been my experience with all software projects. Even if I wrote all the co
by andai 2mo ago
>you're going to end up with a system you don't 100% understand very quickly
This has been my experience with all software projects. Even if I wrote all the code, my understanding of how everything works and fits together decays.
( See the Forgetting Curves https://en.wikipedia.org/wiki/Hermann_Ebbinghaus https://en.wikipedia.org/wiki/Hermann_Ebbinghaus )
- simonw 2mo agoYeah, that's a fair point. I have plenty of older projects where I no longer understand how they work despite having written the code myself. I guess the key thing is that you need to be able to demonstrate to yourself that you understand the code at least once, because that means you should be able to revise how it works in the future. You also can't evaluate if a solution is fit for purpose if you don't understand it.
- thec0d3 2mo agoYou don't buy the article's position but have forgotten a lot and not known a lot; so no need to care about your opinion I guess This is my beef with modern software engineers; complete detachment from physical reality where entropy is eroding structure (memory, generational churn). Code is just a euphemism for a desired electrical state. No need to dump biz contexts in code. Just make a game engine that efficiently handles geometry on screen and label the presentation layer. All ya'll are doing is recreating front end rendering technology, forgetting in time and recreating it in new semantics. It's absolutely fucking asinine. I look forward to models in chips and a tiny universal code base coupled to the machine. This whole allowing a bunch of unelected rhetoricians tell myself and other hardware engineers we need them to use our property is exhausting. It's rhetorical nonsense that goes in these broad loops recreating old work. Time to move on from what titillated you all as children. Or you will just end up entitled Boomers. Writing code like its 1970s is not high tech. It's old low tech
- names_are_hard 2mo agoThis is either incredibly advanced, genius-level insight into the future of software engineering, or absolutely nonsensical gibberish. I'm not smart enough to tell which, I suppose we'll find out.
- andai 2mo agoI often find that what is considered easy in programming is actually hard, and what is considered hard is actually easy, because the "easy" things are designed to have several layers of Rube Goldberg machines between me and what is actually going on.
- gridspy 2mo agoWhile that may be true, you can be confident that it works in a way you personally understand. Because you understood it in the past. Also, if you finish your work on a module with care - you return to a module you can trust with clear boundraries and known flaws. This is not true of AI output.
- youre-wrong3 2mo agoNo. You can absolutely build things with AI small or large and understand it. If you don’t understand it. Then you’re not caring about the output to begin with and not guiding it to build the solution you want.
- gridspy 2mo agoThe word "understand" seems to mean something different to you. If I understand something, I could write it in assembly if I wanted to. It might take a long time, but I know every level of the stack under my code down to bare metal. Maybe an AI level of "understand" i.e the same understanding a Senior has of a Junior's code based on daily check-ins is enough for 95% of "boring" programming. But for some tasks you need to either fully understand the code or just tolerate bugs. At the level of complexity I work at, it's (often) faster to just code it myself than to expect AI to converge on a result I like and then hand check it.
- rsalus 2mo agowhat a patronizing response. I'd be embarrassed.
- gridspy 2mo agoI guess you didn't understand my comment ;) Look, goals can differ. If you don't need to understand and predict every part of the code the AI is generating and you just need it to meet a "sketch" of what you want - by all means use AI. I do use AI in that situation for related or unimportant code. But if you need full understanding, in my experience the only way to get that is to program it yourself. Unless what the AI is generating is so trivial you already understand it and it's grunt work, you will learn the detail by doing it yourself. Controlling the approach here is important. However often the best way to handle grunt work is to write better abstractions, something AI sucks at. It's the programming equivalent of many PG essays. https://www.paulgraham.com/useful.html https://www.paulgraham.com/useful.html for instance. There was one on how PG refined their thoughts via writing. It's in there somewhere.
- georgemcbay 2mo ago> Even if I wrote all the code, my understanding of how everything works and fits together decays. Some understanding decays, but in my experience it never fully decays to the point of never having known how it worked. My code from 3 years ago is more foreign to me than code I wrote yesterday, but if I need to I'll get back up to speed on it much quicker than I will on code someone else wrote that I never understood. Even with the decay of time, remnants of the experience persist, roughly in the same way that if you get in really good shape and then allow yourself to fall out of shape, getting back into shape is difficult, but not as hard as it was the first time. Your nervous system has made adaptations the first time through that make running it back much easier even if you've let years pass.
- deterministic 2mo agoI can't remember what I wrote yesterday. So it forced me from an early age to not write spaghetti code. Which is a real advantage it turns out when working on large projects. And an even bigger advantage when using LLM's to code.