52 of 52 people found the following review helpful:
5.0 out of 5 stars
A Recipe for Programming, July 5, 2006
This review is from: How to Design Programs: An Introduction to Programming and Computing (Hardcover)
This book opened my eyes. I'd finished a Ph.D. in computer science, and had a decent exposure to quite a few programming languages and paradigms, before coming across this book. I was surprised to start working through this introductory book, and find myself learning new things! The book transformed my approach to programming.
From page one, HtDP starts talking about good program design, and gives a methodical approach. Until this, I'd always thought programming books were "here are ten small example programs; go write ten more." That's hardly teaching. But HtDP builds up a straightforward design recipe, to guide programs along. If I get stuck or have a mistake in my program, 90% of the time I realize it's because I strayed from the book's recipe. The approach is language-independent, although some programming environments make it much easier to implement the design recipe; the book provides links to a good (free) Scheme environment, which it uses for its code examples too. (I've come to use that environment day-to-day). My code--in any language--has become much more robust, and when I do have a bug I usually locate it early, thanks to this book.
In addition, HtDP made me think about things I'd taken for granted: How is assignment to a variable fundamentally different than assignment to a structure's field? Even, *why* do I use assignment statements in certain situations, instead of choosing a functional approach? How often do my programs actually need the efficiency of imprecise floating-point arithmetic, vs using bignums which totally liberate me from numerical inaccuracy?
Although the text is available on line, I cherish my hardcopy. This is a book to first learn programming from, and one to revisit every five years.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
36 of 37 people found the following review helpful:
5.0 out of 5 stars
This is "the book" on programming, April 28, 2001
By A Customer
This review is from: How to Design Programs: An Introduction to Programming and Computing (Hardcover)
This book is going to be a classic. Unlike other introductory books on programming, it focuses on ideas not examples. It teaches students to organize their thoughts. It emphasizes thinking through problems. It pushes students to formulate concise comments, illustrate them with concrete examples, and test their programs systematically and automatically. I have not seen anything like this before. If you want to know the "why" and not just play with examples, buy this book! Note: It uses Scheme, which isn't widely used in industry (yet?) but don't let this deter you. The language is free, and it is very simple.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
76 of 84 people found the following review helpful:
5.0 out of 5 stars
Should be read by Everyone who wants to program., September 27, 2001
This review is from: How to Design Programs: An Introduction to Programming and Computing (Hardcover)
Have you ever looked at other people's codes and said to yourself something like "No... this isn't the way it should be written!". Or, worst yet, have you ever been asked by someone who wants you to read his/her codes and tell him/her what does it do?
Both things happened quite often, though.
The problems are mainly because they don't know how to "design" their programs properly. Being able to progam doesn't mean being to design/organize a good code at all. And being good at finding/inventing algorithms for problem solving doesn't mean that either.
One another thing, I (maybe just only me, I don't know) think that C shouldn't be taught as the first language (at least, not anymore). This is mainly because, in C, you can hardly express yourself. Also, C codes look cryptic to those new to programming. And you must know a lot, and practice a lot, (that takes a lot of time, friend) to be able to express what you want.
And also, several times, I saw many people just playing around with the * and & (well, the pointer-dereferencing, and address-taking symbol in C/C++), adding one more, deleting one off, to see which will make their programs work. (Sometime, it just works by miracle...)
This book, using Scheme (a modern dialect of Lisp) as the language of choice. I, personally, agree of choosing it. Scheme was designed in the way such that programmers can focus on what they want to express, rather than imprementation details. From my own experience, I became a better programmer after learning it. (I was already a C++ programmer by that time. I just have to use Lisp on my study/research).
One thing that I like is that, it focused on how to "design" programs, not just how to program, while college classes are mostly focused on how to write programs. No matter how students write their codes, if it could run, then it is fine.
Then, I think, a lot of people do have ability to program, a lot are good at it. However, the number of people who knows how to design programs are much lesser. And this would result in something like those silly examples at the beginning of this review. Therefore, this book had emphasized on quite an important thing.
And the last thing to say about this one is: MIT Press' textbooks are very high-quality, and this one is not an exception. It is very easy to read and to understand. And, even the html version is available at the book's official homepage, it is nice to have the printed version.
How to "design" programs is very important for every CS major people, and is important to everyone else in general (to program your "everyday life schedule", etc). Whether you want to become a professional programmer (write codes for living, etc) or not.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No