Is learning Rust a good idea for me?

I have a passion for computer science, and I love problem-solving. The thing is, all I've done, programming-wise, is a mediocre amount of Python and very little JS. I sometimes hear I should dive headfirst into Rust, but I also hear people say it is a requirement to learn other languages beforehand. Any advice on where to start or what to do?

Whether knowing other languages is really a “requirement” depends on your own particular brain — how you approach programming and how you understand what you do already know.

If your “passion for computer science” includes enough of understanding the foundations of things — like what a “type” is, and how we build data structures out of flat memory — then Rust may not be a challenge for you, because the hardest parts of Rust to understand are generally the ones whose rationales are more subtle.

This is a perennial question, and one that's not completely resolved yet (it's hard to get data!)

I would say if you know enough Python to be able to say you know it more than JS, then you probably know more than enough already to not immediately get thrown off, but I think it's more a personality question for if you can push through Rust's learning curve without the grounding of experiencing all the problems it solves from other languages

The unsatisfying answer is just to give it a try, and feel free to ask questions if you're getting stuck!

Could you say more about that? What kind of computer science and for how long? What kind problem solving? It's just that I find it odd to hear someone say they have a passion for CS but have not done a lot or programming. Typically I see start out with a fascination for programming and getting into CS as consequence.

I'm going to argue that if you have some experience of any language, even if it is only Python or JS and especially if you have done some computer science then there is no requirement to learn another language before getting into Rust.

Why? Because as a teenager in technical college I studied Computer Science. A lot of that two year course was about how computers worked and programming (Not really CS as we might get in university today). Two thirds of the course as numerical analysis and statistics. We were introduced to programming with BASIC (The Python/JS of its day) But we were soon expected to be able program in assembly language.

I don't feel that getting anything done in Rust can be any harder than using assembler.

Anyway, the next year I was studying physics but in my spare time was teaching myself ALGOL (The Rust of it's day)

So my argument is that if we could do that, Rust is no harder than that and so no intermediate step is required.

I'm not going to say learning and using Rust is an easy road, but one need not learn it all at once. Step by step will do.

Anyway, start with the Rust Book The Rust Programming Language - The Rust Programming Language. Try out the examples. Write you own experiments with what you have learned as you go along.

If you get stuck you can always come here and ask for help.

Yeah that is a paradox but very true, we can to be a passion for computer science and have a little coding, because in theory maybe we know something but in practize for programming we have zero or less any of experience... It is often very trend for beginner as me too :slight_smile:

So his question is justifiable and honest =)

Hello Gobyebyebro !

If you want to join us a small group for study in Rust, we are here : Looking for study buddies getting into Rust

Happy coding !

I come from C++ developer, i must say all computer science and problem-solving can be to apply for all programming language whatever you use Rust or other because the algo is independent from syntax so you can learn with Rust and then it will be rewarding for your work if you like it :slight_smile:

I am new to Rust too, so first it is a step curve learning for beginner but once you know on how you use it can be very powerful for your project ! Just a thing try Rust if you are comfortable and if you stuck so we are here to help you !

I would say from personal experience that getting started in the Rust ecosystem is way more approachable than Python or JS. Bootstrapping a new project in Cargo is a dream compared to venv/pip or npm - those other package/depedency managers are shambling monsters looking for any opportunity to refuse to complie/build in comparison. C++'s cmake with vcpkg give me cold chills, BTW.
But yeah, as a new rust guy there are some struggles I'm still grappling with - variable ownership most notably still, for me. At the end of the day, I see any work/pain/sweat that I invest into rust as well worth it because the infrastructure is so well thought out. I say "go for it!"

I have never seen a language as close to perfection as Rust. It's fast, sufficiently safe, and has incredibly powerful crate management. I've been learning Rust for six months and have now mastered the basic syntax. With experience in C-like languages, I learned quickly. The additional concepts you learn are all pave the way for safety and speed (as well as ease of readability). However, Rust has also given me a few negative impressions: its sluggish compilation speed, the community has made optimizations in recent years, but every time my computer compiles, it's like it's being baked—fans running full blast. Additionally, Rust is still rapidly iterating, so some standards haven't been established yet, such as the unique ABI interfaces in Rust. This is understandable, as our crates are powerful enough to compensate for that issue

If I were allowed to answer your question ‘Should I learn Rust?’ based solely on my existing biases and without knowing your specific background, I would quite naturally and without any sense of guilt tell you that I think you should not learn Rust.

At least let him try out Rust to see if it suits him—just an idea to see if he can do anything with it—and then he can tell us whether he wants to go ahead or not.

It's been a long journey for python, but it seems to have finally arrived with the uv package manager:

% uv init myproj

% cd myproj
% uv run main.py

Using CPython 3.13.13
Creating virtual environment at: .venv
Hello from myproj!

% uv add numpy

% cat pyproject.toml

[project]
name = "myproj"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "numpy>=2.5.1",
]

Looks somehow familiar :slight_smile:

Thanks for the callout.
Yes, as you've said, uv goes quite far in alleviating python's environment & dependency management issues. NPM however still feels like a series of sharp and spinning blades, especially when trying to git clone and build example NextJS projects found during google searches if the project is more than a few years old. Still though, Rust just feels right for where I'm at in my programming & career trajectory.

These kind of comments are exactly the reason I hesitate on my desicions, One guy says, "go for it." while another gives me the equivalent of a warning written in blood on a wall.

At least in this case, the blood from that message is from repeatedly bashing your head against a brick wall, rather than the gremlins coming to get you :face_savoring_food:

Eventually you figure out where the walls are and stop getting your head banged up so much, which is a much better experience than forever living in fear of the memory corruption gremlins of C and it's friends.

The issue is your experience so far can cover a wide range of interests and personalities, probably the majority of which absolutely shouldn't waste their time with Rust when it's not necessary to do what they're actually after, but if you're already interested enough to ask it very well could be a good fit.

Personally, I would use the why as a signal to filter out noise. If someone says "Learn Rust!" or "Don't learn Rust!", but does not offer the ".. because <insert reason>", then perhaps you should direct your focus toward other posts instead.

The boring generic answer is: I think you should try out any language that catches your attention, just for a bit and see if it feels like a language for you.

I decided to do mostly Rust after decades of writing mostly C and C++, for various reasons. One of them is because Rust made programming more enjoyable -- it's fun. But if you speak to Rust-critics about what they don't like about Rust, it not being fun to work with is one of the reasons you'll encounter sooner or later. But you'll never know which category you fall into unless you discover it for yourself.

From a strictly technical perspective, I think learning Rust is a good choice. Memory safety is still topical, and learning to use types to make many mistakes become compilation errors, rather than subtle bugs, is quite neat. And there are many things you'll learn about writing correct code that you'll be able to bring with you if you decide to switch to another language later.

Maybe you could try playing around with PyO3 -- that way you can keep one foot in familiar territory, while exploring Rust at the same time. (Though I don't know how beginner-friendly PyO3 is..).

Meh...

People of all ages, from the very young to the very old, with a wide variety of backgrounds and prior knowledge are constantly learning new things, ranging from the very simple to the extremely difficult. Some give up, others need several attempts; for some, the basics are enough, for others, an intermediate level is sufficient, and a few become true experts.

Asking someone else (especially online) whether you should learn something or not is fundamentally wrong.

The only thing that matters is your own intrinsic motivation: Are you interested in Rust, and do you want to learn it? Then just do it. Are you interested in something else? Then learn that instead.

All you need is motivation and a little perseverance. The rest will fall into place. Follow your own path, not the one others choose for you.

If you are just interested in Rust, you certainly have the freedom to explore it – many people have started that way, as far as I know. However, many of Rust's features mean that it is not a programming language that will always make you happy, and I'm not sure whether you might be put off by its extremely steep learning curve.

That would certainly be the best. But I saw the statement ‘I sometimes hear I should dive headfirst into Rust’ — perhaps he himself isn’t really interested in Rust. When I say ‘I sometimes hear I should do sth.’, I usually have no understanding of and no interest in that ‘sth.’ However, perhaps I am indeed projecting my own habits onto others, which isn’t very good.

Indeed. But perhaps the questioner has merely heard from others that they 'should learn Rust' rather than truly liking Rust.
If I knew little about something, yet often heard that I should dive into it without hesitation, while also being unable to guarantee that I had any real interest in it, then I would also seek advice from someone who knows about it, asking whether I really should get into it.