DEV Community


Posted on

Mental model for developers

I recently came across the term mental model. This is not a new term yet in the context of the developer it is. Let us understand what the Mental model is by using a theory of first principles.Link to the theory of first principles

What is a Mental model:

A mental model is simply a representation of how something works. We cannot keep all of the details of the world in our brains, so we use models to simplify the complex into understandable and organizable chunks.

Link to blog about Mental models

Another paper that explains the mental model put it as follows.

Mental models are personal, internal representations of external reality that people use to interact with the world around them.

[Link to paper (

We developers part of computer science need a model of our own. There are a vast number of practices in computer science where we can use. For now, let us see the most important one which we do on daily basis: code.

The mental model allows us to understand the codebase. There might be thousands of lines of code in an application you build. But it is humanly impossible to remember every line of code. But what we can remember is the parts of the code that interact with other parts. And using those interactions we can have a memory map of how the application works.

It is very important that a developer who has just joined a project cannot inherit a memory model from a developer who has been in the project for a long time. The process of model creation may differ from one developer to another. There can be other factors too that come into play like the speed of understanding new things.

Readability is important when developing and this goes a long way in helping others to achieve a model. We want better results in the end.

We have all come across data models, designs, patterns in development, but is it possible to apply some of these principles to our mental model. The process of creating an application is a mental task you may say, but understanding an application that is already built takes a lot of effort.

Top comments (0)