Well that depends on what program he using, or what he plans on what he want to do. I know program like maya, it would be great to know python and mel script to create custom tools. Unreal Engine 4 is C++, but they have a Blueprint system. It's pretty much a build in visual-template node program. In which you plug in and connect the nodes. It save alot of time writing the script over and over.
Without knowing what are his goals or what he wants to program with those languages, Java is good enough.
It's got the LibGDX and the JMonkeyEngine toolkits for game development, it's pretty complete.
A more specific answer would require more specific information from you.
It depends entirely on his goals and how much he learns in those 3 months. If the goal is the move to an engine like Unreal or Unity, then Unity's C# would be the best choice considering how similar C# is to Java. On the other hand, C++ is an essential part of a game programmer's skillset and even learning the language will lead to thinking about how to solve problems in different ways. Python is great for quickly developing tools, and as stated above, Java has some great game development frameworks.
I think it should also be important to make sure he obtains a lot of knowledge about programming in general from the program he is entering. There are a lot of "intensive" programming camps out there, but some of them are really terrible. A proper understanding of programming concepts such as data structures is important no matter what language you write code in.
C++ next, I'd think. If you have a working understanding of C++, then pretty much every other language becomes trivial to learn (from a conceptual and syntactic standpoint). At least that was the case for me.
Java helped me put a first foot through the door, but C++ dragged me in the rest of the way.
Sorry i should have clarified: we plan on becomming an indipendant game dev company within a few years. He will be doing the heavy coding while I do art assets. I wasn't sure if he should learn python, c# or c++ first. We most likely will be using Unity, possibly Unreal Engine as well.
Well one thing to keep in mind is that core programming principles tend to stay the same between languages, so it really doesn't matter which one he picks first. It would be comparable to doing 3D modeling in different programs, the general techniques remain the same no matter which application you use.
If making an independent game company is your combined dream, then I would suggest moving towards C++. C++ is the most complicated language of the three and considering it is a lower level language, it will probably feel pretty different compared to what your brother is used to. However, if he does learn it, then picking up C# or Python will be very easy and if he plans on being a game programmer, then he will probably have to deal with C++ at some point in his career.
Well one thing to keep in mind is that core programming principles tend to stay the same between languages, so it really doesn't matter which one he picks first. It would be comparable to doing 3D modeling in different programs, the general techniques remain the same no matter which application you use.
If making an independent game company is your combined dream, then I would suggest moving towards C++. C++ is the most complicated language of the three and considering it is a lower level language, it will probably feel pretty different compared to what your brother is used to. However, if he does learn it, then picking up C# or Python will be very easy and if he plans on being a game programmer, then he will probably have to deal with C++ at some point in his career.
I completely agree with this post.
Once you get the core principles language is just a minor thing really. I'd also highly recommend learning C++ afterwards. It's quite different to Java but definitely teaches you some good/better practices.
Personally, I'd recommend he learn C++ and Python over Java. Assuming this is in related to 3D applications or games.
Most 3D applications have Python scripting these days, and most of them also have C++ SDKs too. I've been learning both of those side by side and it really depends on the task for which one I turn to - it's been very useful to know both of them.
For games, UE4 will want C++ and Unity will want C# (which, if you know C++, isn't too big a leap).
That said, if you're meaning which one should he learn as a pre-requisite for taking the course, I wouldn't worry about having to know any of those. The core logic doesn't really change across languages, only the syntax it's dressed in and the ways with which you can nicely or efficiently wrap complexities up.
That said... if he's just after learning another language anyway before starting...
If he's got a good while before the course, check out some C++ (or C#, which is a bit easier and friendlier but if you're already going in at the deeper end, I'd recommend going for C++).
If he just wants a handle on programming structure and logic, or if there isn't long before the course starts, definitely go with Python. It's much more flexible for playing in and it's syntax is slightly easier to pick up. Also, being a loosely typed language cuts out a lot of dicking about you'd have to do in C++.
I don't know any app that uses C++ as a scripting language. That's first.
Second, 99.9999% of time all C++ stuff will be a lot lower level than C#/Python/whatever.
For a beginner, stay away from it. Brush up your skills in Unity C#, Unreal Blueprints, after that try to write C++ plugin for you graphic application (Houdini, Maya or whatever you use) to see how good you can transfer knowledge you gained from scripting. After that if you will feel that Blueprints are not enough, go for C++ in Unreal.
Programming and Scripting, are different IMO. If you brother wants to sit down and develop a program or make major edits to an engine, learn C++. Like others have already said, it will be trivial to jump to another language. If he wants to be more on the tech artist side rather than full blown programmer, then C# and Python are the way to go (experience in Mel is nice as well). Scripting will be C based scripting languages, depending on the engine, most of the time C# is enough to do the big lifting in a standard Unity. C# can also be used, as well as Python in building tools for other software suites.
99.9999% of time all C++ stuff will be a lot lower level than C#/Python/whatever.
For a beginner, stay away from it. Brush up your skills in Unity C#, Unreal Blueprints, after that try to write C++ plugin for you graphic application (Houdini, Maya or whatever you use) to see how good you can transfer knowledge you gained from scripting.
This is good advice. In my experience C++ is what you learn at the top of your game, not when you're starting.
Any higher level language will be easier to grasp for a beginner.
Since you mentioned Unity, C# will be the most beneficial to learn now. Unity integrates with a complete IDE for it, MonoDevelop.
Started with Java at university as well, however once C/C++ came into play, I found it weird that it was introduced in later semesters. The problem with high level languages is that they don't really teach you much about "the machine", which I think is often rather important in this field of real-time applications (though it's also my personal preference so am biased).
High-level languages are good cause they let you achieve things quicker and get into the algorithmic thinking mindset. But one really needs to go C/C++ to understand more about the fundamentals of what's going on below. I'd suggest starting with C# actually these days, gives you high-level, and you get used to visual studio already, and it seems more widespread in our part of the industry.
After learning Java the only thing he needs to learn in C++ is pointers and OOP I believe.
I would strongly suggest Python and C#.
As for understanding the algorithms and making your mindset to understand logic would come later on when you start coding at high level. Many would disagree with this post and claim that C++ is the way to go because it's traditional way of doing things and it helps you have a firm grip on the foundations, but you have to understand one thing, if you are a programmer you will soon realize that many programming languages are almost alike and some how your mindset will become to understand the logic there fore building your paradigm skill set would become a little easier.
Replies
It's got the LibGDX and the JMonkeyEngine toolkits for game development, it's pretty complete.
A more specific answer would require more specific information from you.
I think it should also be important to make sure he obtains a lot of knowledge about programming in general from the program he is entering. There are a lot of "intensive" programming camps out there, but some of them are really terrible. A proper understanding of programming concepts such as data structures is important no matter what language you write code in.
Java helped me put a first foot through the door, but C++ dragged me in the rest of the way.
So C++ should be learn before C# or python?
If making an independent game company is your combined dream, then I would suggest moving towards C++. C++ is the most complicated language of the three and considering it is a lower level language, it will probably feel pretty different compared to what your brother is used to. However, if he does learn it, then picking up C# or Python will be very easy and if he plans on being a game programmer, then he will probably have to deal with C++ at some point in his career.
I completely agree with this post.
Once you get the core principles language is just a minor thing really. I'd also highly recommend learning C++ afterwards. It's quite different to Java but definitely teaches you some good/better practices.
Most 3D applications have Python scripting these days, and most of them also have C++ SDKs too. I've been learning both of those side by side and it really depends on the task for which one I turn to - it's been very useful to know both of them.
For games, UE4 will want C++ and Unity will want C# (which, if you know C++, isn't too big a leap).
That said, if you're meaning which one should he learn as a pre-requisite for taking the course, I wouldn't worry about having to know any of those. The core logic doesn't really change across languages, only the syntax it's dressed in and the ways with which you can nicely or efficiently wrap complexities up.
That said... if he's just after learning another language anyway before starting...
If he's got a good while before the course, check out some C++ (or C#, which is a bit easier and friendlier but if you're already going in at the deeper end, I'd recommend going for C++).
If he just wants a handle on programming structure and logic, or if there isn't long before the course starts, definitely go with Python. It's much more flexible for playing in and it's syntax is slightly easier to pick up. Also, being a loosely typed language cuts out a lot of dicking about you'd have to do in C++.
Second, 99.9999% of time all C++ stuff will be a lot lower level than C#/Python/whatever.
For a beginner, stay away from it. Brush up your skills in Unity C#, Unreal Blueprints, after that try to write C++ plugin for you graphic application (Houdini, Maya or whatever you use) to see how good you can transfer knowledge you gained from scripting. After that if you will feel that Blueprints are not enough, go for C++ in Unreal.
Any higher level language will be easier to grasp for a beginner.
Since you mentioned Unity, C# will be the most beneficial to learn now. Unity integrates with a complete IDE for it, MonoDevelop.
High-level languages are good cause they let you achieve things quicker and get into the algorithmic thinking mindset. But one really needs to go C/C++ to understand more about the fundamentals of what's going on below. I'd suggest starting with C# actually these days, gives you high-level, and you get used to visual studio already, and it seems more widespread in our part of the industry.
Both offer really good opportunities.
I would strongly suggest Python and C#.
As for understanding the algorithms and making your mindset to understand logic would come later on when you start coding at high level. Many would disagree with this post and claim that C++ is the way to go because it's traditional way of doing things and it helps you have a firm grip on the foundations, but you have to understand one thing, if you are a programmer you will soon realize that many programming languages are almost alike and some how your mindset will become to understand the logic there fore building your paradigm skill set would become a little easier.