Skip to main content

The iceberg

In life, technology and science, there are a lot of different levels of organization and complexity we reason and operate on.

note

For example we can consider this simplistic scale to reason about human nature:
atoms โ†’ molecules โ†’ cells โ†’ organs โ†’ organisms โ†’ individuals โ†’ societies

Information technology has scales that go from fundamental physics to applications/software. Knowing how things fit together is perhaps more important for a non-specialist than having expertise in a particular domain.

tip

For navigating the modern world, prioritizing understanding the higher levels of complexities (such as individuals or websites) will give you more operating and communication capabilities but knowing all levels enables you to become an innovator and leader with breadth.

That said, start by having a basic feel for how you go from electricity to a website or app. We will come to that in the following pages. Then whenever you are curious or need it, you can go learn more about one specific complexity level.

Now watch a humourous and short (45s) presentation of a scale of complexity for a website :

But to what depth should you understand these levels of complexity?#

Underlying science & technology
Physics
Although mighty interesting you can skip understanding physics altogether. It will not come in useful to code or talk with programmers.
Hardware
Understanding hardware might not be essential for a basic developper but it is useful for basic things such as :
  • Choosing a computer or smartphone based on your usage.
  • Knowing requirements for running programs.
  • Having basic understanding of ubiquitous vocabulary and concepts.
  • Not being ignorant of what supports some of the most important innovations and technologies of humankind.
We provide some ressources to get you to a basic understanding of hardware on the next page
Low-level languages & execution
You might not need to know what happens when you execute a program or access a website but having somewhat of an idea of the process, is crucial to not create a glass-ceiling for yourself.
When you are ready, start reading about translation here.
High-level languages & tools
This is the core of what you should learn.
The five skills you should have to navigate the modern programming world by order of priority :
  • Find the information you are looking for on the internet or by asking someone.
  • Write code and execute it.
  • Use a terminal.
  • Use a versioning system.
  • Know what technologies are out there and have ideas on choosing a tech stack.
We will provide you with tips and ressources in the following pages on how to learn these skills.