Readit News logoReadit News
beeburrt · 2 years ago
This seems like an awesome resource, but for a self learner like myself, not so much.

It's assumed that this book is accompanied by an experienced rust dev for a lecturer.

The posted link is to the GitHub repo, here's the link to the book:

https://google.github.io/comprehensive-rust/

mrtngslr · 2 years ago
Hey there! I wrote the course and you're spot on: the course is meant for classroom training (at Google and elsewhere). If you have the time to read a book, then I highly recommend diving into one of the many great Rust books. I've linked some of the freely available ones here: https://google.github.io/comprehensive-rust/other-resources.....

We've made an attempt at making Comprehensive Rust useful for self-learners by providing speaker notes on many of the pages. However, they're still quite terse and could be expanded in many places. PRs for that will be gratefully accepted :-)

asicsp · 2 years ago
Discussion: https://news.ycombinator.com/item?id=34091271 (568 points | 5 months ago | 198 comments)
yobbo · 2 years ago
For newcomers, https://github.com/rust-lang/rustlings is a good way to start.
mmastrac · 2 years ago
I'm very happy I dug into rust half a decade ago. The language has been fun to learn as it evolved futures and async/await, and the future continues to look promising. I've had the pleasure of working professionally in Rust twice in my life (once at Full story, now at Deno) and I can say it's by far my favourite language to work in.

I did some Rust training with Ferrous but by far the most useful way to learn was just picking up a project and building it.

brabel · 2 years ago
I envy people who can pick up Rust and just get stuff done. I've tried many times but every time, I find it far more difficult to build things than any other language I know, so I just give up and go back to "easier" languages.
jbandela1 · 2 years ago
I think previous experience programming in C++ can be helpful, in picking up Rust faster.

For me, in large part, the borrow checker is encoding in the compiler rules that you should be following in C++ anyway.

A few hours debugging dangling references or iterator invalidation will make you appreciate what the borrow checker is trying to prevent.

You also have experience knowing the difference between pass by reference, pass by const reference, copy, and move.

Also, if you want to keep your sanity, you will learn to take ownership seriously. Deciding what owns what and whether objects will be owned by the scope (on the stack), be owned by unique_ptr, or be shared with shared_ptr is a large part of designing a C++ program.

Again these all map very neatly onto Rust idioms, and as a benefit are enforced by the compiler.

Coming from a garbage collected language where you previously did not have to care about things like that, and now, not only being forced to care, but having the compiler yell at you for every mistake can be a pretty big learning curve.

However, I would say that not knowing C++ doesn't mean that you can't learn Rust, only that it may take a little longer because you have to learn new concepts with regards to memory management and ownership, and so give yourself some slack and do not be discouraged.

bandika · 2 years ago
What I find difficult is to switch my 2 decade C++ career into a rust job, despite learned Rust and finished some hobby projects touching ui, async and http server/client in Rust. Somehow most Rust job is about crypto currency.
dceddia · 2 years ago
I agree with the OP that the best way to learn it is to work through a real project, but I wouldn’t necessarily equate that with “picking it up and just getting stuff done”. At least, that’s not how it went for me, anyway! I hit all the real roadblocks along the way and it took a good few months before I felt actually comfortable. Until then, it felt like I kept running up against mismatches between how I wanted to solve a problem and how Rust wanted me to do it. It was more difficult to build stuff and I had to rewrite things many times. For background, I had worked with C/C++, Java, JS/TS, Ruby, and some others prior to Rust, and it was the first time in a while that learning a new language was pretty hard even after the syntax made sense.
paxys · 2 years ago
I find that a lot of people just pick wrong kinds of projects to dig their teeth into Rust with. It is a systems programming language. If you don't know much about it and set out to build a website, things are inevitably going to go south.
mamcx · 2 years ago
Have you tried asking? The Rust reddit was a major reason I stop hitting my head against the wall.

In the past, `&str` was just so huge block for me (now I wonder why!) and instead of getting stuck just ask about it. I think was a stream of a few question on reddit that unblock Rust for me after like 3 months of going nowhere.

echelon · 2 years ago
Pick up Actix or Axum and clone() and unwrap() all day for your first month. Write some little web servers for fun. Sqlx is great for sql, and you can do some heavy hitting stuff like media streaming and transcoding as you get deeper into it. It's got good torch bindings for ML too.

Before long you'll be running the compiler in your head and rapidly churning out code.

yboris · 2 years ago
I suspect this is about experience.

I had experience with PHP, JavaScript, and Python, but when at first coding in Go it would take me as much as 10x as long. But with more practice it's now only about 2x as long as in other languages. Keep practicing ;)

zokier · 2 years ago
I'm glad I've been following rust since <1.0 when it was lot smaller (tbh because it was missing stuff), I don't know if I'd have the perseverance to start learning it today from scratch just because the depth it has. Admittedly having bit of C++ background smoothed the curve too.
echelon · 2 years ago
I wasn't aware FullStory used Rust! That's good to know. I was worried I might have a hard time hiring folks in Atlanta with Rust experience.

The more Rust proliferates, the better. It's good at client, server, systems, and so many other things.

wilmoore · 2 years ago
I'm disappointed that you missed the opportunity for a well-placed pun there :)-
cjvirtucio · 2 years ago
most fun I've had with a programming language in years
RcouF1uZ4gsC · 2 years ago
Rust is the first systems programming language since C++ I have seen pushed by multiple large tech companies.

Go was pushed primarily by Google

Swift was pushed primarily by Apple

C# was pushed primarily by Microsoft

I am seeing a push for Rust by Microsoft, Google, and Amazon.

In retrospect, it almost seems that Mozilla closing the Rust team was a good thing for Rust as a lot of the Rust developers ended up at other companies and Rust became more than just a Mozilla language.

loeg · 2 years ago
I believe Rust evangelism spread to other companies long before Mozilla stopped incubating the language.
steveklabnik · 2 years ago
That is correct. These other companies were already employing people who worked on Rust in some capacity when all that happened.
seabrookmx · 2 years ago
Honestly all three languages are great in their own ways, but you're right in saying none of them really hit that low level "systems" niche.

I'm a big C# fan but I see very few use cases where I'd consider both.

mohaine · 2 years ago
The main reason is that Rust is the first new systems language in a long time. That no big players owned it helped as well.

Go and C# are not systems languages. Maybe a stretch goal at best.

Alifatisk · 2 years ago
Go is not a systems language? What is it then? General purpose language?
junon · 2 years ago
As someone who once despised working with Rust pre-v1, I firmly believe Rust is the future.
whatyesaid · 2 years ago
Rust is actually more suited to those companies than the general public (small companies and individual programmers) so it makes sense they do push it hard.
bfrog · 2 years ago
Arguably Rust is great for small/single owner companies as well. It saves vast amounts of time in comparison to c/c++
_rs · 2 years ago
Why would you say that is, or why do you think so?

I would argue Rust is definitely suited towards small companies and individuals for a lot of projects that C/C++ would’ve been used for before, even things like small audio units or plugins

adolph · 2 years ago
It is interesting that they have a day devoted to embedded using MicroBit v2.

The older Rust-Embedded Discovery book [0] also used Microbit but the later edition [1] suggests a STM32F3DISCOVERY. For RISC-V and Extensa fans there is also Ferrous Systems' Embedded Rust on Espressif training material [2] which has a coordinated board [3] that has been "cloned" by Wokwi [4].

0. https://docs.rust-embedded.org/discovery/microbit/index.html

1. https://docs.rust-embedded.org/book/index.html

2. https://esp-rs.github.io/espressif-trainings/

3. https://www.amazon.com/dp/B0B4FPV9FW

4. https://wokwi.com/projects/new/rust-esp32-rust-board

zokier · 2 years ago
For embedded Rust the biggest thing imho is that Infineon, a major microcontroller company, is officially supporting Rust https://www.infineon.com/cms/en/product/promopages/rust/
steveklabnik · 2 years ago
Don’t forget Espressif too.
mrtngslr · 2 years ago
My colleguage Andrew wrote the bare-metal part. I believe he picked the micro:bit board because it's readily available around the world. It also has a lot of fun sensors (microphone, rudimentary speaker, compass, ...). I'm sure there are other boards around, but so far people seem very happy with this board in our classroom training.

The only slight problem is the noise when 30 boards are powered on at once :-D They ship with an elaborate demo program which plays sounds and blinks the LEDs when you start it up.

adolph · 2 years ago
That makes sense. The first was great fun and v2 looks even better. I had written them off due to chip shortages but it looks like availablity is better now.
rickstanley · 2 years ago
From https://google.github.io/comprehensive-rust/:

> This site uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. [Learn more] [Ok, Got it!]

No reject? :|

pumanoir · 2 years ago
I've seen the same in many google pages (which I think is illegal under GDPR).Anyways, I use ublock origin to get rid of that.
curiousgal · 2 years ago
> Android team at Google

I am partly joking but judging by the state of the last couple of Android versions, that doesn't sound as good as it used to be.

renewiltord · 2 years ago
Cool thing. I currently use ChatGPT to provide me some exercises as I get better at the language. This is more like a presentation that needs accompanying conversation from the presenter.
beeburrt · 2 years ago
> I currently use ChatGPT to provide me some exercises as I get better at the language.

That's a good idea, thanks! I'm gonna do that too

tripdout · 2 years ago
The dive into using it in AOSP is very cool