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 a lot 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 just a fancy model built over voltage or the lack thereof.
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? – Socially, it’s just consensus.
In practice, it’s playing at/with the boundary of knowledge.
If we model all things that are known about some field as a graph, we can squint and draw arbitrary lines over the “current territory” some subset pre-requisite to accomplish a task (or more commonly what is believed to be).
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.
In the model of a capitalistic world, this shared perception lends itself to be a consensus-communication problem, signalling some virtue can be almost as valuable as the virtue itself.
Should every programmer know what
Wouldn’t it be nice to know what you know? More precisely what you don’t.
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 who you ask.
How you explore this graph matters.. of course. Resources are finite – you can’t learn it all or do it all . There are circles of mastery. Some intersection of this effects the world and produces magic - something new and redefines our shared perception of what’s useful.
It’s entirely possible to be driven by pure intellectual curiousity and this can be a beautiful noble pursuit and it’s entirely independent on if or how this effects the world.
However if you’re interested in how your work fits into the world, for whatever reason, ambition, moral principle whatever. It’s the litmus test. How do I know what matters?
How does anyone 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… and seemingly luck. You explore and most likely you’re going to fail.
What you end up doing is luck, but that you do something, that you prepare yourself is not. There is no royal road to geometry indeed.