(The title of the post must be changed to something more neutral because by answering the poster self declares that they are an expert, which not only seems unlikely of most people, but also makes ones such as yours truly withhold from answering due to the connotations, and requires prefaces of this kind to address their apprehensions.)
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.
This is the book that introduced me to the wonderful world of algorithms, and I love it. The introduction chapter was a revelation and nothing like I had read before. I didn't understand everything in the first read but it made me to want to. The book is more accessible and practical than Knuth and CLRS, and more thorough than Skiena and such. Everything about this book is beautiful, not the least of which is the visualization of sort algorithms. There is also abundant tree related topics, which is quite refreshing and useful, in hindsight, because trees, other than balanced binary ones, are generally ignored in most books where graph steals the limelight.
There are two volumes that make this book, first having Parts 1 to 4, dealing with fundamentals, DS, sort and search, and the second, Part 5, dealing exclusively with graphs. I have only the first one and the opinion is based on that. There is a newer Java version, which includes the graph topics, and is about 250 pages longer than the first volume. However, based on the preview, it seems almost first 120 pages are dedicated to the Java language and OOP, unlike the C++ version which starts directly with the subject, so not sure how much of the contents are removed to make room, and how the quality differs.
Kleinberg and Tardos is also friendly, informal, insightful, and even heuristic to an extent, but opposite of the others, so IMO its much better and very different than Skiena's, though it isn't a quick read before an exam or an interview sort of a book, which is what Skiena's can be described as. Browse K&T to see what I mean.
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.