Tic-Tac-Tutorial Series

Over my career, I’ve done more than a few code reviews, brown bags, and presentations for my coworkers.

It’s more than just teaching them how to write code that works, for that is the least interesting thing (albeit the most important).

It’s also important to understand and internalize concepts, practices, and patterns that will make you write better quality code.

I recently figured the best way to explain a lot of the concepts would be a series of articles.

So this will be a series on identifying code smells, understanding the importance and purpose of tests, and improving your craftsmanship.

What this series will not be: a primer on programming with C#, working with Visual Studio, or an introduction to any specific technology. Rather I will focus on principles and techniques that will generally apply to all kinds of development.

We’ll explore these concepts in the process of writing a Tic-Tac-Toe game.

Tic-Tac-Toe makes for a great case study: it’s got rules and logic, a UI component, and it’s familiar.

Each entry will start off with a less-than-ideal code base (for you to download and follow along), I’ll identify a problem with it, and together we’ll work through learning how to improve it.

I hope you all will find this as enjoyable to go through as it will be for me to write it.


  1. Introduction
  2. TDD: Test-Driven Development
  3. Red-Green-Refactor
  4. Unit, Integration, and End-To-End Tests
  5. Test Doubles
  6. Mocking with Interfaces
  7. Test Tricks and Tips
  8. Naming Things and Application Layers
  9. Code-smells and how to deodorize them
  10. Minimum Viable Product 1 – Console UI
  11. Git-flow AKA driving fast with a seat belt
  12. Minimum Viable Product 2 – Xamarin App

If you have any suggestions for an installment, please let me know!

Leave a Reply