Learning a second language

So a while back, before I decided to learn C++, I started learning a little bit of Java, a friend of mine told me to learn C++, because "that's what real games are made in" (I know, it's a misconception.) So before I had got very far learning Java, I changed to C++. While learning C++, I forgot almost everything about Java except for System.out.println("Words go here");. And of course the common built-in types int, double, char, string, etc.. Anyway, after about a year of learning C++, I decided to revisit Java, and I would have to say, Wow, learning a new language after getting the jist of programming in general, it is very easy to grasp a new language. There is quite a bit of differences, yes, but the general idea is similar. After only a few hours, I had moved on to learning the swing and awt libraries for GUI programming with Java. I'm sure most of the seniors here and people who know multiple languages already knew how easy it was to learn a second, third, or even fourth language, but it was a big surprise to me and it was quite the pleasant one!
Well, it depends on the language...

In my experience, Java was very easy to learn, simply because it is basically just C++ that forces you to be OO, with a few syntax quirks, and then its just a matter of learning the libraries. However, other languages can take a bit more time, especially high-level scripting languages like Python or Lua. And of course, none of those are anywhere as time consuming as learning a language like Japanese (which I tried once, and gave up on after about a year).
Cool. Now learn Haskell. ;)
closed account (3qX21hU5)
However, other languages can take a bit more time, especially high-level scripting languages like Python or Lua.

Personally I found Python and Lua very easy to pick up after having learned most of the basic programming concepts from C++. The thing is unless you are learning a completely different paradigm of programming (Like going from C++ which is a Object Oriented language to Haskell which is a functional language) like rapidcoder pointed out most if not all your knowledge is transferable.

Syntax of a language is very easy to pick up. It is learning how to think like a programmer which is hard, but at least it is usually transferable between most programming languages.

For example in Java it is easy to learn that instead of using std::cout to output to the console you use System.out.printIn() instead. This is what I mean by syntax is easy to learn, though granted yes it is a very basic example but you get the idea.

Whereas something much harder to learn is the concepts of what variables actually are (They might seem simple now but when a lot of people started it was a totally new concept to them), or how to structure or a program correctly, or how memory works, or whatever. These are the hard parts of programming but thankfully once you learn them you won't have to learn them again most likely (This is not to say you know everything about them and you can stop learning).

Learning the syntax just takes a little willpower to push through everything and remember them whereas learning the concepts of programming is what takes years of experience.
Well my first language was Python, and it was quite easy. If you learn a language such as C or C++, picking up C#, Java, D and similar languages can be easy. However, if you try functional programming languages F#, it won't be the same. Its completely different.
Last edited on
There are more paradigms out there. For some adventures in programming, try Prolog, Forth (or some of its fun modern descendants, like Factor), and APL (although if you don't care about paying for IDEs, choose J instead) - those languages left strong, lasting impressions on me and were quite unlike those I knew before. Granted, I had practical reasons to learn them, but I think they are worth getting familiar with just for personal development.
Topic archived. No new replies allowed.