10
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.


can confirm! learning Rust now after more than a decade of writing code in various different languages, and was irritated as hell first since I’ve expected it to work roughly like anything else I’ve used before. catching up with the basic concepts of Rust before attempting to write code made things a lot clearer - who would have thought 😜