Rust is one of those languages that wil force you to become a more rounder programmer because, depending on your background, it will help to introduce you to a more rigid, defensible style of programming. When learning, I loved the fact that error-handling is furnished to the programmer at such a high-level. You may also find that the community is friendly, yet typically far more advanced than the insert-popualr-language-here groups. By necessity, you will be forced to learn a lot about your program after you've written it (how it's laid out in memory, the effect of CPU context switches, etc). These are typically concepts that are lost on programmers working in more abstract environments.
Trust me, your struggles with the borrow checker will become much less frequent when you begin to really understand how it works and why it's there. I found that even when I knew, it still took a few months before I really knew. I am glad that Rust generally does a really good job with it's error messaging, also. So even though you may be having difficulty compiling your code, the error messages will go into great detail and even provide possible fixes.
What would you suggest for someone interested in learning rust. What resources should I go through to learn with? What would be something a rust newbie should try to build?
The official "book" is the best place to learn rust. It's a relatively fast-paced book but does not assume you have any familiarity with Rust (or any other systems language): doc.rust-lang.org/book/second-edit...
In terms of what to do, a nice way to get proficient in a language is via Exercism: exercism.io/
When learning a new language I like to implement the Game of Life and a Brainf*ck interpreter.
Ive never heard of exercism before looks like a great resource. Thanks!
I can really recommend the Brainf*ck interpreter. Also try implementing some optimizations such as combining operations.
/r/dailyprogrammer really cathcy.
Thanks for letting us know about exercism.io. Looks really nice :)
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.