Coder Social home page Coder Social logo

muzinian / rust-how-do-i-start Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jondot/rust-how-do-i-start

0.0 1.0 0.0 29 KB

Hand curated advice and pointers for getting started with Rust

Home Page: https://github.com/jondot/rust-how-do-i-start

rust-how-do-i-start's Introduction

Rust ๐Ÿฆ€. How do I start?

A collaborative advice for this casual question that gets asked many times, so here it is as a Github repo anyone can contribute to and improve!

  • ๐Ÿ‘๏ธ Before you start, watch this repo (Github watch button) so you can get updates when we add stuff
  • ๐Ÿ‘ทโ€โ™€๏ธ While you're working your way through, feel free to ask questions about ways to start in Rust in Discussions
  • ๐ŸŽŠ Feel free to add suggestions and PRs of your own https://github.com/jondot/rust-how-do-i-start#contributing

๐Ÿฑ What to expect?

Some hand-selected articles to give you a feeling of what's the journey like.

  • My own key learnings after 30k LOC in Rust - I can say that today the experience is much greater than back then. There's so much more to learn from, and the ecosystem is huge. Still, the core ideas in the article are relevant.

๐Ÿšœ Main track

This is largely the learn path you should follow. It is hand-selected, minimal, and high-value, highly effective content only

  1. ๐Ÿฆ€ The Rust Book. You can read it cover to cover, or skim it. What ever you do, make sure you have a pet project idea to experiment with. You can pick any of the core utils you like. The advantage of just re-implementing a core util is that you are probably familiar with one of those, they're just CLI apps and you're not biting more than you can chew, and you do have the source code in that repo for reference.
  2. ๐Ÿ‹๏ธโ€โ™€๏ธ If you like exercises as a learning aid, you can swap "building a small project" while reading the Rust book, with rustlings
  3. ๐Ÿงฐ Pick a hobby project that's useful for you. Something more than trivial that includes data passing and a few modules (just so you get to experience the borrow checker and data modeling) something in the scope of bat. Work on it and go back to the Rust book from time to time (as well as, well - StackOverflow). Repeat, rinse.
  • ๐Ÿคทโ€โ™€๏ธ Don't have an idea for a hobby project? PNGMe is a good project to build + it's a book and exercise format
  • ๐ŸŽฉ Don't want to work on a project at all? the too many lists minibook will have you building linked-lists of all kinds and is quite good
  1. ๐Ÿค Asking for feedback is highly encouraged to get better at writing idiomatic, readable and performant Rust. You can ask for feedback in the Rust Subreddit or in the Rust Programming Language Community Discord Server.
  2. ๐ŸŒฑ You're now ready for Rust by example and Rust by practice
  3. โซ Rust patterns is a great intro to idioms in Rust
  4. ๐Ÿค” When you feel curious about the "why's", pick up Rust for Rustaceans. If you're not building libraries, skim it and read what's interesting. If you are building libraries, have a deeper read and keep it for reference.
  5. ๐Ÿš€ Next, Zero to Production in Rust will give you some service-ish, production-ish use cases which will round off your experience

From here, since everyone have their own taste, visit Rust Books from time to time to pick up a resource that you feel can move you forward to the next step.

๐Ÿ“ฆ Starter libraries - save me from choosing ๐Ÿคฆโ€โ™€๏ธ!

These are opinionated but popular choices. The goal is to avoid paradox of choice while learning.

๐Ÿคพโ€โ™‚๏ธ Hold on! I want to just play around before deciding to start

Some links to give you a feeling of Rust, if you're not ready to make the jump yet, or need some convincing to invest the time

๐Ÿ’ป Cool stuff to have open in a tab while working

If you have multiple screens, and like a full immersive learning experience - you can keep these open at all times

Extras: Node.js Developers

These links will help bridge the mental model when you're coming from Node.js

  1. Add Rust for node developers to your schedule, which is a soft intro just to get your bearings.

Contributing

Please feel free to submit PRs to improve this list. A few pointers:

  1. The list must be concise
  2. If there are new tracks, feel free to open them by adding a new subtitle to this README and submit PR (i.e. "Rust for game developers, how do I start?")

Happy hacking!

rust-how-do-i-start's People

Contributors

jondot avatar schniz avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.