Sergey Bilovytskyy's Personal Site

My Recommendation - In Progress

If you want to learn how to program, learn C and Assembly first so that you understand how your computer operates. Rust is great as long as you don't steer too far into the dependencies fix everything mentality - if you need something, try to make it first*. * When it comes to cryptographically secure things, don't roll your own Crypto in production, go with the well tested implementations - this goes for any language. Rust is great about making sure developers don't easily fall prey to use-after-free vulnerabilities and other such security issues.
Update: I just came back to this post. I really want to like Rust, but I find myself going to C, Assembly, and Go before I ever attempt a project in Rust. Every other language is just more efficient in terms of development speed (at least for me). In the case of C and Assembly (and usually Go), the programs are just faster as well. Me making this page is evidence that I truly wanted to like Rust, but I cannot recommend it at all since I don't like using it. Since I know the inner workings of the computer, I find working with Rust very cumbersome since I would like to manually do the things Rust is trying to idiot proof. The restrictions Rust places is great for developers that don't know what they are doing, but restrict me from working with memory the way I normally do. If you are reading this post, there is a high chance you are not a soydev and so I would not recommend Rust for you. If you are newer to programming, my recommendation is to start with Go and after getting comfortable with it, start down the path of mastering C.

Links

x86 OS Development Rust Unstable Book: ASM Bare Bones ARM Bare Bones ARM #2 UART 16550

OS Dev Specific Links

I/O Ports VGA Ports Serial Ports