This is classic best practice for getting started with software. In the old school, when cycles were expensive and users had to queue up to wait for results, figuring out the program before coding was the rule. Now, it’s too easy and tempting to just start hacking and hope that “if I type enough I’ll get an answer”. OTOH, emergent formalization is wonderful only long as one understands how the playground works.