You’ll find that books that are language-agnostic like that are few and far between. Why? Because the best way to teach computer programming theory, is to teach computer programming. If you’re looking for a language that’s not hard to learn, so you can focus on the design aspect of what you’re doing, then my recommendation would be to choose a higher-level language, like Java, Python, or Lisp. If you’re not after programming specifically, then you might also consider intro engineering books, as they’ll cover the same types of concepts, engineers basically being professional problem-solvers. Look for the type that are used as introductory-level college texts.
If you’re looking to ensure you produce great code, a great language agnostic(ish) tool to use is the design pattern. These are structures defined to help solve common programming issues, and are a great way to help ensure good design of your application.
The definitive book on this is “Design Patterns: Elements of Reusable Object-Oriented Software”, published in 1994 (Gamma et al.), however this obviously assumes an object orientated language like Java/C++/C#.