The present work, divided in two volumes, illustrates programming techniques every Smalltalk developer should master. The thorough treatment also describes the method to efficiently develop new skills, and exemplifies valuable lessons learned over more than a decade of experience.