At first glance, writing computer code seems obvious, you are writing code that a computer can understand, but when you build software, what are you actually doing conceptually.
Many have asked the same question I’m sure, so here’s my go at describing it metaphorically, at a high level, with no specific language in mind, for people who don’t code or who are just starting.
First we will start off with a simple metaphor, one that encompasses the basic elements of software engineering.
1) The (Humble) Square
2) The Symbol
This symbol is comprised of squares, it's still a very simple concept but already it's obvious that the square, when structured, can convey meaning, in this case the letter E which represents the phonetic sound EEEEEEEE!
This could represent a single function, an object or struct, or a set of pixels.
3) The Message
The message is comprised of symbols, comprised of squares. It has functionality in the real world as it can be put into context with other messages to convey an infinite number of meanings.
This could represent a whole program, or a function, or just some text.