Coming from no less a person than Dijkstra, this book, though dated takes programming to a different level.
It blesses the discipline of programming with the mathematical formalism and begins to look at it as a piece of mathematics.
I picked this book while doing my CS undergraduate, and made me fall in love with CS, all over again.
It does NOT however talk much about programming techniques or methods! It looks at programs from as formal a view point as possible and builds a framework for constructing 'correct' programs..or more correctly a framework for 'proving the correctness' of a program. It takes you to the point of considering programs as poetry..
Its difficult to contemplate the application of the thoeries developed here into practice, though a lot of it is used in some form or the other, but nonetheless it makes an excellent reading.
I recommend it to anybody seriously interested in computer science .