Writing

The Elements of Typographic Style — Robert Bringhurst

The Visual Display of Quantitative Information and Visual Explanations: Images and Quantities, Evidence and Narrative — Edward R. Tufte

Engineering

The Art of Doing Science and Engineering: Learning to Learn — Richard W. Hamming

The Mythical Man-Month Essays on Software Engineering — Frederick P. Brooks, Jr.

Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams — Mickey W. Mantle, Ron Lichty

Ideas That Created the Future: Classic Papers of Computer Science — Harry R. Lewis

Programming Quantum Computers: Essential Algorithms and Code Samples — Eric Johnston, Nic Harrigan, Mercedes Gimeno-Segovia

Knowledge Representation: Logical, Philosophical, and Computational Foundations — John F. Sowa

Software

Project Oberon: The Design of an Operating System and Compiler — Niklaus Wirth and Jürg Gutknecht

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software — Scott Rosenberg

Structure and Interpretation of Computer Programs — Harold Abelson, Gerald Jay Sussman, Julie Sussman

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230 Aditya Bhargava

Data Structure Visualizations — David Galles

The Big-O Cheat Sheet — Eric Rowell

The Art of Computer Programming, Volumes 1-4A Boxed Set — Donald E. Knuth

Algorithms (4th Edition) — Robert Sedgewick, Kevin Wayne

The Algorithm Design Manual (Texts in Computer Science) — Steven S. Skiena

Purely Functional Data Structures — Chris Okasaki

Time, Clocks and the Ordering of Events in a Distributed System — Leslie Lamport

Category theory for programmers — Bartosz Milewski