- "Courses" are intended for learning Python via an online interactive course.
- "Learning books" are intended for learning Python by reading them cover-to-cover.
- "Reference books" are intended for dipping into randomly as you face particular problems in Python or in general.
All material are specified in order of preference (most to least); all of these are very good but some more than others if you're new to Python and programming in general.
- Introduction to Computer Science (Udacity)
- (pro) Introduction to Python that assumes no experience in programming.
- (pro) Gentle, interactive, fun (you make a search engine!)
- (pro) Not just an intro to Python. It touches upon deep and important concepts in computer science.
- (pro) You get a certificate at the end that you can link to on your LinkedIn profile (this is done automatically, no typing needed).
- (con) Some of the starred problems (one or two star) are very difficult; don't be discouraged if you don't get them the first time or can't do them at all.
-
Think Python (O'Reilly, 2013)
- (pro) Short-ish book (300 pages; for a learning book this is short!)
- (pro) Very gradual pace
- (pro) Comes with exercises
- (pro) Is grouped into very sensible chapters, organised by data structure (list, tuple, ...), files, classes, etc.
- (con) Not much emphasis on the Python standard library. This is more of a computer science book and less a "what Python gives you" book or "common Python idioms" book.
- Particularly recommended content: all of it.
-
Problem Solving with Algorithms and Data Structures
- (pro) A deep, thorough introduction to fundamental computer sciecne concepts via Python.
- (pro) Interactive with visualisations. Helps to absorb the material.
- (con) Assumes a solid basis in Python; the introduction recaps this material but is quite fast.
- Particularly recommended content: Analysis, and Basic Data Structures (second and third chapters).
-
- (pro) A rare book that puts object oriented design up front and centre.
- (con) Perhaps only useful to those who have also read e.g. "Head First Design Patterns".
- Particularly recommended content: maybe read Head First Design Patterns and then look up the respective chapter here, rather than reading Python in Practice directly.
- Python Cookbook (O'Reilly, 2013)
- (pro) Comprehensive. Just spinning through the table of contents it's clear many common day-to-day tasks are covered.
- (pro) Common Python idioms are used. For example in "Reading and writing files" you are immediately told to use a context manager, no if's or but's.
- Python Module of the Week
- (pro) Not a book but a phenomenal and almost total reference for everything Python comes with.
- (pro) Better than the Python reference docs when you need to kno "But how do I quickly start using this module?"