what is the best way to learn a programming language? And would learning 3 programming languages simultaneously be a good idea?
Posted by TahaNafis@reddit | learnprogramming | View on Reddit | 22 comments
I want to learn python, Lua and Kotlin side by side. But i don't want to mix up the syntax and built-in methods and functions of these languages. What is the best way to learning new language? and is it possible for me to learn these three without much trouble?
soylent-red-jello@reddit
I took a class in college called "Principles of Programming Languages" and in 16 weeks learned Haskell, a functional programming language called ML (nothing to do with machine learning), a dialect of lisp, and a basic overview of x86 assembly. Doing this can teach you unique lessons that you wouldn't learn just focusing on one language. That said, that class was an upper division class to be taken after java, java 2, data structures, and discreet mathematics. So, it really depends on where you are at in your dev journey.
TahaNafis@reddit (OP)
I am a student. I want to learn backend in Python, Android app dev in kotlin and game dev in lua. To be honest, I know somewhat of all three languages. What will you suggest?
soylent-red-jello@reddit
That depends. What programming classes have you already taken?
The only language you mention that would be difficult would be lua. I've recently attempted to learn lua for love2d and pico8 development, and it was different enough that I'm almost abandoning that idea. What makes lua so different is how everything, from lists to arrays to dictionaries and classes, etc, are all stored as tables. I am currently looking at gadot, whose scripting language is said to be like python.
TahaNafis@reddit (OP)
I have taken Programming fundamentals, OOP, Data Structures I have taken all these courses in C/C++
soylent-red-jello@reddit
Then I say go for the multi-language approach. Most people here are giving advice for a person who is new to this, and it seems you are not. As you get older your mind will get less flexible like mine, so I say give it a shot now when you have the opportunity.
orion2222@reddit
I bought “Cracking the Coding Interview” (book) before I really knew a language. I started going through it and couldn’t understand most of the code (written in Java).
Then I spent several months digging hard into JavaScript. Three months later I picked up the book again and was amazed that I understood about 90% of the code. I had never written a line of Java but the understanding I gained from focusing hard on the fundamentals for a single language allowed me to intuit what was happening. Granted, I wouldn’t be proficient at writing code in Java, but it goes to show how transferable the fundamentals are between languages.
Why do you want to learn those three in particular? What’s your goal? It’s probably better to pick a single language and (depending on context) learn a framework that supports that language.
Another way to look at it is to consider what it’d be like to learn to speak French, Spanish, and German at the same time. Can you do it? Yeah, but it’s gonna be a looooooong time before you’re fluent in all three.
Maukeb@reddit
Someone who already knows how to do programming can probably study three languages at the same time. But if you don't already know how to do programming then the most important piece of learning is simply how to think about programming, and that's probably going to be most effectively learnt alongside a single programming language.
Once you're familiar with one language it's ultimately not that difficult to pick up more - the hardest work of learning is in the first one. So if you already have one down then you can probably study 3 more, but if you don't know any langauges yet then you should stick to just one.
dimce072@reddit
If you are a senior engineer i.e. senior backend web dev that wants to try out embedded systems for example. Because you already have fundamental concepts down, you are somewhat capable of learning java, C and C++ simultaneously. But learning 3 programming language ontop of trying to grasp fundamental concepts of programming and aproaches to problems that are for the most part different between lanuages. You are asking to burn out hella fast. Just stick to one at a time, the others are not running away any time soon.
Particular-Chip-2719@reddit
Learn 1 language first then become an expert to it and start learning another
EnD3r8_@reddit
Focus on learning one language.
When you are decent in that language, learn another that can complement it.
captainAwesomePants@reddit
Learning a programming language is quite analogous to trying to gain fluency in a foreign language. The best way to learn a foreign language is daily practice, especially when you have a practical need to use it all the time, and it's a terrible idea to try to learn three foreign languages at the same time. Just so with programming languages.
Kaeffka@reddit
Learn one language. Pick up another if you need to (such as, you got an interest in game development/web development/insert-niche-here) but only after you learned a good chunk about the first one.
Some good milestones are the following:
What variables are, how loops work, some common ways to do different types of loops and why you'd want to use them.
Built-in language utilities such as Lists or Collections, and methods attached to these lists (for x in y, example.forEach, example.map, etc)
Basics of object oriented design, what are classes, namespaces, and the like
Algorithm basics, what time and space complexity mean. What garbage collection means, what does it mean to make code "performant"
Best way to learn all those is to make something with them. Web development is a great place to start because you pick up the high-level stuff fairly quickly and you get to build things along the way! The Odin Project, for example, is a great place to start.
I guess the obvious question though is why you want to learn python, lua and Kotlin anyways?
Mclovine_aus@reddit
Best way to learn a language: focus on one and build lots of programs in it.
Would learning 3 languages simultaneously be a good idea: no
HoodRatThing@reddit
Learn a functional and OOP language at the sometime.
So Clojure and Kotlin, and python would be my picks.
BIKF@reddit
Learning languages is fine, but don't forget you also need to learn to program. There is a distinction, and you can think of it in terms of learning chess. It is one thing to learn the rules for how the pieces move, and another thing to learn how to play effectively.
If you first learn a language well enough to actually build non-trivial software in it, that is a great foundation for learning another language later. It lets you appreciate what one language does better than another, and it provides you with a toolbox of concepts to help you explore the new language.
connorjpg@reddit
Possible? Sure.
Recommended? Nope.
I would start with python or kotlin first. Learning Lua will be easier after you know one language really well.
Alarmed_Expert_1089@reddit
Practice, and no.
joranstark018@reddit
Similar questions are asked frequently and the subject is coverd in the FAQ (in the sidebar).
pfuerte@reddit
It is possible to learn syntax of 3 languages or more at once, but each language makes you approach problems differently and this is where you will delude your attention and will end-up being a master of none in a short term at least. May I ask why you want to do it? If you think this is better way to learn languages than it is certainly not. I am familiar with 5 programming languages, I can read and write code in all of them, but I can only write quality, idiomatic, production ready code in one of them, which took me 15 years to master
Extra-Reality8363@reddit
I've just recently started learning my first so take this with a grain of salt, but I couldn't imagine trying to learn more than one at once.
Rykrider@reddit
you should really focus on learning one language correctly first. not just to avoid syntax but also to build an intuition and to learn how to think in programming logic. that will also make learning (most) other languages easier
Mundane_Koala6034@reddit
Maybe try just learning one language first? Learning your first programming language isn't easy, not sure why you'd want to make it more difficult.