GDAL is not very well documented, and a complete Python API documentation site is not something I've found. So here are the best tutorials I've found so far for GDAL + Python.
GDAL Python samples on osgeo.org
This tutorial is titled "Create beautiful hillshade maps from digital elevation models with GDAL and Mapnik" and is from 2011.
This tutorial provides you with all the data you need to create a hill-shade image.
This is the course material for a GIS course at Utah State University. The course was titled "Geoprocessing with Python using Open Source GIS".
This is a course homepage, and there is a zip-file that contains data and samples.