Afterword
Finishing this tutorial does not mean that you have mastered computer science; it only means that you have learned the broad outlines of Rust’s design and how to write Rust programs. In fact, this book simplifies many concepts. If you would like to study programming in greater depth, my first recommendation would be to learn data structures, whether by taking a university course, reading books, or finding other tutorials online. Because this tutorial is aimed primarily at people with no prior programming experience, it greatly simplifies its explanations of data structures and computational complexity. It also devotes very little space to unsafe; on this subject, I recommend The Rustonomicon. Although The Rustonomicon is still incomplete, and may never be complete, it is already the best resource for learning how Rust interacts with hardware at a low level.
If you want to get closer to low-level hardware, you may also need to learn another programming language such as C, since most widely used programming languages offer interoperability with C through an FFI. Perhaps, however, you are like me and find programming languages more interesting than hardware. In that case, you may want to explore languages used more often in academia, such as the purely functional Haskell, or even Agda or Lean, which can be used to construct mathematical proofs. Although the design philosophies of those high-level languages differ greatly from Rust’s, Rust has borrowed quite a few ideas from them, so the time you spent learning Rust has not gone to waste. Who knows? Perhaps one of those languages will become popular in the future.
It may be a little late to say this, but at the very end, I would like to thank my family for giving me the opportunity to learn what I wanted to learn and to complete this tutorial.