Hi RI Community, (Serious Question) Short: How do...
# tribe
c
Hi RI Community, (Serious Question) Short: How do you learn a new programming language/technology really well? Long: Recently I have been working on a project with Rust. Even after a couple of months of coding, I am still struggling with doing basic things. Coding for quite a number of years with Python, Ruby and JavaScript, very REPL mindset. Rust just does not compile if I don't use the right types and syntax. What are your strategies to learn a new language?
👌 1
w
Haven't worked with rust in particular. The general mantra when learning new language for me is to read more than write. Find some easy to understand rust projects read their code, recognize the patterns, how they're being "smart" in the use of the language. Ultimately move to reading code of well-known open source projects in the rust ecosystem to learn best practices. Also doesn't have to be just OSS, read code written by your colleagues, previous developers, in any project using rust in your org (if you have access)
👍 1
🙂 1
@creamy-sundown-74328 has been doing rust for some time, he can give more rust particular insights.
l
I can relate to this. It is a great question and everyone will have their own style. My recent approach via which I was able to pick up enough of Angular, Vue and Serverless for some side projects was to purchase the top Udemy course for that topic and follow the course enough till which point I felt confident about using the learning for my side project. After this stage, I'd jump and revisit chapters to try and use the learning in my project. I prefer to learn by doing - so this approach works for me. 1. Follow along initially the video tutorials till you gain some level of confidence. 2. Then start your own project for motivation. 3. Familiarize yourself with course content 4. Jump across chapters to use what makes sense to you. I'd highly recommend getting courses or materials from the best / highest rated teachers because they tend to follow best practices which itself is worth the price premium they sometimes charge. Making mistakes and struggling to do the basics is par for the course. You are re-aligning frameworks and concepts in your head -- so that is bound to happen. What you expect to work, most often will not -- and that is a good learning opportunity to get a better grasp of the fundamentals.
👍 6
➕ 2
🙂 1
f
@loud-glass-33663 has some excellent points. +1 for seeking the best quality tutorials and books. oreilly safari books is something I've been relying on a lot lately. (to me, videos are more engaging but tend to be slower+ harder to navigate when you are jumping across chapters) I usually follow this 1.try some " getting started" sort of tutorial 2. hands-on for a few weeks (usually while working on the actual project requirements) 3. go back to the "textbooks" and read advanced chapters
👍 1
🙂 1
i
I've used the exercism.io course on Rust too, which is fairly good. (I too am a Ruby/Js programmer, I can understand the pain of REPL less development 😁 ) However, what I've heard from friends who write Rust, is that they too struggle with the compiler. And like quite often, even after having learned it properly. Perhaps this is unique to the Rust programming language itself.
➕ 4
👍 1
c
Following a book/course worked for me in the past. The book/course should be more practical and less theory. To begin with, practice is what you need. Already programming for years so you will anyways end up looking for theory if you don't understand some concepts. I make sure to type and run most of the provided code and exercises. When stuck with exercises, look around the web, most popular books/courses have github repos where either the author/instructor themselves or lots of other people have full solutions - look up the solution and learn. See if the exercise can be solved with some other approach (however small/insignificant the change) - code and run it. Whole thing takes some time (atleast couple months while working dayjob) but I found it to be most effective for me - especially with a language paradigm shift.
🙂 1
👍 1
b
Rust is at least by engineering standards a novel language. There's not much borrrowed(ha!) from other languages in terms of core features except for say some stuff from ML family of languages. What am trying to say is knowing multiple paradigms / different family of languages is not beneficial to get a good grip on Rust due to this. It's fairly unique and niche. And in case it makes you feel better, it's known that you'll have a tough time fighting with the compiler w.r.t Rust. Bottomline, as with any specialized skill, do more Rust to get better at it
👍 1
But on a very general level, I think it's best to learn diametrically polar languages. Why? Becuase modern langauges are mostly a mishmash of different features from different languages. I found https://www.coursera.org/learn/programming-languages to be quite useful to get started atleast. It covers ML, Racket, Ruby and is by a professor who works with PL research. So you get a distilled version of languages and enhance your mental toolkit to understand new languages. It's a three part course, and some exercises require serious effort(spoiler: You write a very basic version of an interpreter yourself)
👍 1
s
c
I have been following what @loud-glass-33663 has said and worked really well. Apart from that reading docs and involving/following in that particular programming community channels will get more confident as we can ask questions there and get feedbacks.