Ask HN: Using Factorio as visual programming, refactoring, and design tool
I'm playing around with the idea of having developers I work with play Factorio for a little while as a good intro to design, implementing, and refactoring.
The idea that Factorio is visual programming keeps growing on me, and that the visual and game play feedback provided by a spaghetti base design that only you really understand and can extend is very similar to programmers reactions to legacy code in the workplace.
Needing to rip up your base and then re-lay it down as you learn more about the game play mechanics (aka become a better programmer) feels similar to refactoring for me. There is a sense of well it works now, why not just add on another wing instead of doing "it right".
Building small components that you can link into each other and reuse is almost the core mechanic of the game, and is also a core tenant of building reusable software.
Lastly, and I might be stretching here, the visual environment can be likened to TDD or at the very least a short feedback loop. When you take an action you have to deal with the consequences, and reap the benefits immediately which if you squint is like writing tests to exercise your API/objects as you write them, making sure that when you change your API/objects/whatever you feel the change as quickly as possible.
Is there any validity to this? Am I going to ruin their productive lives by introducing them to Factorio?