-
Notifications
You must be signed in to change notification settings - Fork 26
Home
English | 中文
(This tutorial is under development, unfinished parts will be marked with [TODO])
Extended reading: Tutorial progress notes
You can preview what you can get through this tutorial.
- Performance/security/productivity, many programming languages can only choose two of these three trade-offs, but Rust has all three
- The linux kernel has always only recognized the C language, and Rust has created history, becoming the first official non-C language in history entering the linux kernel
- Microsoft is rewriting parts of the Windows kernel in Rust
- World-class development experience and tool chain, Rust is the language with the best development experience I have ever used, none of them
-
rustup
Rust itself and the corresponding tool chain installation/upgrade/multi-version functions, one-click management -
cargo
Rust project dependencies/build/unit test/integration test/release/update, one-click management -
rustfmt
Rust's official formatting tool, no more holy wars over brackets and newlines -
rustdoc
Rust's automatic documentation generation tool, the code is written, the document is written
-
- The most important point is: Safe Rust compiles == no bugs (no dealing pointers/dealing references/memory leaks, except logic bugs)
- Concise, with 500 lines of code tutorial to teach you 80% of the most commonly used knowledge in Rust
-
Learning by doing
has a higher knowledge retention rate than just watching but not doing, only reading but not writing - Rust has world-class documentation and tutorials, but if you're a Rust beginner, you've probably heard of Rust's
steep learning curve
, like myself, where I spent 5+ hours a day for 2 months before I was able to write this tutorial, and I only learned less than half of the knowledge I have read. In the process of making this tutorial, my understanding of some knowledge points is gradually deepening. By following RTD to complete a small project, you will be familiar with the most commonly used functions in Rust, it will be more comfortable to read Rust's excellent and thick "Bible". Excellent Rust material includes, but is not limited to:- Rust The Book: The Rust Bible
- Rust By Example: Examples of Rust knowledge points
- Rustlings: A collection of Rust exercises
- If you have read some of the above material, then you will be able to follow the RTD tutorial more easily, but that is not necessary, I will assume that you know nothing about Rust
- Familiar with simple programming experience in any programming language, know what is
variable
,condition
,loop
,scope
, etc. - Understand some simple computer basics, such as knowing what is
the difference between main memory (memory) and auxiliary memory (hard disk)
,simple data structures, such as arrays and so on
, etc.
In short, anyone familiar with any programming language, especially engineers in some of the following fields:
- Front-end development, the future of the front-end is the Web, the future of the Web is WebAssembly, Rust is currently the most suitable language for WebAssembly development.
- Backend development, Rust
fearless concurrency
,performance comparable to C
andformally verified memory safety/thread safety
Which backend do not love? - System development, Rust will eventually surpass C language.
- Embedded development, another home of Rust.
- Blockchain development, the vast majority of blockchains you can find on the market use Rust
- Any other scene developers that require high security/high performance
- Programming beginners, Rust is not suitable for learn programming as the first language entry
- I thought so at first
- But after contacting the feedback from some people in the Rust community who are actually using Rust as their first programming language, I think I should reconsider whether this view is correct
- Special note: Engineers who are too proficient in a specific language need to put aside stereotyped concepts in their minds when they first learn Rust. Because Rust is quite different from most mainstream programming languages due to its breakthrough and innovative features, if you are too proficient in a specific language, you will inevitably bring in some existing concepts, which will easily cause confusion
- Assume that the reader knows nothing about Rust. I will stop and explain every new Rust-related concept in the tutorial when it first appears, and I will not assume that you have the corresponding background knowledge
- Each chapter has the complete code of the chapter, which can be run directly
- Game-based learning, divided into two lines, the main line and the branch line
- Main line: Complete RTD CLI App
- Just want to be able to use it, and don't do in-depth exploration of some advanced concepts to ensure that you can easily make applications
- Branch line: extended reading of some Rust knowledge points or computer science concepts encountered in the process
- usually explain the principle
- why is it designed like this
- what tradeoffs were made
- What are the pros and cons, etc.
- Main line: Complete RTD CLI App
Branch extended reading will like this:
Extended reading: XXX
link to the page in [en]ext_XXX
format page (most likely [TODO] at the beginning of tutorial writing)
Interesting fact: I use RTD to complete the RTD tutorial :)
The progress and growth of every reader is the biggest motivation for me to update the tutorial.Don’t be stingy with your words. Whether it is the problems encountered on the way to follow the tutorial, the lack of teaching materials or any comments and suggestions, you are welcome to leave your comments or issues. If you like my tutorial, you can also give me a star, I will be very happy.
Cuppar He(He Zhiying), software development engineer, likes programming, technical writing, learning new things, especially computer science, worked for SAP(World Top 100) and Alibaba Group(World Top 100 & Chinese internet giant). I am currently in Gap Year, if you are looking for a software development engineer and can provide a high-quality offer(Both remote and on-site), please contact me [email protected]
.
每一位读者的进步和成长是我更新教程的最大动力。 不要吝啬你的言语。 无论是跟随教程途中遇到的问题、教材的缺失还是有任何意见和建议,都欢迎您留下您的意见或问题。 如果你喜欢我的教程,也可以给我一个star,我会很高兴的。
何志颖(Cuppar He), 软件开发工程师, 喜欢编程, 技术写作, 学习新东西, 尤其是计算机科学, 曾就职于SAP(世界百强)和阿里巴巴集团(世界百强&中国互联网巨头)。目前我在Gap Year, 如果你在寻找软件开发工程师并且能提供优质的offer(远程和现场都可以), 请与我联系[email protected]
。