The knowledge tree
Trunk and branches
Knowledge is like a tree. The roots and the trunk are the fundamentals. The branches and leaves the specific details.
Before AI, knowing a few branches and leaves could be enough. But that’s no longer the case.
I rewrote an old and crappy Java API and batch processing job to Go without barely reading the code and not knowing Java. It worked almost perfectly. I tested that the new version worked by using golden data tests and shadow traffic. It reduced memory and CPU usage, increased readability, and made it similar to our other microservices.
Knowing a programming language well is still important. You have to know how to best use your tools. But how much of your time are you investing into improving your mental models of the fundamentals? How much knowledge can you transfer from one tech stack to another? What are the things that won’t and shouldn’t change?
The old mantra of “writing code is not the important part” is starting to be obvious.
Anyone can write code; that is not our job. Software development is more than that. Our job is to solve problems, and that requires us to take care in our design and consider the effectiveness of the solutions that we produce.