This article is about the annoyance of programming language tutorials. First, I will argue why learning new programming languages always feels a bit like a pain to me. And then I will tell you why learning Rust was different.
*: Only a bit, but still enough to say “I’ve done things in this language”
When I started learning programming, I learned Java and shortly after that Ruby. Both languages have their oddities, but besides their overall concept (imperative programming and object orientated programming) they are both rather easy to learn. After that I learned C. Learning C was a new world for me back then, as I only knew object orientation. I cannot remember which resources I’ve been using learning C, though I remember it was a pain. I had a good friend helping me, which was awesome, though I struggled a lot with the new concept.
After learning C, I did a fair amount of PHP. Learning PHP was simple (I actually did it in one weekend and a few thousand lines), though it again was a pain. It was a pain because of the tutorials and resources. And that’s the point I want to discuss here.
So, learning Haskell was kinda amazing. Learn you a Haskell is a really great book and if you want to learn Haskell, you really should read it. But what was even a better experience was learning Rust.
So why is that? It is because Rust is a new concept and the old concept (imperative programming). Learning Rust is not like learning Python after learning Ruby. It is like Learning Haskell after learning Racket. The concept behind the language is kinda the same, though it is different in most details.
Plus, the Rust tutorials and resources are freakin’ awesome. Let me repeat that. The tutorials and documentation of the tools, libraries and everything, the resources on how to do things, are awesome!
Every documentation for each library looks exactly the same, which is a huge
advantage over other languages library documentations.
cargo, the Rust
build-tool builds the documentation locally for you, if you want that. So
working offline after you fetched the dependencies or your project (also via
cargo) is no hassle. Building a new project with cargo is absolutely painless,
its literally just executing a command, editing a textfile and executing another
command (setting up the project, writing down dependencies and meta information
about the project and building the project, which fetches the dependencies).
So really, if you want to learn a new programming language, check out Rust. I haven’t even talked about its language features, and I will not, as this is not the goal of this article. This article is about resources and tutorials. And my conclusion is:
All programming language tutorials suck. Except the Rust language tutorial.