Systems Programming Journey | Introduction

These series of posts are about my personal experiences as I was starting to dive into systems programming and as I continue to learn and dive deeper into low-level programming practices and methodologies. These posts are intended be more of a personal journal than a guide on how to get started or anything between those lines. I have always had a hard time trying to figure out things on my own from the very beginning of this journey, but as time went along, I have at-least learned where to find things when am stuck or seeking for more context on a topic that am exploring. And as such I have realized how fast am progressing and only had I learned this earlier I would have been way far in my learning journey. In these series, I will be sharing these exact techniques that I have explored and used to progress faster in my pursuit of knowledge. These posts will span across a variety of concepts including but not limited to algorithmic thinking and problem solving, modular programming and API /abstract data type design, computer organisation and architecture, performance optimization, debugging, bench-marking and profiling, common systems programming patterns and pitfalls, memory and persistence and more. That said, these series aren't intended to be an organised collection of how-to or reference but rather things I will write about as I reflect upon and continue with my systems programming journey. Hope you find them interesting and helpful, thank you.