Learning Rust as a Go and Rails Developer
Dec 10, 2025 · 7 min read
I learned Ruby by jumping straight into code. Same with Go. It worked, but I never built a deep mental model of either language. I could write it, but I couldn't explain why it worked the way it did.
When I started Rust, I forced myself to do the opposite.
The Trap
With Rails, I shipped features before understanding blocks. With Go, I used pointers without truly grasping & vs *. I was productive but shallow. Every debugging session became a hunt through documentation for concepts I should have already known.
The Approach That Worked
I committed to reading before coding. The Rust Book became my daily driver — not as reference, but as curriculum. I spent 4 hours a day in focused phases:
Phase 1 — Ownership & Borrowing (2 weeks) I didn't write a single real program until I could explain ownership, borrowing, and lifetimes to myself out loud. Chapters 3-4 of TRPL were read, re-read, and annotated. I drew diagrams of how data flows through references.
Phase 2 — Structs, Enums, Pattern Matching (1 week) Only after ownership clicked did I move forward. I practiced with trivial programs — a CLI todo, a CSV parser — to cement the patterns.
Phase 3 — Real Projects
Then I built something real: a small HTTP server using hyper. By this point, the compiler errors made sense. The borrow checker wasn't an enemy; it was catching mistakes I'd make in Go at runtime.
What I'd Do Differently If I Could Go Back
For Go and Rails, I'd do the same thing — spend the first two weeks reading, annotating, and explaining concepts out loud before writing production code. The investment pays for itself in the first serious debugging session.
"Read first, code second. The code will be faster the second time."