Source

Thread

1/ @rfleury

A recent lesson I’ve learned about programming the hard way: Be very skeptical of mental models. 1/7

2/ @rfleury

I had been building The Melodist’s editor with the unconsciously-made assumption that the map editor should be working on the same entity data structures that the game does, simply because entities in the editor/game represent the same thing conceptually. 2/7

3/ @rfleury

However, the editor requires a much different set of functionality than the game, and it requires different data, different serializability, and different data transformations. 3/7

4/ @rfleury

After realizing this and splitting the problem into two, both problems became far simpler, and some features that would be extremely difficult to produce in the previous system became trivial. It all started with thinking about the problem, not the mental model. 4/7

5/ @rfleury

The statement “Think about the real, physical problem, not the mental model” is undoubtedly one I would have agreed with for at least a few years, but this problem proved that such a method of thinking doesn’t happen automatically. 5/7

6/ @rfleury

Through this, I’ve learned to always try to critically think about the way I am thinking about a problem, instead of pretending that my mental model’s perception of the problem is the problem. It isn’t. 6/7

7/ @rfleury

Following from this, I claim that any particular programming ideology that encourages you to reason about the problem through your mental model is just no good, and doesn’t help you write good software. 7/7

0 items under this folder.