Clean Coders Apprenticeship - Lessons Learned.
November 28, 2021
Throughout my apprenticeship, I’ve been tasked with planning a software project and practicing code katas to design and implement systems with new programming languages and paradigms.
A lot of lessons learned went into a Tic Tac Toe Project as it went into multiple iterations for various features like:
- Multiple UI’s. (CLI, client app, server-rendered app).
- “AIs” (Easy and Hard) MiniMax.
- Local play mode.
- Player vs. Player (networked and peer-to-peer)
- HTTP Authoritative Server
- Persistence with different databases.
The biggest takeaway from the project was how vital clean architecture is for the project’s velocity and flexibility to change as requirements do. When coding the CLI UI, I learned the hard way and did repetitive work to add the web UI. However, the difference was night and day once I cleaned up my architecture, and changing or adding input/outputs like the database was effortless. Thank you, polymorphism. <3
We learned about estimating, giving a range of numbers to communicate risk, and how to manage that risk by planing around worst-case scenarios.
As a clean coder apprentice I’ve learned.
- A new programing paradigm: functional programing. Clojure Koems Coin Changer
- A new programing language: clojure and java. Jar and Clojure
- New Disciplines like Test Driven Development TDDBehaviour Driven Development BDD, Katas, Pair Programing, and more.
- The importance of good code architecture. Clean Architecture Polymorphism
- How to design system that enable productivity in development.
- How to leverage design patterns to enable clean and flexible code. Visitor PatternFactory Pattern Strategy Pattern
- How to plan and communicate estimates clearly with stakeholders/project managers and handling expectations. Preemptive Postmortems
- What it means to be a professional developer and why disciplines matter.
Want to hear more from me?
Signup to my newsletter!
A free email newsletter on how to create high-performing development teams.
Written by Edgardo Carreras.