6
What additional concepts should I learn before starting to learn rust? - programming.dev
programming.devSomeone once told me somewhere, that if I am trying to learn rust, I should
learn C first, so that I know how to shoot myself in the foot, learning to avoid
doing so, so that the borrow checker of rust doesnt seam to unforgiving (since
you somewhat know, what happens if you dont follow best practices). So thats
what I did (somewhat) for the past 6 months. I wrote some stuff in C, but mainly
I had quite of a deep dive into operating systems (mainly linux), working
mechanics of memory and the CPU and a lot more (I will try to make a list of the
stuff I learned and the ressources used below). My question to you is, if there
are any additional concepts/things I should learn beforehand, to start learning
rust. The (somehwat complete) list of things learned for the past 6 months: -
Stack Behaviour (Why its so fast, what its used for,…) - The heap (why its
useful, but dangerous) - Theoretical Concepts of threading (Concurrency vs.
paralellism) - Theory of race conditions (how and why they occur, and some
tricks to avoid them) - Concepts of Memory allocation on an OS level (Address
Spaces) - System calls and the separation between kernel and user space -
Signals - Basics of Inter-Process-Communication - CPU-Scheduling
(CPU-/IO-Bursts, context switches, different scheduling algorithms up to ROund
RObin (based on complexity)) - How loops, conditions and function calls get
implemented in Assembly / how the CPU performs these - Bitwise Operations I
probably forgot a significant part of the stuff I learned, but its quite hard
turning it into a list, without writing a whole book, and trying to remeber
everything.
Most of these things are mainly theory, since I havent gotten around to code
that much in C. However I definitively have some experience in C. This includes
on how to handle pointers, basics of handling the heap, strings (even if I
absolutely hate them in C) and some system calls (I played around with sbrk for
custom memory management without malloc). The ressources I used for learning is
primarily the YouTube-Channel CoreDumped
[https://www.youtube.com/channel/UCGKEMK3s-ZPbjVOIuAV8clQ] (I highly recommend),
LowLevel [https://www.youtube.com/channel/UC6biysICWOJ-C3P4Tyeggzg] and some
other ressources, but these were the most helpful ones. So, feel free to send me
down my next rabbit hole before starting rust.
I feel this post had pretty good answers in the replies, and figured it’s a post people learning programming might want to see.


The fact that people treat Rust like it’s very difficult is odd to me. I write Rust because C was too hard. Lol.
I tried to learn C, but once the learning materials got into double pointers and void pointers, I stopped being able to follow it. So I went back to Rust and after about a month of practice, I no longer struggle with the borrow checking rules (usually the hardest thing for people new to Rust) and it just keeps getting easier over time.
If you know C, you’re probably more than well prepared for Rust.
deleted by creator