Dan Appleman
Imagine, for a moment, a guy. This guy, about 40 years old, has worked all of his life in a job that doesn't require much knowledge of computers, certainly not of how to write software. Now, imagine that our guy decides to change career paths and learn computer programming. He goes and buys a book about a programming language, perhaps one that promotes itself as elementary. The book presents our hapless guy with recipes that he can follow, it's true, but mostly it confuses him with talk of APIs, linked lists, hashes, and a mess of other stuff that he doesn't understand, really. "I can make it all work by following directions," our guy implores into the Void. "But I don't understand what I'm doing." This guy needs
How Computer Programming Works.
In this book, Daniel Appleman sets out to explain computer programming at a conceptual level, and succeeds admirably. Appleman ignores the peculiar characteristics of specific programming languages (leaving them for specialized books), and instead uses fantastic color illustrations and lucid text to explain what goes unsaid among professional programmers. He also uses pseudocode--a sort of standardized, generic programming language--and examples in BASIC to back up his points. Although Appleman approaches programming mainly from a procedural angle (the book would be better with more coverage of object-oriented programming techniques, which fundamentally are different, in many cases), the contents of this book will suit any beginning student of programming and computer science--our guy included. --David Wall
Topics covered:
- Aspects of computer programming that you must understand in order to write code, but that generally are not explained conceptually in language-specific programming books
- Variables
- Loops
- Pointers
- Arrays
- Code blocks
- Stacks
- Trees
- Other fundamental building blocks
- Critical algorithms, like the bubble sort
- Getting from specification to finished product
- Network programming
1 "An illustration is worth a thousand words"
Not when the illustrations are as poorly drawn and pointless as these. eg people staring at computers, sweeping arrows with colored blends, or pointing hands (proving, yes they are hard to draw!). I can however follow the reasoning.
This is yet another programmer who has trouble explaining the jargon but has noticed books that do a good job of being user friendly, have pictures. I found this book to be just like those inane PowerPoint presentations that middle executives think expresses the right side of their brain. A right side that seems to be made of cheap PC clip art.
It doesn't help every time the book gets to a core idea, that it glosses over it as if it is obvious, without explaining the detail. Nor that on top of the meaningless graphics, the book is full of DTP blunders that obviously nobody has checked. Such as text set in fonts with mismatching encodings, resulting in strange accented characters being substituted for whatever the author intended.
Why do programmers have such difficulty producing clear, sequential, logical and carefully crafted expression, that has been checked for errors?
I thought that was their job.
2 fundamental concepts on a silver tray
A good book does not need to be complex. This one does a great job. You could read this book during one hour and learn more than in one semester of COS111. It is so simple. Comcepts are the most important thing to learn. They give meaning to programing. Without concepts, programing becomes meaningless.
3 As clear as it gets!
This book explains the "magic" of computer programming as clearly as can be done. Outstanding use of graphics to illustrate difficult concepts. Concrete analogies to "real world" objects make the virtual world of programming much easier to wrap your mind around.
Outstanding introduction for middle-school, high school, even beginning college level students. Very clearly written, not a lot of unnecessary words - just the right level of explanation to get you thinking in the right direction and to see what the graphics are illustrating. My 13-year old loved it, and finally understands a bit more of what his Dad does all day. I've been doing this for 15 years -- and even I got a better grasp of some things.
Highly recommended.
4 on my list of top 10 computer science books
this book is a fine introduction to computing. imagine a book with cogent, well-illustrated explanations of topics like (1) what a variable is (2) linked lists (3) pointers....
...that also discussed the plusses and minusses of various computer languages....
...and that was useful to a professional programmer, and entertaining for his 13-year-old kid.
that's this book. i occasionally teach introductory programming classes, and i've used this book as a source of handouts and overheads (within the bounds of "fair use" and the copyright laws, of course. :-) ) in my early days as a developer, i also pulled it off of the shelf more than once when i needed a quick graphical metaphor for something that i was trying to understand.
5 Good intro to computer programming with lots of pictures
I bought this book for a newphew in high school interested in computer programming. It is a good introduction with excellent diagrams and many examples, mostly in Visual Basic. Even an experienced programmer would enjoy the book.