Table of Contents
Learn Programming with Smalltalk
Part I: Welcome to Programming
Chapter 1: What is Programming (And Why Smalltalk?)
Introduction to programming concepts, why Smalltalk is uniquely suited for learning, brief history, and what makes it special.
Chapter 2: Your First Steps - Installing and Exploring
Detailed walkthrough of installing Pharo, Squeak, and Glamorous Toolkit; understanding what an “image” is; first look at the environment.
Chapter 3: The Workspace - Your Programming Playground
Using workspaces/playgrounds to experiment; your first lines of code; the “Do it,” “Print it,” and “Inspect it” paradigm.
Part II: Thinking in Objects
Chapter 4: Everything is an Object (No, Really!)
Objects, messages, and methods; the fundamental mantra; sending your first messages.
Chapter 5: Numbers, Strings, and Basic Types
Working with numbers (integers, floats); strings and characters; booleans; nil; everything is an object!
Chapter 6: Collections - Organizing Your Data
Arrays, OrderedCollections, Sets, Dictionaries; the power of collection protocols.
Chapter 7: Variables - Naming Your Objects
Temporary variables, instance variables (preview), class variables (preview); the assignment operator.
Part III: Making Decisions and Repeating Actions
Chapter 8: Conditionals - Making Choices
ifTrue:, ifFalse:, ifTrue:ifFalse:; how Smalltalk implements control flow with objects and blocks.
Chapter 9: Blocks - Code You Can Hold
Understanding blocks (closures); storing code as objects; the power of first-class functions.
Chapter 10: Loops and Iteration
timesRepeat:, to:do:, whileTrue:, whileFalse:; collection iteration (do:, collect:, select:, reject:, inject:into:).
Part IV: Creating Your Own Objects
Chapter 11: Classes - The Blueprint
What are classes?; creating your first class; the System Browser; understanding instance vs. class.
Chapter 12: Methods - Teaching Objects New Tricks
Defining methods; method protocols; the method browser; return values.
Chapter 13: Instance Variables - Giving Objects Memory
Adding state to your objects; accessors and mutators; encapsulation.
Chapter 14: The Mystery of ‘self’ and ‘super’
Understanding self; message sending to self; what super means; the lookup chain.
Chapter 15: Inheritance - Standing on Shoulders
Creating subclasses; overriding methods; when to inherit; the class hierarchy.
Part V: The Image, Changes, and Sources
Chapter 16: Understanding the Image
What the image file contains; saving and loading; why it’s revolutionary; managing multiple images.
Chapter 17: Changes and Sources Files
The changes file as your safety net; the sources file; recovering lost code; understanding the three-file system.
Chapter 18: Version Control for Smalltalkers
Git with Smalltalk; Monticello; Iceberg in Pharo; best practices; moving beyond the image.
Part VI: Tools of the Trade
Chapter 19: The System Browser - Your Code Navigator
Deep dive into browsing classes; finding methods; refactoring tools; keyboard shortcuts.
Chapter 20: The Inspector and Explorer
Inspecting objects live; modifying running objects; exploring object graphs; debugging in the inspector.
Chapter 21: The Debugger - Your New Best Friend
Why Smalltalk’s debugger is magical; fixing bugs while the program runs; stepping through code; the stack.
Chapter 22: The Finder - Discovering Code
Finding implementors, senders; method searches; example searches; learning from existing code.
Part VII: Intermediate Concepts
Chapter 23: Protocols and Polymorphism
Duck typing in Smalltalk; designing with protocols; the power of polymorphism.
Chapter 24: Error Handling - When Things Go Wrong
Exceptions in Smalltalk; on:do:; ensure:; creating custom exceptions.
Chapter 25: Testing Your Code
SUnit testing framework; writing tests first; test-driven development; running test suites.
Chapter 26: Packages and Code Organization
Organizing code into packages; dependencies; loading code; baseline configurations.
Part VIII: Exploring the Smalltalk Variations
Chapter 27: Pharo - The Modern Smalltalk
Pharo’s unique features; the community; key libraries (Seaside, Roassal, etc.); when to choose Pharo.
Chapter 28: Squeak - Multimedia and Education
Squeak’s heritage; Morphic UI; multimedia capabilities; Etoys and learning environments.
Chapter 29: Glamorous Toolkit - Moldable Development
GT’s revolutionary approach; custom inspectors; moldable development; exploring data.
Chapter 30: Other Smalltalks Worth Knowing
Brief overview of Cuis, GNU Smalltalk, VA Smalltalk, and the broader family.
Part IX: Building Real Things
Chapter 31: Project 1 - A Todo List Manager
Putting it all together; building a simple application; managing state; collections in practice.
Chapter 32: Project 2 - A Text Adventure Game
Objects modeling game entities; polymorphism in action; designing a small game engine.
Chapter 33: Project 3 - A Simple Web Server
Understanding Zinc HTTP; serving web pages; handling requests; introduction to web development.
Chapter 34: Working with Files and Streams
File I/O; reading and writing files; streams; binary vs. text; FileSystem API.
Chapter 35: Graphics and UI Basics
Introduction to Morphic; creating simple UIs; event handling; making things visual.
Part X: Next Steps
Chapter 36: Design Patterns in Smalltalk
Classic patterns that originated in Smalltalk; MVC; Observer; Strategy; when to use them.
Chapter 37: Performance and Optimization
Profiling code; common performance pitfalls; when to optimize; benchmarking.
Chapter 38: The Smalltalk Community
Where to get help; Discord, Slack, mailing lists; contributing to open source; conferences.
Chapter 39: Beyond Smalltalk - Taking Your Skills Further
How Smalltalk concepts transfer to other languages; what to learn next; career possibilities.
Chapter 40: Your Smalltalk Journey
Recap; resources for continued learning; parting wisdom; the joy of live programming.
Appendices
Appendix A: Installation Guide Details
Platform-specific installation instructions; troubleshooting common issues.
Appendix B: Keyboard Shortcuts Reference
Essential shortcuts for Pharo, Squeak, and Glamorous Toolkit.
Appendix C: Useful Code Snippets
Common patterns and idioms for quick reference.
Appendix D: Glossary
Definitions of Smalltalk-specific terms and concepts.
Appendix E: Further Reading
Books, papers, websites, and online resources for continued learning.