
The C++ Programming tome, written by the father of C++ himself, Bjarne Stroustrup. The premier book on the subject of C++ Programming.
> "He begins working calculus problems in his head as soon as he awakens. He did calculus while driving in his car, while sitting in the living room, and while lying in bed at night."
God, I love this quote. It describes me to a T in my 20s (except replace "calculus" with "programming"). Everyone that I dated complained similarly. I used to drag that Bjarne Stroustrup tome "The C++ Programming Language" everywhere I went. I couldn't get enough of that C++ bible at the time. His writing style really helped to open my mind to become a better programmer.2) Software Architecture with C++ by Adrian Ostrowski and Piotr Gaczkowski. - Gives the overall picture of how to use C++ plus relevant modern tools as a complete development system.
3) The C++ Programming Language by Bjarne Stroustrup. - The bible/reference with programming techniques for the language.
Learning C++ is not difficult and don't let the size of the language intimidate you. Survey the different ways of programming in C++ i.e. Imperative/Object-Oriented/Generic/Meta-programming and use them as needed in your project without trying to master everything; that will only happen over time as you gain more experience.
* The C++ Programming Language, 4th edition by Bjarne Stroustrup - The biggest change in the language was the introduction of C++11 and this book covers it well.
* A Tour of C++, 3rd edition by Bjarne Stroustrup - Summary of all changes upto C++20.
* Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20 by Adrian Ostrowski et.al. - More like a broad survey rather than in-depth but covers development in a "modern ecosystem".
* Modern C++ Programming Cookbook: Master C++ core language and standard library features, with over 100 recipes, updated to C++20, 2nd Edition by Marius Bancila - A series of articles one each for a language feature.
My understanding of Rust audio programming is that it is possible, but still fairly early days... something like JUCE provides a huge amount out of the box that you might not initially appreciate, e.g. it abstracts away the details of all the different plugin formats and all the different platform's audio APIs, and it has been around for long enough that you can be confident it does it well.
I'm really curious about Rust as it feels like a nicer language to work with than C++, but if you are serious about building professional audio software I personally don't think you can avoid C++ so you might as well embrace it.
I have a feeling that with Rust, you'd spend half your time figuring out how to do stuff that JUCE does out of the box, which is fine if you are interested in the figuring out part, but ultimately it might not help you focus on the actual audio programming.
Also there are a tonne of resources on C++ and especially JUCE out there, never underestimate the power of being able to Google for your answers!
Edit: on the C++ side, I found Bjarne Stroustrup's "C++ Programming Language" book quite a good way to understand the fundamentals. To be honest, I usually learn new languages just by doing and Googling, but with C++ it quickly became apparent after the 100th mystery crash that I'd actually have to understand what was going on under the hood with memory etc!
There are others for C++, but this would be a good start.
As for C, "Extreme C" has nice up to day content.
And in both cases, "Secure Coding in C and C++",
https://www.amazon.com/Secure-Coding-2nd-Software-Engineerin...
A mentor is useful, because after reading a book like K&R, you know how to write syntactically-correct lines of C, lines that actually do what you think they do, but you don't know how to program in C. You can write lines of C, but you don't know how to write pages of C without making a mess of it. That's where a mentor helps - that next level past syntax.