Setting up the success of Dive Into Rust workshops at São Paulo

The first Dive Into Rust workshop at São Paulo, the connection of Mozilla communities with Rust brazilian community, the people who were with us, our learnings, workshop flow, resources, follow up and the next steps.

Last Saturday was our first Rust workshop in São Paulo, an initiative that is part of the Mozilla Activate campaign to introduce Rust to programmers and advance a more secure web with the programming language of the future.

Recruiting speakers

The beginning of our journey was to find programmers who love to teach Rust and have readiness to lead training with our Brazilian community. We found Rust programmers after an open call in the Rust forum! It was the first connection to the Mozilla and Rust community.

And as much as you can understand Rust and perform simple tasks, meeting someone who programs and has experience is essential to a highly impactful and inspiring workshop for new rustceans!

Workshop

The Mozilla Activate campaign has a workshop flow suggestion for our activities but we dare to go further, we did a combo flow with the suggestion of Dive Into Rust + India’s Rain Of Rust + activities created by ourselves.

The result is a workshop that goes beyond testing Rust, but has practical and realistic activities for a developer’s everyday life.

Workshop Flow

  1. Welcome, agenda and offline icebreakers. 10m
  2. Rust and the Future of Systems Programming’s movie. 6m
  3. Introducing Rust: What is it? Benefits? Use in the real world. 15m
  4. Introducing language using the Rust Book V2. 15m
  5. Introducing rustup, Cargo, crates.io, rustdoc, playground and quickly activities to test the Rust install and become familiar with Rust. 15m
  6. Exercises with the Exercism, an exercise together and in a group. 30m
  7. Introducing to the Ownership and exercise: move semantics of Rustlings. 30m
  8. Structs and enums exercises. 30m
  9. Exercise about parallelism: A parallel bitcoin miner. 30m
  10. Free Rust Hackathon — attendees will choose and develop a project with Rust. 100m
  11. Continue Exercising Exercism
  12. Client and chat server for terminal
  13. Web client (API access or scraping)
  14. Web server with JSON API
  15. Access a database
  16. Make a graphical interface
  17. Use a Rust library through your favorite language (Python)
  18. Rust-python binding
  19. Creating a python module in Rust which focusses on delivering high performance
  20. Code
  21. Read the documentation here
  22. Open feedback e feedback for Mozilla using https://mzl.la/howwasit. 5m

Photos

Learnings

Who wants to learn Rust?

  • People who already coding are interested in learning Rust;
  • People who coding and work in big companies who are looking for great solutions to improve their applications;
  • People in the interior of the state of São Paulo are extremely interested

What is the ideal format?

  • A diverse, hands-on workshop focused on day-to-day activities ensures that developers understand Rust’s way of programming and operating;
  • Activities that work with other languages like Python are a plus and shows the power of Rust language;

Marketing?

  • Facebook is a powerful network to promote the workshop, in only 2 hours our tickets sold out;
  • Workshops with 20–25 people is ideal for highly impactful activities using Rust;
  • We need to organize more workshops because we have a waiting list of around 60 people and more people want to learn Rust every day.

Follow up

The participants connected to the Brazilian community of Rust in the Telegram, which is extremely active, and guided to join the official channels of communication and resources.

Next steps

Thank You

A big #MozLove to

  • Cybelle, our aweeesome workshop organizer!
  • Leonardo from Unicamp, our aweeeesome and expert Rust Speaker!
  • Matheus, Alda and team player & SENAI for big support with place and infra!
  • Also for all attendees and newcomers at Rust brazilian community!

[video width=”700" mp4=”https://geraldobarros.me/wp-content/uploads/2017/08/giphy.mp4" loop=”true” autoplay=”true”][/video]