I recently finished reading the official Rust documentation. And now I realize that during all this time (2 months), while I was reading and learning new language concepts, I never practiced anywhere (except rustlings). And I really want to see what I'm capable of and test my skills. I've come to the conclusion that I need to write my own projects! This is true (because many people recommend it), but I don't have enough imagination at all to come up with a project, make a plan and implement it. Because I don't understand which project to write, where to start, and so on. I'm thinking of writing something related to a web server, but there's another problem. I don't have enough knowledge about modules to implement the project (for example, a web server). But if I study the packages for this project, I won't be able to put everything together and won't write anything. I've already tried to study packages/modules for writing my projects, but I can't put all the knowledge together and just apply it. That's why I have TWO huge problems. Problem 1: I don't have enough imagination and clarity of thought to come up with some simple project that would allow me to test my skills for the first time and identify weaknesses. Problem 2: even if I find some simple project, I need to study modules for it (for example, to create a simple web server), but I don't have enough information about where to look for these modules and what to do with them when I study them! I'm really looking forward to your answer and advice. What did you do along the way, what were your actions (after reading the official rust-book/rust-by-example documentation). Thank you in advance for your reply!
Please reply to the question you already asked with this additional info, rather than creating a duplicate question. Then this topic can be closed.
I'm sorry, but I didn't quite understand you.
You already started a very similar topic. Please don't start a new topic when you have something to add to the topic you already posted. Just add a reply with the new information.
In that case, I understand you. Good. Could you give me some advice on this issue? I read your answer to my previous question (topic). But here, I've clarified the essence of my problem a bit.
I don't think I have any useful advice, but I can tell you what I did when learning Rust.
First I did lots of little experiments. These were just things I was curious about. For example, I was familiar with iterators from other languages, so I tried using them in Rust in various ways.
Then I implemented a zero-allocate JSON parser. This wasn't something I wanted to publish. I did it because in the past I had a need for a JSON parser that did not allocate, to reduce latency of request processing. With Rust we have more control over memory allocation. So I wanted to see if it was possible to parse JSON by reusing the allocations from a previous parsed document.
Very interesting. Thanks for the contribution
You could start with something simple, like a Discord / Telegram bot to scratch your own itch.
Getting the weather, that kind of stuff.
No need to have the perfect project, just start somewhere.
Why did you learn Rust in the first place?
I've read a lot about this language, and I'm well aware of how popular it is. I started learning it after C++. I knew C++ fairly well. And I wanted to learn a safer language, but a very productive one. Rust meets my requirements. Thanks for the advice. I'll keep trying. Can you tell me the sites where you can study libraries for creating telegram bots? And what kind of bots should you implement first?
Here is one lib you could give a try: GitHub - teloxide/teloxide: 🤖 An elegant Telegram bots framework for Rust
It really depends on your need. It's not really programming advice, but let's say there is something you really want to automate.
For example, what could be nice is a message telling you what's the weather going to be like today, sent at 9am everyday. Just an example
Thank you very much! I will try!
One project that looks good on the surface was in the Rust Newsletter; it is a weather app.
The author also seems to have a nice book (first paragraph after following the link above). I only skimmed through the sample chapter, and can’t buy it right now but maybe others can comment.
PS: I tested a few times, and the WeatherStack is not responding requests at the moment, I am unsure what is the underlying reason. Someone asked here as well. So you may try with another API (which could make the tutorial a lot less useful.)
I think I did some months ago – I remembered my comment was negative, but it took me some time to remember why.
They are using a completely unrelated comment by Jon Gjengset to advertise the book on their homepage. And displaying a few 5 star reviews starting with
>Among the more than 20 Rust books I've purchased, this one stands out. It focuses on clean, efficient, reusable code, good design principles, and robust coding practices. A valuable resource for anyone looking to learn Rust properly.
I am not sure if these reviews are fake, but they are not from Amazon, as that book is not listed at Amazon. I don’t think that they are from another page with serious reviews.
That book might be quite good, I can understand that they do not sell at Amazon, and I know that it is generally hard to sell books at all. But this form of advertising is a bit strange – and $45 for a 280 page book with quite trivial content is a bit much in this time.
I cant help think that doing a lot of reading and not practicing along the way is the wrong way to start out. My approach has always been to read a bit, a chapter or so, and then experiment with what I've just bee told. In an actual mini-project on my own machine in an editor. I play with it, I change things and see what happens, I break it and see how the error messages look, etc. Just getting familiar with things.
I don't understand your difficulty with modules. Typically when I start out on anything it all gets thrown into a single file (a module). Soon it gets too big and related functions/objects get moved out into their own file(module). That was the point I had to find out how modules work in Rust.
You mention C++, have you actually written anything in C++ or was that just a reading exercise? You also mention that "Rust meets my requirements", I have to ask what those requirements are? That makes it sound as if you have some use for Rust in mind. What is that?
I think that in order to make meaningful suggestions about projects you might want to practice Rust with we need to know more about you:
What programming have you done before?
In what languages?
For what kind of applications?
And personally, are you mathematically inclined, artistically inclined, do you like puzzles and games, etc?
For example when I was getting into C++ decades ago I had a fascination for graphical things. So the natural challenge for me was can I draw something on the screen? Can I draw 3d things on the screen, cubes, spheres, toroids etc. Can I apply some simple lighting to them? Can I apply perspective to the images? Can I move and rotate those objects? What about applying some physics to their motion, gravity, friction etc? None of that became anything useful but it was fun and I learned a lot and got to grips with C++ while doing it.
More than 20 years ago, I once read a good C++ book – not because I actually wanted to ever code in C++, but because I thought that it would be a good idea to know some C++. It took me perhaps 200 hours to read most of the book, and some months later I had forgotten large parts of it again.
And for Rust – I read the official tutorial book in October 2023 – and when finished, I initially thought that Rust is not that complicated. But then, when I actually wrote some code, or read the other people questions in this forum, I realized that Rust is actually a bit more complicated, and that I was not able to remember all the details. So actually some practice is necessary. When you have much luck, you might find a job where you can practices – otherwise selecting just a fun project might be an option.
I guess I had a lot of luck. Back in the day I took on many jobs where I did not know or had even heard of the language they were using, pretty much every company/project I joined had something new. Coral, Lucol, Ada, C, C++, Pascal, Javascript, Python, assembler(s). I recall at the end of one interview I told the project manager straight that I did not think I could help as I did not know the language they were using, or the OS, or the hardware or the application area. They hired me anyway!
I came to the conclusion that I had wasted a lot of time over the years because many of those languages were essentially, conceptually the same but dressed up in a different syntax and with a whole different set of library API’s to get familiar with. All for no particular benefit.
Then came Rust. For the first time in 50 years a language with genuinely new and valuable features.
You are right, Rust is more complicated. It has a lot of features that are likely pretty simple on their own. It’s getting a feel as to how to weave those features together in sensible ways that is tougher.
Bottom line is one just has to dive in and write code. And write it again when one realises how it is missing out on nice Rust features that would make it simpler and nicer.
Admission: In one of my first Rust programs I did not want to copy any strings around as speed was the challenge of that little exercise. I effectively implemented what Rust slices do. Then I found out Rust has slices!
It's John here, author of The Secrets of Rust: Tools. Stefan's repeated allegations about fake reviews have been brought to my attention, and perhaps the best response to such comments is simply to ignore them. On the other hand, I laboured for a year to write this book, my livelihood depends on its continuing strong sales, and it's a little irritating to see it smeared so casually on a popular Rust forum with absolutely no comeback. (Though he was kind enough to add that it “might be quite good”—I suppose he won't know unless he actually reads it.)
The “not sure if it's fake” review he quoted is from a reader named Roberto Porcar, and I'm sure Roberto wouldn't mind if I quoted his email in full, since he wrote the review explicitly for me to make public:
My English is not very strong so please feel free to change my words if needed.
I recommend John Arundel's book on the Rust programming language. Among the more than 20 Rust books I've purchased, this one stands out. It was a refreshing read that reminded me of the enthusiasm I felt when I first started learning Rust. I'd suggest reading it alongside the official Rust book if you are completely new to the language.
The book is packed with practical examples and it provides guidance on writing clean, efficient, reusable code. It focuses on good design principles and robust coding practices. The examples are practical and engaging, showcasing best practices for efficient coding. The author also shows how to refactor and test each project sample, and I appreciate the topics he chose and how they are broken down for better understanding. It's a valuable resource for anyone looking to learn Rust properly.
If you'd like to check with Roberto in person to verify that he wrote this, his address is roberto.porcar@gmail.com. I can also supply a copy of the invoice verifying his purchase, if someone really wants to see receipts.
As a matter of fact, I get many favourable comments like this from readers, and there simply isn't space to include them all in the reviews section. I'm happy to provide you with plenty of them on request, though.
I hope this clears the matter up. If you have any questions about the book, or anything else, do get in touch with me directly at john@bitfieldconsulting.com.
No, I don't think that ignoring is a good strategy in this case. It is great that you have become finally visible now as a real human for the first time in this Rust forum.
Notice, that English is not my native language, so my comments might sound more unfriendly sometimes than is actually intended. I have written two free books about computer programming myself, see
So I know well that negative comments can hurt. And my expectations on a good book might be a bit higher than average.
The flood of bad books is a pain. There have always existed bad books, but in recent years the number of books have exploded. For Nim we had a long time no book at all. Then in 2017 Picheta released his "Nim in Action", and in 2020 I created "Nim Programming". Now we have suddenly more than a dozen, I listed some of them at Books | Nim Programming. I know from friends that most are garbage, Amazon have already deleted a few again. My feeling is, that some people misuse AI to create this garbage just to earn a few bucks, instead of using it supporting the creation of really high quality books.
For Rust there are now more than 100 books at Amazon, some are pure garbage, and most seems to be of bad quality. Many have no clear target audience, and just present the trivial parts of the Rust language, to give the impression that Rust is actually easy. A prominent example is Introduction - Fast Track to Rust, but that one is at least freely available, and I think its author had good intentions.
For your book: For the content, I have seen only a few preview pages, and maybe the index. Well, you have decided to do not offer full content online. It is your decision, I can understand that, you might hope to make some money with your proprietary content. That is a valid decision, I know that writing a good book is much work, even when it has become much easier now with IA support, especially for not native speakers getting all the grammar fixes from AI now.
The way your book is advertised by you using a mostly unrelated quote of Jon Gjengset made me a bit skeptical. The same did advertisements by a few suspicious persons here in this forum or elsewhere. When people advertise something without referring to concrete content, saying that they have not actually read the book, it can appear a bit strange.
I can currently not remember details of your website -- the only what I actually remember is the Glengset cite. But generally I am skeptical if books are praised with a lot of "Great book" quotes from some fancy named persons without a message with actual content.
Conclusion: Your book might be actually fine. To confirm that you are a real person with some actual interest in Rust, it might help when you try to answer from time to time a few questions in this forum, or maybe create an interesting blog post or a Youtube video. Creating a Rust package would be an option too. Many Rust developers have decided to offer at least some material for free, e.g. the videos of Glengset, or the great free online books of Mara Bos, David Drysdale, Steve Klabnik, and many more. I listed a few of these great free resources at Further learning resources - Rust for C-Programmers
I just had again a short look at your books's website, the table of content, and the provided example chapter.
Actually, my feeling is that the content of the book makes some sense, some form of a simple, project-based tutorial -- perhaps for people who had already read the official tutorial, but had no other programming experience and no idea for their own tiny exercises or projects. The short provided example chapter 2 looks quite good -- it guides the reader step by step through processing a file, starting by just counting lines, covering error handling and all that. That makes sense.
My initial assumption was, that we would get a printed book, perhaps even a hardcover, for the $44.95. But actually you seem to provide only PDF and Epub with 240 pages?
I still have some problems understanding the books title, and wonder about the contents of the books website. The title "The Secrets of Rust: Tools" is strange. What secrets do you uncover? Why should a programming language have any secrets? And what is about Tools? Well, chapter 8 is about commands. But actually the books title makes not much sense, and so I do not wonder that I was confused some months ago when I visited your page for the first time. The subtitle "Opens up a whole new way of programming" is also very interesting. The website starts with the words
Are you ready to unlock the secrets of Rust? Master the world's most loved programming language with this cheerful and encouraging book for beginners and improvers, and learn how to craft stable, reliable, and durable software for this century and the next.
followed by phrases like
will show you how master software engineers think
Sorry, but are you really surprised that people get skeptical by such an advertisement style?
I believe for a while at least, this was exactly what several of those "take my course and you'll soon be making $1000 a day with no effort" ads were "teaching" you to do (I think it was an hbomberguy video talking about this, but I could well be misremembering who?)
Of course, if someone's charging you a bunch of money to learn how to make a bunch of money like them, what they're teaching probably isn't making money any more, and now they're making money from you.