I have zero experience with programming. So those books will be good I guess.
But what you're saying is, I can start with C++, just preferences i guess?
I would say then I should start with C++.
Pretty much. I started with C++ and it's probably the best thing I ever did. Pretty much everything is based on C, but C++ is an OOP, so it will give you a better understanding of creating and using your classes. Most importantly, the thing you want to learn right now is the logic. The basic logic you use in pretty much any language, including BASIC (but not so much), is the same sort of logic you would use in any language.
As long as you start with one of the core OOPs, you'll be ok though. Just don't start with C#, VB, or some random scripting language. They will teach you extremely bad habits that will be very hard to break, not to mention your school is probably going to do alot of linux programming at first, I know mine did. C# is probably my favorite language, though. It's just a gorgeous language that has most of the power and functionality of C++, but with less overhead and less headaches.
I don't know Java, but alot of schools have switched to using it in their beginning programming classes. I personally don't know Java and the little bit I've dealt with it, I really didn't like it at all. Which, I guess is a weird thing to say after saying C# is my favorite language, but still. lol. I just don't like it. My school has since switched to Java for their beginning programming classes.
But yeah, it doesn't matter. I'm a Senior in Computer Science and I think I've gone through 5 languages since I started school.
1 thing can be said though. Take a step back from game programming. That really shouldn't even be a concern at this point. You need to learn to crawl before you can walk.
I have zero experience with programming. So those books will be good I guess.
But what you're saying is, I can start with C++, just preferences i guess?
I would say then I should start with C++.
Pretty much. I started with C++ and it's probably the best thing I ever did. Pretty much everything is based on C, but C++ is an OOP, so it will give you a better understanding of creating and using your classes. Most importantly, the thing you want to learn right now is the logic. The basic logic you use in pretty much any language, including BASIC (but not so much), is the same sort of logic you would use in any language.
As long as you start with one of the core OOPs, you'll be ok though. Just don't start with C#, VB, or some random scripting language. They will teach you extremely bad habits that will be very hard to break, not to mention your school is probably going to do alot of linux programming at first, I know mine did. C# is probably my favorite language, though. It's just a gorgeous language that has most of the power and functionality of C++, but with less overhead and less headaches.
I don't know Java, but alot of schools have switched to using it in their beginning programming classes. I personally don't know Java and the little bit I've dealt with it, I really didn't like it at all. Which, I guess is a weird thing to say after saying C# is my favorite language, but still. lol. I just don't like it. My school has since switched to Java for their beginning programming classes.
But yeah, it doesn't matter. I'm a Senior in Computer Science and I think I've gone through 5 languages since I started school.
1 thing can be said though. Take a step back from game programming. That really shouldn't even be a concern at this point. You need to learn to crawl before you can walk.
Thanks for the input, helped a lot.
I will start with the book I found on amazon, and take it easly and go through it slowly, and practice in between (not just "rushing" through the book..)
My main language is not english as you probaly already have seen, but I will read it in english, instead of buying a danish book. Since I got told that most in the industry is on English. So I better get used to it , even if it's going to be a bit harder to learn.
Don't go for the basic datamatiker education, that is not even a bachelor degree. I know some of what you are taught and it's spread thin. You don't get thorough knowledge or any real world application of the theory. Go to an engineering school(ingeniør skole) or a university and study datalogi instead.
Datamatiker or any engineering degree or datalogi doesn't require a college education, don't know where you've read that. The entry requirement for the datamatiker education is a high school degree(gymnasie). Also have you checked out DADIU? That was the first danish game education where you got a university degree(5 year long education).
As to starting programming go for Java or C#. C++ is great and it's necessary for a lot of things in game programming(even though it's starting to shift towards C#). The object oriented principles takes some time to learn and you don't need to mess with a lot of other annoying stuff while learning them. Most education by far, mine included(It-engineer) starts out with learning you the object oriented paradigm through Java and then you learn C++ as a secondary language. A lot of people will tell you C++ is easy, and for some part it is, but when you are starting and you need get a good foundation and learn the basic logic that applies to OOP, you want the language to be somewhat simple, and that is Java. Another huge advantage is that you have a much larger library. Want to make a gui? Just use the extremely easy swing. Want to connect to a MySQL data? Just use the JDBC library.
Don't go for the basic datamatiker education, that is not even a bachelor degree. I know some of what you are taught and it's spread thin. You don't get thorough knowledge or any real world application of the theory. Go to an engineering school(ingeniør skole) or a university and study datalogi instead.
Datamatiker or any engineering degree or datalogi doesn't require a college education, don't know where you've read that. The entry requirement for the datamatiker education is a high school degree(gymnasie). Also have you checked out DADIU? That was the first danish game education where you got a university degree(5 year long education).
As to starting programming go for Java or C#. C++ is great and it's necessary for a lot of things in game programming(even though it's starting to shift towards C#). The object oriented principles takes some time to learn and you don't need to mess with a lot of other annoying stuff while learning them. Most education by far, mine included(It-engineer) starts out with learning you the object oriented paradigm through Java and then you learn C++ as a secondary language. A lot of people will tell you C++ is easy, and for some part it is, but when you are starting and you need get a good foundation and learn the basic logic that applies to OOP, you want the language to be somewhat simple, and that is Java. Another huge advantage is that you have a much larger library. Want to make a gui? Just use the extremely easy swing. Want to connect to a MySQL data? Just use the JDBC library.
Just my 2 cents.
What I meant is it requires a gymnisial exam, and I get that by going to GameIT-College (HTX) but with game design, programming, 3D etc aswell. I don't have a gymnisial exam yet, so I think this is the best way for now.
I'm not sure I'm dedicated enough to go to a univercity, but time will tell.
As for the language, I think I'll try out C++ at first (that book from Amazon, sounds good for beginners) .
A lot of people say Java for first, so you got "basics" since its easier to learn than java.
But then now there's many saying that C++ is also as easy, and then I don't have to do java?
I talked with the ones I'm living with those 2 weeks here at GameIT-College and they say they used java at first, and then shisharp or something.
But I'm certain it wil lbe java or C++ im just confused right now, whether it should be c++ or java.
if C++ is as easly as java to learn, it would be waste of time to learn java?
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
If you are thinking of learning java purely as a headstart to learning c++, I would suggest instead that you get a copy of the idiots guide to c++ or c++ for dummies as they should go through the basics with you and explain what they mean well.
Is it an option to contact those running the course and get their advice? a quick email or something? If possible this would probably be best
A lot of people say Java for first, so you got "basics" since its easier to learn than java.
But then now there's many saying that C++ is also as easy, and then I don't have to do java?
I talked with the ones I'm living with those 2 weeks here at GameIT-College and they say they used java at first, and then shisharp or something.
But I'm certain it wil lbe java or C++ im just confused right now, whether it should be c++ or java.
if C++ is as easly as java to learn, it would be waste of time to learn java?
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
If you are thinking of learning java purely as a headstart to learning c++, I would suggest instead that you get a copy of the idiots guide to c++ or c++ for dummies as they should go through the basics with you and explain what they mean well.
Is it an option to contact those running the course and get their advice? a quick email or something? If possible this would probably be best
P.S. I think shisharp is c sharp(c#)
Well I talked with the ones I'm living with atm (At gameIT-college) and they say its a good idea that I try to learn C++ before I start the education. They aren't so good at programming, so they would've done the same in my place.
And I'm certain thats what im gonna do, I made up my mind now
I hope I will do okay.
Btw the Datamatiker education, after gameIT-college, has a game-programming special you can take, instead of the regular education. So thats almost certain that I will do, instead of Datalogi on the univercity, which will be too much for me I think.
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
Did you just claim that other languages don't use Objects much? I think I misunderstood, then. I had to. Cause, that's completely not true, as a matter of fact, that's about as far away from "True" as you could possibly get.
If you are thinking of learning java purely as a headstart to learning c++, I would suggest instead that you get a copy of the idiots guide to c++ or c++ for dummies as they should go through the basics with you and explain what they mean well.
Stay away from the "For Dummies" programming books. I don't even need to get into that. Just stay far far away from anything "For Dummies" when it comes to the IT field, period. I went that route once before, years ago. Terrible books.
I also agree with Jackcolt, go towards Computer Science (Datalogi) instead. If the gaming degrees where you're from are anything like the ones in the US, they are freaking pathetic. I've looked at the degree plans before and I just can't see any classes on there that have real world applications.
Computer Science (Datalogi) is the general knowledge of computers and how they work. If you have that degree, you're open to pretty much the entire IT job market. It's by far one of the most flexible degrees in the world. With that degree, you can be hired at a gaming company or anywhere else. You may not get a job in the gaming industry, and if that's the case, what are you going to do? Go to some other IT company, present your degree and get laughed out of the office?
Says that Java is the easiest to start with, and then when I have the basics, go to C afterwards.
Guess thats what i*m gonna do..
Thanks a lot!
Java is really mostly useful for Web applications like online virus scanner and browser games.
I know more people that started out with C and then went to C++ but I think it is best to start with C++ itself. The basics are really not that hard even if mastering it is really hard, there is a reason most MMOs are not so great coded.
I also agree with Jackcolt, go towards Computer Science (Datalogi) instead. If the gaming degrees where you're from are anything like the ones in the US, they are freaking pathetic. I've looked at the degree plans before and I just can't see any classes on there that have real world applications.
Computer Science (Datalogi) is the general knowledge of computers and how they work. If you have that degree, you're open to pretty much the entire IT job market. It's by far one of the most flexible degrees in the world. With that degree, you can be hired at a gaming company or anywhere else. You may not get a job in the gaming industry, and if that's the case, what are you going to do? Go to some other IT company, present your degree and get laughed out of the office?
Denmark is known to have the best courses for working with games, or at least so have I heard (are working in Denmark myself).
And Datalogi is not enough, the programming of courses like that are usually a bit weak. In that case I would add an advanced C++ course to that.
Originally posted by Loke666 Java is really mostly useful for Web applications like online virus scanner and browser games. I know more people that started out with C and then went to C++ but I think it is best to start with C++ itself. The basics are really not that hard even if mastering it is really hard, there is a reason most MMOs are not so great coded.
C++ is most used game coding language since it's unmanaged and gains most power of system. However C++ hasn't gained much speed or improvements and is really hard to learn. Starting with C# might be best, not only is it upgraded regulary it's also very fast nowdays. XNA allows you quick coding with easy debuging compared C++, so you learn faster. Learning C++ is pretty easy, but ones you go graphics level it's really hard. If you want to go that path look code in OGRE to learn how stuff is done.
Java is really mostly useful for Web applications like online virus scanner and browser games.
Not really anymore. The power of Java has grown enormously. You're looking at Java based applications on phones, and alot of smaller apps that are designed to be cross platform.
Not saying that it's primary use isn't based out of webservers, but it's becoming a more standard language. I think alot of it has to do with people teaching it as a beginner language in schools.
Java is still a remnant of old Sun programming problem solving paradigm, why solve problems with style, when we just can throw it more memory? And of course now that Oracle owns Java things are even more interesting as future is concerned.
As someone who hasn't done progtramming professionally, only as a hobby, I'd say go for c++. Java, Python etc. have several 'features' that make memory management and such tasks transparent, but those actually do teach sloppy programming practise once you need to write systems that just have to perform.
And once you grab the basics of c++, understanding and even writing c, c#, java etc. is pretty easy.
Java programs compile their code into Java byte code, which then runs in a JVM. There is a performance hit to using java as opposed to C++. The only other language that I would even consider using is C# with unmanaged code as XNA and the .NET framework provide a bunch of useful functionality.
I'm a senior in college and have been programming in C++ since sophomore year (have taken a grad level computer graphics course) and I'd still say that I'm not fully proficient in the language. There's so many optimizations that you can do in C++ such as writing your own memory manager and garbage collector that you have to be in the industry a very long time to become a competent programmer. I'd definitely say just started programming soon! There's a lot to learn.
Technically the best language for coding games, and the most used, is C++. Diving straight into C++ however, might be a bit overwhelming.
Always keep in mind that there is no best language for every circumstance. Whether you learn C++ or Java first is largely irrelevant, so long as what you take away from learning your first programming language, is programming concepts and ideologies.
As to C++ or Java to start with? Personally I think Java is the better of the two. While it doesn't have the same graphics capabilities, or performance optimizations, keep in mind that C++ is also a lot more difficult, and a lot more dangerous to learn on.
Java executes on a virtual machine created by java, which is part of why it takes more overhead. Consequently though, this makes it a much safer language, especially while learning. That said, while C++ is technically more optimizable, unless you understand the bulk of the concepts concerning proper memory handling, it will very likely be more of a hinderance to deal with; where as you do not have to worry about this nearly as much with Java. Especialy so considering that if you bungle your memory allocation in C++, you'll end up with a lot of memory leaks, system crashes, and all other sorts of terrible things if you're not careful.
Either way, if you're serious about programming, you'll want to be competent in both languages at some point. Going with Java first, which you will likely have an easier time with, will help you learn C++ later.
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
Did you just claim that other languages don't use Objects much? I think I misunderstood, then. I had to. Cause, that's completely not true, as a matter of fact, that's about as far away from "True" as you could possibly get. Sorry should have been as much but will happily defer to you on the matter as am not a proffesional programmer and am not fluent in java and c++. Although some like standard c i know don't use it and didn't think the more entry level languages like basic did either
If you are thinking of learning java purely as a headstart to learning c++, I would suggest instead that you get a copy of the idiots guide to c++ or c++ for dummies as they should go through the basics with you and explain what they mean well.
Stay away from the "For Dummies" programming books. I don't even need to get into that. Just stay far far away from anything "For Dummies" when it comes to the IT field, period. I went that route once before, years ago. Terrible books. I have a copy of the complete idiots guide and it is well written if simplistic in places and seems a good place to learn the basics of c++. I started with a more complex book which wasn't as well written and seemed to be people that could already program in c++ and whilst i could follow the general concepts not knowing why you used things like void main became an issue, which is why i suggest going for something which explains these things well.
I also agree with Jackcolt, go towards Computer Science (Datalogi) instead. If the gaming degrees where you're from are anything like the ones in the US, they are freaking pathetic. I've looked at the degree plans before and I just can't see any classes on there that have real world applications.
Computer Science (Datalogi) is the general knowledge of computers and how they work. If you have that degree, you're open to pretty much the entire IT job market. It's by far one of the most flexible degrees in the world. With that degree, you can be hired at a gaming company or anywhere else. You may not get a job in the gaming industry, and if that's the case, what are you going to do? Go to some other IT company, present your degree and get laughed out of the office?
I think the op wants to go spesifically for a job in the games market and moreso in engine programming rather than the it field in general
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
Did you just claim that other languages don't use Objects much? I think I misunderstood, then. I had to. Cause, that's completely not true, as a matter of fact, that's about as far away from "True" as you could possibly get. Sorry should have been as much but will happily defer to you on the matter as am not a proffesional programmer and am not fluent in java and c++. Although some like standard c i know don't use it and didn't think the more entry level languages like basic did either
Yeah, it's just better not to say something about something if you're not sure or even state that you're not sure, instead of spreading false information that's disguised by fact.
I think the op wants to go spesifically for a job in the games market and moreso in engine programming rather than the it field in general
I think if you're looking for engine programming, you're looking for at least a Masters or a PhD in Computer Science and/or Math. Engines are probably one of the most complicated pieces of software in the entire world.
Game programming degrees do not teach much Math, in the US. A BS in Computer Science has a required Math Minor, however and that's still really not enough. I don't know how it works where he's from, but I'm sure it's pretty close to the same.
Some people will tell you C++ is easy to learn (myself included), others that its a complicated language that takes a lot of effort.
While it does take some effort, all worth while things do after all, its not exactly what I would call complicated.
So long as you don't develop bad coding habits that is...
Some general tips:
- Learn to comment your code, don't be afraid to make overly long comments either (at least while your starting out). Whatever it takes to make sure that you can record the purpose of the section of the code it relates to. While your learning also record what you wanted to achieve and any assumptions you made when you wrote it. If anything goes wrong and you need to go back to it its best to have more information then you need then to scratch your head and wonder what the heck you were thinking about when you wrote it.
- Learn to indent your code. A well structured code is easier to read, understand and debug.
- Objects are just groups of functions and variables. There's nothing particularly complicated about them. They exist to make your life easier since they allow you to specify what functions or data is shared with the rest of the program, and what should be strictly internal. There's more to it then that of course but its not nearly a complicated as some would have you believe.
- Pointers are your friends (so long as you take the time to understand how they work, not so much if you don't ) . The complexity of pointers comes solely from peoples inability to understand how they actually work. The principle is simple, a pointer POINTS to a variable in a specific memory location and allows you to easily "transfer" data in bulk in or out of functions. A pointer is a powerful tool so long as its used correctly.
- Don't blame the program if it does something stupid. At the end of the day it can only do what you tell it to do so your only insulting yourself
- Don't use x's and y's for variable names, give your variables meaningful names. Reading your code should be like reading a book, the meaning should be obvious at a glance.
example: "if(key_is_pressed == true)" makes more sense then "if(x == true)"
C++ is easy, so long as you take the time to learn the rules of the game (so to speak). Good luck!
As an IT professional through 15 years, not in the gaming industry though, my advise mirrors alot of the other posters, grab a language, OO based prefered so you get into the way objects work.
But none here has mentioned mathematics, the way I see it, the programming language will probably change depending on company, projetc, time etc. but the core of what you do is implementing algorithms and you will need a lot of math for that.
I'm aware that this advice is not specific for the 8 months you have to prepare for starting HTX, but I wanted to give it any way, learn the math, understand the math
In my 15 years, having a engineering degree focused on numerical analysis/algorithms in applied physics, have given me an edge many times over my often less math savy colleagues.
Old books are not an issue when learning the basics, Its more a problem when getting into the versioned stuff.
The last one is one of the best around. It teaches C++ the way you learn a foreign language but you must study it last.
As for "old" books i have to inform you that C++ has not changed much for the last ten years. This is because it is an ISO standard and therefore the C++ committee does not allow changes easily.
Anyway good luck from me and since someone mentioned math it's true that math is the key for game programming, keep that in mind always.
The last one is one of the best around. It teaches C++ the way you learn a foreign language but you must study it last.
As for "old" books i have to inform you that C++ has not changed much for the last ten years. This is because it is an ISO standard and therefore the C++ committee does not allow changes easily.
Anyway good luck from me and since someone mentioned math it's true that math is the key for game programming, keep that in mind always.
Thanks for the link mate .
But thing is, I'm more comfortable with a book in my hand, but I could have those turtorials as a "backup".
Great, so I can buy one of those books, since the only new book I found is from 2009, rest is old, so yeah I guess they still work.
Comments
Pretty much. I started with C++ and it's probably the best thing I ever did. Pretty much everything is based on C, but C++ is an OOP, so it will give you a better understanding of creating and using your classes. Most importantly, the thing you want to learn right now is the logic. The basic logic you use in pretty much any language, including BASIC (but not so much), is the same sort of logic you would use in any language.
As long as you start with one of the core OOPs, you'll be ok though. Just don't start with C#, VB, or some random scripting language. They will teach you extremely bad habits that will be very hard to break, not to mention your school is probably going to do alot of linux programming at first, I know mine did. C# is probably my favorite language, though. It's just a gorgeous language that has most of the power and functionality of C++, but with less overhead and less headaches.
I don't know Java, but alot of schools have switched to using it in their beginning programming classes. I personally don't know Java and the little bit I've dealt with it, I really didn't like it at all. Which, I guess is a weird thing to say after saying C# is my favorite language, but still. lol. I just don't like it. My school has since switched to Java for their beginning programming classes.
But yeah, it doesn't matter. I'm a Senior in Computer Science and I think I've gone through 5 languages since I started school.
1 thing can be said though. Take a step back from game programming. That really shouldn't even be a concern at this point. You need to learn to crawl before you can walk.
Like Trading Card Games? Click Here.
Thanks for the input, helped a lot.
I will start with the book I found on amazon, and take it easly and go through it slowly, and practice in between (not just "rushing" through the book..)
My main language is not english as you probaly already have seen, but I will read it in english, instead of buying a danish book. Since I got told that most in the industry is on English. So I better get used to it , even if it's going to be a bit harder to learn.
Don't go for the basic datamatiker education, that is not even a bachelor degree. I know some of what you are taught and it's spread thin. You don't get thorough knowledge or any real world application of the theory. Go to an engineering school(ingeniør skole) or a university and study datalogi instead.
Datamatiker or any engineering degree or datalogi doesn't require a college education, don't know where you've read that. The entry requirement for the datamatiker education is a high school degree(gymnasie). Also have you checked out DADIU? That was the first danish game education where you got a university degree(5 year long education).
As to starting programming go for Java or C#. C++ is great and it's necessary for a lot of things in game programming(even though it's starting to shift towards C#). The object oriented principles takes some time to learn and you don't need to mess with a lot of other annoying stuff while learning them. Most education by far, mine included(It-engineer) starts out with learning you the object oriented paradigm through Java and then you learn C++ as a secondary language. A lot of people will tell you C++ is easy, and for some part it is, but when you are starting and you need get a good foundation and learn the basic logic that applies to OOP, you want the language to be somewhat simple, and that is Java. Another huge advantage is that you have a much larger library. Want to make a gui? Just use the extremely easy swing. Want to connect to a MySQL data? Just use the JDBC library.
Just my 2 cents.
What I meant is it requires a gymnisial exam, and I get that by going to GameIT-College (HTX) but with game design, programming, 3D etc aswell. I don't have a gymnisial exam yet, so I think this is the best way for now.
I'm not sure I'm dedicated enough to go to a univercity, but time will tell.
As for the language, I think I'll try out C++ at first (that book from Amazon, sounds good for beginners) .
http://www.ug.dk/uddannelser/universitetsuddannelser/bacheloruddannelser/naturvidenskabeligebacheloruddannelser/matematikfysikkemiogdatalogi/datalogi.aspx
The basics of c++ are quite easy, it's when you get to the object orientated programming(OOP) side that it gets complex and the OOP is where the power of c++ lies and as far as i know other languages don't utilise this much if at all
If you are thinking of learning java purely as a headstart to learning c++, I would suggest instead that you get a copy of the idiots guide to c++ or c++ for dummies as they should go through the basics with you and explain what they mean well.
Is it an option to contact those running the course and get their advice? a quick email or something? If possible this would probably be best
P.S. I think shisharp is c sharp(c#)
Well I talked with the ones I'm living with atm (At gameIT-college) and they say its a good idea that I try to learn C++ before I start the education. They aren't so good at programming, so they would've done the same in my place.
And I'm certain thats what im gonna do, I made up my mind now
I hope I will do okay.
Btw the Datamatiker education, after gameIT-college, has a game-programming special you can take, instead of the regular education. So thats almost certain that I will do, instead of Datalogi on the univercity, which will be too much for me I think.
- THANKS for all the input guys! Really great.
I also agree with Jackcolt, go towards Computer Science (Datalogi) instead. If the gaming degrees where you're from are anything like the ones in the US, they are freaking pathetic. I've looked at the degree plans before and I just can't see any classes on there that have real world applications.
Computer Science (Datalogi) is the general knowledge of computers and how they work. If you have that degree, you're open to pretty much the entire IT job market. It's by far one of the most flexible degrees in the world. With that degree, you can be hired at a gaming company or anywhere else. You may not get a job in the gaming industry, and if that's the case, what are you going to do? Go to some other IT company, present your degree and get laughed out of the office?
Like Trading Card Games? Click Here.
Java is really mostly useful for Web applications like online virus scanner and browser games.
I know more people that started out with C and then went to C++ but I think it is best to start with C++ itself. The basics are really not that hard even if mastering it is really hard, there is a reason most MMOs are not so great coded.
Denmark is known to have the best courses for working with games, or at least so have I heard (are working in Denmark myself).
And Datalogi is not enough, the programming of courses like that are usually a bit weak. In that case I would add an advanced C++ course to that.
Not really anymore. The power of Java has grown enormously. You're looking at Java based applications on phones, and alot of smaller apps that are designed to be cross platform.
Not saying that it's primary use isn't based out of webservers, but it's becoming a more standard language. I think alot of it has to do with people teaching it as a beginner language in schools.
Like Trading Card Games? Click Here.
Java is still a remnant of old Sun programming problem solving paradigm, why solve problems with style, when we just can throw it more memory? And of course now that Oracle owns Java things are even more interesting as future is concerned.
As someone who hasn't done progtramming professionally, only as a hobby, I'd say go for c++. Java, Python etc. have several 'features' that make memory management and such tasks transparent, but those actually do teach sloppy programming practise once you need to write systems that just have to perform.
And once you grab the basics of c++, understanding and even writing c, c#, java etc. is pretty easy.
Playing: AC2
Played: UO, DaoC, Horizons, Ryzom, WAR, LotRO, Eve, VG...
Java programs compile their code into Java byte code, which then runs in a JVM. There is a performance hit to using java as opposed to C++. The only other language that I would even consider using is C# with unmanaged code as XNA and the .NET framework provide a bunch of useful functionality.
I'm a senior in college and have been programming in C++ since sophomore year (have taken a grad level computer graphics course) and I'd still say that I'm not fully proficient in the language. There's so many optimizations that you can do in C++ such as writing your own memory manager and garbage collector that you have to be in the industry a very long time to become a competent programmer. I'd definitely say just started programming soon! There's a lot to learn.
But the book I want to buy is 10 years old. Does that make any diffrence?
Technically the best language for coding games, and the most used, is C++. Diving straight into C++ however, might be a bit overwhelming.
Always keep in mind that there is no best language for every circumstance. Whether you learn C++ or Java first is largely irrelevant, so long as what you take away from learning your first programming language, is programming concepts and ideologies.
As to C++ or Java to start with? Personally I think Java is the better of the two. While it doesn't have the same graphics capabilities, or performance optimizations, keep in mind that C++ is also a lot more difficult, and a lot more dangerous to learn on.
Java executes on a virtual machine created by java, which is part of why it takes more overhead. Consequently though, this makes it a much safer language, especially while learning. That said, while C++ is technically more optimizable, unless you understand the bulk of the concepts concerning proper memory handling, it will very likely be more of a hinderance to deal with; where as you do not have to worry about this nearly as much with Java. Especialy so considering that if you bungle your memory allocation in C++, you'll end up with a lot of memory leaks, system crashes, and all other sorts of terrible things if you're not careful.
Either way, if you're serious about programming, you'll want to be competent in both languages at some point. Going with Java first, which you will likely have an easier time with, will help you learn C++ later.
I think the op wants to go spesifically for a job in the games market and moreso in engine programming rather than the it field in general
I think if you're looking for engine programming, you're looking for at least a Masters or a PhD in Computer Science and/or Math. Engines are probably one of the most complicated pieces of software in the entire world.
Game programming degrees do not teach much Math, in the US. A BS in Computer Science has a required Math Minor, however and that's still really not enough. I don't know how it works where he's from, but I'm sure it's pretty close to the same.
Like Trading Card Games? Click Here.
OP please please, please check out this URL http://www.gamedev.net/
Thanks A LOT for that link.
He also suggest C++ as a starter language.
one thing thought.
most of those books and stuff are OLD. 1999-2002 etc.
Is that TOO old or will they still work and teach me some?
SQL hands down.
Some people will tell you C++ is easy to learn (myself included), others that its a complicated language that takes a lot of effort.
While it does take some effort, all worth while things do after all, its not exactly what I would call complicated.
So long as you don't develop bad coding habits that is...
Some general tips:
- Learn to comment your code, don't be afraid to make overly long comments either (at least while your starting out). Whatever it takes to make sure that you can record the purpose of the section of the code it relates to. While your learning also record what you wanted to achieve and any assumptions you made when you wrote it. If anything goes wrong and you need to go back to it its best to have more information then you need then to scratch your head and wonder what the heck you were thinking about when you wrote it.
- Learn to indent your code. A well structured code is easier to read, understand and debug.
- Objects are just groups of functions and variables. There's nothing particularly complicated about them. They exist to make your life easier since they allow you to specify what functions or data is shared with the rest of the program, and what should be strictly internal. There's more to it then that of course but its not nearly a complicated as some would have you believe.
- Pointers are your friends (so long as you take the time to understand how they work, not so much if you don't ) . The complexity of pointers comes solely from peoples inability to understand how they actually work. The principle is simple, a pointer POINTS to a variable in a specific memory location and allows you to easily "transfer" data in bulk in or out of functions. A pointer is a powerful tool so long as its used correctly.
- Don't blame the program if it does something stupid. At the end of the day it can only do what you tell it to do so your only insulting yourself
- Don't use x's and y's for variable names, give your variables meaningful names. Reading your code should be like reading a book, the meaning should be obvious at a glance.
example: "if(key_is_pressed == true)" makes more sense then "if(x == true)"
C++ is easy, so long as you take the time to learn the rules of the game (so to speak). Good luck!
As an IT professional through 15 years, not in the gaming industry though, my advise mirrors alot of the other posters, grab a language, OO based prefered so you get into the way objects work.
But none here has mentioned mathematics, the way I see it, the programming language will probably change depending on company, projetc, time etc. but the core of what you do is implementing algorithms and you will need a lot of math for that.
I'm aware that this advice is not specific for the 8 months you have to prepare for starting HTX, but I wanted to give it any way, learn the math, understand the math
In my 15 years, having a engineering degree focused on numerical analysis/algorithms in applied physics, have given me an edge many times over my often less math savy colleagues.
Old books are not an issue when learning the basics, Its more a problem when getting into the versioned stuff.
- Paragon
You don't have to spend money on books yet. There are some nice tutorials and e-books:
http://www.learncpp.com/
http://www.cplusplus.com/doc/tutorial/
http://msdn.microsoft.com/en-us/beginner/cc305129.aspx
http://www.relisoft.com/book/
The last one is one of the best around. It teaches C++ the way you learn a foreign language but you must study it last.
As for "old" books i have to inform you that C++ has not changed much for the last ten years. This is because it is an ISO standard and therefore the C++ committee does not allow changes easily.
Anyway good luck from me and since someone mentioned math it's true that math is the key for game programming, keep that in mind always.
Thanks for the link mate .
But thing is, I'm more comfortable with a book in my hand, but I could have those turtorials as a "backup".
Great, so I can buy one of those books, since the only new book I found is from 2009, rest is old, so yeah I guess they still work.