M
The Personal Encyclopedia

Learning by Building

From Mikipedia, the personal encyclopedia · Category: Patterns
ArticleTalk
ReadEditView history

Learning by Building

Learning by Building is the pattern through which Mike acquired new technical skills during the ESIPE Student Era. Rather than reading documentation in isolation, the approach was to build something — a game, a bank service, a network protocol — that required the skill in question.

Evidence from the Repositories

The pattern appears explicitly in several repo descriptions:

simple_bank_go (April 2024): "A simple bank service written in go for learning purpose."

go-projects (January 2023): "Go small, intermediate and big projects." The progression from small to big within a single repository implies deliberate scaffolding of difficulty.

Portfolio_C (October 2021): The C repository as a personal record of year-one ESIPE learning.

build-your-own-x (February 2022): A fork of the well-known collection of tutorials for building your own version of any technology from scratch. The fork signals interest in understanding foundational mechanisms rather than just using abstractions.

Academic Context

The ESIPE curriculum reinforced this pattern institutionally. Coursework repos — advanced_java, networking_java, Java_Concurrence, Protocol-UGP — were implementations of concepts rather than readings. Concurrency, networking, and distributed systems were learned by writing the code, not studying it.

Protocol-UGP represents the most complex instance: a custom TCP-based distributed computing protocol implemented from an RFC, built to allow researchers to test mathematical conjectures across multiple machines.

Relationship to Founder Pattern

Rapid Product Iteration in the founder era applies the same instinct to commercial output. The difference is that the target shifts from skill acquisition to user value. The habit of building as a learning mechanism transfers naturally into building as a founding mechanism — both are characterized by output-first thinking rather than planning-first.

What links here

References

  1. github_repo_mikedistribute_go-projects
  2. github_repo_mikedistribute_simple_bank_go
  3. github_repo_mikedistribute_build-your-own-x
  4. github_repo_mikedistribute_advanced_java
  5. github_repo_mikedistribute_Portfolio_C