

🐍 Unlock your coding potential with the Python guide that speaks your brain’s language!
Head First Programming offers a research-driven, beginner-friendly introduction to programming using Python. Designed to engage your brain actively, it guides you through practical app development and foundational concepts, making it ideal for learners of all ages and backgrounds seeking a confident start in coding.



















| Best Sellers Rank | #621,047 in Books ( See Top 100 in Books ) #146 in Object-Oriented Design #292 in Introductory & Beginning Programming #459 in Python Programming |
| Customer Reviews | 4.0 out of 5 stars 109 Reviews |
E**T
Excellent concepts, great place to start
If you want a slow intro to computer science concepts involving programming, this is an outstanding place to start. Python is friendly, and like others I cannot say enough about the teaching premise of the Head First Series. It has encouraged me to purchase HF Software Development and Python. I just finished this book and I'm just starting the Python book. It's given me the courage to enroll in another programming language class at the college level and start an undergrad Computer Science curriculum without wondering about all of the remediation I might need during the first class. The friendly learning method aside, this is a seriously well written text. It has you developing a couple of apps in ways that most really develop, organically. It takes you through what are likely scenarios for some simple requests by people to do things that they show you how to do in a low key, no pressure learning method that will stay with you long after the book is on your shelf or passed to a friend. If you had trouble with a programming class, missed out on the software skills you wanted to develop this is an outstanding first book. Does not matter if you are 50 years old or 19. Not even thinking about it you learn about libraries, functions and code reuse. You learn how to do things you will no doubt see later if you continue with the series or head off to college or adult learning classes in any computer language. If you did scientific programming at one time and wanted to find a way to bite off newer technology which will let you not fear taking a College level android programming class or learning how to make an application, give this a try. I expect that you will find this is a very important connection to get you into programming, no matter what your background. Oh yeah, the python book suggested you have programming experience of some sort, this book was the perfect answer. I now no longer say I'm going to learn programming, now I can build small programs which I think up and need to see a little more of the guts of the language, so the python book is my next read - for which I cannot wait. Starting today! Good work HF. I'm thinking the process would work well with languages and even to introduce other subjects like electromagnetics... if I have time one day I could definitely see trying to contribute to texts like this. Great stuff!
M**9
Textbook for College
This textbook was required for my college class. When I first glanced through the book, I thought it to be rather basic since I have taken a few programming classes which want into more depth; however, the layout and presentation of the material was excellent, and the content was brought forth in a simple manner. I would recommend this book to any beginner who has no programming experience. I would buy other books from the Head First series.
B**L
Begin your journey here
The head First series of leaning is by far one of the most ingenious and effective learning methods I've encountered. I work in the Software Dev field and wanted to expand my skillset in Python and Java. I've tried other study guides with marginal success - Head First is straight forward, easy to understand, and the programs you write and run coupled with their methods of reniforcing programming principles really makes the learning enjoyable and I retain the material quite well. Do be advised that the 3rd Chapter is out of date now with Twitter authentication and the workaround is kind of involved. Since Amazon won't let me paste the URL here, if you google Head First forums, then follow the appropriate link, you can then create a forum account and search the Knowledge topics for Chap 3 Issue with Twitter auth. Back to the Head First series... the books are written for Python 3 users. I am running Python 2.7, so several of the programs and scripts they have you build, I have to do a lot of Google searching to get the commands I need to get the functions to run in Python 2.7. This is *NOT* a bad thing... the need to quickly Google for dev solutions at work is a daily task you will encounter anyway, so this gives good practice. Plus it really adds some nice seasoning to the various methods the book is teaching. As to this book (as well as all of Head First's books I study) I can't recommend them highly enough. I think you will be quite pleased with the things you make Python do as you work on the topics here. Enjoy and happy coding.
R**S
The Best Starter Book
I got this book for my 15 ear old son who has never programmed. It is very well designed to help the beginner through ACTIVELY learning the core fundamentals of programming. For the novice, this is by far the best book I found. Warning, it does require you to think from the start. My son was put off by what he thought was slow progress. What he didnot realize was that he learned in 3 days what I learned in the first 6 wk of class. I highly recommend this series. I own 6 titles and they are all excellent.
M**R
Not the best place to build confidence
I really wanted to like this book. I am currently in chapter 7 but I believe I have gotten far enough to make an educated assessment of this book. I am a total newbie when it comes to programming. I don't know a method from a function. I still don't after reading this book. At least when to use them. The book takes you through concepts, using python as the example language, that can be applied no matter what direction of programming you decide later on. That's fine. The problem I have is that I never felt confident applying the concepts to the example programs you are expected to complete at throughout the chapters. I kept telling myself I will catch on I will finally get it. But it's just not happening. It seems like such a far stretch to apply what you have learned to the problems presented. This is the kind of situation that can really destroy a newbie's confidence with learning a subject. maybe their are much smarter learners than myself who love this book. I really tried to tackle the problems without looking at the final answer but I could never get my syntax to look even remotely similar to what the suggested answer was. I know their is no one right answer in programming but my syntax wouldn't even work. I guess I am still looking for a book that teaches the how's and why's, or how to think like a programmer and why the we decided to tackle the problem in this manner. The reason why I didn't give a lower rating is because I do love the head first series. The format keeps me interested and wanting to read on. It's not dry like so many other tech books. I just felt that the manner in which the material was taught and the expectations of the reader left a little to be desired. I am still determined to finish this book because I am more than 3/4's the way done. But I just don't have any confidence that I will be ready for the next step. I would really appreciate someone else's thoughts and suggestions on how to study this book.
C**5
Not a Head First quality book. Does not effectively teach computer science concepts.
I'm not new to programming (mostly VBA and old school Fortran); but I would never label myself a programmer. Given all the great programming languages in today's world, I thought a refresher in fundamentals was a good place to start. As a big fan of Head First series, this one is a major let down. The teaching style is on par with the rest of the HF series (on first flush it does seem aimed at first graders--yet effective for an adult student), but the content and or lack thereof is sub standard. It's obvious that the authors have a strong grasp of the subject, but communicating their knowledge is as obviously challenging for them as it was for me (as their pupil) receiving it. Assumptions are made that the reader is already familiar with python and general code structure from Chapter 1. Sadly that is the greatest blunder that geeks make when they try to become instructors. Offhand trailing, open-ended statements or exercises that make perfect sense when speaking to peers simply don't translate well in common language to common folk. Assuming the general audience already knows how to structure code and create algebraic variable relationships in a new programming language is a bad way to start and a worse way to continue. I agree with another reviewer that mentioned filling in blank areas of code, following examples, isn't too difficult. The deal breaker is the expectation to write code from scratch with absolutely no reference point. The examples provide little clues as to where to begin. As a matter of fact, the only "clues" are the Python operators. Better would be a discussion on the logic and procedure of translating that logic into a programming language using correct code structure. For instance, when to begin a loop, when/where to define the variables (before/after/in a loop) etc. Since the book uses Python and that is one of the programming languages used a great deal in many applications, I'll suffer through just for the general exposure. When the intro said "The examples are as lean as possible." It wasn't kidding! While I agree that "redundancy is intentional and important," for learning, this book fills pages with lots of white space, large graphics, little content and even less examples or exercises to practice what it is supposedly teaching. "Trial and error--fail" seems to be the book's mantra. If you are new to programming, look elsewhere. If you are new to Python, look elsewhere. After I finish this fiasco, I'll update with recommendations on alternative sources. Let's hope there are better beginner programmer books out there. 06/12/2015 Edit: I started this review while in Chapter 2. I've since moved into Chapter 3 and am totally both confused by the lack of explanation and bad examples. For instance, page 96 discusses python parameters using some arcane, cryptic example. The authors pull out of mid-air a parameter '5.51'...What the?????? Never to be used or explained again. They then move on the what they want the dear reader to understand, which was to use a parameter 'msg' in the function. Now if I've lost you here, don't feel to bad, because I'm not sure myself what this all means. So moving forward to page 97 in hopes of figuring out what '5.51' or 'msg' does, I run across one of the worst examples yet: "To use a parameter in Python, simply but the variable name between the parentheses.... Then within the function itself, simply use the variable like you would any other." The example does not explain that Python recognizes undefined variables using the function's syntax, does not explain the syntax, and provides an extra line of code that serves NO purpose whatsoever. After muddying the waters the authors move immediately into that awful guessing game of how to "modify" your code to make a "parameterized call". It continues to use complex code without explanation, only for you, the dear reader, to surmise that the authors roved the internet to find a function that will send a message to Twitter (isn't that just peachy?) without explaining the lines of code in the function--magic! I'm not into magic functions. I'm trying to learn how to build a function. Thankfully I was able to find better explanations and examples on the internet--just search for "python function parameters". Be warned, though, I've already run across some poorly written code with bad syntax even for something this straight forward. 07/09/2015 Update: Trashed the book after reading through Chapter 4 and here's why: After my last review update, I decided to forgo the Head First teaching/learning paradigm, which is to go through the lessons sequentially and work through the exercises before moving on. Instead I began at the back of the chapter, read through the summary and then using the chapter summary outline, I would go to internet resources to familiarize myself with the computer science concepts and python code. Next I would quickly scan through the chapter highlighting any new computer science and python terms not included as part of the chapter summary. I ended up reworking chapters 1-3 this way because unlike other HF books, this one spat out a term without explanation, without exercises to reinforce the new concept to memory or understanding and move on to another new term or concept only to repeat the process. Ok, marching forward, I redid the first three chapters because I had painfully tried the HF way first, got lost and confused, tried again without other resources, abandoned all hope of learning without outside intervention, and then finally succumbed to searching high and low for all references to the terms in each HF programming lesson. That took me a while since I need to cram this in between work and family. On to chapter 4 with my new-found non-HF learning regime. By now, I think I'm ready to put what I read into logical context. However... The last straw: In chapter 4 on page 140, yet again a new term is introduced "option" for the python sort function for a list. I look in the book's index to see if "option" is used again in the book--no. Did I miss an example? None exist. I search "python option" on the internet with no luck. I then begin browsing the internet for ANY clue about this term "option" in python programming. Again, no luck. I end up finding more about "keys", "functions", "arguments", "parameters", but no "option". The example used on page 140 is a poor attempt in explaining that a python list object using the sort method can also have a reverse parameter if desired (I learned all these terms by having to read myriads of material just to do a lesson in Chapter 2). Since chapters 1-3 nor 4 have not bothered to explain the basic concepts of an object (too soon in computer science concepts) nor given any clear explanation of python methods, dropping the "options" term in mid-stream is just plain cruel. No demonstration to reinforce the concept is crueler still. The authors word-drop inferences to a programming language (python) that do not exist in that program's nomenclature. The reader/student becomes a casualty of thoughtless programming jargon. It does not develop sound computer science logic and processes--even a beginner's book has to explain the fundamentals. Big, advanced concepts such as scope, stack frame, and data types are discussed prematurely and so superficially that one is left as to the value of including them in the first place at the beginning of a beginner's book. It uses a nice programming language (Python) and then decimates the programming structure and syntax by bad nomenclature; further, does not explain the logic of the code fully enough to build on for the next lesson. Granted I've learned way more than I expected because of this book--that is I had to go find out the information for myself in order to fill in huge gaps of missing information to understand the exercises, which, in the end did nothing to help me to become more confident to learn a new program language. Below are a list of online Python tutorials that I've found very useful--site that I've had to rely on to understand HF Programming chapters 1-4. For computer science, I've found a few useful sites, but none that I would recommend for a beginner--still searching. Lean Codeacademy--currently enrolled for Python. It is rudimentary, provides interactive exercises. As of 7/14/2015, I can't recommend this online tutorial any more. The lesson modules are set up with an interactive console to check for correct code syntax, structure, and source code. Unfortunately a great concept with very bad execution. Essentially very bad source coding is passed and when the correct source code is presented, it fails. As the lesson modules become more advanced, the instructions become more cryptic. The forum offered is loaded with bad advice and filled mostly with what appears to be high school students that submit a bunch of hooey code just to pass the module. There is no moderator from Code Academy to correct erroneous code or to keep "students" from cheating. Try another if you want to LEARN instead of COPY. How to Think Like a Computer Scientist Learn Python the Hard Way The Hitchhiker's Guide to Python Beginning Python Programming Introduction to Programming using Python
P**A
Just more frustration
As someone who is trying to learn programming with python as a non-programmer, I thought this was going to be the right choice for me given the description. Unfortunately, this book has left me with the same frustration that I always get when I try to learn programming. I've understood while loops, if/else statements, variables, etc...(the basic stuff) for years. There seems to be some basic, core concepts that I am missing that seems to prevent me from thinking in a way necessary to come up with the solutions (or even similar ones) that the author presents. The problem I always seem to run in to is that there never seems to be enough explanation of the core OOP structure that I am looking for. I need that 30,000 foot view, an understanding of the bigger picture regarding how the structure works with libraries and how it all fits together as a system, as well as an ability to "follow the thinking" when I read the code. As an adult learner, I don't want the old "memorise/regurgitate", grade school style teaching. I am the sort of person who has tried, time and time again, to learn programming and always wind up walking away frustrated. As someone who is experienced in hardware troubleshooting, XHTML/CSS coding, mid level SQL, even compiling Linux from scratch (with LFS or Gentoo, etc), which are all very straight forward by the way, I just can't get to a point with this book, or programming in general, where I feel that I can figure things out on my own in order to solve a given task/problem with programming. This book gives me the impression of an author who is more impressed with him/herself for showing you how to do one "cool" thing or another, rather than teaching someone what they need to be able to just "run with it"...as if you need to have an understanding of some "mystical thing, not spoken of." In short, not enough focus on core programming concepts, especially in relation to Object Oriented Programming, and too much "look at the cool stuff you would be able to figure out for yourself, if only you knew what I knew". Frankly, I chose python as my "new" first language due to everyone claiming how much easier it is for non-programmers to learn, along with the fact that it was designed from the ground up as an Object Oriented Programming language. Unfortunately, this book just isn't "the one"...as I walk away from it frustrated, just like all the other ones before it.
A**N
Head First books are the Best Programming Books.
I now have three different head first programming books, and I highly recommend them. They don't go as deeply into the languages as other books might, but what they cover, they cover incredibly well. I would use these books as an introduction to any computer language, and if you need a follow up book, you can always choose a more complete book (one that's for someone who doesn't need the basics). This system works pretty well. If you are looking for a follow up to this book, I would choose Head First Java!
Trustpilot
2 weeks ago
1 week ago