DEV Community

Cover image for 3 Things That'll Help You Learn Any New (Programming) Language

Posted on

3 Things That'll Help You Learn Any New (Programming) Language

Fun fact: I'm only partially-fluent in reading, writing, and speaking Japanese -- and in programming.

"Partially-fluent" meaning I can understand the prompt, but only answer in English or put together a basic, rudimentary response, most of the time without aid of a guide or translator.

I can ask for a bottle of beer in Japanese:

ビール一個をください。/ "Beeru ikko wo kudasai."

Programming, for me, is like this: I have the essential vocabulary to at least communicate to the console to have it print, "Hello World". However, asking the browser to iterate, "Hello World" to me every time I load a page is a completely different and more complex request to communicate.

Telling me to build an enterprise-level app from scratch fresh out of a coding bootcamp is akin to asking me to recite improvisational poetry in Japanese: heckin' intimidating and quite difficult with my current level of comprehension.

They're called programming languages for a reason.

You're learning how to sweet-talk a computer/phone/browser/raspberry pi into doing the thing you'd like it to do.

Joey from the TV show "Friends" saying, "How you doin?"

Here's a few things you can do when learning any language:

1) Practice, practice, practice-- every day!

Face it: you must make time every day to "speak" the language of choice. In my personal experience, I would tend to forget simple words if I don't practice, especially when reading and writing.

It's the same for programming: if I don't practice, I will forget the syntax for a for-loop.

Practicing every day will help solidify concepts since you're consciously, continuously exposed to them.

It also helps to save time: you won't have to scour MDN/W3C for basic concepts anymore!

If you're on-the-go, download related apps. For reading Japanese, I highly recommend the "Kanji Study" app. For programming, I'm currently using "Mimo".

2) Practice -- OUT LOUD.

You need to speak out loud: hear yourself say the words and understand what they mean. Yes, even when you're coding, you need to say out-loud what exactly you are doing.
For example:

Reading Japanese:

Enter fullscreen mode Exit fullscreen mode

My thought process out-loud:

Kanji for day, kanji for book -- OH That's the kanji for Japan -- kanji for "language" -- all together it says "Japanese". "を"? That's a connector indicating it's an action being done. Kanji for "to read" with the connecting ender "-ndeimasu" meaning it's a current action being done. It says "Nihongo wo yondeimasu". "I'm reading Japanese." Cool.

Programming in Javascript:

var list = [ "one", "two", "banana" ];
for (i = 0; list.length > i; i++)
Enter fullscreen mode Exit fullscreen mode

"For, by the way: 'i' is currently zero--Anyway, as long as the length of the list array is greater than the value of 'i', add 1 to 'i'."

Speaking out loud has the same effect as practicing every day: solidifying the meaning-- the "why" in your head in a different manner other than reading. You can only do so much just reading a concept, especially as a kinetic learner.

3) Practice -- with a partner who is fluent!

You need someone with experience to help you: to show you the ropes, to guide you, to teach you what best practices are, and what phrases are used most often.

Granted, it could be difficult to find someone who meshes with your personality/learning style/etc., but there is always someone out there who is willing to help you out.

This is what I didn't have while re-learning Japanese, and what I needed when learning how to code: I needed someone to show me how it's done correctly. This is also why I enrolled in a coding bootcamp!

There are definitely cheaper ways to get help: being active on dev Twitter (#100daysofcode helps with reach, or simply DM-ing or @-ing your favorite developer might do the trick), reaching out to others via here on DEV or the freecodecamp forums. If you're on FB, joining a specific group for your chosen language is a good idea! Posting on Stack Overflow sometimes helps (if you're a masochist).

Now, I just need to have the courage to practice speaking Japanese out-loud with a native/fluent speaker.

TL;DR: Practice. Practice. Practice every day -- with intention. Don't be afraid to ask for help.

I wish you luck on your own dev journey!

Question for the comments:

If you're fluent in a foreign and/or programming language, what steps did you take to become fluent? What resources can you share that will help a newbie out?

Thanks for reading! If you'd like to keep in touch, please don't hesitate to follow me here and add me on Twitter! (@catcarbn)

Top comments (9)

practicingdev profile image
Practicing Developer • Edited

Really good advice here!

I have been coding for quite a while now (about 20 years), but have always worked with beginners throughout my career. The suggestion you made to "Practice out loud" is an excellent one, especially when working with others because it helps both the learner and teacher discover what is understood clearly and what gaps in understanding still need to be filled.

The only small note of caution I would offer is that daily practice is generally a good idea and something to aspire to, but it doesn't necessarily mean "practice every single day for a large amount of time or you will not succeed."

Instead, the benefits of daily practice are mostly these three things:

  • It establishing learning as a habit, which has a powerful compound effect over time.

  • It prevents the decay of knowledge, which otherwise would happen pretty quickly if you went weeks or months without putting in some practice time.

  • It (perhaps most importantly) changes your identity. You can more easily convince yourself "I'm a software developer" if writing software is part of your daily life than if it was something you did only occasionally.

With those three goals in mind, it might work just fine to set aside some time every day to write some code, and many have had good results with that via things like #100DaysOfCode.

But if for whatever reason coding every day feels too daunting, you will do just fine if you're practicing 3-4 days per week, as long as you are consistent. And the duration can be short, too.

30 mins per day, three times per week, combined with a longer session of two hours once per week might work great! It just might take a couple years rather than a few months to make much progress.

Anyway, thanks for writing this article!

cat profile image

The benefits you listed are exactly why I practice every day. My brain likes to throw info away the next day or even hour. lol.

But if for whatever reason coding every day feels too daunting, you will do just fine if you're practicing 3-4 days per week, as long as you are consistent. And the duration can be short, too.

It's kinda like when you start lifting: do it 3-4 days/week; if you do it every day, you get increasingly more fatigued, thus more susceptible to injury.

Thanks for responding!

madza profile image

Hahah, one could think you changed your nickname after reading this 😄 😄

delta456 profile image
Swastik Baranwal • Edited

I first collected a lot of resources to learn from. I am in many programming, open source communities where I talk and ask a lot of questions and sometimes help people. I have subscribed to 5 or 8 newsletters where I get more knowledge. I read and study code everyday and I ask things when I don't get them. I also read articles here daily which are of great quality.

I have collected 150 PDFs and 50 websites in these 3 years. I think programming in any language is easy, it is just you have to know the similarities between the new one which you will learn and the one you know.

I would say that you need to find time for yourself and practice code and ask when you are stuck! Have faith in yourself. Be passionate.

cat profile image

I have subscribed to 5 or 8 newsletters where I get more knowledge.

Which newsletters do you recommend?

Have faith in yourself. Be passionate.

I'm trying. I really am.

delta456 profile image
Swastik Baranwal

O Reilly
Real Python
Fluent C++

sergchr profile image

Definitely, the only thing that helped me in learning languages is a practice. Sure, you can read a lot of documentation, but you'll forget what you read in a week/month/you bet.

What helped me:

  • Learning the core concepts of programming by actually using a programming language.
cat profile image

Learning the core concepts of programming by actually using a programming language.

Definitely. Learning by doing is highly effective.

Thanks for responding!

cat profile image

But everything has to be done within a very realistic context and be authentic, like in, don't try to master a domain for which you have no interest at all

THIS. Absolutely. This is an instance where faking it will not lead you to making it haha

Good luck with your studies ! And if you need a hand for Japanese, don't hesitate to DM.