I love to read books, especially on software engineering, operating systems, computers in general and other related topics like productivity. I decided to share the most important of them.
The links to Amazon point to the latest edition when writing this post, but the actual edition I’ve read might be several years (or decades) older. I vividly remember reading MS-DOS 5 and 6.2 in elementary school circa 1995, then The Official Red Hat Linux 5 User’s Guide in high school circa 1999 and C++ In Plain English a year later or so.
This list will be updated and will stay relevant going forward as I will link to this page after it is posted.
Table of Contents
Software Development
Robert C. Martin (Uncle Bob)’s books:
Clean Code: A Handbook of Agile Software Craftsmanship
The Clean Coder: A Code of Conduct for Professional Programmers
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Introduction to Object-Oriented Programming, An by Timothy Budd
The Pragmatic Programmer by Andrew Hunt and David Thomas
Language or Framework
Android and Kotlin
Mark Murphy (CommonsWare)’s books:
Exploring Android
Elements of Android Jetpack
Elements of Kotlin
Elements of Kotlin Coroutines
Elements of Android Room
Elements of Android Q
Elements of Android R
The Busy Coder’s Guide to Android Development (parts)
Head First Android Development by Dawn Griffiths and David Griffiths
Java
Effective Java by Joshua Bloch
Java Generics and Collections: Speed Up the Java Development Process by Maurice Naftalin
JavaScript
Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke
C/C++/C#
The C Programming Language by Brian W. Kernighan, Dennis M. Ritchie
C++ In Plain English by Brian Overland
Ruby (RoR)
Productivity
Deep Work: Rules for Focused Success in a Distracted World by Cal Newport
Eat That Frog!: Get More Of The Important Things Done Today by Brian Tracy
Inspirational
Soft skills
Emotional Intelligence 2.0 by Travis Bradberry Jean Greaves, Patrick M. Lencioni
Also (already mentioned) The Clean Coder by Robert C. Martin
Oldies
MS-DOS 5
MS-DOS 6
IBM PC/XT