Preferences

> because the best way to learn something doesn't change

What do you consider the best way?


Also not OP, but I find the best way to learn a new language is to attempt a project using just the documentation. In my mind, the documentation for the language should provide methods, paradigms, and patterns required to think in that language (and get the benefits). E.g., Starting as complete noob and following the rules as written by the language itself.

This is a different approach from: how do I turn some code I wrote in language X to language Y? Similar to transliterating a spoken language versus learning it from the ground-up. Going from Spanish to Italian, you can kindof get away with word-for-word replacement in the same order and get the gist. You can't really do that with, say, Japanese, where there are far more rules not just of grammar but of register and assembly which are nonexistent in romantic languages. In other words, you might learn some vocabulary, but you'll face a big challenge to learning the language with this approach.

Both approaches are completely valid, but you'll get further (farther?) with one than the other. You may also realize you are using the wrong language for the project in the process. For example, when I first started heavily using PERL in the mid-90's, and then switched back to C, I was really frustrated I couldn't operate with strings and regexes so recklessly like I did in PERL, but that's because I was using the wrong language (C) for something that should have stayed in PERL.

Not OP, and probably also not the best way, but it works for me:

I started by picking the topic which interests me the most, where I have a lot of experience in. I searched for the most popular framework in order to not risk using something shady.

Then I implemented the rudimentary things (in my case a warp based websocket server), used the book to help me understand the things that weren't clear, started adding the features I use the most, like JSON parsing and object construction, datetime handling, adding a task with an interval timer to notify all clients periodically.

Then I went to the client side with a new project based on tungstenite.

Now I have a basic idea of what the language feels like and enough questions to read the book with motivation, knowing what it is I want to know and why the book tries to tell me about other topics which I should know about.

I'm also watching a lot of YouTube videos, specially from the really good channel "Let's get Rusty", which goes through every chapter of the book and adds some additional related information. Then also conference session with topics that could be helpful.

not op, but i often see people trying to push their old mindset on a language they are learning, which is a bad approach. maybe i miss sth, but i don't see how any knowledge from python is applicable to rust. so it may be beneficial to clear your mind and go from zero.
It's not that different. You'll obviously have to learn about how Rust uses variables and how to do the error handling, but it's not like Rust gives you some freedom in how you do it. It either compiles because you did it right, or it won't compile. It's really strict about it. Of course reading about the differences is important since things like "move" don't exist in Python, but it's great if you have something which is working in Python and start coding a Rust version of it.

What does it even mean to "start from zero" if you've learned so much about programming, be it on using databases or sockets or merging downloaded map tiles.

Read the book? Yes, that should be done.

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal