Next Programming Language?

Recommended Videos

Jordi

New member
Jun 6, 2009
812
0
0
I think that what your next programming language should be is very personal and depends a lot on what you want and what your plans are. Most importantly: do you primarily want to become a better programmer, or do you primarily want to learn a language that will make you employable ASAP in the field of your choice? They are not mutually exclusive, but I think they call for somewhat different paths.

If you want the latter, then C++ is probably the best choice for reasons people have already explained. If becoming very good at programming (problem solving), then I think the best way is to experience as much different programming styles and paradigms as possible. You see, a lot of languages share a lot of the same basic concepts. If you know the basics of C#, you basically also know the basics of Java, and a lot of basics from C++, Ruby, Python, etc. They all feature mainly imperative and object-oriented programming. These are the paradigms that are by far the most in use nowadays.
However, I have heard many people who learned functional programming say that it blew their minds, and taught them to be better programmers in any language (even the ones that were not functional). Therefore, you might also want to try your luck with Haskell (very hardcore), Scheme or Clojure. Python and Ruby, and a lot of other languages, have incorporated a lot of functional concepts as well, but I have no idea if they are the best languages to learn about them, since they are avoidable.
For more programming paradigm mind blowing, you could look into languages like Erlang, Prolog, Forth, Assembly. While it is not likely that you will be using most of these languages in your career, knowing them allegedly makes you a better programmer even in the languages that you do get to use.

For you, if you want to learn, one way might to be to try to port your VB.NET programs to C# and F#, which I think Microsoft made relatively easy. That way you have an easy way of acquainting yourself with those languages, because you already know your own program. From there, you should also make some new programs though, and imagine how you would have done the first program if it wasn't a port. The different languages will likely have different paths of least resistance, and hopefully this will show you different ways of approaching a problem.

If you do want to go in the direction of C++ and you have the time, maybe you could learn C first. I think one of the main differences between these languages and most others is that you have to/get to manage all memory yourself. This can be fairly tricky, and I think that learning C will probably teach you to deal with this better, because it has less abstractions on this concept and less features than C++ overall. From C, it should be fairly easy to switch to learning C++ because any C program is also a C++ program (but not vice versa). I also think Keava's advice is really good.

I know you asked someone else, but I'm going to answer these questions anyway, as I'm sure you could use more than one perspective on the questions you have. I will point out though that I know very little about graphics and don't really see myself programming entire graphics engines anytime soon, like Hiikuro. I am programming for a living now though (mostly in C#).

Master Steeds said:
1. how many hours a day did you put in to get as advanced as you are now?
Conventional wisdom says you have to put in 10000 hours to become an expert at anything. If you work 40 hours a week for 50 weeks a year, it will take you 5 years. Of course, that is to become an expert. You will likely be able to have acceptable skill much sooner.

Personally I started making websites when I was about 15. They were really simple to begin with, but got more complex as I got older and learned more. After about three years of occasional, recreational programming, I got some small assignments to make simple websites for people/companies I knew.
Then I went to college where I learned even more, and got a side job developing web apps. After college I was more than ready for a job in software development.

My point here is that at almost any point in your learning curve, there is probably something useful that you can do. Well, after the very first beginning of course.

Master Steeds said:
2. did you do a course, or are you self taught?
For me: a little bit of both. I started pretty much self taught (well, I had a friend I could ask some questions and the internet for tutorials), and then I went to college. I'd say it's about 50/50 for me. But I think programming is a profession that can be self-taught pretty well, if you don't want to get an education (I would recommend doing both though).

Master Steeds said:
3. how young did you start to programme? im curious as you say you have been doing it for 10 years, but im already 17, so is it too late to become good and get a decent job?
No way are you too late. It is true that some people have began programming when they were very young, but I also know many people that didn't start until college. If you have talent and motivation, you should be more than alright.

Master Steeds said:
4. is it still fun after 10 years?
The internet is filled with programmers who still like it after many, many more years. For me, I have to say that I don't always like it anymore. It can still be fun, but there are definitely aspects that can be boring. And like anything, it can start feeling like a job rather than a hobby. I think this is very personal though, and it also really depends on your employer, since there are some pretty boring tasks that you sometimes have to do.
Before you actually try to become a professional game programmer, I would advice you to look into what that job actually looks like. I'm not saying that it's not a fun job, but I do think it is almost certainly not as much fun as some people might think. You're not playing the game you're developing all day. A lot of it will consist of making small adjustments in a huge code base and trying to figure out other people's incomprehensible code. I can imagine it still being a lot of fun if you like programming, and it must be a joy to see your game develop in front of your eyes until it is released to the public for them to enjoy, but you have to realize it can also be a lot of hard work.
 

Shazzam

New member
Feb 18, 2009
5
0
0
Hiikuro said:
I must say I'm rather biased. In retrospect I realized I've spoken out of turn. I've just grown up with C/C++ as my main programming languages. I don't know much about C# to be honest, I've only heard that it is fairly similar to Java. Considering my unpleasant experiences with Java so far (among other things, generics are frustrating in Java), that doesn't put it at a high spot on my list. In addition, C# isn't available for linux (or mac, as far as I know), which marks it down in my book. As for "bad programmers", it is just what my general impression is from programmers I've spoken to, which isn't a terribly reliable measure I know.
Ok, I'm finding it really hard not to be bias on this one :p so if I come across like a jerk you will have to forgive me!

Firstly I really hated C++ when I had to use it, the main reason being is that its getting old now and everyone has had a crack at adding to their language in their own special way (RE: reinventing the wheel) that it comes off very schizophrenic.

One of the largest issues you will face is just down to the fact there is 100's of ways to crack a nut inside languages (I frequently get annoyed at the different ways of doing XML manipulation and database calls in C#) and to be honest the majority of them will be plain bad.

I think the best way to start to learn is to have some projects that you want to do, and have some good books to read (Code complete is like a bible for a lot of professional developers, it is getting a little old now though).
http://www.cc2e.com/

Anyway I think I've digressed all over the shop :D If you really want to follow a game dev career I will try and offer some things I have picked up on :-

1) XNA will be a very good place to start, C# is fully supported and it makes for a good basic start into the world of games (plus lets be honest if its just you, your not going to be writing the unreal engine)
There are oodles of good books about it :
http://www.microsoft.com/learning/en/us/book.aspx?ID=13411&locale=en-us this guy was my lecturer at uni and he was one of the best teachers I've ever had!

2) Be wary of the transitions you can make in your job, going from a games developer to a business level developer is really really tough! Things you may do in the games world simply wont work in the business world a lot of the time!

3) The first few years as a games dev are torture - a lot of houses hire at the start of a cycle and then will fire the excess to keep their margins down, it can be a very hard life starting out and it might completely turn you off the games industry as a whole.

4) Pick up a book about design, your code might be amazing but if you don't know what a data access layer is your going to get in your own way!

5) Don't be restricted by language, if you've always used a hammer and nails its likely when given a screw your just going to hammer it in.

6) Learn some basic level openGL + vector maths, it will help out no end!

Hope I made some sense up there! :>

And before I forget, my proudest moments in (Game related)coding have been :- programming a working asteroids + UI code in openGL and C#.

S.

EDIT : Like Jordi said functional programming is amazing, have a look at F# as it combines a lot of different paradigms into one big pot of "wtf does -> mean... holy crap thats awesome! O_O"
 

martin's a madman

New member
Aug 20, 2008
2,319
0
0
I have to learn computer programming next year in university for my studies in Physical Sciences and I'm both nervous about it, and excited. Not sure what to expect really.
 

devotedsniper

New member
Dec 28, 2010
752
0
0
Like alot of people have suggested C++, i started university and the first language they introduce to you is Java then C & OO programming in Java and then C++, you only need to learn the basics in something like Java (IF/ELSE, WHILE and FOR loops, Stacks, queues, etc.), then we moved onto C where we got to grips with the language differences and restrictions, along with OO (Object Oriented) Programming which you then start to learn how to design GUI's (Graphical User Interfaces) with Java.

I suggest that route since it's a university approved approach to be honest, programmings good fun untill you go to build your programs and you get 10-100000's of errors which lead to more errors......the horror *runs off and sobs in a corner* ...usually all those errors pop up due to some syntax/spelling error which you can't find (even after looking over your code 20-30 times)...then your friend comes along and spots it straight away...
 

Creator002

New member
Aug 30, 2010
1,589
0
0
If you want to start making games, C# is good if you want to use XNA, but, as others have said, C/C++ is probably the best way to go.
I did C/C++ in university for one year. The course was specifically tailored for games programming, but I fell out of love with it. :(
Our projects were to create games every few months. We did (multiplayer) Pong and (single player) Space Invaders in the Console (DOS) window and also a multiplayer Tank game in OpenGL.

You could also be like Notch (Minecraft creator) and go with Java.
I'm not sure of the advantages on which language is the best, but C++ tends to be used the most in the gaming industry (and it includes pointers :D).