Learn Rust
Master The Rust Programming Language By Building Real Projects
Have your team learn how to write effective Rust by building five real-world applications.
| Application | What You Learn |
|---|---|
| cat | Learn how to build and run command line programs in Rust. |
| sort | Learn how to use Rust's data structures to implement sort. |
| curl | Learn how to write network clients in Rust by building your own curl. |
| wc | Learn how to process text data and handle locales by building wc. |
| URL Shortener | Learn how to build efficient network servers in Rust by building a Memcached clone. |
Interested in booking this course?
If you'd like to discuss having this course delivered for your team, please contact us through our enquiry form.
Who is this course for?
Software engineers who need to learn Rust and be able to confidently build command line tools, network clients and backend services in Rust by the end of the training course.
Learning Outcomes
Upon completion of this course attendees will be able to:
- Build Rust programmes from scratch.
- Build CLI software in Rust and have four real-world examples to demonstrate the skill in action.
- Build network clients in Rust.
- Write automated tests in Rust.
- Write network servers in Rust and have a real-world, deployable project to demonstrate the skill in action.
What you’ll get out of this course.
When you have completed the course you will have a good understanding of the Rust programming language and how to build CLI tools, network clients and servers with it. You will have demonstrated those skills by building five real-world applications in Rust.
Course syllabus
The course can be run over 3 to 5 days to suit your organisational needs.
Session 1 - Introduction To Rust.
In this session you'll learn about Rust, setup a Rust development environment and build your first Rust programs.
Session 2 - Writing Your First Command Line Tool - Build Cat.
In this session you'll build your own cat command line tool, in the process learning how:
- Variables and types work in Rust.
- Manage control flow and looping in Rust.
- To handle command line arguments in GRusto.
- To read and process files in Rust.
- Handle errors in Rust.
- Print to the standard out in Rust.
Session 3 - Writing Tests In Rust.
In this session you'll learn how to write and run tests in Rust.
Session 4 - Writing Your Second Command Line Tool - Build Sort.
In this session you'll build your own sort tool, in the process learning how to:
- Use vectors in Rust.
- Implement algorithms in Rust.
Session 5 - Writing Network Clients In Rust - Build Curl.
In this session you'll build a simple clone of curl, in the process learning how to:
- Build network clients in Rust.
- Make HTTP requests in Rust.
Session 6 - Processing Text In Rust - Build Wc.
In this session you'll learn how to process text in Rust.
Session 7, 8 and 9 - Writing A Network Server In Go - Build Memcached.
In this session you'll begin to build a Memcached server clone, in the process learning how to:
- Build network servers in Rust.
- Use threads and async to handle concurrent clients.
- Handle concurrent access to data structures safely.
Meet The Instructor
John Crickett
I'm the founder of Coding Challenges, a software engineer, and sometimes a manager of software engineers. I've worked as both a senior individual contributor (Staff+) and a senior manager (VP Engineering, Head of Software Development).
I've worked across many tech stacks. I've spent most of the last six years building distributed systems with Python and Flask deployed on AWS using CloudFormation and some CDK.
I've done some TypeScript/JavaScript, React and Next.js on the frontend with Node.js and Express on the backend. All deployed on AWS using CDK. It's not my forte though!
For most of my career before that I worked in C++ as well as a number of other programming languages including C, Java, C#, PHP, Perl, Visual Basic, Pascal, Deplhi and others.
I'm currently working in Python, Go and occiasionally Rust. Coding Challenges was born out of the process of learning Rust by building real-world applications.
Frequently Asked Questions
Can you run this course onsite in our office?
Yes.
Can our software engineers attend remotely?
Yes
Does each participant develop their own solutions?
The intention is that everyone builds their own solutions. The instructor will be available to help if they get stuck. If your engineers prefer to work in pairs or mob programming that's fine too.