202207271530 Expertise is required to create useful simulations
It is necessary to have a great deal of special, expert knowledge in a field in order to create an accurate, useful simulation or program.1
The argument for the requirement of deep practical knowledge:
- We know that a simulation cannot be 100% accurate to the real world (202203210832 Models are necessarily incomplete)
- Ergo, we will have to accept inaccuracies somewhere in the simulation
- Ergo, we need to know which inaccuracies are acceptable and which are not
- Ergo, we need to understand the field, the purpose of the simulation, the way people will interpret it, and how to make a simulation feel accurate even if it's slightly unfaithful to reality (e.g. a flight simulator giving pilots the right feeling for flying)
- Ergo, we have to be an expert to make a good simulation
A correlated, responsible first question when faced with a simulation of anything is "why should anyone believe this simulation is accurate or useful?" This question will make you better at creating simulations as well as more capable of detecting when others have not done well at this.
We need to be suspicious about getting too many solutions and not doing enough careful thinking about what we've seen. Volume output is a poor substitute for acquiring an intimate feeling (through deep thought about the underlying situation) for a situation being simulated.
So how do we gain insight into things that we need to simulate but might not intuition about yet? The answer is to do simple simulations that we can be confident about first and then build up to more complex ones. Doing simple simulations lets us gain insights into the whole system which would be disguised in a full-scale simulation. Start with a simple model and evolve it to a more complete, more accurate simulation later on.
Simulations here are a general term, but we can specialize it to the domain of programming by considering 202501301705 Programming as Theory Building. The simulation is the program (which corresponds to some real-world process) and the expertise we must build to create a useful program is the theory building that Naur discusses in that article.
-
Hamming, R. W. (2020). The art of doing science and engineering: Learning to learn (pp.246-250). Stripe Press. https://www.goodreads.com/book/show/53349431-the-art-of-doing-science-and-engineering ↩
- 202203210833 Systems thinking
- 202205092134 The Art of Doing Science and Engineering
- 202501301705 Programming as Theory Building
Linked from this note