You play around with code until you start to see patterns and where you can extract code into functions or structs/classes. You explore different ways to particular task when you're satisfied, you refactor into an abstraction. Then you incrementally do this until you've built your final project. The first implementation of a task does not need to be the best. It just needs to work and you can improve it later. My workflow is not &quot;basic&quot; or &quot;primitive&quot; its working smart. <|endoftext|> 