Training Rust

Training Rust

Some takeways from training Rust

1c88d7906e3ffa450aedff2f5f1d1299?s=128

Florian Gilcher

July 30, 2019
Tweet

Transcript

  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. Resources to learn Rust • Books • Screencasts • Online

    courses • In-person training 5
  6. Formats • Hack & Learn meetups • Short coaching sessions

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

    Immediate feedback loop • Seeing others work 7
  8. 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
  9. 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
  10. 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
  11. 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
  12. Teaching techniques • Micro-Talks • Ample amounts of solving problems

    • Preferably, problems that people came up by themselves • Q&A-Style coding 12
  13. 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
  14. 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
  15. 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
  16. Is Rust a hard language? • No, it’s an unfamiliar

    one • Ownership is a it’s core • Borrowing on top 16
  17. 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
  18. 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
  19. Credits • Kate Gregory - Stop teaching C 19

  20. Ferrous Summer Classes https://ferrous-systems.com/blog/rust-summer-classes/ 20

  21. Thank you! • https://twitter.com/argorak • https://github.com/skade • https://speakerdeck.com/skade • florian.gilcher@ferrous-systems.com

    • https://ferrous-systems.com • https://rust-experts.com 21