Sign in to follow this  
SicilianKing

My first post: What programming language should I start out with?

Recommended Posts

Use the search feature. This question is asked at least twice a day. The general answer is "whichever you feel comfortable in". It doesn't really matter what language, learn to program. Once you learn one language it's usually quite trivial to learn another.

Share this post


Link to post
Share on other sites
Depends what you want to do... for game programming you'll probably want to look in to C++, for web based programming PHP. I'd reccommend C++, once you feel comfortable with it any other language is relatively easy to pick up.

Share this post


Link to post
Share on other sites
I recommend that people do not choose C++ as a first language. It is ridiculously complex. Beginners learning C++ spend most of their time learning complicated syntax and trying to figure out incomprehensible error messages rather than learning how to program.

Python is a better choice, as is Java and perhaps C#. All three can be used to make games.

Share this post


Link to post
Share on other sites
I am rather fond of C# for beginners. It is pretty easy to learn. You can jump into either Windows or Game programming pretty easy with it.

theTroll

Share this post


Link to post
Share on other sites
I dont see why people dont like C++. If you are intelligent enough it isnt too hard to start with C++ plus its a great assett if you learn it correctly.

Share this post


Link to post
Share on other sites
Or you can search this website for that exact question, and find that it has literally been asked about a hundred times a month since time began, and there are a number of usual suspects that tend to pop up every time. The big answer though?

Learn something. Anything.

It's a piece of cake to transition from one language to another. Just pick one that interests you, and learn it. It's a matter of preference.

Share this post


Link to post
Share on other sites
well i wouldnt necessarily call it a piece of cake. but thats what i meant by THE PROGRAMMER MAKES THE GAME not the programming language. just choose one mentioned here and start with it. Most of these are all good. Most people here are all opinionated and will only tell you the good things about the languages they like and the bad things about others. All languages have there ups and downs and its your job to make use of them. From what ive seen is C++ is one of those languages that you should learn eventually and every good programmer has learned or looked at. But its not necessarily something to start with. If you try it out and don't think its that hard then stick with it. but like i said just choose one and stick with it.
Your first couple of months or so of programming you should just try out a couple of languages or stick to a basic one to learn basic programming. What most people do is go directly into game programming here which isnt always a good thing. If I were you i would choose a langauge and spend at least a month learning basic programming before you even think of learning to program even a simple 2d game.

Share this post


Link to post
Share on other sites
whoops i wrote THE PROGRAMMER MAKES THE GAME NOT THE PROGRAMMER on a different topic. jeez how many of these topics are there.

Share this post


Link to post
Share on other sites
Quote:
Original post by Spylogo
I dont see why people dont like C++. If you are intelligent enough it isnt too hard to start with C++ plus its a great assett if you learn it correctly.


There is your problem with starting with C++.
It is NOT a simple language, and is NOT fun to start with. Python teaches you the basics just as well, and is just as well suited for basic game development (and even not so basic) as C++ is. I would almost say that because of its ease of development in it, it is actually better than C++ for small game development.


In the end, it doesn't matter what language you first learn. Learn several, it will make your life easier.

Share this post


Link to post
Share on other sites
Quote:
Original post by Talroth
It is NOT a simple language, and is NOT fun to start with. Python teaches you the basics just as well, and is just as well suited for basic game development

C++ is far from a simple language, but I think starting with something like Python can almost lead to a false sense of security.

I mean Python is such an easy to use, nice language that transitioning from there to something like C++ would be difficult because there is so much more you have to be aware of. If you're made aware of these things to start with then picking up Python is a breese.

I biased in that C++ was my first language, but I definitly enjoyed learning it... dispite all of the hair tearing :)

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
C++ is far from a simple language, but I think starting with something like Python can almost lead to a false sense of security.

I mean Python is such an easy to use, nice language that transitioning from there to something like C++ would be difficult because there is so much more you have to be aware of. If you're made aware of these things to start with then picking up Python is a breese.


The goal is not to learn a language. That is being short-sighted. The goal is to learn programming. Being able pick up Python after learning C++ is not as good as being able to pick up C++ after learning programming.

Consider this: What is the first thing you learn in Capoeira? You learn Ginga. In fact, you spend a lot of time on Ginga in order to learn balance and rhythm. Are you saying you shouldn't start out learning the basic moves because it leads to a false sense of security? A beginner is not going to start out in Capoeira by learning takedowns.

Share this post


Link to post
Share on other sites
Quote:
Original post by JohnBolton
The goal is not to learn a language. That is being short-sighted. The goal is to learn programming.

I don't disagree! I just think that C++ expsoses you to more programming techniques and concepts than Python ever would, in the long run making you a better programmer.

Quote:

Are you saying you shouldn't start out learning the basic moves because it leads to a false sense of security?

Not at all, that would be insane. I'm saying that instead of going to a three week capoeira course at the gym you should find yourself a master :)

Share this post


Link to post
Share on other sites
Honestly there are a lot of good choices that have been said, and then some not so good ones. I will not offend anyone, so I will not mention the former nor the ladder. Honestly the best advice I got from this question one time years ago when I was in your shoes and learning how to start programming games. Which I'm far but got a long way to go. Is you sorta just have to start working with a language and if you like it then use it, if not then don't. Also, a the type of language that you choose also depends on what you're trying to accomplish, what you already know, what you don't know, how much of a learning experience, and not a hurry and get it done project you want it to be.

That is why I decided to choose C++, for many of developers on this website who helps out a lot are quite familiar with C++. Also, I am trying to do an internship or at least a Microsoft Explore at Microsoft and they ask you to be familiar in C#/C++/, Java so I am constantly just learning, and will be for a long time, but I don't care much honestly. I have made applications, I have made games, I am working on one more 2d game before moving to 3D stuff, and am quite satisfied with the fact that I picked C++ to begin my journey of game development.

Hope this helps out a little, and I hope you choose the language that fits you best!

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
Quote:
Original post by JohnBolton
The goal is not to learn a language. That is being short-sighted. The goal is to learn programming.

I don't disagree! I just think that C++ expsoses you to more programming techniques and concepts than Python ever would, in the long run making you a better programmer.




oh really? like what? (i'm not trying to be rude, just skeptical and curious)

Share this post


Link to post
Share on other sites
Quote:
Original post by domstyledesign
oh really? like what? (i'm not trying to be rude, just skeptical and curious)

Well there are pointers for a start.

Python does a lot of things four you like garbage collection, plus it's not a typed.

Don't get me wrong, I love Python and use it all the time... it's just I think C++ is a better way to go when you're staring out because you really have to get your hands dirty.

Never thought you were being rude, I enjoy a good debate :)

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
Quote:
Original post by JohnBolton
The goal is not to learn a language. That is being short-sighted. The goal is to learn programming.

I don't disagree! I just think that C++ expsoses you to more programming techniques and concepts than Python ever would, in the long run making you a better programmer.

And that's a bad thing when you're beginning to learn how to program. The problem I have with C++ as a beginner language is there's a whole bunch of language semantics you have to learn before you can do anything.

For example, here's a "Hello World" program in C++
#include <iostream>
using namespace std;
void main()
{
cout << "Hello World!" << endl;
return;
}


For someone totally new to C++ to understand this, you need to tell them:
  • What the #include statement does, and why they need to do that
  • What namespaces are
  • What functions are
  • What the main function is for
  • What the "void" means
  • What "cout" and "endl" does
  • Representation of strings
  • What streams are and what the << operator is for
  • The return operator (granted, this is optional for that particular example)
  • Use of brackets
  • Use of semicolons
  • (any I missed?)


Now granted, you'll get some of that with any language. But frankly that's a bit much for what is likely to be the first program that someone sees, and many of those elements have nothing to do with programming in general.

For a beginner programmer, the most important thing to learn is how to take a problem and split it up into managable chunks that can be expressed in a form the computer can handle; i.e. the whole point of programming. It's far better to learn this in a language with an easy to learn syntax than to start with a powerful language. The great thing about languages today though is that many of the easy to learn languages are plenty powerful enough for simple games.

Edit: Whoops, I forgot to add in the answer to the OP's question!

SicilianKing: I'd recommend Python too. I have to admit that I've only dabbled in Python (learning more is on my to-do list!), but from what I've seen it's a good starter language that will still be useful when you become proficient. I'd avoid C++ until you're comfortable with the whole concept of programming. It's a bit complex to learn as your first language (personally I started with BASIC, learnt a few other languages before learning C, and then later moved to C++).

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
Quote:
Original post by domstyledesign
oh really? like what? (i'm not trying to be rude, just skeptical and curious)

Well there are pointers for a start.

Python does a lot of things four you like garbage collection, plus it's not a typed.

Don't get me wrong, I love Python and use it all the time... it's just I think C++ is a better way to go when you're staring out because you really have to get your hands dirty.

Never thought you were being rude, I enjoy a good debate :)


Personally, I think that learning to play nice with a garbage collector is a more important programming concept than pointers. Certainly more practical.

Share this post


Link to post
Share on other sites
Quote:
Original post by Trapper Zoid
And that's a bad thing when you're beginning to learn how to program. The problem I have with C++ as a beginner language is there's a whole bunch of language semantics you have to learn before you can do anything.

...

For a beginner programmer, the most important thing to learn is how to take a problem and split it up into managable chunks that can be expressed in a form the computer can handle...

Yeah good point, I think I just like jumping in at the deep end. C++ is definitly a challange to get your head around, and takes years to master. Come to think of it I started out using basic on the c64.

Go with Python!

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
Python does a lot of things four you like garbage collection, plus it's not a typed.


Python is typed. It just happens to use strong dynamic typing rather than C++'s weak static typing.

Pointers aren't really all that exciting. More interesting programming features would reflection or closures - both of which are supported by python and not C++.

Share this post


Link to post
Share on other sites
Quote:
Original post by Capoeirista
I don't disagree! I just think that C++ expsoses you to more programming techniques and concepts than Python ever would, in the long run making you a better programmer.


In theory, you are entirely correct: C++ supports imperative, object-oriented, procedural, generic and even specks of functional programming, which makes it a very versatile language overall.

In practice, however, learning such programming techniques are not a consequence of learning C++, as most books and tutorials will focus on the imperative-procedural, or sometimes imperative-OO, sides of the language. And template meta-programming or functors are not, at the core, something you can invent on your own. Besides, the meta-programming facilities of C++ are not excellent (so you will miss a lot of interesting features unless you use a language with actual meta-programming facilities, such as LISP, or at least one with introspection) and neither are its functional programming features (in this particular, it's pretty much necessary to learn functional programming first, possibly by using a functional language) before you are able to use them.

Share this post


Link to post
Share on other sites

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