Build a mental model for software development

When you join the software developer community, it’s a bit like coming to a new country where everyone speaks a different language.

“Yeah, let’s deploy this”, “Let’s containerize this”, “We need a HA deployment for this solution here”, and on and on.

And it doesn’t stop there. There are so many languages, frameworks, tools and protocols to learn about. How do these people do that? And how do they manage to keep an overview on everything?

The answer is: This will happen over time. Right now, it feels like somebody keeps handing you puzzle pieces but you don’t know yet where to put them. Let’s keep collecting these puzzle pieces until we start to learn where they fit in.

A good starting point is to collect all things that make no sense to you right now in a spreadsheet:

WordCategoryLink(s)
HTTPProtocolhttps://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
DockerOps / Containershttps://en.wikipedia.org/wiki/Docker_(software)
PythonProgramming Languagehttps://en.wikipedia.org/wiki/Python_(programming_language)
Start categorizing puzzle pieces

Above you see an example for such a spreadsheet. The goal here is to list everything you come across and don’t know about yet and add a category like “Programming Language”, “Protocol” or “Framework”. Optionally, you can also add links for further reading.

This spreadsheet will help you to get an overview over the landscape, the different areas (protocols, programming languages, frameworks, …) and helps to build your own mental map. Mental map? Yes. This mental map will help you to fill in the blanks faster over time when you know the general categories. It’s a bit like learning the different neighborhoods and districts in a new city. Once you have a rough geographical understanding, it’ll become more straightforward to gain orientation.

What is your approach to learn about all the different software developer and IT topics? Comment below!