Hey everyone! 👋
I'm back with another update on my writing journey, and this time it's something completely different from what I've shared before. After months of thinking, restructuring, and honestly, a bit of soul-searching about what I really wanted to create, I'm excited to introduce you to Arliz – but not the version you might have seen in my previous posts. This is a complete reimagining of the project.
What is Arliz?
First, let me explain the name. Arliz started as a random choice, but over time I found a meaningful backronym that perfectly captures what this book is about:
Arrays • Reasoning • Logic • Identity • Zero
- Arrays: The fundamental data structure we're exploring
- Reasoning: The logical thinking behind data organization
- Logic: How computers process and manipulate information
- Identity: The concept of indexing and giving "identity" to elements
- Zero: The philosophical starting point of all computation and counting
You can pronounce it however feels natural – "Ar-liz," or just "Arliz" (which is how I say it).
The Big Idea
Here's what makes this book different: it doesn't start with code.
I know, I know – that sounds crazy for a book about arrays, right? But hear me out. Every time I tried to truly understand data structures, I felt like something fundamental was missing. All the explanations I found assumed you already knew why arrays exist, how they came to be, and what problems they solve. They jumped straight into syntax and implementation without building the conceptual foundation.
So I asked myself: What if we started from absolute zero?
That's exactly what Arliz does. We begin thousands of years ago with humans counting on their fingers, explore ancient civilizations and their counting systems, trace the invention of the abacus, and follow the gradual development of mathematical thinking that eventually led to modern computation. By the time we meet arrays, they're not mysterious programming constructs – they're the natural culmination of humanity's age-old quest to organize information.
The Structure
The book is organized into 8 parts, each building on the previous one:
Part 1: Philosophical & Historical Foundations - We start thousands of years ago with humans counting, explore ancient civilizations and their methods of organizing information, trace the development of mathematical thinking, and follow the path that led to modern computation.
Part 2: Mathematical Fundamentals - Here we dive into set theory, functions, mathematical logic, and discrete mathematics - the mathematical tools that make data structures possible.
Part 3: Data Representation - How do we actually encode information in digital systems? Number systems, binary representation, character encoding - this is where abstract concepts become concrete.
Part 4: Computer Architecture & Logic - The hardware foundations: logic gates, processor architecture, memory systems, and how the physical structure of computers influences how we organize data.
Part 5: Array Odyssey - Finally! This is where we meet arrays in all their glory, but now they're not mysterious programming constructs - they're the natural evolution of thousands of years of human thought about organizing information.
Part 6: Data Structures & Algorithms - With arrays thoroughly understood, we explore how other structures relate to and build upon array concepts.
Part 7: Parallelism & Systems - Modern computing: how data structures behave in multi-threaded and distributed systems.
Part 8: Synthesis & Frontiers - Where we've been, where we're going, and the cutting edge of computation.
Why This Approach?
I know what you're thinking: "Why should I care about ancient history when I just want to learn arrays?" That's exactly what I asked myself while planning this book. Here's the thing - understanding where something comes from changes how you think about it. When you know that arrays aren't just programming constructs but the culmination of humanity's quest to organize information, you start to see them differently.
It's like the difference between memorizing that array[index] gives you an element versus understanding that you're participating in a tradition of indexing and organizing that goes back millennia.
Current Status
I'll be honest - the book exists more as a complete structure than actual content right now. I've spent considerable time planning the architecture, writing the preface and introductory materials, and ensuring the flow makes sense. The actual chapters are still being written, but the foundation is solid.
This is intentional. After my previous attempts where I kept restructuring, I wanted to get the architecture right first. Now I'm confident in the approach and ready to fill in the content systematically.
What I'd Love to Hear From You
As I continue working on Arliz, I'm really interested in your thoughts:
About the overall concept: Does this historical-to-modern approach make sense to you? Do you think starting from ancient counting methods will actually help people understand arrays better, or am I overcomplicating things?
About the structure: Looking at those eight parts, what's your gut reaction? Does the progression feel logical? Are there gaps you can spot? Parts that seem unnecessary or parts that are missing?
About Part 1 (Philosophical & Historical Foundations): This is probably the most controversial part. Some people love context and history, others just want to get to the code. What's your take? Essential foundation or unnecessary detour?
About Part 5 (Array Odyssey): This is the heart of the book. After four parts of buildup, do you think readers will be more prepared to really understand arrays, or will they be exhausted and just want the basics?
About the "living book" concept: Does the idea of a book that continuously evolves appeal to you, or do you prefer the stability of a finished, unchanging text?
About accessibility: I'm writing this in English and making it freely available. Are there barriers I'm not considering? Ways to make it more accessible to different audiences?
Honestly, what do you think? Is this ambitious and innovative, or am I overthinking what should be a straightforward technical book? Would you read it? Would you recommend it to others?
I've put a lot of thought into this approach, but I also know that sometimes you can be too close to your own work to see it clearly. Your perspectives - whether you're a beginner who wishes someone had explained this stuff differently, an experienced developer who's taught others, or anyone in between - would be incredibly valuable.
The book is freely available now (though mostly structure at this point), and I'd love for you to take a look, star the repo if you're interested, and share any thoughts that come to mind. Even a quick "this makes sense" or "this seems overcomplicated" would help me understand if I'm on the right track.
Thanks for reading, and I hope Arliz becomes something useful for the community!
You can check out the current version and follow the progress at: https://github.com/m-mdy-m/Arliz
That sounds amazing! Excited to see how it unfolds. It may not be for everyone to have the patience to understand the context and draw inspiration from that but for those who do, this sort of timeline and connections would be invaluable. I have always wanted to work on something similar, let me know if we could collaborate. Happy to contribute to the process.