Learning Rust the wrong way. - Ólafur Waage - NDC Sydney 2024

Discover why embracing difficulty in learning Rust leads to better mastery. Explore evidence-based learning techniques and practical exercises to level up your Rust skills effectively.

Key takeaways
  • Effective learning often requires embracing “desirable difficulty” - making things deliberately challenging leads to better long-term retention and understanding

  • Blocked practice (focusing on one thing intensively) is less effective than spaced/interleaved practice (mixing different concepts and spreading learning over time)

  • Studies show attempting difficult tasks and experiencing initial failure leads to better learning outcomes than starting with easier versions

  • Don’t rely solely on passive learning methods like watching tutorials or reading documentation - active practice and hands-on coding is essential

  • The feeling of difficulty during learning doesn’t mean ineffective learning - often the opposite is true. Feeling of ease can be deceptive

  • Rust’s learning curve and explicit memory/ownership model creates natural “desirable difficulty” that leads to better understanding

  • Rustlings exercises are recommended as a structured way to learn Rust fundamentals through hands-on practice

  • Converting existing code from another language to Rust is a useful learning exercise to understand differences in concepts

  • Don’t try to find “easy ways out” or shortcuts when learning - embrace the difficulty and complexity

  • Quiz yourself regularly and work on practical projects rather than just reading about concepts

  • Mix different programming concepts and patterns rather than focusing on one thing at a time

  • The “curse of knowledge” can make experienced developers underestimate learning difficulty when teaching others