When it comes to learning new technologies or programming languages, we all have our own methods. So, how do you approach the challenge? Share your tried-and-true tips for mastering new languages at lightning speed. Whether it's helpful resources, practical exercises, or clever learning techniques, let's swap our best tricks and level up our tech skills together!
Follow the CodeNewbie Org and #codenewbie for more discussions and online camaraderie!
Top comments (16)
I mostly spend a day or two learning the language syntax and other constructs through the official documentation. On most programming languages websites, these essential constructs are mostly in Getting Started, Language Tour, Tutorial, Learn or similarly termed sections. They're not treated in detail but are enough to get you up and running quickly. I mostly avoid books, API docs and the detailed documentation or guides at this stage.
After getting familiar with the constructs, if I don't have to instantly use advanced concepts I start building my first project using the language, making use of the detailed documentation and guides, asking/browsing questions on SO about challenges I face during development of the project and watching short YouTube tutorials on particular topics.
If I have to use advanced concepts, I'll either go through the basic concepts once more before proceeding to the advanced parts of the documentation or get a good book on the language and read it from cover to cover, all while building different projects on the different topics I learn. Here, I easily understand through reading text than through video tutorials, so I always prefer reading and running examples I come across.
I create highly focused side projects... showcase a running prototype then... blog it on DEV.to (it's my definition of done)
If you want to master something, taking your time can end you up win some time.
Moreover repeating is key of success along with extending your knowledge a bit more. Then pattern will start to grow in your head. There is a really cool video of Veritassium about that.
can you pl tell me the title of that video?
youtube.com/watch?v=5eW6Eagr9XA :)
Thanks :)
hope it'll help :)
Unfortunately, learning doesn't have shortcuts or hacks. You have to do the work!
Read, apply, repeat
One useful tip though that works for me for new technologies is that I start right away in a project. Most of the time I fail miserably and get stuck but this highlights areas were I didn't understand while learning so I revisit them again or research them more. Those becomes imprinted in my brain 😅
I love jumping into a project. Nothing major or fancy, but enough to get my feet wet and make me look things up.
Any learning sequence that's sequential makes me loose interest quick unless it's building on a project with each lesson. And generally after you've learned a language you can code in others so you spend most of the time just becoming familiar with syntax, new constructs, and the environment.
Here are some small things I've done to help make myself capable in a new language:
Understand as many fundamentals of programming as you possibly can.
Most (if not all) programming languages all do essentially the same thing but in a slightly different way. If you learn those language agnostic details then the list of things you need to know when picking up a new language becomes incredibly short. The best way to do this is to do a simple project in multiple different languages. You will quickly see how differently languages approach the same problem and you can then extrapolate that to learning other languages.
Yes, after an initial long struggle to learn my first foreign language, I found a large number of tricks that enabled me to finally learn English, German, Spanish, Italian, Esperanto and Japanese
Edit oh, my bad, faster programming language learning :P
In my opinion, it's a bit trickier with more distinct languages like C (because of stuff like memory allocation), but let me give you an example of how I started learning Java:
First, I found a nice "12 hour basics" video (here), which was a nice starting point. I took notes (by which I mean I saved the code in the video, and added in my own comments. I keep these files and if I'm ever confused, I go there first, and then the internet.
Next, I played around in Java a little bit, but I found it was a lot more efficient to have something to do. So, I wrote a merge sort algorithm that counts inversions (which was good DSA practice too!).
Finally, I haven't done this part yet, but I'd like to build a scheduling app with Java. Through everything else that I've done, I'm familiar with almost all of the language, except the little things, like length functions.
In summary, just do something. The other 2 comments that I've seen say the same thing, that doing stuff is the best way to learn something (that and repetition).
For me asking questions do the trick! If I don't have anyone to bounce off my questions and ideas while learning I look for online communities where I can ask questions. If I can't find an online community, I ask questions and answer them myself through some rigorous googling.
As someone who's a strong believer of #selflearning, I was formally taught Pascal & C at my undergrads in Moscow at my university, and then self-taught C++, VB, C#, Java, PHP, Python, SQL & Scala, I have plans to learn Go in the near future. I follow a simple 3-step process: