Hey Guys, New Here

I am Nirmit Aggarwal, an aspiring software engineer from India. I can code Fairly well in JavaScript; I have started learning Rust.... I am following YouTube tutorial from code eater YouTube channel and Rustlings for practice.... My Goals are to start making projects of my fancy as soon as possible and I would also like to get into opensource community and actively contribute to few rust related Repositories by the same time next year, to strengthen my CV for a internship next year... What are your suggestions or critiques for me

nirmitAggarwal (NIRMIT AGGARWAL)

I appreciate all sugestions / roadmaps / project ideas / guides .... Thank you

1 Like

I’d personally recommend that you focus contributions in open source to the things that actually happen to interest you. Some people who look at opensource mainly as a way to “strengthen CV” as the main purpose, may end up not being particularly helpful to the project (nor to their CV?) after all. If you come across a particular open source project that you really like, perhaps because you’re using it yourself, perhaps you even already noticed things that could be improved or found a bug, then that’s a good motivation to getting into contributing to it[1].


Some properties of Rust specifically, an important thing to learn is always: The compiler is your friend! It can be extremely educational just to try out things and to read the resulting compiler error messages carefully. It’s different in this regard from many other programming languages, for example JavaScript, where compilation errors don’t really exist in the first place, or even many other statically typed languages whose compiler error messages have simply seen much less love and are thus more often confusing than Rust’s are.

In a similarly tooling-based mindset, you can discover a lot of small little things from linting code with clippy, and if you ever dive into unsafe Rust, miri is often a great help.

Another thing about Rust: It’s on the more complicated (or at least more complex) side of programming languages, which doesn’t make it that much harder to get into necessarily, but it does mean that many tutorials or educational material, including the often recommended book The Rust Programming Language, can contain a lot of simplified explanations of things. Either deliberately (nonetheless may include significant over-simplifications) or even accidentally (when the authors of teaching material didn’t fully understand some aspect of the language themselves); so it’s good to keep this in mind, and perhaps to learn from several resources to get a more complete picture :slight_smile: or perhaps to just try things out and see what the compiler says (and then what the code does) if you’re ever thinking something seems weird.

And documentation… don’t forget that you can always click through the documentation pages for the standard library or any crate that you might wanna try out to learn a lot of specific details about them. Experimenting with using a particular crate is as easy as going to the web playground for the most common ones, if they’re included there. Or you can open a terminal, do something like cargo new foobar; cd foobar; cargo add name_of_the_crate[2] (possibly multiple times for using several crates at once); cargo doc --open (for locally generating and opening the documentation of your code, and all dependencies), and starting to work on scr/main.rs with an editor or IDE of your liking.


  1. or at least for opening an issue, if you found a bug that isn’t reported yet; though opening issues could also already be considered contributing ↩︎

  2. obligatory mention: adding a crate to your project and doing any kind of build step, or check, or creating documentation etc… does in principle allow arbitrary code execution from the crate’s built scripts on your computer, so it might be reasonable to have some amount of caution when checking out newly uploaded/updated and/or mostly unused libraries, and look at the respective project first ↩︎

6 Likes