Today I needed to recommend a book that would treat the ideas and concepts behind good programming. I remembered in college that I had taken a languages course, I looked on my bookshelf, and found this text. I started to re-read it, and found that the ideas and concepts that are covered in this book are still relevant and well treated for today's computing landscape. I only have the 2nd edition so it does not have a treatment of C or C++, but the ideas that it conveyes are still the most important aspect of learning about computer languages. A language you know does not help you with designing good code, however concepts of computer languages will help you no matter what language you code. Inside the cover flap reads a list of principles that are covered throughout the book in each section. Some of them are: Abstraction, Automation, Infomation hiding, Orthogonality, Portability, etc. I would recommend this book to anyone who wanted to learn how to *design* quality software from the ground up. This book will not teach you a language, this book will teach you how to design good code.