

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Guam.
"Introduces computer programming using the Python programming language"--Provided by publisher. Review: I've failed so many times at trying to learn computer programming before. - I'm really only a few chapters in so far, but I felt the need to express my unanswered frustrations and how this book answered them. I've always wanted to learn computer programming since I was a kid, back in the days when computers were the scary things they had in school libraries that adults were scared of getting too close to. I even bought a book on C when I was young enough to only require one digit in my age, and I didn't even own a computer and probably had only used one a few dozen times. I have throughout my life bought, attempted to learn, and failed miserably at learning programming many times. Each time I get terribly stuck and confused. I curse the writers of these books who advertise "programming for the absolute beginner" who I seem so disconnected to. I figured it was me, that maybe I wasn't smart enough, or that for some reason I just could never learn how to do cool stuff with a computer. In my most recent spate I bought another book on computer programming - also on Python. While I did learn to do some stuff, there was still this weird disconnect. But this book is different and now I finally realize what I had been struggling with: the author *actually explains* what each programming concept does. This sounds silly - of course all programming books do that! But you'd be wrong. Apparently understanding what something like "for i in range(10):" does and what each part is for and called is in the realm of 'computer science.' It sounds stupid, but it took me a while in my first couple of attempts at learning programming in the early days, to realize (because no one actually said it), that a computer program is executed from top to bottom, left to right. A program is more like a player piano. So in the first couple of chapters I was delighted that the author actually says that. So I guess the difference between this book and all the others I've read is that even if the other books say it's for someone who has never programmed before, they make a lot of assumptions about what you know and what you should have figured out from the context. But this book actually explains each concept as it comes up. In fact, this book is more explanation than code. Which is good because when you're starting out you're full of funny concepts about how programming might work. You don't necessarily understand that when you write "x = 2 + y" and then later change the value of y, that won't actually change the value of x. And the reason you don't know that is because the author didn't bother explaining to you exactly how variables work in Python. So for learning Python, this is a great resource and exactly what I needed after two decades of on-and-off spates or trying to learn programming. As for learning Computer Science? I guess I don't know a lot about it, but I don't think this would be a great resource. This book doesn't look like it explains binary code to you, or how transistors work, haw NAND and OR circuits work, or any of those sorts of things. There is some of that - it briefly explains the difference between hardware and software, CPU, RAM, etc. But really it's fairly superficial coverage. So the book really should be called Python Programming: A Concept-Based Approach. If I took a class called "an introduction to programming" I would be extremely happy if they assigned this book, but if the class was called "an introduction to computer science" I'd feel as if the class was misrepresented. Also, I'd also say don't buy this book if you already have a good grounding in some other computer programming language. I think one of those many other books that I struggled with would be a much better fit for you. You won't be lost in poorly defined terminology or zip past what a thing does and focus mostly just on how Python does it. This book will spend way too much time explaining those things you've already figured out by now. If know C++ or Java or whatever, you probably already know the difference between a float and an integer and at the most just need a refresher. Anyway, I didn't see any other reviews mention these points and I really am glad I found this book. So hopefully you guys will understand better what this book is really all about, which the description does a poor job of doing, in my opinion. Review: Great For The Beginner! - If I could describe this book in one word it would be: Perfect. I am completely new to the world of computer science and programming (also a sophomore in high school), and i have to say this book has been perfect for starting out in the world of computer science. I have decide that for this review i would like to go over a few of the great features and prerequesites of this book. Lets start with some of the great features. This book has a very logical and easy to understand approach to computer science, it first talks a little bit about how programs work and the program building process, then it slowly begins to teach the reader how to program in python and about the elements of programs. I found this to be great as well because even though the first chapter does not teach very much about programming, it still lets the reader get their feet wet by getting to build some programs and experiment with them. The author also does a very great job of explaining difficult concepts. The best feature of this book that allows for true comprehension of the material being learned is at the end of every chapter the book provides multiple types of quizzes and interactive activities. This section of each chapter starts out with 10 true or false questions, then it moves on to 10 multiple choice questions, after that it goes into essay questions where it has the reader design and change programs for the sake of experimentation, and allows the reader to make predictions and see if they are correct. I found this part essential to truly understanding the elements of programming, and also very challenging at times. The last part of this section is the programming exercises. And these i also found essential to true comprehension of the material in the chapter. It makes you take programs that you designed earlier in the chapter, and challenges you to change elements within the program to make it more efficient, or more user friendly, or even just to challenge the reader. These exercises i found very difficult as well at times but also very essential to my understanding of programming. Now for any prerequisites that people may be wondering about. I would first off strongly suggest that the reader have completed algebra 1 or 2 because a lot of the programs you will make involve a lot of algebra, and although you can just copy what the book says without understanding what your actually doing, It is best that the reader understands what is trying to be accomplished in these programs. The other prerequisite is that the reader have a love for puzzles and problem solving, because this book gives you many difficult to solve problems in those end-of-chapter quizzes. Other Than that, this is an absolutely phenomenal book for programmers with zero experience and I strongly suggest that anybody truly interested in the nature of computer programming, and problem solving, please pick up this book, because you wont be disappointed.
| Best Sellers Rank | #310,695 in Books ( See Top 100 in Books ) #132 in Computer Programming Languages #170 in Introductory & Beginning Programming #242 in Python Programming |
| Customer Reviews | 4.5 out of 5 stars 280 Reviews |
R**A
I've failed so many times at trying to learn computer programming before.
I'm really only a few chapters in so far, but I felt the need to express my unanswered frustrations and how this book answered them. I've always wanted to learn computer programming since I was a kid, back in the days when computers were the scary things they had in school libraries that adults were scared of getting too close to. I even bought a book on C when I was young enough to only require one digit in my age, and I didn't even own a computer and probably had only used one a few dozen times. I have throughout my life bought, attempted to learn, and failed miserably at learning programming many times. Each time I get terribly stuck and confused. I curse the writers of these books who advertise "programming for the absolute beginner" who I seem so disconnected to. I figured it was me, that maybe I wasn't smart enough, or that for some reason I just could never learn how to do cool stuff with a computer. In my most recent spate I bought another book on computer programming - also on Python. While I did learn to do some stuff, there was still this weird disconnect. But this book is different and now I finally realize what I had been struggling with: the author *actually explains* what each programming concept does. This sounds silly - of course all programming books do that! But you'd be wrong. Apparently understanding what something like "for i in range(10):" does and what each part is for and called is in the realm of 'computer science.' It sounds stupid, but it took me a while in my first couple of attempts at learning programming in the early days, to realize (because no one actually said it), that a computer program is executed from top to bottom, left to right. A program is more like a player piano. So in the first couple of chapters I was delighted that the author actually says that. So I guess the difference between this book and all the others I've read is that even if the other books say it's for someone who has never programmed before, they make a lot of assumptions about what you know and what you should have figured out from the context. But this book actually explains each concept as it comes up. In fact, this book is more explanation than code. Which is good because when you're starting out you're full of funny concepts about how programming might work. You don't necessarily understand that when you write "x = 2 + y" and then later change the value of y, that won't actually change the value of x. And the reason you don't know that is because the author didn't bother explaining to you exactly how variables work in Python. So for learning Python, this is a great resource and exactly what I needed after two decades of on-and-off spates or trying to learn programming. As for learning Computer Science? I guess I don't know a lot about it, but I don't think this would be a great resource. This book doesn't look like it explains binary code to you, or how transistors work, haw NAND and OR circuits work, or any of those sorts of things. There is some of that - it briefly explains the difference between hardware and software, CPU, RAM, etc. But really it's fairly superficial coverage. So the book really should be called Python Programming: A Concept-Based Approach. If I took a class called "an introduction to programming" I would be extremely happy if they assigned this book, but if the class was called "an introduction to computer science" I'd feel as if the class was misrepresented. Also, I'd also say don't buy this book if you already have a good grounding in some other computer programming language. I think one of those many other books that I struggled with would be a much better fit for you. You won't be lost in poorly defined terminology or zip past what a thing does and focus mostly just on how Python does it. This book will spend way too much time explaining those things you've already figured out by now. If know C++ or Java or whatever, you probably already know the difference between a float and an integer and at the most just need a refresher. Anyway, I didn't see any other reviews mention these points and I really am glad I found this book. So hopefully you guys will understand better what this book is really all about, which the description does a poor job of doing, in my opinion.
J**K
Great For The Beginner!
If I could describe this book in one word it would be: Perfect. I am completely new to the world of computer science and programming (also a sophomore in high school), and i have to say this book has been perfect for starting out in the world of computer science. I have decide that for this review i would like to go over a few of the great features and prerequesites of this book. Lets start with some of the great features. This book has a very logical and easy to understand approach to computer science, it first talks a little bit about how programs work and the program building process, then it slowly begins to teach the reader how to program in python and about the elements of programs. I found this to be great as well because even though the first chapter does not teach very much about programming, it still lets the reader get their feet wet by getting to build some programs and experiment with them. The author also does a very great job of explaining difficult concepts. The best feature of this book that allows for true comprehension of the material being learned is at the end of every chapter the book provides multiple types of quizzes and interactive activities. This section of each chapter starts out with 10 true or false questions, then it moves on to 10 multiple choice questions, after that it goes into essay questions where it has the reader design and change programs for the sake of experimentation, and allows the reader to make predictions and see if they are correct. I found this part essential to truly understanding the elements of programming, and also very challenging at times. The last part of this section is the programming exercises. And these i also found essential to true comprehension of the material in the chapter. It makes you take programs that you designed earlier in the chapter, and challenges you to change elements within the program to make it more efficient, or more user friendly, or even just to challenge the reader. These exercises i found very difficult as well at times but also very essential to my understanding of programming. Now for any prerequisites that people may be wondering about. I would first off strongly suggest that the reader have completed algebra 1 or 2 because a lot of the programs you will make involve a lot of algebra, and although you can just copy what the book says without understanding what your actually doing, It is best that the reader understands what is trying to be accomplished in these programs. The other prerequisite is that the reader have a love for puzzles and problem solving, because this book gives you many difficult to solve problems in those end-of-chapter quizzes. Other Than that, this is an absolutely phenomenal book for programmers with zero experience and I strongly suggest that anybody truly interested in the nature of computer programming, and problem solving, please pick up this book, because you wont be disappointed.
J**N
Decent intro text, but ignore the childish fascination
Decent enough, with a few caveats. As others have noted: this is not a manual of programming correctly; it's a concepts guide. I prefer Knuth's method of writing something correct and marking it "You are not meant to understand this," and I also understand why he called malloc() without checking for a NULL return all the time (incorrect behavior--never do this). If you're just getting into computer science or trying to expand your knowledge, you should definitely understand that working programs are not necessarily correct programs, and someone may hold grievances about seemingly-good code for any number of valid reasons related to maintainability, performance, or predictability in unpredicted circumstances (which means "Security"). Much of the time, this involves the unnecessary throwing of tantrums, exceptions, and chairs; this is unfortunate, and you should try to determine the validity of the complaint even if the person raising it is busy calling you the world's dumbest programmer instead of explaining the problem clearly. Second, the author quickly pulls the talent fallacy: he states that "not everyone has the talent to become a first-class programmer." That is false. All humans have the same reasoning facilities; some may be less-developed based on usage, and the brain will restructure itself to minimize energy consumption in the most common behaviors. Interest and motivation reduce energy consumption: people who are interested in programming are entertaining themselves by learning, doing, and improving; interest is learned, varied, and mutable by reframing. Techniques of study (e.g. SQW3R, OK4R) and skill development (e.g. Deliberate Practice) maximize learning while minimizing time and effort. Putting in the time and effort by skilled methods of learning will quickly develop anyone into a first-class programmer; the question is whether the effort is personally worth it to your interests--while it might be possible, you might instead be much happier studying graphic design and becoming a concept artist, writer, aerospace engineer, or something else. The author is also a fascinated child who thinks computers are magic. He pulls the butterfly fallacy on the 19th page, describing a situation in which meteorologists would have to know the precise location and flapping force of every butterfly, as well as every ant, every shiny object, every bit of glass, and so forth, in China to figure out if it's going to rain tomorrow in Boston. A butterfly flapping its wings has an impact at 1cm nine million times as significant as the impact at 3 meters; it's not going to influence whether there is or is not a tornado anywhere at any time. This book is good material for a Computer Science 201 course. If you have trouble, review your study and practice methods and, especially, your goals. If you're simply not interested in computer science or programming, you can develop surface knowledge with little effort, and a strong skill set by tormenting yourself with dull and boring rote study; if you're interested in the topic, then the limits you encounter will largely be study method. Thinking you just don't have what it takes and can't learn will quickly discourage you from learning and place you into the unmotivated group, and your brain will flinch away from the topic because it brings pain; failure only means you're not looking at the puzzle from the correct angle, not that you can't do it.
R**E
Great Python Book and Wonderful Intro to Comp Sci
I have plowed and plodded through too many programming books to list. This one is not just a wonderful Python tutorial, but a gentle introduction to comp sci. The author's style is clear and kept this reader's interest throughout. The exercises at the end of each chapter are illustrative of the concepts presented in that chapter and solidify how to apply them. He also brings to the subject something rare in the field, humor. K&R had their foo and bar, but sadly, that tradition seemed to die. Dr. Zelle has revived it. If you want to learn Python I highly recommend this book.
O**R
Best Introduction to Python & Computer Science Book I've Read
I'm a professional programmer but wanted to learn Python and teach it in classes. I tried several other books, but they often were too complicated, jumping into complex topics like Unicode, list comprehension, and full blown graphics packages before you even understood the basics. This book won't take you very far (binary search is about as complicated as it gets), but it's excellent for a first computer science class. It definitely errs on being too simple, but as a true introductory class in computer science for non majors it works wonderfully. He introduces each concept well yet doesn't go into 100% of all the options that other books do which just bogs you down. This is definitely not a reference manual. It's in true textbook format with chapter summaries, questions, and assignments. I often found that the assignments could really use more sophisticated concepts he wasn't teaching yet so I used knowledge from other books to complete assignments without having to jump through hoops (e.g. he doesn't show you how to format multiple items into a single print function until late in the book). Still, basic students can complete the assignments without the unneeded complexity while more advanced students can go the extra mile. Some reviewers correctly point out his usage of eval is dangerous. I even found a response by the author on Stack Overflow which agrees with the risks yet defends this as an appropriate usage for first time students. It's a debatable issue, but no reason to toss the book aside - a lesson for the instructor to pass on as appropriate. I hope in his next edition he starts with eval but later switches to a safer mechanism. As an aside, the first language I learned in college was LISP and unbelievably, it lives on in Python. I read online that if you remove the outermost parentheses of LISP and change a few things here & there you can actually convert between the two! LISP is such an unknown language and yet Python has such success... very surprising.
F**E
Book sets you up for failure unless you heed my words
Not terrible but the author clearly doesn't (or didn't at the time of publication) understand the eval() function when teaching about input. It's the worst possible practice you can do because it opens you up to security holes if you ever use what was taught in a real-world application. Here is what the best practice should look like for future reference: variable=input("prompt: ") -- Is for inputting strings of text. Example: name=input("Input your name: ") would ask for a name and receive input as a string of characters and store the value into the variable named 'name.' variable=int(input("prompt: ")) -- is for inputting integers. Example: age=int(input("Enter your age in whole years: ")) would ask for your age and receive input as a integer value and store the value into the variable named 'age.' variable=float(input("prompt: ")) -- is for inputting floating point decimal values. Example: temp=float(input("Enter your temperature: ")) would ask for your temperature and receive it as a floating point decimal value and store the value into the variable named 'temp.' Also, I just finished the first chapter and cannot believe it goes into chaos functions and other confusing bits for an introduction to computer science book that soon. The high reviews are certainly from beginners who don't understand what is wrong with this book. It's not terrible but there are very elementary mistakes that should have been corrected prior to publication. As it stands, I'm glad I have an internet connection. Otherwise, I would have had no idea what the eval() function did and why it was so dangerous. Otherwise, this seems to be a very good book as an intro to CS and I will update my review as I work my way through it.
R**T
Amazing book, the one that got my foot into the door to the world of computer science and coding.
I am partially mentally handicapped though this is one of the only times I'll admit to it publicly. I had tried to learn to program for years, and it never seemed to click. I had finally stopped trying even though it had been one of my dreams, I figured that I just was not going to be capable of it. I then one day resolved that no matter how many years it takes me I WILL learn, that I can not allow my self to give up something I dreamed of doing just because It did not seem possible for me. I bought this book afraid it would end up like all the others that I had slammed my head into and had got no where with. I WAS WRONG! Through this book and python I finally learned to code, it all started to click together. It was by no means easy I put my all into tearing this book apart, skipping around as needed till there was something I could grasp, however this book gave me that. Through my resolve, this amazing book, and the wonderful language of python I am finally coding all sorts of things. This book just looking at it almost brings me to tears it allowed me to put my foot in the door for something Ive only dreamed about and for years failed at doing. Its by no means a golden bullet but with enough willpower, this book will allow many people into the world of computer science and the art of coding. If this doesn't work for you, don't give up! While this was the right book for me another book may be the right one for you, just keep at with your all.
S**O
wonderful resource for the burgeoning programmer
I've attempted many times to learn some programming but was instantly daunted by how some courses and books immediately dive you into seemingly impossible challenges. I've been using John Zelle's book in addition to Python Crash Course (No Starch Press) and the two books have given me a great introduction to the world of Python and programming. John Zelle introduces you to computer science concepts while keeping it in the context of programming. It is a very text heavy book but in no way is the author verbose. He succinctly explains concepts or describes the inner workings of the provided code without getting bogged down in theory. The programs are interesting and provide a window into the practical application of the Python language. You won't be writing loops just for the sake of writing loops. The author took great care to ensure that the example topics were relatable to the real world. Programming exercises are provided at the end of each chapter and vary in complexity so you can always feel some confidence that you learned something after completing a few of the exercises. Even the exercises that I feel I couldn't even attempt at least were thought-provoking. I highly recommend this book. Not once did I feel frustrated or have to research on the internet myself to figure out what the author was trying to explain. This book is a wonderful resource for the burgeoning programmer.
J**.
Great book to use when learning python
Great book to use when learning python. It has good problems and great questions for test resources. I used this to learn python so i could teach it in a high school setting. Great job John
F**R
or the other books are dry lists of functions without easily understandable examples that are hard to focus on
I've tried many, many times to learn programming before. Online courses, other books, etc. - none have held my interest; either the online courses move too fast or too slow, or the other books are dry lists of functions without easily understandable examples that are hard to focus on. This book uses well written text and clear, concise examples that follow between chapters (modifying them as you learn more). The questions and problems at the end of each chapter are extremely well-written and attempting them is the key to actually learning what you've just read. The lack of an 'answers' section at the back is, in my opinion, the best thing about it. Especially if you are learning on your own from home. Also functions as a reference book thanks to the clear and detailed contents/index pages. Highly recommended.
J**N
Great as an absolute beginners book.
If you don't know anything about programming, this book is great. Personally, I already had a decent grasp on C and so this book just gave me a simple translation for most commands. It took up until the pi specific information near the end of the book to feel like I was really learning something. Also, a couple of the examples, including the hangman example in the first couple of , don't actually function as written, even if copied directly off of the website provided in the book. That is disappointing for someone who has no idea what might be wrong.
V**E
Probably the only Python book you'll need.
An excellent introduction to the language, aimed at people who have never programmed before as much as those transferring from another language. The early chapters cover the fundamentals of programming in a comprehensive manner and will be enough to get most people started. The later chapters then go on to cover the more esoteric aspects of the language (graphics, data transfer, etc.). I initially got into the language via tutorials on the internet, but there's really no substitute for having a good reference work - with examples - to hand.
J**X
University
Used a lot during the first year of Uni, and also been useful so far for this year as well.
Trustpilot
1 month ago
1 month ago