I have started a new endeavor of reading the book that give title to this post, Structure and Interpretation of Computer Program. I only have read thought the foreword, by Allan J. Perlis, and the preface. I'm already impressed.
The Foreword - Computer Programs and programing
Allan starts with and excellent summary on what is a program :
"Every computer program is a model, hatched in the mind, of a real mental process."
He goes on on explaining how the program evolves as we learn about the subject of our program. And the promises that this books teaches the small idioms, an arsenal of standard programing structures, that we will use to create larger systems.
Preface - Programing is about Expressing Ideas.
The two major concerns tackled by the book:
- A program is about expressing ideas, thus programs must be written for people to read, and only incidentally for machines to execute.
- Programing is not about the language the syntax or any particular language construct. But about the techniques used to control the intellectual complexity of large software system.
The final promises of the book is the student should have "a good feels for the elements of style an the aesthetics of programming". What part of a big system to read, and what part not to read, what layer of abstraction needs to be understood, in order to work with such a system.
Final thought - Programing Style.
My programing style has been highly influenced by Kent Beck, Martin Fowler, Bertrand Meyer, Uncle Bob and Rod Johnson with their impressive work from Implementation Patterns, Refactoring: Improving the Design of Existing Code, Object-Oriented Software Construction, Aguile software development and the spring source code, respectively.
I got interested in this book because of Clojure and functional programming. Now I have a higher expectation. I'm guessing that, with this book, my programming style will evolve once more. I cant hardly wait to get to end of the book.