Skip to content

leocjj/learning-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 

Repository files navigation

learning-rust path

Follow the book

https://doc.rust-lang.org/book/

  1. ✅ Getting Started
  2. ✅ Programming a Guessing Game
  3. 🔄 Common Programming Concepts
    1. ✅ Variables and Mutability
    2. ✅ Data types
    3. 🔄 Functions
    4. Comments
    5. Control flow

  1. Understanding Ownership
  2. Using Structs to Structure Related Data
  3. Enums and Pattern Matching

  1. Packages, Crates, and Modules
  2. Common Collections
  3. Error Handling

  1. Generic Types, Traits, and Lifetimes
  2. Writing Automated Tests
  3. An I/O Project: Building a Command Line Program


  1. Functional Language Features: Iterators and Closures
  2. More about Cargo and Crates.io
  3. Smart Pointers

  1. Fearless Concurrency
  2. Fundamentals of Asynchronous Programming: Async, Await, Futures, and Streams

  1. Object Oriented Programming Features
  2. Patterns and Matching
  3. Advanced Features

  1. Final Project: Building a Multithreaded Web Server

Test knowledge with examples

Learn basic useful libraries

Create basic projects

  • Simple UI
  • Todo App
  • Build an API
  • Integrate and API
  • CLI App with DB support
  • Read code of a public library framework

Create portfolio based on:

  • Relevance:
    • High-performance CLI tool
    • High-performance microservices
    • Web3/blockchain applications/analysis
    • Crypto trading tools
    • Ultra-optimized embedded systems
  • Substance:
    • Clean
    • Modular
    • Troughtfully architected
  • Including:
    • Real db, queue, metrics, logging, kafka
    • Data processing pipeline that must not drop events
    • Highhroughput component that sits between services
    • Deployable with Docker and CI without drama
    • Model errors so other services know what happened
  • Initial ideas (develop 2 or 3):

Check Rust use cases and roadmap

https://product.letsgetrusty.com/

Use cases

  • Systems Programming
    • Databases, OS
    • Security, encryption
    • Data processing
    • IoT / embedded devices
  • Tool / Infrastructure
    • CLI apps
    • Platform code
    • Shared code (libraries)
    • Build & deply (CI/CD)
  • Web
    • Backend
      • APIs
      • Distributed Systems
      • Microservices
    • Frontend
      • WebAssembly
  • Emerging technologies
    • AR/VR
    • Blockchain

The roadmap

  • Prerequisites
    • CS fundamentals (stack, heap, pointers, etc.)
    • Memory management fundamentals
    • Programming languages fundamentals (e.g. types)
  • The Rust language
    • Primities, variables and control flow
    • Memory safety with ownership & borrowing
    • Type system (option, result, structs, enums)
    • How to structure Rust projects
    • How to test and document code
    • Polymorphism with generics & traits.
    • Lifetimes & smart pointers
    • Underdanding error handling
    • Functional features
    • Concurrency & async/.await
    • The macro system
    • Unsafe Rust & FFI

Next steps



Installation

https://doc.rust-lang.org/book/ch01-01-installation.html

# Installation
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
rustc --version

# Updating and Uninstalling
rustup update
rustup self uninstall

# Reading the Local Documentation
rustup doc
# If doesn't work in WSL, run this first
sudo apt install wslu

# VS Code extension
https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer

About

personal learning path, notes, codes, and projects

Resources

License

Stars

Watchers

Forks

Contributors

Languages