Learn Python Programming: An in-depth introduction to the fundamentals of Python
A**E
A focused book for Python learners
If you are looking learn Python with an in depth understanding of the language, this book is for you. It starts with an introduction of fundamental topics in the first four chapters. After chapter 4, authors switch the gears and take you to the next level of Python topics such as comprehensions, generators, iterators, files, and the exception handling. A topic of cryptography is a bonus in my view as it is not usually considered as fundamental, but it is an essential ingredient to build any serious and production ready applications.In the later part of the book, authors have introduced Python for data science for beginners, how to build automated test (mainly unit tests), how to use Python for API development. I like the case study of a railway system introduced for the API development and then use the same case study for discussing how a project can be packaged and published for sharing with others. This is indeed a nice closure to the book.A couple of areas that can help to improve the readability of the book are; first, it is nice to have more diagrams and flow charts for discussion of complex topics. Second, breaking the the big sections into small subsections make it easy to u'stand the topics. I felt some sections are spanning many pages with only text and the code.
J**E
How much time do you have?
I've docked a star from this rating because this book is not ideal for busy people who want to quickly learn the language so they can get on with their own projects. To get the best out of this book one would have to download the chapter examples, work through their code, which is much more than is presented in the text, and follow up all the links and references to documentation and dependencies which cover the entirety of the immense Python ecosystem. If I did have the time to follow up on every reference I would probably give the book five stars.The earlier part of the book deals very well with the core language. People like myself coming to Python from earlier generation languages such as C++, Java, Tcl, etc. can quickly start messing about and muddling along according to familiar paradigms. But the real power of Python only becomes apparent when one understands the advanced data types and language constructs that make Python a genuinely next generation language. The language style that arises from a full understanding of these features is called Pythonic, and to write as such, to write Pythonically. All this makes for compact and highly readable code, of which I thoroughly approve.As the book progresses however the explanation of the core language becomes increasingly intermixed with aspects of the broader Python ecosystem which are necessarily brief in their treatment and often too brief for the text alone to stand on its own without getting ever more involved in the example code and following up on references to a large array of third party tools and their documentation. The authors seem keen to use the opportunity to cover a career's worth of general observations and best practice heuristics on the whole field of programming more generally. All good stuff, especially for beginners, but off the point for someone wanting to master the language and get on with their own projects. I would estimate that it could take a good few months for the diligent reader to really work through the material not just of the text, but the accompanying sample programs and the documentary references as well.There's no doubt that a beginner or a computer science student would find this a really solid underpinning to a career both in writing Python and programming more generally. If, like me, you're in a bit of a hurry to get on and apply Python to your own purposes then much of the latter half of the book could feel like a distraction. Perhaps further down the line the areas covered there will tun out to be of relevant interest. How good a reference the book will then make is hard to say. As observed, on many topics the text alone is just too brief to give a confident grounding in the material covered.
D**M
Like this book as begginer
Learn Python programming, for begginers and advanced users.
M**M
Probably best for intermediate learners. Good content overall!
I get the feeling that the authors of this book really, REALLY, love Python. That’s great, because their passion for the language comes through very clearly in their writing and explanation of the language and it’s features. Almost every chapter so far (I have read through chapter 8) includes some kind of Easter egg, or a very niche tip that could only be known by someone who knows the language well, so I appreciate those little details. What I don’t appreciate as much about this book is the headiness in the explanation of some of pythons core features that are often too brief to break down a topic with enough technical detail that you don’t need to turn to outside resources for more explanation. Perhaps one of the things I like the least about this book is that I am constantly being told to read the official Python documentation for explanation about topics that I assumed would have been included in the book. I don’t hold that against the authors though, because I know there’s a lot to cover and to include everything there is to know about Python would probably span multiple books. Still though, I would have preferred that some of the more basic topics where the book defers to the documentation in favor of itself would have been included and the more advanced topics had been left out instead.With that said, so far, the biggest challenge getting through this book as a beginner has been keeping myself motivated when the reading makes such drastic shifts from difficult but approachable topics, to suddenly very dense and mathematical concepts. Because of that, this may not be the best book for an absolute beginner to read when they have no prior computer science or programming experience. I feel like I was only able to follow along because this is not my first attempt at learning a programming language and I have held onto a lot of the core principles of programming that are shared between languages like JavaScript and Python.I think if you plan to use this book as your introduction to the Python programming language, and to programming in general, you probably need to look elsewhere to prime yourself on topics like types, variables, logical operators, and control flow before jumping in here. Those are easy to understand topics, but learning of them through this book could be inhibited by the sudden introduction of more complex topics. For example, in Chapter 2, the text goes from explaining what objects are in Python and how they are represented to a section devoted to modular exponentiation and modular multiplicative inverses and brief explanation of some other advanced topics. I have no problem with those additions to the book, but maybe not so early on, especially for the sake of not overloading beginners with such heavy information.What I do like about the book is that, although brief on some more basic topics, and overly verbose on topics that I would consider too complex for this book, where the authors really do shine is in their detailed explanation of the core features of Python. Everything up until chapter 4 is fairly standard programming stuff with features unique to Python scattered throughout, but boy do they really go in depth about those unique features when they do come up. Chapter 5 for example is all about Comprehensions and Generators, and you’ll be practically begging for the end of the chapter to come by the time you’re halfway through the reading. Explanations on that topic, and topics like data types, functions and Python’s unique flavor of implementation go in fairly deep and you won’t leave those chapters feeling empty handed. I definitely think in that aspect, the book shines and gives you a great idea of where you might want to potentially focus your efforts when it comes to even more in depth and technical learning.One minor pitfall about this book is that as recent as it is, it is somewhat outdated. Probably the most glaring piece of old information comes in Chapter 3, which is a very solid chapter, however the info regarding the lack of a switch case statement, which was added in Python 3.10, is incorrect. Of course this book was written for Python 3.9 so there are bound to be some minor inaccuracies here and there.Some other nitpicks I have is that I found quite a few grammatical errors and even some issues between the code examples and what was being referenced in the text. Most of these issues were limited to Chapter 1, however I still have several more chapters to read through so I can’t speak to the whole book regarding grammar. Sometimes, the authors will use terminology that isn’t necessarily explained in the text. For example, when the book introduces functions, they reference the “caller” without really explaining what the caller is or means, and that issue arises from time to time where you might need to Google some terminology nal every now and then as you read to get caught up again. Another personal dislike is related to the author’s devotion to Pythonic and ‘elegant’ implementation of code. I don’t mind reminders here and there about good formatting, and my goodness do they hit you over the head with that PEP 8 formatting reference, but I have felt at times that there was more focus on “this type of code being better because it’s more elegant” than a true explanation of what the pros and cons of choosing between a more or less “Pythonic” approach to implementing a feature.I went ahead and purchased the “Python Workout” book to put what I’ve learned here into practice. To that end, there are tons of code examples for you to work through ough, however most of them don’t train you to solve any real technical problems beyond providing a superficial example of what the implementation of a new topic might look like. Still though, they code examples are solid and you should work through them as you read. Just know that you’ll want to use another resource for real practice.Overall, this is a good book for learning Python, but I would be hesitant to say it’s a great book to learn the core principles of programming AND Python. Ironically, I bought this book because I felt Meta’s 2022 backend developer course on Coursera did not go far enough explaining Python programming and it’s features in depth. Since reading this book, I feel I have a much better grasp of the concepts I’ve been learning about and feel much more prepared to start working with a framework like Django. The book past Chapter 8 covers some more advanced topics that I’m not really sure I want to focus on right now, things like APIs and GUIs, so I’m not sure if I’ll cover that part of the book anytime soon. I don’t really feel like that information is as relevant to a beginner like me, so I may come back to the book and revisit those chapters (9 - 15) in a few weeks once I get the core concepts under my belt.Fairly satisfied with this book and happy with/grateful for the foundation that’s it’s helped me lay so far!
A**E
Great if you have some prior computer science knowledge and math skills
This book is great! Not the most thorough but covers all the bases none the less. As the description states it is preferable to have some experience with computer science. I think anyone could pick up think book and learn SOME python. However, there are some parts that someone with no knowledge will likely struggle and will need outside support.
Trustpilot
2 weeks ago
1 week ago