when you complete an exercise delete what you did and do it again, but try to use your memory. If you get stuck then look at the exercise for clues, but try your best to recreate what you just did from memory
There's precious little on this world more important than this.
I think one addition that's worth making is that you should really type out your commit messages and docs. Like sure programmers hate writing this stuff, so it's tempting to go "aha I'll just have the LLM write it"...but writing it yourself forces you to confront the UX and implementation decisions in a single place. "Oh to do X you pass -Y...wait hmm is that the ideal way to do it" "This fixes X by doing Y...huh but maybe doing Z instead could also work."
Yeah, I like to call this "tutorial-driven development" where you write the tutorial and work backwards from the desired user experience instead of thinking about the user-experience after the fact.
For example, if you have difficulty balancing parentheses I'd begin to wonder how fluently you can connect someone else's logical premise with their conclusion.
Ha ha. Hey, wait a minute!
In my defense, sometimes functions get very jumbo-sized.
Fixing vibecoded trash that you don't understand is actually a good way to learn, you get a whole lot of typing in and the space you do it in isn't a vacuum.
recently i vibe coded something that sorta worked but not very well and the code was so bad.
took it as an opportunity to rewrite it by hand and re-learn some of the programming skills that have been atrophying for me over the last 8 months.
i feel rly good about the rewrite and it actually works better too. the llm is still helpful for explaining or getting me unstuck. it feels much better to know the whole codebase.
To illustrate what I mean, I recently audited an LLM prompt and stumbled across this:
Never suggest external tools or alternatives that aren't part of the skills listed above. If a task requires capabilities beyond the available skills, say so.
This is the sort of prompt that I would read as functionally inarticulate: it sounds sensible if you don't read closely but when you do you might notice the prompt is actually giving the model two diametrically opposed instructions.
At the risk of proving myself functionally inarticulate, how are these opposed? Saying "I can't do this with the skills you provided" is consistent with both instructions. If the last sentence was "if the task requires ... skills, say which ones you need" then they'd be opposed, but as it stands I don't see the inconsistency.
veqq | 4 hours ago
I strongly second all of this.
There's precious little on this world more important than this.
refi64 | an hour ago
I think one addition that's worth making is that you should really type out your commit messages and docs. Like sure programmers hate writing this stuff, so it's tempting to go "aha I'll just have the LLM write it"...but writing it yourself forces you to confront the UX and implementation decisions in a single place. "Oh to do X you pass
-Y...wait hmm is that the ideal way to do it" "This fixes X by doing Y...huh but maybe doing Z instead could also work."[OP] Gabriella439 | an hour ago
Yeah, I like to call this "tutorial-driven development" where you write the tutorial and work backwards from the desired user experience instead of thinking about the user-experience after the fact.
option | 3 hours ago
Ha ha. Hey, wait a minute!
In my defense, sometimes functions get very jumbo-sized.
cajually | 3 hours ago
Fixing vibecoded trash that you don't understand is actually a good way to learn, you get a whole lot of typing in and the space you do it in isn't a vacuum.
CobyPear | 31 minutes ago
recently i vibe coded something that sorta worked but not very well and the code was so bad. took it as an opportunity to rewrite it by hand and re-learn some of the programming skills that have been atrophying for me over the last 8 months. i feel rly good about the rewrite and it actually works better too. the llm is still helpful for explaining or getting me unstuck. it feels much better to know the whole codebase.
hwayne | 19 minutes ago
At the risk of proving myself functionally inarticulate, how are these opposed? Saying "I can't do this with the skills you provided" is consistent with both instructions. If the last sentence was "if the task requires ... skills, say which ones you need" then they'd be opposed, but as it stands I don't see the inconsistency.