Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Training Rust

Training Rust

Some takeways from training Rust

Florian Gilcher

July 30, 2019

More Decks by Florian Gilcher

Other Decks in Education


  1. Training Rust Florian Gilcher Rust LDN July 2019 CEO and

    Rust Trainer Ferrous Systems GmbH 1
  2. Whoami • Florian Gilcher • https://twitter.com/argorak • https://github.com/skade • CEO

    https://asquera.de, https://ferrous-systems.com • Rust Programmer and Trainer: https://rust-experts.com • Mozillian • Previously 10 years of Ruby community work 2
  3. Whoami • Started learning Rust in 2013 • Mostly out

    of personal curiosity • Co-Founded the Berlin usergroup • Organized RustFest and OxidizeConf • Project member since 2015, mostly Community team, now Core, lead website team 3
  4. I train Rust • Local Berlin Hack & Learn •

    Conference workshops • Custom client workshops • https://ferrous-systems.com/blog/rust-summer-classes/ 4
  5. Formats • Hack & Learn meetups • Short coaching sessions

    • Quizzes • Intro sessions • Full blown workshops 6
  6. Why in-person training? • Flexibility • Context • Guidance •

    Immediate feedback loop • Seeing others work 7
  7. Teaching philosophy • Don’t teach by comparison • Enable self-guided

    understanding • Allow people to follow their own interests • Not a presentation of my skill 8
  8. Goals • It’s important to find out everyones personal goals

    • Rust is an incredibly diverse language in usage • A well-run workshop equips people with the tools to achieve their goals 9
  9. Teachers Goals • Attendees should become competent at reading material

    in their domain • Attendees should become competent at developing basic code • They learn basic refactoring and analysis techniques • ”from works to fast” • They shouldn’t be frightened 10
  10. Amazement • Every attendee should leave a session with something

    they found amazing • Those may often be things very clear to you • That is highly individual • Make an effort to figure those out and tap into your knowlege is great 11
  11. Teaching techniques • Micro-Talks • Ample amounts of solving problems

    • Preferably, problems that people came up by themselves • Q&A-Style coding 12
  12. Core messages • Ownership is the core of it all

    • getting people competent with modelling with Ownership is grade A • Borrowing is important, but can lead to complexity • Lifetimes aren’t as hard as they seem 13
  13. Pitfalls • Assuming that your hardships are other peoples hardships

    • Assuming C programmers have a natural approach to Rust • Teaching Rust as motivated by C • Questioning peoples motives • Overemphasising certain techniques 14
  14. Sources of insecurity when teaching • There’s always a bigger

    fish • The feeling to exhaustively explain everything • The feeling that everything needs to be well-grounded • Fear of not knowing things or not be able to implement them flawlessly • Rust constantly moves, idioms and syntax change 15
  15. Is Rust a hard language? • No, it’s an unfamiliar

    one • Ownership is a it’s core • Borrowing on top 16
  16. Is Rust a good beginners language? It’s a terrific beginners

    language for people interested in the level Rust operates on. • It gives many implicit concepts a name • It has a great ”refactoring to speed” story • It’s hard to accidentally break things • The unsung here here is Send/Sync 17
  17. The problem with advanced workshops • Self-identification of skill is

    really hard • Many people have glaring holes in basics Focus-topic workshops make much more sense. 18