Think Deeply About Simple Things
I heard the notion to “think deeply about simple things” recently in relation to maths, but it applies just as much to software, as well as life. In the two technical fields, our knowledge is built on a foundation of layers of paradigms, and often we are unquestioning of these - we assimilate them into our cognitive processes before we have the tools necessary to ask the right questions, and later in our development, we are simply not in the habit of challenging our own assumptions.
Building this habit is well worth doing, especially in software, where it seems that the paradigms are at best messy, and at worst detrimental to our ability to write high-quality software. Object-oriented vs procedural programming is still a debate which many people have strong opinions about, and nobody has an especially clear answer to. Languages all have their pros and cons, and due to their proliferation in the wild, collective knowledge is spread thin between them.
All this means that when it comes to solving problems, we have so much noise to cut through before we even get down to conjuring a solution, which ultimately means less deep thought is put into said solution. Having started Leetcode 30 days of code challenge this month, it’s painful clear to me that I need to think deeply about a problem (which is often a simple problem) before I start actually writing any code, otherwise it’ll end up being slow, inefficient and painful. Completing the challenge solely in C# is rapidly becoming a choice I regret, as I realise quite how slow it is and how much memory it uses - this is even outside of a large .NET project running on Windows which inevitably introduces inordinate amounts of bloat to the equation. Simply stopping and asking yourself “why?” several times before beginning to tackle a problem, and trying to evaluate what assumptions you are making in the process is going to be a valuable exercise in improving as a programmer.
The same is true for life - I find myself often very caught up in the minutiae of my existence, and think that my happiness is dependent on some precarious spider’s web of interconnecting threads, but that is obviously not the case. I think that, because I have not really yet begun to think about the problem. Naturally, I think society is out to get us on this one - it does not exactly reward deep contemplation on the basics of life, and rams down our throat the idea that every detail is of critical importance to our content - but that doesn’t mean we can’t beat it. I think human beings are fundamentally simple creatures with simple wants - houseplants with complicated emotions, as the kids would say - and I suspect if I spend more time thinking deeply about these simple desires, I might find myself meaningfully happier.
Three more things to be grateful for
- Errichto’s Youtube channel for so clearly explaining algorithms and Leetcode problem solutions;
- Being able to work from home so easily and seamlessly;
- myNoise for having a huge catalogue of soothing sounds to both keep my company and distract me from the madness of the outside world.