Over the last few months I’ve come to the frightening realisation that I don’t know that much. Shocking I know, considering that I make a decent salary, have a good life, and seem to be doing my job pretty well.
The realisation comes from this. I’m a software developer. I’m supposed to solve other people’s problems, and automate their work as much as possible. For me to do this, I need to learn a lot. For every problem I solve, I need to understand the exact details of the whole scenario, and then come up with a solution. That’s not the worst part, I need to do that in an extremely short time. Without going into too much detail, I regularly get called on to solve problems in fields where people, on average, study for 3 years to become “masters” of their field. On many occasions I have a week or two to solve the problem, including my research time.
It does not stop there, once I’ve solved a problem, I have a new one to solve, and have to start the cycle all over, doing the research, coming up with a solution, rinse, repeat.
Every time I do this, I have to clear the “White Board” in my mind, and start over.
Which means I never get the chance to become a “master” at a trade. The frameworks we are exposed to as software developers are so diverse, that no-one could ever hope to be the master of it all. You may get to specialise in a small part of the framework, if you develop solutions for a specific industry only, but most of us will never choose a “dead-end” position like that.
To compensate for knowing nothing, I’ve learnt one skill which enables me to know everything. The ability to scan through a lot of information in a short space of time, and extract the relevant facts. Most of the time unfortunately, you only get enough time to get the basics, like a swallow drinking water from the surface while skimming over the water. Sometimes you need to be able to dive in and drink deep, but normally don’t get the chance.
Recently I’ve tried to do this, but the habit of skimming is deeply entrenched, and I catch myself forgetting to dive in quite frequently.
How do you go about learning the required information to build better solutions?