Training Rust
Florian Gilcher
Rust LDN July 2019
CEO and Rust Trainer
Ferrous Systems GmbH
1
Slide 2
Slide 2 text
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
Slide 3
Slide 3 text
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
Slide 4
Slide 4 text
I train Rust
• Local Berlin Hack & Learn
• Conference workshops
• Custom client workshops
• https://ferrous-systems.com/blog/rust-summer-classes/
4
Slide 5
Slide 5 text
Resources to learn Rust
• Books
• Screencasts
• Online courses
• In-person training
5
Slide 6
Slide 6 text
Formats
• Hack & Learn meetups
• Short coaching sessions
• Quizzes
• Intro sessions
• Full blown workshops
6
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
Slide 9
Slide 9 text
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
Slide 10
Slide 10 text
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
Slide 11
Slide 11 text
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
Slide 12
Slide 12 text
Teaching techniques
• Micro-Talks
• Ample amounts of solving problems
• Preferably, problems that people came up by themselves
• Q&A-Style coding
12
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
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
Slide 15
Slide 15 text
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
Slide 16
Slide 16 text
Is Rust a hard language?
• No, it’s an unfamiliar one
• Ownership is a it’s core
• Borrowing on top
16
Slide 17
Slide 17 text
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
Slide 18
Slide 18 text
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