
Another along similar lines of technology and war "The Arms of Krupp" William Manchester
Software Engineering
About C++: The Design and Evolution of C++ and The C++ Programming Language, both by Bjarne Stroustrup, the creator of C++. The first one is a snapshot of his philosophy during early years of C++ and is useful to understand the motivations etc. It provides insight. The second one, after the necessary introduction to the language, shows how he uses C++, or expects to be used, which is interesting in its own way.
About algorithms: Algorithm Design by Kleinberg and Tardos. This gives the much needed insight instead of maths equations, data structure implementations or a catalog of what to apply where, which are all good, but are useless without insight.
Mechanical Engineering (ME is a large field, and I will limit to these two books.)
Stephen Timoshenko's two volume Strength of Materials is a seminal work, and still relevant, on a topic that is at the core of mechanical and civil engineering.
Shigley's Mechanical Engineering Design deals with designing machine parts, which is in a sense an applied strength of materials topic, and the book addresses that part quite effectively, though not as comprehensively as Timoshenko's. More importantly, the book gives enough motivation and insight for the design process, without which engineers would just be "design monkeys" that use latest CAE packages.
Some books also worth looking at in mathematics:
(1) Anti-Demidovich series
(2) Combinatorial Analysis, Ribnikov
(3) Problem series by Suprun
(4) Probability Theory, Zolotarievskaya
(5) Discrete Mathematics Problems, Evnin
(6) Theory of Surfaces, Finikov
... and several other problem book series for university mathematics.
Engineering (mechanics):
(1) Anti-Mescherski series
(2) Theoretical Mechanics, V. M. Starzhinski
(3) Strength of Materials, Stiopin
(4) Problems in Strength of Materials, Volmir
[0] https://urss.ru/cgi-bin/db.pl?lang=sp&blang=en&page=Bookstor... (apparently the headquarters are in Peru now)
