Learning two languages at the same time?

Started by
6 comments, last by Zyndrof 17 years, 11 months ago
I've been learning VB.net for a couple of weeks and am going to stick with that for at least a few months since it goes very well and suits me good. But, the C++ Workshop is coming up and I would very much like to enter it, but at the same time I don't want to take a break from VB.net now that it goes so well. Therefore I have two questions: 1. Is it possible to learn to languages at the same time and learn them both well? 2. Would there be a reason for me to learn C++ aswell? Meaning is there anything I can do (and would want to do) in C++ that I can't do in VB.net? Have in mind that I'm programming for fun and have no intention of making a living out of it. P.S. Please don't discus anything other than the questions I've asked. I don't want to hear that "Java is better than C++, learn that instead" or "to hell with Visual Basic". Thank you.
Advertisement
It can never hurt to know more than one language, even if you only have a basic knowledge of the second. I just got out of a class in my Computer Science studies that was directed towards learning different languages and how they operate as a study in programming techniques and how they differ depending on language construcs. It was an interesting course and it will make you a more versatile programmer in the long run.

As for things in C++ you can't do in VB.net, I can't speak for VB.net since I have never used it, but I have been a C++ programmer and as far as I know you have a lot more access to lower level systems (memory management etc.) in C++.

Hope this helps, cheers.
"Imagination is more important than knowledge" - A. Einstein
Quote:
1. Is it possible to learn to languages at the same time and learn them both well?


Probably not. Especially starting off, it's important to learn how to 'think' in a language. Switching back and forth will hurt that.
I'm currently doing some gamedev in VB.NET 2005 and found it to be a nice easy to use language with a lot of power behind it. You can certainly learn 2 languages at one time. In fact, you might be suprised how similar the languages are (in concepts), just need to learn the syntax.
Quote:Original post by Zyndrof
Therefore I have two questions:
1. Is it possible to learn to languages at the same time and learn them both well?

It's certainly possible to learn two languages at the same time. I did that, and it only made things easier in my opinion. Learn them *well*? Sure, I don't see how that'd make a difference. Of course, to learn a language *well*, you need to spend a good deal of time understanding even advanced aspects of it, but you can do that sooner or later no matter how many languages you plan to learn, and how you schedule them.

Quote:
2. Would there be a reason for me to learn C++ aswell? Meaning is there anything I can do (and would want to do) in C++ that I can't do in VB.net?

Ooh, that's a loaded question. [lol]
I'd advice you to read the two dozen other threads about "should I learn C++".
But basically, no, there's nothing you can do in C++ that you can't do in other languages.
C++ is *currently* the industry standard for game development, but that doesn't mean it's better, or that you have to use it. Many professional games have been made in other languages, and until you plan to go professional, it's certainly not an issue anyway.

Quote:
Have in mind that I'm programming for fun and have no intention of making a living out of it.

Then you don't need C++. Personally, I'd avoid Basic languages however, because they tend to teach some nasty habits that can be hard to get rid of. But that's just me. :)

Quote:
Probably not. Especially starting off, it's important to learn how to 'think' in a language. Switching back and forth will hurt that.

I disagree completely. It's important to learn *not* to let the language restrict your thinking. The more languages you know, the better. Switching back and forth can only help that.
Moreover, it can actually make things a lot easier. You try to learn language A, you get stuck on some weird feature, so you let it go for a bit, and focus on language B. And hey, they have a different way of achieving the same effect, and in the end, it'll give you a different perspective on the same feature, and in the end, a better insight into what is going on.

Quote:
as far as I know you have a lot more access to lower level systems (memory management etc.) in C++.

True, but that doesn't actually allow you to do anything that couldn't be done in VB. (Other than allow you more ways to crash your computer).
Quote:Original post by Spoonbender
It's certainly possible to learn two languages at the same time. I did that, and it only made things easier in my opinion. Learn them *well*? Sure, I don't see how that'd make a difference. Of course, to learn a language *well*, you need to spend a good deal of time understanding even advanced aspects of it, but you can do that sooner or later no matter how many languages you plan to learn, and how you schedule them.


So, your mean that I would become a better programmer if I did learn both C++ and VB.net? And well, they DO have very different syntax which means it wouldn't be a problem of mixing them together... Right?

Quote:Original post by Spoonbender
Ooh, that's a loaded question. [lol]
I'd advice you to read the two dozen other threads about "should I learn C++".
But basically, no, there's nothing you can do in C++ that you can't do in other languages.
C++ is *currently* the industry standard for game development, but that doesn't mean it's better, or that you have to use it. Many professional games have been made in other languages, and until you plan to go professional, it's certainly not an issue anyway.


Yeah I know, and I've read many of those, but they only seem to circulate around the two statements "C++ rocks" and "C++ sucks". My question wasn't about how great C++ is, but if I would find a use for it. E.g. if C++ would be easier to use and demand less work than VB.net for games, but VB.net would be preferable when designing Windows programs, that's the way I would use the languages; C++ for games and VB.net for programs.

Quote:Original post by Spoonbender
Then you don't need C++. Personally, I'd avoid Basic languages however, because they tend to teach some nasty habits that can be hard to get rid of. But that's just me. :)


Yeah, I've heard that but I don't think it would be much of a problem for me to change syntax. I'm pretty pedantic about my code and am careful with writing it estetically.

Quote:Original post by Spoonbender
I disagree completely. It's important to learn *not* to let the language restrict your thinking. The more languages you know, the better. Switching back and forth can only help that.
Moreover, it can actually make things a lot easier. You try to learn language A, you get stuck on some weird feature, so you let it go for a bit, and focus on language B. And hey, they have a different way of achieving the same effect, and in the end, it'll give you a different perspective on the same feature, and in the end, a better insight into what is going on.


Again, you think I should try learning both languages?
I would like to throw out my own little anecdotal evidence of my own experience. Learning more than one language is probably a good thing. I learned how to do a little in GWBasic way back in the day, then a little c++, then a little more basic, then some more c++, then I picked up a little Delphi, and soon after a little VB, and later on I started Picking up PHP. I found that each time I moved to a new language I found it easier and easier to learn the next one. What's odd is that I don't think I became a really good programmer until I had been doing it for a few years. I suppose if I had concentrated on one I might have become proficient at it a lot sooner, but on the other hand....

Allow me to tell you about the new guy at work, Alan*. He is a pretty good C++ programmer. He doesn't seem to get confused about things that would normally blow the mind of a lesser programmer like pointers. However the project we are currently working on is being done in Delphi. Whenever he has a problem to solve, he just can't seem to get past it until either, A. he codes it in C++ and then translates the results to Delphi (insane if you ask me) or B. Someone (me) explains the problem to him as if it were a C++ problem. Clearly Alan 'Thinks like a C++ programmer' and doesn't 'Think like a programmer'. To compare I have no trouble at all switching between various languages.

This is going to be very important if you want to produce games in VB.net. I do use VB.Net for my game programming and the real pain is that most of the relevant code samples you'll find are in C# or sometimes Managed C++ So being able to translate to another language will be a crucial skill. Even since becoming a pretty good language since VB was Dotnetified, it still seems to be used mostly RAD stuff. You know CompanyA wants a little tool to do Foo, and just wants to slap something together and move on.

My point is that you will benefit from learning multiple languages, and hopefully if you are learning them at the same time you won't end up like Alan. It might take you a little longer to become proficient at the first language, but I assure you if you ever want to go pro (not necessarily in games) it will be worth It when look for a job as you will have more opportunities instead of finding yourself locked out of a good job at CompanyX because they want the language you didn't learn.

One more thing that's nice is that you can then be a language snob and only sound like a partial asshole, since you can somewhat credibly say "I use X, Y, and Z; and Z really is best."

But then again, all this is just my personal experience and is in no way a scientific report.


*Not his real name.
Allright, thank you all for your answers, I will join the C++ Workshop, since the local library have the textbook I wont waist any money anyway, just time if it doesn't work out as planned :)

This topic is closed to new replies.

Advertisement