Suggestions for further reading
This is a modest list of books I definitely recommend to read. The order in each category more or less matters, but categories them-self are up to the current interest.
Computer Science Fundamentals
- Understanding the Digital World, Brian Kernighan, 2017
- As it's perfectly said in the foreword: "What You Need to Know about Computers, the Internet, Privacy, and Security". Although the main reader of the book in a non-technical person with no previous IT background, anyone can benefit from reading it. The author describes very technical and hard topics using simple words and makes the understanding of the big picture easy and natural.
- Composing Programs, John DeNero
- This on-line resource focuses on various methods of organizing code, programming paradigms (functional, procedural, declarative), functional and data abstractions (ADT, Object-Oriented), and many other fundamental concepts of programming.
- (Russian) Программирование: введение в профессию, А.В.Столяров, 2016
- В первый том "вошли избранные сведения из истории вычислительной техники, обсуждение некоторых областей математики, непосредственно используемых программистами (таких как алгебра логики, комбинаторика, позиционные системы счисления), математических основ программирования (теория вычислимости и теория алгоритмов), принципы построения и функционирования вычислительных систем". Это одна из тех не многих книг, которая формирует фундамент, подкреплённый не только теоретическим материалом, но и полезными практическими примерами.
Software Development Practice
- Understanding Software, Max Kanat-Alexander, 2017
- The whole book is made of pure experience. It's absolutely practical work and brings not only the understanding of what it's like to build and maintain enormously large software but also how to be successful by avoiding pitfalls and doing things right.
- The DevOps Adoption Playbook, Sanjeev Sharma, 2017
- In my opinion, one of the most detailed and clear overview of the DevOps practice in software development. In contrast to many other books on this topic, the author digs into the roots, explains what it was like to develop software long before even Agile, what were the most crucial pitfalls in common Agile practice, and what exactly and how was addressed by the DevOps.
- Pragmatic Thinking and Learning, Andy Hunt, 2008.
- The great example of work that anyone would benefit from, no matter what's the occupation or hobby, as it provides lots of insight into how our brain actually works, how we learn and remember, how we think and solve problems.
- Soft Skills: The software developer's life manual, John Z. Sonmez, 2014.
- This book covers various non-technical but very important aspects of life any modern engineer, like career, productivity, communication, a setting of life goals, learning, etc.
- Python Interviews, Mike Driscoll, 2018.
- A collection of independent interviews of a dozen significant personalities from Python's world that helps to get the idea about the language's past, how it was developing from the very beginning, what's the current state and where it is going to...