One of the things that I like about software development is how we're constantly learning things.
Hardware evolves, workloads evolve, scenarios evolve, and so we're constantly adapting to having to do new things in new ways.
There are multiple areas of specialization, things like networking, database systems, user interfaces, machine learning, etc.
Additionally, software gets deployed in all sort of domains ("verticals" - things like finance or healthcare or manufactoring) and in adding automtion or systems support we end up having to learn about the domain itself.
All in all - there's a fair chance that you'll spend your whole career learning about different aspects of software, software development or software-adjacent areas. Which brings me to today's topic - how do you approach developing a useful understanding of all these things?
Here are three approaches that have generally worked well for me.
These are all handy methods in that it lets you start from a place you're more familiar with and then learn as you go. The things to watch out for, of course, are brining biases from your starting point, or knowing whether you've uncovered all the differences and side-effects in the new concetp.
I'm not going to cover learning techniques today, because there are quite a few and they are also generally well covered in other places, so I feel I'll need some more room to perhaps add something useful.
I will, however, call out that the ways in which we understand things can also be used to explain things. You have to tailor the content because your audience is different from yourself, and so the background of what's known and what isn't, and what the best ways to be might differ, but in the abstract the ways of going about are certainly useful.
Happy learning!
Tags: philosophy writing