Slides of the course: Morning, Part I, Morning, Part II, Afternoon, Object Oriented Design
Solution to the exercises:
day1/exercises_solutions/sudoku
Cheat sheets that summarize the agile development work cycles, and the main features and syntax of Python tools
Two comprehensive software carpentry courses:
Tiziano's course at the Bernstein center in Berlin
PEP8, the official Python style guide
Refactoring home page, maintained by the author of the main refactoring book, //Refactoring: Improving the Design of Existing Code//, Martin Fowler
pdb, the standard python debugger
winpdb, a graphical interface for pdb
. It's platform-independent despite its name.
DDD (DataDisplayDebugger), graphical general-purpose debugger.
Python IDEs often have a built-in debugger.
cProfile, the batteries included Python profiler
timeit, built-in Python module to measure the execution time of small code parts
RunSnakeRun, a wxPython-based visualization of profiling results – very intuitive!
unittest, the standard Python test framework
py.test, an alternative framework that simplifies writing tests and allows for extension and customization of test experience
nose, another popular alternative
SVN book; particularly important is the basic work cycle
A useful and complete one-page cheat sheet for SVN
subclipse, SVN plug-in for Eclipse
TortoiseSVN, SVN integration for the Windows Explorer
Here is is state pattern example that I talked about: State Pattern Example
Here are a few interesting links about advanced Python OO stuff:
To learn more about software design and design patterns you can read some old-school books:
And for fun you can also read blogs, like: