View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Want to learn programming...again

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

33 replies to this topic

### #21GuardianX  Members

Posted 28 February 2013 - 03:20 AM

There is no consensus about it, but I fully agree that C++ is majorly used for game creation, because of it's speed, free tools and libraries. Also, I agree, after learning C++ you can learn and understand C#, Java, JS and Python code very easily.

There is no language directed right at games creation, but if you want to create game as quickly as possible - you should look at JavaScript. It won't allow you to create very computational-heavy game, but it will give you rapid start.

### #22Anri  Members

Posted 28 February 2013 - 03:54 AM

You can't go wrong with either C++ or Java as a primary language. C++ is the darling of the games industry whilst Java can be used for Android games.

However, if you are learning from scratch then its wise to leave alone OOP languages until you have the basics of structured programming nailed. Both C or JavaScript are ideal beginner languages and share almost identical basic syntax with both C++ and Java. Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++...

I do agree that starting with C before C++ is a good decision (it helped me quite a bit), but I can't agree that C and C++ are considered the same language.

And now if you will read the remaining words of my post you'll find I go on to say "but there are some differences beside the obvious use of OOP in C++".  My advice of learning C before C++ should make it clear that such a consideration that they are the same language is a common misconception.

### #23Sugavanas  Members

Posted 28 February 2013 - 04:31 AM

i don't care what you guys choose but i support c++, with it you could even program games for consoles and learning it makes it easy to learn others. why not spend a little more time and more hard-work to learn c++ and achieve...???

on of the book i am using to learn which is great and really understandable. It is also a friendly version, click here to see it in google books, amazon selling the book, or if you are not able to buy the book like me, send me a pm and i will send you a pdf file of the book xD

Edited by Sugavanas, 28 February 2013 - 04:32 AM.

### #24King Mir  Members

Posted 28 February 2013 - 04:59 AM

You can't go wrong with either C++ or Java as a primary language. C++ is the darling of the games industry whilst Java can be used for Android games.

However, if you are learning from scratch then its wise to leave alone OOP languages until you have the basics of structured programming nailed. Both C or JavaScript are ideal beginner languages and share almost identical basic syntax with both C++ and Java. Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++...

This is bad advice, IMO. Firstly, because OOP is a good thing to learn early, so you should start with an OOP language. Secondly, because when learning C as a precursor to C++ there are a number of things that are common practice in c, that are bad practice in C++.

C and C++ are different languages, and not just because of OOP. Two big differences are how to write constants, and how to write generic code.

Edited by King Mir, 28 February 2013 - 04:59 AM.

### #25Rhinotones  Members

Posted 28 February 2013 - 05:06 AM

I've decided to go with C# as many people have pointed out here that for a beginner it's easier than c++. Someone also mentioned that C# goes hand in hand with unity and I am looking at learning that also. As my long term goal is to program for games this seems to be the logical choice.

Thanks once for for your invaluable suggestions and information.

Cheers,

Rhino.

Edited by Rhinotones, 28 February 2013 - 05:07 AM.

### #26Anri  Members

Posted 28 February 2013 - 05:32 AM

You can't go wrong with either C++ or Java as a primary language. C++ is the darling of the games industry whilst Java can be used for Android games.

However, if you are learning from scratch then its wise to leave alone OOP languages until you have the basics of structured programming nailed. Both C or JavaScript are ideal beginner languages and share almost identical basic syntax with both C++ and Java. Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++...

This is bad advice, IMO. Firstly, because OOP is a good thing to learn early, so you should start with an OOP language. Secondly, because when learning C as a precursor to C++ there are a number of things that are common practice in c, that are bad practice in C++.

C and C++ are different languages, and not just because of OOP. Two big differences are how to write constants, and how to write generic code.

"Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++..."

Anyway, I think learning OOP straight off the bat is going to leave many beginners feeling lost. I've seen it on the courses I have taken where some have withdrawn because they jumped the gun with procedural programming.  One has enough on their plate with loops, control statements, data types, opening and closing files without throwing OOP in to the mix.  Yes, its an important concept, but one thing at a time, no?

### #27Sugavanas  Members

Posted 28 February 2013 - 05:48 AM

I've decided to go with C# as many people have pointed out here that for a beginner it's easier than c++. Someone also mentioned that C# goes hand in hand with unity and I am looking at learning that also. As my long term goal is to program for games this seems to be the logical choice.

Thanks once for for your invaluable suggestions and information.

Cheers,

Rhino.

ya, good but without learning c++ you need to go with using engines to power up your games and your game will be based on the engine, not in you own skill of programming

### #28Rhinotones  Members

Posted 28 February 2013 - 06:48 AM

I've decided to go with C# as many people have pointed out here that for a beginner it's easier than c++. Someone also mentioned that C# goes hand in hand with unity and I am looking at learning that also. As my long term goal is to program for games this seems to be the logical choice.

Thanks once for for your invaluable suggestions and information.

Cheers,

Rhino.

ya, good but without learning c++ you need to go with using engines to power up your games and your game will be based on the engine, not in you own skill of programming

Baby steps. Gotta walk before I can run

### #29Sugavanas  Members

Posted 28 February 2013 - 09:37 AM

I've decided to go with C# as many people have pointed out here that for a beginner it's easier than c++. Someone also mentioned that C# goes hand in hand with unity and I am looking at learning that also. As my long term goal is to program for games this seems to be the logical choice.

Thanks once for for your invaluable suggestions and information.

Cheers,

Rhino.

ya, good but without learning c++ you need to go with using engines to power up your games and your game will be based on the engine, not in you own skill of programming

Baby steps. Gotta walk before I can run

True

### #30Ectara  Members

Posted 28 February 2013 - 10:17 AM

"Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++..."

That statement is still incorrect, no matter how you emphasize it. They are nowhere near considered the same language, and there are many differences. Their standards move at different paces, and disregarding even OOP, there are a surprisingly large amount of things that C supports and allows that C++ does not, and vice versa. Not to mention, a wealth of different keywords (and meanings for them), with new types that are exclusive to C or C++. C++ started out before the first ANSI C standard; it is in many ways not a superset of the language, because it wasn't wholly built upon it. In many ways, it was influenced by the success of C as a programming language, and borrowed its syntax, but it was developed alongside it, and separately.

To keep saying that they are almost the same is just not true. There are many code samples that will compile differently (or not at all) in either language. Perhaps try to elaborate on your point so that you don't confuse newcomers? That's the reason people are calling you on it.

Anyway, I think learning OOP straight off the bat is going to leave many beginners feeling lost. I've seen it on the courses I have taken where some have withdrawn because they jumped the gun with procedural programming. One has enough on their plate with loops, control statements, data types, opening and closing files without throwing OOP in to the mix. Yes, its an important concept, but one thing at a time, no?

I agree with this, but it might depend on the teacher. My teacher for C++ was terrible. She didn't know what she was doing, and was teaching C with Classes. Everything went in a class, even things that held no state; they should have been free functions in a namespace, but she didn't teach namespaces. We had char arrays for everything, because she didn't teach the standard templates. We got ripped off in our education. As a result, my code was absolutely horrible, and it took me many years of finally swearing off classes because I didn't need them, before I could learn how important they were.

Often, going without a feature and doing things the hard way is the best way to learn to appreciate a feature.

### #31Anri  Members

Posted 28 February 2013 - 05:02 PM

"Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++..."

That statement is still incorrect, no matter how you emphasize it. They are nowhere near considered the same language, and there are many differences. Their standards move at different paces, and disregarding even OOP, there are a surprisingly large amount of things that C supports and allows that C++ does not, and vice versa. Not to mention, a wealth of different keywords (and meanings for them), with new types that are exclusive to C or C++. C++ started out before the first ANSI C standard; it is in many ways not a superset of the language, because it wasn't wholly built upon it. In many ways, it was influenced by the success of C as a programming language, and borrowed its syntax, but it was developed alongside it, and separately.

To keep saying that they are almost the same is just not true. There are many code samples that will compile differently (or not at all) in either language. Perhaps try to elaborate on your point so that you don't confuse newcomers? That's the reason people are calling you on it.

>Anyway, I think learning OOP straight off the bat is going to leave many beginners feeling lost. I've seen it on the courses I have taken where some have withdrawn because they jumped the gun with procedural programming. One has enough on their plate with loops, control statements, data types, opening and closing files without throwing OOP in to the mix. Yes, its an important concept, but one thing at a time, no?

I agree with this, but it might depend on the teacher. My teacher for C++ was terrible. She didn't know what she was doing, and was teaching C with Classes. Everything went in a class, even things that held no state; they should have been free functions in a namespace, but she didn't teach namespaces. We had char arrays for everything, because she didn't teach the standard templates. We got ripped off in our education. As a result, my code was absolutely horrible, and it took me many years of finally swearing off classes because I didn't need them, before I could learn how important they were.

Often, going without a feature and doing things the hard way is the best way to learn to appreciate a feature.

On the point of C++,  I still don't agree with you and like wise, so we shall have to leave it there.  Moving on from that, I do agree with you on the differences between C and C++.  When I tried learning C++ back in the day(about 2000), there was a lot of "if you know C then you already know C++".  I fell into that trap and it took some rather harsh peers to point out that mistake after so many years of bloody awful code.  One piece of advice was to get a copy of Herbert Schildt's C++ Reference book, in which Schildt covers the differences. The other was learn software development and maths, but thats for another time, perhaps.

Concerning teaching of programming...yes, it can be frustrating when being led by bad advice. I remember an article in PC Format, a few years ago, when they ran a guide to XNA and C#.  Some of their advice was along the lines of "People who read programming books and go on courses are idiots. Save time by just cutting'n'pasting other peoples code. If it doesn't work then you haven't lost anything!".  Some poor sod most probably took that advice and after so much wasted time of poncing other people's code which only served to generate loads of IDE error reports which they had no idea what they meant, decided to go back and learn C# properly.  On the other hand, I had some good tutoring with the Open University here in England. There was a course in Java, and considering quite a few students were new to programming, they actually enjoyed the introduction to OOP - even without prior knowledge.  In a nutshell, they used the idea of frogs, toads & lilypads and considering I was rebellious to formal education, I was won over by how they taught OOP to complete beginners. They've got an improved presentation of that course(M250) and I do recommend it to those either trying to learn Java or even just OOP.

### #32Serapth  Members

Posted 28 February 2013 - 05:11 PM

C++ is a super set of C... circa 1983.

That's the relationship between those two languages.  Since then there have been 20 years of separate evolution between those two languages.

So no, the are not the same, not even close.

### #33Anri  Members

Posted 28 February 2013 - 05:46 PM

C++ is a super set of C... circa 1983.

That's the relationship between those two languages.  Since then there have been 20 years of separate evolution between those two languages.

So no, the are not the same, not even close.

Serapth, myself and the above posters actually agree that C and C++ are separate languages.  That is not what is the debate here. The disagreement is that they believe I have not been clear about that in how I've worded it that C and C++ are separate languages, whereas I feel I have been clear about it.

Okay, if I had wrote "C and C++ are the same language.", then I could understand the objection.  But that is not what is not what I wrote - I wrote "Are considered the same language" because like Ectara's Teacher whom they mention, there are far too many people who do consider C and C++ the same language when they clearly are not.  C++ is not merely C with OOP tacked on - which is rather clear with my further correction of that misconception with  "but there are some differences beside the obvious use of OOP in C++...", which is in the same sentence.

Alright, on that point I hope that clears up any misunderstanding that has gone on here.  I will even go one further and be kind by saying that if I've upset anyone here over this misunderstanding then I apologise, for that certainly was not my intention.

### #34Ectara  Members

Posted 28 February 2013 - 08:18 PM

C++ is a super set of C... circa 1983.

Not a strict superset; this term implies that it has things that C had plus more, and that all valid C programs are valid C++ programs. Even something like:

function(){
return 0;
}


will act completely different in the two languages.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.