How To Deal With Knowledge Inflation As A Developer
There’s always going to be something to learn but when does it ever end?
As developers, it can feel like we’re treading water all the time. You’re constantly expected to learn, to discover, to uncover, to make, and to create. This, of course, is in your own time. In addition to everything else that we also have going on in life, the simple task of staying up to date can tire you out, sap your time, or become downright overwhelming.
Technology as an industry is constantly coming out with new updates, releases, libraries, frameworks, and ideas. The sheer amount of information that gets thrown in our direction seems to grow exponentially each year. It’s part of the knowledge inflation that has ballooned out in recent years. While the new releases are supposed to make our lives as developers easier, trying to keep up with everything can lead to anxiety and eventual burnout.
Before we get into how to deal with knowledge inflation, we need to first understand what it actually is.
Knowledge Inflation And Technology
There’s a thing in biology called the Red Queen Hypothesis. In a nutshell, it’s a theory that’s used to predict the extinction rate of a species. To survive, the animal needs to remain or outperform its peers and potential predators for resources and safety reasons.
For example, in order for rabbits to survive, they need to be able to outrun the fox. In order for the fox to survive, it needs to be able to catch the rabbit. As the animal ages, it gets naturally slower, which threatens the ability to survive without assistance. As the two compete, their speed increases until it hits an equilibrium or status quo within the reproductive cycles and population levels. This remains until someone ups the ante and gets faster.
When it comes to dev work and keeping up to date, we are constantly trying to outrun the process of stay updated but it never seems to be quite enough — that is, unless you’re the one creating the technology. Knowledge inflation is the equivalent of increasing the speed we need to obtain in order to remain in a state of status quo with our peers. This constant competition can take a toll on mental health. At some point, you’re going to become overtired and burnout.
Dealing With The Realities Of Dev Work
When you start out in the world of software development, you accept that there is a lot to learn and uncover. However, after a few years in the field, you begin to realize that you don’t know anything in particular. All the knowledge you’ve gained through job experience, fixing bugs, talking to other developers, reading random articles on the Internet, lurking over Stack Overflow comments, and encountering and dealing with spaghetti code, is just a series of ad-hoc things that built you into the developer that you currently are.
The thing about being a software developer is that the work is never actually confined to the traditional 9 to 5. Nowadays, to survive as a developer, you can’t just be a developer. Self-directed learning and side projects are things that we do to keep ourselves updated with the latest libraries and frameworks, so that we may be better and more effective creators of code during our paid hours.
But how can you thrive when you feel like you’re just barely catching up with the current trends? Start by going deep as you much as you go wide.
Go Deep As Much As You Go Wide
If you really look at it, code is just a translation of ideas and a lot of these ideas are just repeated patterns. The formatting and syntax might be different, but when you are able to identify the right patterns for the correct context, picking up a new language is much easier.
Why? because you only need to focus on syntax.
We often feel overwhelmed when trying to pick up something new because we don’t have the foundational depth for it. It’s like trying to plant our knowledge seeds whilst digging the hole for it at the same time. Then we realize that we don’t have a watering can or water, so our seed can’t germinate and grow properly.
So we remain stuck at where the YouTube tutorial ends.
Going deep into programming is a process of uncovering the various types of patterns that exist. When I talk about patterns, we’re not just talking about coding patterns. In the world of software development, a pattern can exist in other spaces like architectural structures, pipelines, and automation orchestration. Once you learn how to do these things for a particular language, the ideas are transferrable. The only major difference is implementation.
Rather than trying to learn everything, learn just one thing. While this advice goes against the current trend, when you learn one language and learn it properly, it makes you more effective in your craft. You can still explore other frameworks, libraries, and languages. However, rather than splitting your efforts across all of them equally, make something your main expertise and use the others as ancillaries.
Nurture Your Code Creativity
Code creativity is your ability to transfer your current knowledge into other spaces. It’s a process of identifying similarities of the foreign area against what you already know. It is also a process of accepting the differences and nuances in the foreign area, and working with it to leverage a desirable outcome.
The rate of new updates, developments, releases of libraries, and frameworks is something that we can never personally keep up with. The rate of new patterns being created, however, is much slower. There is no visible edge when it comes to all the different technological options currently in existence. It’s hard for us to see and figure out where things start and end.
However, the rate of new patterns created, however, is much slower. The ideas surrounding them is finite, making it easier to slowly work through than trying to learn every technology in existence.
But how do you nurture your code creativity?
Start by building up your base knowledge. For example, learn how object-oriented works — the perks and the pitfalls, explore functional programming and why people love it, look up programming patterns, algorithms, business case implementation for common things like cart systems and payment gateways.
Once you’ve got your base, you can start applying them against your chosen language. This is because your base knowledge is the foundation that your syntax builds on. Writing syntax first without the base can lead to brittle applications that break under pressure. Sketchy syntax in an app is easier to fix than an app that has no architecture or implemented patterns at all.
It’s easy to get caught up in trying to learn everything. Everyone deals with the fear of being obsolete in their way. For our industry, there’s more to it than just trying to stay relevant by ticking all the technology stack boxes.
You can’t go deep into any kind of technology unless you have the foundations that enable it. So figure out what that base looks like for your particular pathway, learn it properly and then nurture your ability to connect the dots through creative coding. It will make you a more effective and efficient developer and reduce the time you need to pick up something new in your own time.