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

Cat - Jan 23 '20 - - Dev Community

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

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)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .