DEV Community

Emmanuel Oreoluwa
Emmanuel Oreoluwa

Posted on • Updated on

How do people Learn Multiple Programming Language

Discussion (16)

Collapse
calebpitan profile image
Caleb Adepitan • Edited

After learning one programming language, learning others—especially when they almost have similar syntax and keywords are almost similar lexically and in meaning—it would be easier.
All you'll need to learn is just how to use APIs provided by that language and adapt with new syntax and styles.

Even if the syntax is totally dissimilar, most languages follow the same pattern.
Just create a new project using the language.

One thing to be careful of is mistakenly mixing up a syntax from one language you recently used with another.

Collapse
neverendingqs profile image
Mark Tse • Edited

Sometimes as needed. Sometimes in my free time based on something I've read.

I tend to make mental notes on what's generic (e.g. loops, conditionals), what's shared (e.g. JavaScript Promises helped me understand C# Tasks more) and what's unique (e.g. Rust's idea of ownership).

I also make meaningful projects. I started with Katas to learn C#'s LINQ, but with JavaScript frameworks (React, Vue), I wrote web apps in my free time that made me more productive at work.

Collapse
thomasjunkos profile image
Thomas Junkツ • Edited

Curiosity was often my main driving factor.

A good example was codereview.stackexchange.com/quest...

I did a code review for code in a language, I had not heard of at the time.
The example was understandable, so I gave advice. I found the language really interesting. So the next thing I did was googling elixir and started learning more about functional programming.

Most languages I learned to a level to understand what they do, how they do it and what would be a good usecase. That is perhaps far from being fluent; but I did it just for fun in my spare time.

The languages I feel mostly at home are Python and Javascript. These are my bread and butter languages to pay my bills.

I visited a mixed bag of languages.

What everybody is talking about is learning new languages.

What nobody seems to be talking about is forgetting languages when you learned languages and forgot parts of languages you once learned: I hardly remember Sinclair Basic (Dim was for arrays but I could be wrong).

Collapse
aore profile image
Emmanuel Oreoluwa Author

Yeah the problem is forgetting

Collapse
adam_cyclones profile image
Adam Crockett • Edited

I accidentally learned c++ because I fell in love with this other language, Lua, to get this working with JavaScript and WASM I needed to write some c++ and call the Lua c API.

The above would have been harder had I not spent a hell of a long time rotating between languages writing hello world's and moving on, that and using typescript.

The most important part to being polyglot, open your mind.

This is how in Lua you attach a method to a table.

function mylib.foo(...)
    -- Do stuff
end

This is how in JavaScript you can attach a method to an object

let mylib = {
   foo(...args) {
     // Do stuff
   }
};

I love both syntax but I can't help but think a lot of modern es6 came from Lua.

Collapse
karlredman profile image
Karl N. Redman • Edited

iteratively usually.

  • Learn one

    • that excites you and makes you feel like you are having fun
  • build your toolset

    • automate, automate, automate
    • write scripts in an appropriate language (you'll figure it out) for every automation -write the 'right thing' not just in code that you know.
    • use your automations -make them better/perfect
  • realize that problems have solutions outside of your toolset -learn those toolsets as needed

  • most importanly -learn how you learn and leverage that knowledge for each iteration.

Collapse
aore profile image
Emmanuel Oreoluwa Author

Thanks

Collapse
sturzl profile image
Avery • Edited

For me the two biggest challenges are:

  1. Motivation: I pick a useful or fun project (like building a tiny robot). A great example of this approach is the free book Automate the Boring Stuff With Python.

  2. Style and good practices: its hard to learn the nuance and power of a tool unless you learn from an expert. (What is "pythonic"?) Exercism.io is perfect for this. Your solutions to language specific learning tracks get feedback from the community. You can also see other's solutions and help them improve. I learn way faster when I have opportunities to teach the same subject.

Open source projects are invaluable for the same reasons. It is motivating to contribute to a group effort, and you get feedback, or your PRs won't get merged. There are tons of projects that are seeking people who are new to open source. Get started with open source:

Collapse
aore profile image
Emmanuel Oreoluwa Author

Really helpful

Collapse
mitchartemis profile image
Mitch Stanley

Be curious, Read books, Watch courses, Write code - rinse and repeat!

A lot of the concepts used in your first language can be transferred to your next. Most of the differences are usually related to syntax or their APIs. The key exception being when you try a different type of language (E.g. going from object-oriented to functional) that's when the true fun begins.

Collapse
chandragie profile image
chandragie • Edited

This is exactly my question in mind since I knew about the modern web programming. It is so dynamic and changes rapidly! I couldn't even follow the pace just for reading what I wanted to know.

My method in learning is to build something (with that new language) by tutorials instead of reading theory books. This way, I find it is easier to understand and develop my skill in "short" time.

But not all new language have their how-to tutorials using real cases. This comes my problem learning them.

May be some friends here can help me what exactly you build with that new language you are learning. Is it always the same kind of project (like CRUD applications) every time you have something new?

Some insights really appreciated. :)

Collapse
idanarye profile image
Idan Arye

Same way you learn a single programming language - just do it multiple times?

Collapse
aore profile image
Emmanuel Oreoluwa Author

Thanks

Collapse
darkain profile image
Vincent Milum Jr

The majority of programming languages are the same with just some basic different syntax rules. C++, C#, Java, and JavaScript all share a very similar structure. The main difference is just variable declaration and the "built in" library they come with.

This is one area where languages are a double edge sword. C/C++ have no built in library, everything must be explicitly declared. There are common libraries that ship with compilers, but must be included in code before they can be used. In contrast, there is a lot of classes loaded with methods that come shipped with JavaScript implementations. Java and C# are the middle ground, they have some built in, but also access to several more that can be included.

Once you take the idea of separating language from library, they all become instantly easier to understand. Transitioning between languages becomes no different than switching between multiple frameworks within a single language. After all, frameworks are just libraries!

Collapse
mak12776 profile image
Mohammad Amin Khakzadan

They just start to learn one programming language, then learn more.

Collapse
aore profile image
Emmanuel Oreoluwa Author

Thanks