Best language to start programming in?

Started by
42 comments, last by Luau Design DF 11 years, 4 months ago
So, I find myself walking back to the beginners section of the site again. Anyway, hey guys. I'm making a game at the moment, and I'm the team leader/animator/writer. I have a question. I want to learn how to program (for gaming, and eventually, hopefully, I can build an engine.) I know I will have to start small, but I want a language I can stay with so I don't have to keep switching around. What is the best language for me to start? NOTE: I know absolutely NOTHING about programming. NOTHING. What is a good language to learn?
Thanks, guys.
My Project info: My Dev Journal: http://www.gamedev.net/blog/1571-the-life-of-a-unity-developer/
I update this more: http://forum.unity3d.com/threads/158344-Not-Dead-Enough-a-zombie-apocalypse-simulator-now-in-production!
Advertisement
I'm not sure if i read that write, but did you say you were a programmer for a game? Anyway, i started with Java, it's simple, and more importantly, it's in everything. My only advice is download sample .javas and try to interpret how the game/program will work. If your into it, download Minecraft (http://minecraft.net) and decompile it, then look at the code, it is definitely one of the easiest codes to understand, because once you get it, it just clicks. Also, if your very ambitious, make a mod for minecraft and release it somewhere and most importantly ACCEPT CRITICISM because it will ultimately make you better, anyway, Good Luck!
I would say C#, Python and Java are all solid choices to get started with. I see you're using Unity on the game project you're working on. With that in mind, C# and Python (Boo takes a lot of syntax inspiration from Python) might top that list for you.

Also, you can check out http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx for some direction.
Honestly, it doesn't really matter if you're starting from no experience. I like C#, very easy to pick up, others like Java and Python. All have a good selection of libraries that you can use to get to game-making (relatively) quickly. I personally recommend C# with SFML, but I hear great things about Python and PyGame.

No matter which language you pick, you won't have to do any switching around. You can make a game in any language.

-------R.I.P.-------

Selective Quote

~Too Late - Too Soon~

You shouldn't be afraid to start with a language and then having to learn another one. Learning languages is easy: Learning programming, on the other hand, is pretty darn hard.

And now for the part that is totally my personal opinion and nothing else ;) . For people that want to eventually be great programmers, I recommend C, but I know this is not popular advice. If you want to get your feet wet with programming but don't want to learn every little aspect of how things work, perhaps Python is a better choice. I would stay away from Java because I don't like it and because I don't like how people who learned Java first tend to program. C++ is a terrible choice for a first language, because it's just too hard to learn.
It depends on what kind of games you are set out to do. I like C++ and started without programming experience. On the other hand I study programming, but still ^^. C++ is one of the widely used programming languages when it comes to triple A games. On the other hand C, C# and C++ are quite similar and once you know one of them transitioning into another isn't hard.

I would recommend C++, good luck!
I second the recommendation for C. I came to programming rather late at the age of 27 and the first language I started learning (on my own) was Java 1.1 back in '98. I thought I had grasped the concepts pretty well, but it wasn't until I started digging into C a few months later that I realized just how little I knew. I have still used Java off and on over the years, professionally and otherwise, but it does mask some fairly important concepts from you. Some of it is because of the way Java is designed, but it's also because of the wealth of classes in the standard library. No need to roll your own list when there's a perfectly good one sitting there in the utility package. In C, there's a great many things that you just have to do yourself (memory management) and others that it's usually just easier to do yourself (making lists). But most of all, I understood Java a helluva lot better after spending a few months with C.

In a classroom environment, I imagine Java would be fine since the instructor will usually give you certain restraints within which to work. But when studying independently, best to avoid temptation methinks. If I had to to it all again, I would start with C first. It's not that difficult to learn if you have a good book at your side (or, these days, a good web site) to get you through the rough spots. Stephen Prata's C Primer Plus is a good one to go with (and the latest version covers C99). And there really aren't that many rough spots.

I mostly work with D these days and rarely touch Java anymore. But I still love C. It can be extremely tedious to work with on a large scale and isn't really practical for as wide a range of tasks as it used to be, given the number of better-suited alternatives out there. But I really believe it's the best place to start. Some say that learning C first is rather like learning to swim by jumping into the deep end of the pool, whereas learning Java or Python first is more akin to playing around in the shallow end. It's an interesting analogy, but I don't see it that way. My take is that Java and Python have certain constraints imposed by the languages themselves which, while not necessarily a bad thing, can be mistaken by beginners as part of the process rather than understood as being quirks of the language. C has none of that, so you can see as much or as little of the bigger picture as you are comfortably able. After some time with C, moving on to Java, Python, C# or whatever language you want will be rather simple. Not so easy the other way round.
C#, Java or Python. Do not go any deeper than that in the beginning. Both C and C++ has quirks that's too easy to run into, and both of those languages has a tendency to spit out cryptic error messages that might as well be some evil summoning spell for all a beginner knows.

Start out with an easy langauge to learn the basic concepts of programming, then if you realize that you'd rather sit and make your own lists and memory managers and what-not instead of making games, then you can try out C or C++


I want a language I can stay with so I don't have to keep switching around

Don't be afraid to switch programming language. It's something most programmers do alot ,and as others already have said: it's easy to make the transition once you have learned the basic concepts of programming. Last week, at my work, I had to switch between C#, C++ and lua....
There is no best language. Put the words "Python", "C#" and "Java" in a hat and pick one.


My only advice is download sample .javas and try to interpret how the game/program will work. If your into it, download Minecraft (http://minecraft.net) and decompile it, then look at the code, it is definitely one of the easiest codes to understand, because once you get it, it just clicks.

I think this is fantastically poor advice to start with. Start with a good beginner material for the language you've chosen (books are probably best if you can), and get the basics down first.
Python is a great language to start out with. It let you focus on the concept behind programming and not too much on syntax issues(which is great in the beginning) while you learn how to think as a programmer. I always recommend this book: http://www.greenteapress.com/thinkpython/

And it is free to use and learn from here and now. That book really got me and my class mates going back then. It did what no other book had done. It really teach you to be a novice programmer and then from there everything can be build upon.

Try it it out smile.png

"The only thing that interferes with my learning is my education"

Albert Einstein

"It is a miracle that curiosity survives formal education"

Albert Einstein

This topic is closed to new replies.

Advertisement