Useful material for mastering and using Python in the industry.
Books
Python Essential Reference — Тhe definitive reference guide to the Python programming language. This is the book to keep on your desk.
The Python Standard Library by Example — Learn how to get the most out of standard Python library.
Python Cookbook — Solutions to problems that Python programmers face every day.
Dive Into Python — Very interesting book that gets you up to speed in no time, though it might be a bit obsolete.
Learn Python The Hard Way — A nice introduction to programming in Python. If you are starting with Python read it together with "Dive Into Python".
Porting to Python 3 — This book guides you through the process of porting your Python 2 code to Python 3, from choosing a porting strategy to solving your distribution issues.
Web Material
Python Programming Language — Official website.
Generator Tricks for Systems Programmers by David Beazley — This tutorial discusses various techniques for using generator functions and generator expressions in the context of systems programming. This topic loosely includes files, file systems, text parsing, network programming, and programming with threads.
A Curious Course on Coroutines and Concurrency by David Beazley — The most useful tutorial for dealing with large data processing. A must read for anyone wanting to master Python.
Understanding the Python GIL by David Beazley — Understand when to avoid using threads in Python, and why.
Python programming FAQ — Read it before asking questions.
Google Python Style Guide — This style guide is a list of dos and don'ts for Python programs. For formatting and naming stick to PEP8 guidelines.
Development Tools
PyCharm: powerful Python and Django IDE — The best IDE for Python. You can be very productive in an editor, but PyCharm has nice tools to catch common errors and help refactor the code.
Python Ecosystem — Basics of the Python ecosystem for web application development for developers who shift to Python from other platforms.
pypy — A fast, compliant alternative implementation of the Python language (2.7.2).
Videos
Understanding the Python GIL — Also read about the hidden history of GIL, not mentioned in the talk, and what Python documentation has on GIL.
PyCon 2012 Keynote by Guido Van Rossum — You'll find out that GIL is most likely to stay as people count on it in their code.
Scalability at YouTube — You'll find out that YouTube actually started as a dating site!
Useful Libraries
python-gflags — Google command line flag is intended to be used in situations where a project wants to mimic the command-line flag handling of a C++ app that uses google-gflags, or for a Python app that, via swig or some other means, is linked with a C++ app that uses google-gflags.
gevent for the Working Python Developer — The structure of this tutorial assumes an intermediate level knowledge of Python but not much else. No knowledge of concurrency is expected. The goal is to give you the tools you need to get going with gevent, help you tame your existing concurrency problems and start writing asynchronous applications today.
pymox — A mock object framework for Python. Mox is based on EasyMock, a Java mock object framework.
Django — A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
matplotlib — A 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
pydot — Allows to easily create both directed and non directed graphs from Python. You'd need to install GraphViz as well.
Gnuplot.py — A Python package that interfaces to gnuplot, the popular open-source plotting program. It allows you to use gnuplot from within Python to plot arrays of data from memory, data files, or mathematical functions.
SWIG — A software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of target languages including common scripting languages such as Perl, PHP, Python, Tcl and Ruby. Check out this tutorial that shows you how to interface with Python.
SciPy — An open-source software for mathematics, science, and engineering. The SciPy library depends on NumPy, which provides convenient and fast N-dimensional array manipulation.
Related Resources
HTTP status codes cheat sheet — You will need this for web programming.
Graphical vi-vim Cheat Sheet and Tutorial — I found vim to be good for editing Python, mainly because it can do copy-paste with proper indent adjustment (pasting with
]p
instead ofp
).git — Distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
No comments:
Post a Comment