Cure your imposter syndrome
Jump start your career with the complete guide to computer science for self-taught developers.

Written by Tom Johnson
Let’s build your career’s foundations.
For a lot of developers, the number of things to learn can feel never-ending. Particularly so if, like me, you are self-taught.
We’re constantly keeping up with new technologies, tools and frameworks, but we also need to find time to learn all that foundational computer science knowledge. It’s awkward when colleagues casually refer to some concept we’ve never even heard of.
Even worse is when we don’t learn about an important concept until it’s too late. I didn’t learn what a file handle was until I wrote a logging utility that used them all up and brought down a system!
All of this leads to imposter syndrome: the gnawing fear that any day now our colleagues will realise we don’t have a clue what’s going on. I firmly believe that imposter syndrome is caused by not knowing what you don’t know. The ground underneath us feels unsteady because there are so many unknowns lurking there.
Imagine having a solid grasp of computer science. You’d confidently use all those terms your colleagues use. You’d fearlessly take on new tasks. You’d understand your work on a deeper level and spot opportunities to apply ideas and innovate.
I did it the hard way: spending over five years reading huge textbooks and watching hours of lectures, always searching for the most valuable details in a sea of information. Let me show you an easier way. I’ve spent almost two years condensing all of that reading, studying and work experience into…
The Computer Science Book
Everything you need to know, distilled into 250 pages

10 essential topics. Zero fluff. Maximum impact.
Unlike thousand-page textbooks that bury practical knowledge in academic theory, this book gives you exactly what you need to succeed as a developer. Each chapter is a focused, practical introduction that builds real understanding.
The knowledge you need to succeed.
The Computer Science Book is not like other textbooks. It’s a highly selective, single-volume introduction to the whole of computer science.
I’m not promising comprehensiveness. I’m promising a complete, practical introduction to the knowledge you need to be a great programmer.
Before adding even the tiniest thing I challenged myself: “do people need to know this?”. Only the essential made the cut. The result is ten concise chapters covering:
- Computer architecture - how computers actually work
- Operating systems - process management, memory, and file systems
- Algorithms and data structures - the building blocks of efficient code
- Computer networking - how data flows across the internet
- Databases - storage, indexing, and query optimization
- Concurrent programming - threads, locks, and parallel processing
- Theory of computation - what’s computable and what’s not
- Programming languages - how languages work and evolve
- Compilers and interpreters - from source code to execution
- Distributed systems - building scalable, reliable applications
Each chapter functions both as a standalone introduction and a launch pad for further, independent study. As a programmer you will deal with these topics literally every single day.

This book is an essential read for anyone who felt they missed out on a computer science education. It’s also a great reference guide for graduates.
I particularly liked the further reading sections in each chapter. They’re full of curated resources to guide you in exploring each topic more deeply.
Tom distils each topic beautifully and succinctly. It was a joy to read.
Adrian Booth
Software engineer at Syft

This book covers all the topics I lacked confidence in. Each chapter explained what I needed to know for that topic.
Now I feel like I can understand discussions and if I need to dive deeper into anything, I have a solid base to start from.
The book isn’t just for theoretical interest. I’ve been able to apply some of the content to my day to day work. I really recommend this book.
John Whiles
Software engineer at Contentful
The first chapter is available for free as a PDF download here. No sign up required.
I’m immensely grateful to all the authors and educators who have released their material online for free. As my way of paying it forward, The Computer Science Book is available to read for free online here in HTML format.
Can I buy a print copy?
Many people have been asking for a print copy! One is in the works but I have no release date yet.
Free Articles & Tutorials
From time to time I post extra content that couldn’t fit into the first edition. It ranges from deep dives to my musings on computing.
Sign up to the mailing list to receive new content in your inbox. No spam!