Sign in to follow this  

Which should I...?

This topic is 2346 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.


Recommended Posts

What coding language should I learn first?

I'm fairly new to coding (and this forum) and only know a tiny bit about it.
I know there are lots of languages like Python, C++, Jave...etc. but which ones are the best to start with?
Also which language would be most beneficial for making games? (Prefferably portable handheld games on devices like the iPhone for instance)

Just some additional information I don't have any type of Mac or anything but I will hopefully be getting a MacBook in the next month or so.

Thanks for any help :D

Share this post


Link to post
Share on other sites
[quote name='landlocked' timestamp='1310412430' post='4833925']
C#



or Java, if you're the bastard demon spawn of Satan :cool: I kid I kid haha
[/quote]


Thanks :D

Is there any particular reason to do C# first, or is it just generally a good place to start?

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310412761' post='4833931']
Thanks :D

Is there any particular reason to do C# first, or is it just generally a good place to start?
[/quote]
"C# is good for the same reasons Java is good (simplicity and safety with the core concepts being pretty consistent with many other languages). It is great because Microsoft has done a great job of supporting it's knowledge base with tutorials through it's XNA community site. That would be my biggest selling point if I were to start now. There are tons of great user and M$ made tutorials that are pretty phenomenal.

Share this post


Link to post
Share on other sites
I would recommend you on C# if you want a little bit of a "softer" start. However, if you wish on going hardcore straight away, go for C++.

That's just my opinion :wink:

Share this post


Link to post
Share on other sites
In my humble opinion, Objective C is crap, hands down the worst language in popular use today. The only reason it exists still is it is the under-pinnings of NeXT, which ultimately became OS/X. I really can't think of a single thing I like about said language.


That said, it is the lingua franca of iOS. True, you can use C++ and C, but you are taking a step away from the native APIs. You also could use C#, but recently Novell axed the Monotouch group and Ximian 2.0 isn't up and running yet. Then there is Unity, which is built on Mono ( open source implementation of C# ), which provides a much much much nicer langauge than ObjC, but then you are tied to their platform. On iOS, Java and Python aren't even possible, unless going through a translator of sorts.




All that said, if I was targeting iOS for a game, I would go with Unity/C#, in a heartbeat. Which, by the way, gives the option of Javascript and Boo, neither of which are in your poll. Actually you can mix and match all three languages. Personally I wouldn't bother, as I think C# is superior to the other two.

Share this post


Link to post
Share on other sites
[quote name='way2lazy2care' timestamp='1310413112' post='4833934']
[quote name='codegas' timestamp='1310412761' post='4833931']
Thanks :D

Is there any particular reason to do C# first, or is it just generally a good place to start?
[/quote]
"C# is good for the same reasons Java is good (simplicity and safety with the core concepts being pretty consistent with many other languages). It is great because Microsoft has done a great job of supporting it's knowledge base with tutorials through it's XNA community site. That would be my biggest selling point if I were to start now. There are tons of great user and M$ made tutorials that are pretty phenomenal.
[/quote]


Really, M$? Really?

Share this post


Link to post
Share on other sites
I'd like to recommend C#, It's easy to start with, teaches you "strict" ( don't quote me on that! ) OOP and also more or less forces you to think about object-management/allocation/recycling ( And that is good in my opinion ).

It got a good Graphic framework ( XNA ) that allows Windows and XBox games to be created, Their is also SDL.NET and SFML.NET If you are into cross-platform games! ( Though that requires some more work! )
Also It got a lot of nice features!


I have done a bit of C++ ( I prefer the syntax in C++ over C# though, It looks beautiful ) and well It's "The Gaming Industry Standard", nothing more to say, It got a steep learning curve in my opinion.

Share this post


Link to post
Share on other sites
[quote name='Moonkis' timestamp='1310413527' post='4833940']
I prefer the syntax in C++ over C# though, It looks beautiful[/quote]

This... may be the very first time I have ever heard such words uttered! :D

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1310413643' post='4833941']
[quote name='Moonkis' timestamp='1310413527' post='4833940']
I prefer the syntax in C++ over C# though, It looks beautiful[/quote]

This... may be the very first time I have ever heard such words uttered! :D
[/quote]

Let me rephrase that! I think C++ syntax has more of a "pro" feel to it, though C# wins hands down when it comes to actually code with the syntax ( In my humble opinion! )

Share this post


Link to post
Share on other sites
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?

Share this post


Link to post
Share on other sites
[quote name='Moonkis' timestamp='1310413527' post='4833940']
[color="#c0c0c0"]I'd like to recommend C#, It's easy to start with, teaches you "strict" ( don't quote me on that! ) OOP and also more or less forces you to think about object-management/allocation/recycling ( And that is good in my opinion ).

It got a good Graphic framework ( XNA ) that allows Windows and XBox games to be created, Their is also SDL.NET and SFML.NET If you are into cross-platform games! ( Though that requires some more work! )
Also It got a lot of nice features!


I have done a bit of C++ ( I prefer the syntax in C++ over C# though, It looks beautiful )[/color] [b]and well It's "The Gaming Industry Standard",[/b] [color="#c0c0c0"]nothing more to say, It got a steep learning curve in my opinion.
[/color][/quote]


Totally agrees with this. And yes, C++ code is beautiful :D


[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

C++ is a little bit faster. More than that I don't know.

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )

Share this post


Link to post
Share on other sites
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310413884' post='4833944']
Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]


Is a screw driver better than a chainsaw?


Depends if you need to screw in a nail, or cut down a tree.

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310414512' post='4833952']
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]

C#, C++ ( Python, Javascript, Java, D ) are more or less all in the same "family". Your skills picked up learning one will transfer to all of the others. In fact, I would say they share about 60-80% of the same constructs, so once you can read code writen in one language, the others are pretty easy to grok.

C# is a much friendlier language to learn, even just for the reason the built in libraries are so much more capable, although their are many other reasons why C# is a friendlier beginner langauge as well.

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310414512' post='4833952']
Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]


Well, I would say yes. As C# is easier to learn and faster to start creating things, you get into the professional use of all kinds of variables vary fast. You have big use of this when you start with C++ later.

I did the way you are thinking about doing now, I begun learning C#, and then moved on to C++ after I made three 2D games. The first thing I felt was that I didn't need to learn in C++ was the use of basic variables and loops.

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1310414735' post='4833956']
[quote name='codegas' timestamp='1310414512' post='4833952']
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]

C#, C++ ( Python, Javascript, Java, D ) are more or less all in the same "family". Your skills picked up learning one will transfer to all of the others. In fact, I would say they share about 60-80% of the same constructs, so once you can read code writen in one language, the others are pretty easy to grok.

C# is a much friendlier language to learn, even just for the reason the built in libraries are so much more capable, although their are many other reasons why C# is a friendlier beginner langauge as well.
[/quote]

I thought it would be fairly similar. Like transferring rounders to baseball or something :D

Is the new and different things in each language certain "techniques" or "adjustments" sort of?

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310414914' post='4833958']
[quote name='Serapth' timestamp='1310414735' post='4833956']
[quote name='codegas' timestamp='1310414512' post='4833952']
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]

C#, C++ ( Python, Javascript, Java, D ) are more or less all in the same "family". Your skills picked up learning one will transfer to all of the others. In fact, I would say they share about 60-80% of the same constructs, so once you can read code writen in one language, the others are pretty easy to grok.

C# is a much friendlier language to learn, even just for the reason the built in libraries are so much more capable, although their are many other reasons why C# is a friendlier beginner langauge as well.
[/quote]

I thought it would be fairly similar. Like transferring rounders to baseball or something :D

Is the new and different things in each language certain "techniques" or "adjustments" sort of?
[/quote]


Not really. C# is a much newer language, and it frankly learned from C++ "mistakes" in a manner of speaking. Now, some people don't view those mistakes as mistakes, or in some cases those "mistakes" are incredibly useful when programming in a different way. C++ has been called the ultimate generalist language, and thats a pretty valid statement with all the various pluses and minuses attached.


Truth of the matter is, you are going to need a foundation in one language before you understand the differences in the other language. For example, templates and generics are massively different between languages, but until you figure out what one is, the other will be irrelevant to you. The same is even true of memory allocation... these days, with things like smart pointers, C++ isn't as big a deal with regards to the memory management hand grenade. On the flipside, people think C# provides you with fire and forget memory management, which in non-trivial code is very much NOT true. That said, until you know about garbage collection or memory management, or whatever, you won't understand the difference. You can't really argue the merits of single vs multiple inheritence before you understand what either is and what they accomplish.



That said, basic programming tasks like manipulating strings, opening a network connection, reading a file, etc... are many times easier on C# thanks to the libraries it ships with. What takes 10 lines in C++ can often be done in 1 or 2 lines of C. This is what makes C# so much more beginner friendly.

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310414914' post='4833958']
I thought it would be fairly similar. Like transferring rounders to baseball or something :D

Is the new and different things in each language certain "techniques" or "adjustments" sort of?
[/quote]

All of the languages mentioned so far have the same basic roots.

It is much the same as our human spoken languages.

When you know multiple languages, such as learning Spanish or French, it will make it easy to later learn a third or fourth or fifth language from the same Latin root. Once you know two or three of them, you can generally read enough to figure out the meaning when exposed to other languages.

The exact syntax and use patterns are different between programming languages, but once you are comfortable with one or two of them, you will be able to read most modern imperative programming languages.

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1310415685' post='4833964']
[quote name='codegas' timestamp='1310414914' post='4833958']
[quote name='Serapth' timestamp='1310414735' post='4833956']
[quote name='codegas' timestamp='1310414512' post='4833952']
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]

C#, C++ ( Python, Javascript, Java, D ) are more or less all in the same "family". Your skills picked up learning one will transfer to all of the others. In fact, I would say they share about 60-80% of the same constructs, so once you can read code writen in one language, the others are pretty easy to grok.

C# is a much friendlier language to learn, even just for the reason the built in libraries are so much more capable, although their are many other reasons why C# is a friendlier beginner langauge as well.
[/quote]

I thought it would be fairly similar. Like transferring rounders to baseball or something :D

Is the new and different things in each language certain "techniques" or "adjustments" sort of?
[/quote]


Not really. C# is a much newer language, and it frankly learned from C++ "mistakes" in a manner of speaking. Now, some people don't view those mistakes as mistakes, or in some cases those "mistakes" are incredibly useful when programming in a different way. C++ has been called the ultimate generalist language, and thats a pretty valid statement with all the various pluses and minuses attached.


Truth of the matter is, you are going to need a foundation in one language before you understand the differences in the other language. For example, templates and generics are massively different between languages, but until you figure out what one is, the other will be irrelevant to you. The same is even true of memory allocation... these days, with things like smart pointers, C++ isn't as big a deal with regards to the memory management hand grenade. On the flipside, people think C# provides you with fire and forget memory management, which in non-trivial code is very much NOT true. That said, until you know about garbage collection or memory management, or whatever, you won't understand the difference. You can't really argue the merits of single vs multiple inheritence before you understand what either is and what they accomplish.



That said, basic programming tasks like manipulating strings, opening a network connection, reading a file, etc... are many times easier on C# thanks to the libraries it ships with. What takes 10 lines in C++ can often be done in 1 or 2 lines of C. This is what makes C# so much more beginner friendly.
[/quote]

I understand what you're saying and yes it is understandably easier to do something in 2 lines rather than 10 :D

Last questions (hopefully :wink: )

I'm sure it will be hard to get an answer to this but how long will it take to learn C#?

That saying I'm an above average (academically) teenager, I have a good understanding of I.T and I generally find it easy to grasp the concepts of new things :D My aim would to have a good, if not great understanding of C# by Christmas time-ish, if that sounds remotely possible.

Is there any recommended compiler for C#?

Is it a good language for coding 2d games on IOS devices such as iPod and IPhone ( the main reason I want to code really :D)?

Thanks for more help :)

Share this post


Link to post
Share on other sites
[quote name='codegas' timestamp='1310416361' post='4833972']
[quote name='Serapth' timestamp='1310415685' post='4833964']
[quote name='codegas' timestamp='1310414914' post='4833958']
[quote name='Serapth' timestamp='1310414735' post='4833956']
[quote name='codegas' timestamp='1310414512' post='4833952']
[quote name='Moonkis' timestamp='1310414092' post='4833949']
[quote name='codegas' timestamp='1310413884' post='4833944']
Thanks for all the help everyone! :D

By the sounds of it C# is seemingly the language I'm going to learn first.

Just another quick question: Is C++ better then C# or are they both as good as each other?
[/quote]

Right tool for the right job is the key here!
C++ is very useful if you want to have the advantage of speed ( CPU intensive applications? ) ( Cross-platform, Low-level access)
C# allows faster prototyping and developing time which is to prefer as a beginner/indie developer.

Depending on what you want to do, either languages are as good. C++ is not by any means better than C#!
In most cases i find C# better than C++ though that is just my opinion :)
Of course ASM is the BEST language! ( Or you know raw binary-code! )
[/quote]


Thanks again for the help and sorry to pester everyone with more questions :wink:

but... is it easier to learn C# or C++ after learning the other one?

So say I learnt C# fairly well and wanted to learn C++ would it be easier to learn? (or vice-versa :D)
[/quote]

C#, C++ ( Python, Javascript, Java, D ) are more or less all in the same "family". Your skills picked up learning one will transfer to all of the others. In fact, I would say they share about 60-80% of the same constructs, so once you can read code writen in one language, the others are pretty easy to grok.

C# is a much friendlier language to learn, even just for the reason the built in libraries are so much more capable, although their are many other reasons why C# is a friendlier beginner langauge as well.
[/quote]

I thought it would be fairly similar. Like transferring rounders to baseball or something :D

Is the new and different things in each language certain "techniques" or "adjustments" sort of?
[/quote]


Not really. C# is a much newer language, and it frankly learned from C++ "mistakes" in a manner of speaking. Now, some people don't view those mistakes as mistakes, or in some cases those "mistakes" are incredibly useful when programming in a different way. C++ has been called the ultimate generalist language, and thats a pretty valid statement with all the various pluses and minuses attached.


Truth of the matter is, you are going to need a foundation in one language before you understand the differences in the other language. For example, templates and generics are massively different between languages, but until you figure out what one is, the other will be irrelevant to you. The same is even true of memory allocation... these days, with things like smart pointers, C++ isn't as big a deal with regards to the memory management hand grenade. On the flipside, people think C# provides you with fire and forget memory management, which in non-trivial code is very much NOT true. That said, until you know about garbage collection or memory management, or whatever, you won't understand the difference. You can't really argue the merits of single vs multiple inheritence before you understand what either is and what they accomplish.



That said, basic programming tasks like manipulating strings, opening a network connection, reading a file, etc... are many times easier on C# thanks to the libraries it ships with. What takes 10 lines in C++ can often be done in 1 or 2 lines of C. This is what makes C# so much more beginner friendly.
[/quote]

I understand what you're saying and yes it is understandably easier to do something in 2 lines rather than 10 :D

Last questions (hopefully :wink: )

I'm sure it will be hard to get an answer to this but how long will it take to learn C#?

That saying I'm an above average (academically) teenager, I have a good understanding of I.T and I generally find it easy to grasp the concepts of new things :D My aim would to have a good, if not great understanding of C# by Christmas time-ish, if that sounds remotely possible.

Is there any recommended compiler for C#?

Is it a good language for coding 2d games on IOS devices such as iPod and IPhone ( the main reason I want to code really :D)?

Thanks for more help :)
[/quote]

To start learning the language, Google and download Visual C# Express, or XNA Studio, both are free. Play around with both for a while and leave iOS off the table for now. Once you feel comfortable with C#, head over to Unity3D give it a shot for your iOS game development.



As to learning C#, depends how much time you are willing to spend and how intuitivly it soaks in. With a decent book or the right tutorials, you should be able to pick up the gist of it in a couple weeks, enough so to make a very primitive game. To master it, a life time. To become proficient at a professional level, will probably be a couple years.There is a misnomer that C# is a simple language, this is anything but the truth. I consider it my primary langauge for most development, and have been using C# since pre-1.0 ( it had a different name at the time, COOL or something similar ) and I still wouldn't consider myself an expert.

Share this post


Link to post
Share on other sites
Thanks for all your help then as I'm done for today with the questions :D

I'll download compilers and start tutorials tommorow.

With summer holidays in a week hopefully I'll have more time to grasp the concepts of C# :D

Share this post


Link to post
Share on other sites
Hidden
if the point is to learn the basics of programming, why not start with something like Lua.

20 minutes and you'll be writing code. A week and you will understand the logic flow of a program. Two weeks and you'll be ready to digest another language, but now much faster because you're only learning a language rather than leaning a language and a way to think at the same time.

Of the languages that you listed, java is fast to get off the ground, but forces some restrictions on the logical organization of your program. C# is almost exactly the same for beginning level. I've never used Objective C, so cannot comment. I thought Cocos2d was a gui library, so I shouldn't comment on that one either. C++ is the most flexible and powerful that you mention, it is also the only one that is fully compiled rather than being compiled to something like a run-time.

The answer to your question is not likely going to be found by doing a poll. I would recommend that you read more about programming in general so that when you know what you want to do specifically you can search for a language that is more apt to handle that specific type of logic.

Share this post


Link to post

This topic is 2346 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this