I would love to hear your thoughts on my recent book. I had no desire to write yet another “Programming in X” text, and in fact decry the tendency of introductions to focus on a specific language and its features rather than the synthetic skill of programming. Somewhat cheekily, I wrote in the Preface:
In elementary physics, one doesn't start learning mechanics by studying one or another brand of springs and pulleys; rather, one learns Newton's Laws and how to apply them in arbitrary situations. Similarly, in this book, I eschew the study of any particular brand of programming language, opting instead to focus on fundamental laws formulated as rules of program composition.
I ended up with Principled Programming: Introduction to Coding in Any Imperative Language (https://www.cs.cornell.edu/info/people/tt/Principled_Programming.html). The concepts I bring to the fore in lieu of language details include: specifications and their implementations, top-down programming and stepwise refinement, program state and state transitions, preconditions and postconditions, loop and data invariants, termination, practical programming precepts, and simple patterns.Thanking you in advance.