Slide 1

Slide 1 text

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

Slide 7

Slide 7 text

Why in-person training? • Flexibility • Context • Guidance • Immediate feedback loop • Seeing others work 7

Slide 8

Slide 8 text

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

Slide 19

Slide 19 text

Credits • Kate Gregory - Stop teaching C 19

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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