<insert obligatory Monty Python reference here><preferably about coconut-carrying swallows><or shrubbery></end reference>
Python is the language of choice for many applications that collect and analyze text data, including Skimbox's email classifier. Since python was not, for me, a native tongue, I signed up for an EdX course, Introduction to Computer Science Using Python. The following list contains books, tutorials, tools, and other resources my classmates and I have found useful. If you have any to add, please do so in the comments!
It all starts here: http://www.python.org/
- This is my favorite: "Think Python by Allen Downey" - a good general overview of the Python language. Includes exercises. Written by a professor at Olin.
- Learn Python, 5th ed. The 5th edition uses Python V3 by default but has examples in V2 when major differences occur. The 3rd edition is entirely V2, which is preferable in many ways, as V2 continues to be more popular.
- Programming Python, 4th ed
- Python Cookbook, 3rd ed
- Natural Language Processing in Python (by the guys who wrote NLTK)
"Official Python 2.7 Documentation" - go here for the "official"/technical explanation of what a particular function/operator does, examples of correct syntax, what the various libraries are, etc.
- "Dive Into Python" - another survey of Python syntax, datatypes, etc. Has a chapter on TDD
- "The Official Python Tutorial" - self-explanatory
- "PEP 8 - Style Guide for Python Code" - learn what constitutes good and bad style in Python
- "CheckIO" - learn Python by exploring a game world
- "Learning Python the Hard Way" - another free online text
- "Invent with Python" - develop your Python skills by making games or hacking ciphers
- "Codecademy" - learn Python by building web apps and manipulating data; interactive tutorial sequence
TDD IN PYTHON
In addition to the "Dive Into Python" chapter listed above, see also this Tutorial on Python TDD
"Debugging in Python" - steps you can take to try to debug your program
"Python Tutor" - an excellent way to actually visualize how the interpreter actually reads and executes your code
"Python Tools for Visual Studio" - Visual Studio plug-in enabling Python programming
"Stack Overflow" - a large Q&A forum for programming concepts (not just Python). Try searching here before you post on the edX forum, and you may find that someone has already answered your question.
MORE PRACTICE PROBLEMS
- "Python Challenge" - a series of puzzles you can try to test your Python abilities
- "Project Euler" - additional programming challenges you can try once your Python knowledge becomes stronger; problems are sorted by increasing difficulty
- "Coding Bat" - problems you can solve within an online interpreter