As the title says, this book is decidedly for complete beginners. As such, it doesn't take me long to skim through books like this (though writing reviews takes a lot longer). In books like this one, you'll sometimes find a couple of nuggets that are useful regardless of your skill level but, more importantly, if you're considering learning Python, I want to steer you away from the bad and ugly and and point you to the good stuff. After all, there's no reason why learning a programming language has to be a PITA. Starting a career in software engineering isn't as hard as you might think - especially with Python - though, obviously, it all depends on your goals.
The short story: 'Python Programming for Beginners by Adam Marcus certainly isn't what I'd call a good book, but it has a few redeeming qualities. If you're looking for an in-depth explanation of how things work in Python, look somewhere else. On the other hand, if you're looking for something short, giving you a mile-high overview of the language, this isn't entirely bad. Unfortunately, given the price for a digital edition (the only one that seems to exist) is way over the top for something that is more booklet than book (82 pages). The price is what ultimately tips the balance toward a plain "not recommended" verdict (unless you have money to spare) instead of something a bit more favorable.
But let's move on to the in-depth review: the first thing I’ve noticed, is that the author uses very non-technical - and, as a consequence, often inaccurate - language. Beginners - who have never written a line of code - might appreciate this to some extent, but the downside is that this non-technical language is very confusing (not to mention very irritating to more experienced people). What's the point of learning a technical concept if the author made up his/her own words for firmly established terminology? In other words, a non-technical book can be a blessing or a curse. In this particular case I'm inclined to say that it's the latter.
I often had the impression that the author didn't really understand what he was writing about. However, upon closer analysis, I'm inclined to assume that this is some sort of copy & paste job, conveniently adapted to Python (and any other language the author wants to publish about). I might be wrong (how would I know), nor is it necessarily a bad thing, but it's not exactly a reason to buy the book either, and gives you an idea of how disorganized this thing is, both stylistically and in terms of content. The situation is made worse by errors of all sorts which just add to the general sense of confusion. I'm not expecting a literary masterpiece, but at least a decent grasp of the English language, and a logical organization would be nice. I might be old, but in my days that used to be part of a writer's job description. So, sadly, I have to label this as a failure.
'Python Programming for Beginners by Adam Marcus, more or less, deals with the usual beginner topics. After a brief introduction, there's a chapter about "Working with Files". To my (initial) delight, this chapter immediately starts dealing with the concepts of code-reuse - something most books for beginners fail to do. More importantly, it, covers all the standard operations on files, that is: stuff you’ll deal with all the time (and one of the many things that Python makes very easy). Unfortunately, that's the best chapter in the entire book.
There’s also an interesting introduction to regular expressions, however the chapter's title claims that it deals with exception handling. Apart from the fact that entire books exist on this subject, it is a good example of everything that’s wrong with this little book. While it contains several nuggets of valuable information, not found in the majority of books for beginners I've come across, it lacks depth and is more than a little haphazard. Also, and perhaps most importantly, don't expect to be taken by the hand. This is a book where you'll be left figuring out how things work on your own, which - ironically - is the best way to learn something. However, as a consequence, I can picture readers pulling out their hair because things don't work or don't make sense. As an example: Python, unlike most programming languages, relies on indentation to know where something starts and ends (one of the things I'm somewhat ambivalent about). This book doesn't feature any indentation whatsoever. Supposedly, that's because the code 'examples' are intended to be typed directly into the Python interpreter where (if this were the only issue) it would work. Still, to me, the decision is mind-boggling to say the least: why make something complicated and confusing when it could have been solved by pressing <TAB>?
By far the biggest shortcoming of this book are the language and the chaotic - almost random - structuring. English doesn’t appear to be the author’s native language and, as a consequence, it is often hard to follow along (regardless of your skill level). Couple this with a haphazard (at best) structure and you have complete chaos. If this was a cheap publication, I would be tempted to give more weight to the positive aspects, but at the current price - for a digital edition - that is hard to do. At best, if you can afford it, you might want to get a copy along with a more structured and complete Python book. Some of you might find value in it, but most people won't. If you can live with the flaws I've pointed out, you might want give this book book a chance - as long as you are just starting out and content with a general overview (of little practical value) of the Python language. Your mileage may vary. While I'm probably not the ideal reviewer for this book, but I'd say this is a classic case of 'death by a thousand cuts'. No single flaw is bad enough to warrant a bad review, but taken together, they paint a pretty damning picture.
Sadly, this book brought back the frustration I've felt when (as a kid) I took my first steps in programming: the books I've had access to simply didn't cut it for me. In its essence, programming is simple - like computers themselves - but book authors sometimes manage to make it seem very complicated. Since those first steps, I've come to realize that good programming books for beginners are the exception and not the rule. When you buy books at random - as we did for this project - you are bound to wind up with some winners and a lot of losers. But don't worry: there are a lot of (good) books I didn't cover yet... In the meantime, I'd suggest you take a look at what we’ve reviewed so far and, hopefully, you'll find something that suits your needs.
Beginner or not, I can assure you this book will never serve as a reference book (one to which you go back) in your library. It's simply riddled with too many problems and shortcomings to fulfill that role. You might want to take a look inside and decide for yourself (go to the middle part) but my conclusion is simple: unless you have a money to spare on a book of questionable value: stay away.
Going off on a tangent: as you can see I'll never recommend a book - in order to make a little money from the affiliate program if it isn't worth buying. That is a promise! For what it's worth: this used to be normal 20 or so years ago, unfortunately today - with people reliant on money from ads and such affiliate programs - it has become the exception. If you enjoy reading our blog and reviews (suggestions on topics are always welcome), please consider making a small donation (even half the price of this book will do a lot of good!). In case you're wondering: as far as this blog goes, nothing would make me happier than removing the ads but, sadly, at this time it's the our only (!) source of (very little) revenue. As I've said before: anyone supporting us at this early stage won't be forgotten! I can't make any concrete promises at this time (I think we've all had enough of Kickstarter projects that never got made), but I can promise you that (one way or another) your generosity won't be forgotten. We'll make it up to you - somehow - and, hopefully, you'll be positively surprised.
If, criticisms notwithstanding, you’re interested in purchasing this book, please use the links in this article as we'll make a little money (100% of which, like all money collected through this site, will go into this project) from the affiliate programs mentioned above - at no extra cost to you!