Practical Object-Oriented Design Course

 I teach an extremely practical object-oriented design (POOD) course. Its primary goal is to teach you to think in objects and its basic method is to let you learn to do so by writing code.

You'll learn to leverage the 'principles' of OOD to minimize the costs of creating new software and mitigate the pain of maintaining existing code.  If you'd prefer to write applications that are pleasant to work on and easy to maintain, or if you desperately need to fix applications that have escaped your control, this course is for you.

POOD consists of 3 days of hands-on exercises and class discussions. The exercises continually evolve; you'll progressively enhance your code to meet ever changing requirements.  The act of refactoring is so deeply intertwined with the ideas of OOD that they are impossible to separate; therefore, as a extra bonus, you'll learn refactoring techniques that will speed development and reduce bugs in all future code.

The teaching style is shaped by research on how we best learn and the experience of attending has been likened to 'going on an incredibly useful coding vacation'.  The course is both worthwhile and fun.

Students from a wide range of backgrounds have benefited from the course, from relative newcomers to seasoned veterans.  It's helpful to have a smattering of Ruby and/or some exposure to object-oriented programming but this is not required.  The course adapts to its students, challenging some and guiding others.  There are always two instructors so despite the fact that we try very hard to get out of the way and let you learn, we're always there for individual tutoring as needed.

See the syllabus for day-by-day details.

This course is available privately, by appointment, and public sessions are occasionally available.  Whether for you alone or for your whole team, there's a flavor for everyone.

Run, don’t walk, and throw money at Sandi now! But seriously, it’s a transformative experience for any developer, and can give teams the tools to trust one another.
— Stanford University
You should absolutely take this course. Set aside your preconceptions and skepticism and be open to the ideas in this course: They will dramatically improve the way you program. This has easily been the most valuable programming training experience I’ve had in the last 10 years.
— University of Minnesota
You learn how to write code that does what it needs to do without being over-engineered. You practice how to make small, effective changes in real world ways. This is what “Agile Methodology” was meant to do.
— Procore
This has been fantastic. I was thrilled that we could immediately start coding. I love this class.
— Careerbuilder
Without a doubt this is the best, most useful course I’ve taken. If you write software, you need to take this class!
— General Assembly
2014-10-31 15.46.30.jpg
Run, with scissors if you must, to the next offering of this course. Sandi provides a very strong dive into the pride and prejudice of object oriented design that cannot be missed.
— Data Curation
Stop considering. If you program OO then this course is a no brainer.
— PhishMe