The mind of Bjarne Stroustrup through the thinking and design style of the C++ programming language has been of critical importance for my own thinking and practice of programming. Yes, he is a philosopher of computer programming, an artistic programmer (as conveyed in Artistic programming as theory formulation).
Newcomers to computer programming and experts alike could benefit from Programming: Principles and Practice Using C++ book, as a variety of concepts and exercises are covered, including historical perspectives. Also, seasoned programmers could find many hints as the book is an instance of how an expert explains and teaches to newcomers.
As a reading suggestion: in section 1.6 Ideals for programmers, a general programming process is explained and the importance of how testing, analysis, design and programming are related is noticed. So, for a perhaps better reading, I suggest the sixth paragraph which says:
“We can describe the process of developing a program as having four stages:”
would be clearer if read this way:
“We can describe the process of developing a program as having four activities:”