Reading Recommendations

Books that I've read and recommend

Even before I start reading a new technical book, I analyze it, read through the content, skim it, and even read a few paragraphs on a random page. It is usually pretty clear within the first few minutes whether a book is worth your time. Reading techniques like SQ3R make all this preparation and reading a thoughtful and organized process. When I read a book from cover to cover, there is no doubt that I found it to be a really good book and I can definitely recommend it.


These books are either technical or nearly technical. The order in each category is more or less important, but the categories themselves can be based on current interest.


Happy reading!


Computer Science Fundamentals


  • Understanding the Digital World, Brian Kernighan, 2017
    As the preface perfectly puts it: "What you need to know about computers, the Internet, privacy, and security. Although the main reader of the book is a non-technical person with no previous IT background, everyone can benefit from reading it. The author describes very technical and difficult topics in simple terms and makes understanding the big picture easy and natural.
  • [russian] Программирование: введение в профессию, Том 1: азы программирования, А.В.Столяров, 2016
    В первый том "вошли избранные сведения из истории вычислительной техники, обсуждение некоторых областей математики, непосредственно используемых программистами (таких как алгебра логики, комбинаторика, позиционные системы счисления), математических основ программирования (теория вычислимости и теория алгоритмов), принципы построения и функционирования вычислительных систем". Это одна из тех не многих книг, которая формирует фундамент, подкреплённый не только теоретическим материалом, но и полезными практическими примерами.

OOP


Programming


BASH

  • The Unix Programming Environment, Brian W. Kernighan, Rob Pike, 1984
    .
  • Pro Bash Programming, 2ed, Chris F. A. Johnson, Jayant Varma, 2015
    .
  • Bash Quick Start Guide, Tom Ryder, 2018
    .

C / C++

  • The C Programming Language, 2ed, Brian W. Kernighan, Dennis M. Ritchie, 1988
    .
  • [russian] Введение в язык С++, 5изд, Столяров А.В., 2020
    .

SQL

  • Simply SQL, Rudy Limeback, 2009
    .

Software Development Practice


  • Understanding Software, Max Kanat-Alexander, 2017
    The whole book is pure experience. It's completely practical, and not only gives you an understanding of what it's like to build and maintain enormously large software, but also how to succeed by avoiding pitfalls and doing things right.
  • The DevOps Adoption Playbook, Sanjeev Sharma, 2017
    In my opinion, one of the most detailed and clear overviews of DevOps practice in software development. Unlike many other books on the subject, the author goes back to the roots, explaining what it was like to develop software long before Agile, what were the main pitfalls of common Agile practice, and what exactly and how was addressed by DevOps.

Databases


  • Database Systems: Design, Implementation, & Management, 13ed, Carlos Coronel, Steven Morris, 2018
    .

Networks


  • [russian] Компьютерные сети. Принципы, технологии, протоколы, Олифер В.Г., Олифер Н.А, 2001
    .
  • High Performance Browser Networking, Ilya Grigorik, 2013
    .
  • HTTP: The Definitive Guide, David Gourley and Brian Totty, 2002
    .

Soft Skills


  • Pragmatic Thinking and Learning, Andy Hunt, 2008
    The great example of work that everyone would benefit from, no matter what their profession or hobby, because it provides a lot of insight into how our brains actually work, how we learn and remember, how we think and solve problems. Here are my notes in the form of mind maps.
  • Soft Skills: The software developer's life manual, John Z. Sonmez, 2014
    This book covers various non-technical but very important aspects of the life of a modern software engineer, such as career, productivity, communication, setting life goals, learning, etc.

Miscellaneous


  • Hackers, Steven Levy, 2010
    .
  • The Art of Deception: Controlling the Human Element of Security, Kevin D. Mitnick, William L. Simon, 2003
    .
  • Just for FUN: the story of an accidental revolutionary, Linus Torvalds, David Diamond, 2002
    .
  • Python Interviews, Mike Driscoll, 2018
    A collection of independent interviews with a dozen major figures in the Python community, helping to understand the language's past, how it evolved from the beginning, where it's at now, and where it is going.