Cool :) so, the Java will give you a nice introduction to generics. Rust’s are a bit stronger, and generally don’t do type erasure. I think given your background, you should read the generics chapter of the book, and then maybe poke at error handling, with Option and Result. These will show you how rust differs from Go; they have almost identical error handling stories, but the generics plus enums mean they feel very different. From there, traits are kinda like Java interfaces, but on steroids, and Trait objects do type erasure like Java does. That’d give you a decent starting place, and you can branch out from there.