Are there books suitable for SELF STUDY that don't water things down but actually teach programming in any language? By not watering things down, I mean that the student doesn't just learn a bunch of libraries or frameworks and after finishing the book doesn't know how to solve problems on own.
> For twenty years, the lessons from The Pragmatic Programmer have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology.
I’m not sure whether it’s “beginner” enough for you, but it is certainly general and foundational.
[1]: https://pragprog.com/titles/tpp20/the-pragmatic-programmer-2...
Almost all books on those two subjects are suitable for self-study.
The only ones which aren't, are those deeply into the theory rather than the practice of the subjects. Those can usually be ascertained because they have quite a bit of mathematical formulae sprinkled throughout the text. Those books require a background in mathematics*, and so may not be as useful to you as others which look at the practice of being a programmer and problem-solver.
* An example of this may be (say) the mathematics of comparing various sorting methods. As a programmer, you probably merely need to know that a Bubble Sort is not as efficient as a Merge Sort.