标签:
https://www.udemy.com/python-programming-for-real-life-networking-use/
https://pynet.twb-tech.com/blog/python/books-beginners.html
You have decided to learn Python, but which Python book should you read?
I have combed through a bunch of the beginner Python books looking for good choices. Here are my reviews and recommendations; hopefully; this will save you some time and effort.
A few disclaimers, these reviews are assuming the context of a beginner—either someone totally new to programming or a relatively inexperienced programmer that is new to Python. If you are neither of these, then these reviews are probably not applicable to you. Consequently, while a certain book might be very good for an advanced programmer, it likely would be awful for a beginner.
Also I did not read these entire books nor do each book‘s exercises. Instead, I generally read parts of the introduction or preface, a large part of a single chapter, and then various other sections of each book. I also looked thorough the table of contents to analyze each book‘s organization. Finally, I read some of the Amazon reviews (mostly negative reviews) looking for valid criticisms.
In these reviews, I am going to refer to a total beginner as an individual who has essentially no programming knowledge. Note, there is nothing wrong with being a total beginner. Everyone in every field was a total beginner at one point.
Learn Python the Hard Way is an often-recommended book for the total beginner. The book is available free online and can be found at http://learnpythonthehardway.org/book. The book consists of a series of 53 exercises followed by study drills and common questions. The expectation is that you will type all of the exercises line-by-line, "With the help of this book, you will do the incredibly simple things that all programmers do to learn a programming language: 1. Go through each exercise. 2. Type in each sample exactly. 3. Make it run."
I definitely had doubts when I approached this book—it sounded like a brute-force method of learning. Applying your knowledge is important, but is this an effective way to combine understanding and doing? But then, I admit, this book drew me in (just before this I had been reading Think Python which I was finding mind-numbingly boring).
This is a good book for the total beginner with a couple of caveats. First, this book is not for you if you already know programming from another language (even if you are a beginner). Second, make sure the authors learning style works for you. If you want to apply what you are learning to your own examples/problems or if you want more systematic theory, then this book is probably not for you.
This book is not for beginners; stay away from it. It is over 1500 pages long and is not an easy read. The author is very knowledgeable and says interesting things, but this is definitely not a beginners book.
I had a strong negative reaction to this book. The byline of this book is, "How to Think Like a Computer Scientist" and this gets to the heart of what I don‘t like about the book. This book was very boring and academic—it felt like I was reading a manual. I view programming as a means of doing things—that you learn theory in order to be better in practice. This book has its roots in a university class, which also explains its boring academic style (I am not a fan of universities). The author also introduces topics at strange locations for his purpose of ‘thinking like a computer scientist‘.
Think Python is available for free online at http://www.greenteapress.com/thinkpython/html/index.html, but personally I would stay away from it.
This book is for total beginners and has an emphasis on learning by example. Each chapter starts with an example program that the author analyzes. Additionally, other programs are frequently interspersed throughout the chapters. The code for the examples can be downloaded online (note, the URL provided in the book no longer works, but it is pretty easy to find the correct website).
Python Programming for the Absolute Beginner is logically organized up through chapter 9. At chapter 10, however, the author makes a strange departure into GUIs, graphics, sounds, and animation (the author is into game programming). These topics don‘t make sense for a beginner. Consequently, if you read this book, you can stop at the end of Chapter 9 (unless you have a particular interest in the remaining chapters).
A couple of other notes about this book—this book uses Python3 (at least in the 3rd Edition). Consequently, if you use this book, then you will need a Python3 environment. The author‘s code will generally not work in a Python2 environment. The author also assumes that you are using Windows. Note, for network engineers, I recommend that you still use and learn Python2.
Summary, I thought this book was okay for the total beginner except that it uses Python3. Consequently, I would stay away from this book and learn Python2 instead (yes, some day Python3 will replace Python2, but beginners are better served at the current time by learning Python2).
I like this book—it is a good balance between readability and learning. For beginners (with some meaningful programming experience), I recommend that you read up through Chapter 8. While reading you should make extensive use of the Python interpreter. If your are a more intermediate programmer, then I would read up through Chapter 11 (Chapters 12 though 19 are generally domain-specific topics and I would skip them). This book is not for total beginners; it definitely presupposes a certain amount of previous programming knowledge.
A few notes about this book. It is Python2-based—there are references to Python3 (and an Appendix on Python3), but it is definitely a Python2 book. The author also has a couple of annoying tendencies. First, he goes through various methods extensively (string, list, dictionary); this gets a bit boring. Second, he frequently users very short variable names and uses variable names that are very similar to built-in names (which can be confusing).
If you are a total beginner and have never programmed before, then read ‘Learn Python the Hard Way‘. If you are a beginner programmer but have some meaningful experience in another language, then start with ‘Beginning Python: From Novice to Professional.‘
Kirk Byers
CCIE #6243
Twitter: @kirkbyers
标签:
原文地址:http://www.cnblogs.com/elewei/p/4768737.html