All my notes in one place

About

I have been writing code since I was a kid in the 80s when my dad got me a BBC Microcomputer, on which I wrote quizzes and games in BASIC. I studied Computer Science along with Math and Physics at high school, where I learnt to program in Pascal and C, got my Bachelor’s and Master’s degrees in Computer Science, and became a professional software developer in 2000. While the primary focus of my career has been in the area of Enterprise Application and API development using Java / Java EE and related technologies, I love all things Computers Science and Software Development.

I was born with a deep curiosity and drive to learn regardless of the subject, and my other areas of interest are Astronomy, Physics, Geopolitics and Stock Investing.

My style of learning has always been to attempt to gain as wide and as deep an understanding as possible – every time I set off on a learning expedition on any subject or topic,  I soon find myself following multiple threads of investigation and learning, and each thread I follow in turn spawns new threads of investigation and so on … to the extent that it is quite an effort for me to bring myself back to the original topic of study and often I find myself lost in the intricacies

“Everything should be made as simple as possible, but no simpler”. To me, complexity, nuance and detail are not things to avoid or attempt to abstract away or hide from, rather, to me these are things to dive into and immerse oneself in, with the goal of achieving as complete an understanding as possible of the subject of investigation. 

A lot of the technical content out there – be it online learning, blogs, tutorials to me aims to simplify, sometimes to entertain, and perhaps to be as easy and fun to consume as possible. To me, such learning content is considered the tech world’s equivalent of fast food – convenient and fun, but ultimately unsatisfying and lacking in nutrition. 

In my opinion, this kind of detail-oriented learning style where every learning venture turns into a project of sorts, while often time consuming and resistant to concepts such as deadlines and timetables, ultimately gives one access to a depth and breadth of understanding and knowledge which, while not flashy and superficially attractive, bears a kind of density and solidity and affords the kind of calm confidence and authority in any kind of test or situation that one finds oneself in.

The goal of these notes is not to communicate core knowledge on a topic or subject, that can be gained from countless tutorials available on the web. The goal for me is to describe the questions, ideas and insights that arose in my mind while studying the various subject areas that the notes address, and to communicate my own research into those questions as well as the new paths of inquiry that the ideas and insights led me in.

My hope is that this gives new perspectives on the various technologies that I explore to learners and other interested readers and take their own minds down new, creative and original paths.