An old wise man once said:
To know that we know what we know, and to know that we do not know what we do not know, that is true knowledge.
In a lot of strategy games, there’s a game mechanic that can be introduced known as fog of war. When one begins to learn a new body of knowledge like say mathematics, elden ring or computer science you experience a similar mental state. You’re an explorer, there’s alot of stuff it’s all very confusing.
You open an “introduction to X” textbook and dive in, it’s typically structured somewhat linearly. Early concepts build on future concepts, you take some isolated pocket, explore it somewhat and move on. Eventually after a textbook(or the equivalent), you think “huh I kind of get it”. In order to program there are very few concepts you need to actually build software – they’re all abstractions over voltage or the lack thereof.
- data types
- control structures that allow you to do:
- sequential processing
- decision making and
Yet, this is an illusion sometimes illustrated as the map-territory relation. It’s an often not fully appreciated concept that a human at any point in time has an incomplete model of the world – and by necessary extension our work.
How then can we define competency? – Honestly? it’s just consensus.
If we model all things that are known about some field as a three-dimensional graph, we can squint and draw arbitrary lines over the “current territory”. Now the thing is – this graph is really big, and it changes.. so we draw multiple lines, sometimes they intersect, sometimes then don’t. The thing is… every node in this graph is not necesarily connected – or more precisely you aren’t aware where you are.
Humans are weird. We’re fundamentally social creatures. There are many interesting theories about how this got started. We needed to communicate with each other, a basis on which to share perception.
This shared perception lends itself to be a consensus-communication problem.
In the model of a capitalistic world, a job is a function determined by the ability to draw upon some arbitrary sub-set as a base and perform some activity that generates a profit and provides some value to a society.
Should every programmer know what
Wouldn’t it be nice to know what you know? Often it seems the ground is ever shifting, the “fundamentals” doesn’t mean the same thing across different contexts – depending on where you’re operating on what sub-set or overlapping set and most importantly who you ask.
How you explore this graph matters.. of course. There are circles of mastery, sub-sets. There are self-contained nodes. Nodes that have value are nodes that reach consensus because somehow they generate value for society.
How do you know what has value? You don’t, not your peers or the experts nor does any member of society apriori.
The meta question.. what should I be working on?
Is worthy of serious consideration. Answering it seems to be nearly an accidental discovery via iterative experiements. You explore and most likely you’re going to fail. There is no royal road to geometry indeed.