3 stages of code reading: understanding the flow, understanding the details, then assaulting the code until you're persuaded it's correct.
Related Posts
Today I learnt that Racket *intentionally* doesn't have a traditional REPL workflow. The authors were concerned about students not understanding the state between the current session and the code on disk.
(Arguably Jupyter has some of these features now.)
https://blog.racket-lang.org/2009/03/the-drscheme-repl-isnt-the-one-in-emacs.html
Over a sufficiently long time horizon, all code you write is legacy code.
I'm intrigued to see that Google has quantified that new code is generally buggier and less secure than code that has existed in your codebase for longer: https://security.googleblog.com/2024/09/eliminating-memory-safety-vulnerabilities-Android.html