DEV Community

Cover image for How Do You Master New Tech? Any Hacks for Faster Language Learning?
Ben Halpern Subscriber for CodeNewbie

Posted on

How Do You Master New Tech? Any Hacks for Faster Language Learning?

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)

Collapse
 
nayi10 profile image
Alhassan Kamil

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.

Collapse
 
adriens profile image
adriens

I create highly focused side projects... showcase a running prototype then... blog it on DEV.to (it's my definition of done)

Image description

Collapse
 
yet_anotherdev profile image
Lucas Barret

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.

Collapse
 
madhavan_vj profile image
Madhavan Vj

can you pl tell me the title of that video?

Collapse
 
yet_anotherdev profile image
Lucas Barret
Thread Thread
 
madhavan_vj profile image
Madhavan Vj

Thanks :)

Thread Thread
 
yet_anotherdev profile image
Lucas Barret

hope it'll help :)

Collapse
 
fadygrab profile image
Fady GA 😎

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 😅

Collapse
 
_morgan_adams_ profile image
morgana

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:

  1. Ruby - Some easy to medium programming challenges (I need to practice periodically anyway for interviews). Got great exposure to functions to manipulate strings and arrays with this.
  2. Golang/Javascript - I have a game server I run for my wife and I. I built a small admin portal with a backend portal so my wife could load different worlds or even games.
  3. Java - Made a desktop app for a Pong game.
  4. Java - Made a simple web server and chat app because I could. You learn a lot of things by just taking on a Medium project and not worrying about whether it's already been done. This was an example of just doing something that helped me learn a lot really quick.
  5. Java - Targeted tutorials for work e.g. just to get up and running with a new web framework
  6. Bash - There's often many ways to do things with Bash so I like to google how to do a thing I already know how to do periodically just to try something new. Here's a fun one I came across for trimming characters off a string "How to remove last n characters from a string in bash"
  7. Python - I wanted to be notified when a new job was available at company I wanted to work at so I wrote a simple scraper that would periodically pull the job listings and send me anything new over slack.
  8. C++ - I don't have an active project yet so admittedly I haven't mastered C++, but I do some code reviews at work and just ask questions about things I don't understand. So until I have some bandwidth for a project, I'm just enjoying some learning on the side.
Collapse
 
ragnarok001 profile image
Colter

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.

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Any Hacks for Faster Language Learning?

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

Collapse
 
kurealnum profile image
Oscar

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).

Collapse
 
zeyidev profile image
Zeyi

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.

Collapse
 
subhmsft profile image
Subhasish G

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:

  1. Do some research online, and purchase a Book. Read it cover to cover, execute the code, debug those which don't run, and finish the code Exercises. If cannot, I do follow-up research on the Net (StackOverflow etc.).
  2. Go to GitHub and check projects related to the language + Azure. I choose Azure since working for Microsoft and have an Azure subscription. Implement a project end-to-end.
  3. Fine-tune my learning by reading formal documentation, or get books on advanced topics on the language.