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 WallTopics 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
The book is especially awesome for anyone trying to just get into programming. The code examples throughout are relatively incomprehensible, but it is easy enough to follow along, as the principles give a basic overview of what is going on. You get a good sense of how programs work, the type of thinking that goes into developing software, and the overall ethic of programming and computer science. I would recommend this to anyone utterly confused at the world of programming.
Every beginner coder should read this book to gain a fundamental understanding of computer programming, programming languages, basic data structures, algorithms, and internet programming.
I thought I would learn new information, but it covers the basics of programming languages; things I already know through learning Java.
That said, it is a good read, I think, for those who would like to have a general idea about how programming lgs work in general. The author simplifies the concepts and makes them easy to understand.