So I would like to get started programming

Associate
Joined
5 May 2011
Posts
705
Well, I start college in september, studying programming (Software, Games and web development) I know I'll be touching upon C++ in the course along with a few other languages, but C++ is the one I'm interested in. Mainly because I read that it's commonly used in games development and it's my goal to become a lead programmer at a (certain;) ) game studio.

I'm completely new to programming and understand that maths is extensively involved.
Was wondering if anyone could give me some details about programming (preferably in C++) such as what are algorithms? Maybe a few details about debugging? (sp?) How long it would take to learn a language, also - is it like writing a book? where you 'learn the words' then put them together how you like to form the program? I'm guessing all the 'word's are related to commands if so.

Unfortunately I don't have access to my PC atm (writing from my ps3 browser), when I get it charged again I'll likely format the HDD (and install linux cause it's free :) ) but not sure when that will happen (Sure, laugh at the kid who wants to learn programming without a PC if you really want)

Also at the moment I'm only 'okay' at maths (C-grade at GCSE) but this is clearly crucial so I'm determined to improve this and would like to know a good way to do so and topics I should learn (the basics etc)

I know a few of you would suggest learning an easier language like maybe Python first - thanks, but no thanks ;) I've decided on C++ as complicated as it is - It's what I'll need for my dream job. :D
 
I usually code in C++ so I can give you some pointers.

First of all you can freely download Microsoft Visual Studio Professional for FREE, because you are a student. This is a user interface essentially for creating computer applications, console applications, web applications etc.
It's where I highly recommend you get started, it includes C++ C# C F# and Visual Basic programming languages.
C++ runs on what's known as the Microsoft .NET framework. This is a large, lets say database of commands and functions which allow you to integrate code in different ways, for instance C++ code takes C code and C# code from the .NET framework.

Learning a programming language is very difficult if you don't put the work in, I highly recommend getting a book on C++ to help you understand all of the terms, functions and what-not.

Also, if you go to the link I have you at the top, you can download Microsofts XNA studio which is used for XBOX 360 and Windows game development, and it's all free to you.
If you need any help on how to verify and get them for free, give me a shout.

Attempt a lot of online tutorials on stuff like making a web browser etc and you'll know the basics of C++ in no time. The more you program the more it becomes second nature to you.
 
Would the Microsoft VS studio be compatible with Linux? I would like to format my HDD but I'd lose my OS in the process and I'm not keen on purchasing a new OS.
 
Don't get hung up on what language to learn. It's much more important to learn the fundamendals of programming which are then applied to pretty much all modern languages. Once you have a good amount of experience* in one language, moving to another isn't that difficult.

I will be very surprised if you jump straight into C++ on your course. More likely somthing like Java to learn the fundamentals.

* How much a good amount of experience is is debatable, but you're talking several years at the least.
 
Would the Microsoft VS studio be compatible with Linux? I would like to format my HDD but I'd lose my OS in the process and I'm not keen on purchasing a new OS.

Keep in mind that the PCs you will be using at college will probably be Windows-based. It might be worth sticking with Windows if you want to get any work done at home with minimum fuss.
 
Unfortunately Visual Studio and the .NET framework are native to Windows.
You can download QT creator however for Linux based systems. It allows C++ and Java code and debugging.

Most game programming is also based around the DirectX framework and capabilities, again, native to Microsoft Windows.
 
In that case is there an option to restore my system to factory settings? with purely the OS? Otherwise I'll be learning it alone from the books / web until I get my lappy (around september/december)
 
I won't comment on the c++ as there are people here with a lot more experience than me.

However, its not just maths you need, its physics too if you are interested in games programming. You also say you are aiming at a lead programmer position at some games company that I guess you think we should know, but personally I have no idea, but do you actually know anything about the job itself?

Perhaps not as you seem very eager. I don't want to pee on your fire, but you should know that its a thankless job where competition for the positions is huge due to the large amount of games development courses at universities. You are going to be working stupid hours, a few programmers I know are pushing 90 hours a week some weeks, and the pay doesn't really compensate for the hours. It can be a real **** job. You need to be fully aware of this before you enter the industry.

As for jumping straight in to C++, don't knock it when others suggest that you look at other languages first. There are principles to programming that you need to understand no matter the language, and sometimes its easier on other languages. Don't be closed minded, be open to all suggestions. :)
 
From experience I'd say learn a bit of C# first and the fundamentals of programming from that, then go into C++ and learn all the crazy stuff that can do on top of what C# can do.

But, I if you wish to learn C++ from the start then do, there's nothing wrong doing that. It just may be a bit harder :P. Maybe not in the basics of programming but more so its advanced topics and the fact if something goes wrong it is slightly vague, which new programmers may find confusing.

You asked about debugging... it's something that can be taught in "You do this and this." But considering a multitude of things can go wrong it's something you learn through experience. Debugging is an "experience" skill.
As to what you may do though, it could be you displaying information of variables on the screen whilst the program is running, it could be you stopping the programming whilst it is running and going line by line seeing every change the code is doing. It is essentially investigation skills through your code.

As to learning a language, it depends how much time you dedicate. You can learn a language in several months if you really put the effort in and be able to develop several amounts of software. But games, that will take longer. Because once you learn the basics of the language and several advanced techniques, you'll need to go and learn about graphics programming, have a foundation of maths skills and be ready to seriously do some research on new techniques. In games programming, while it may work, you will need to look at it and go, "How can I make that better." (After the game / feature is done. Not before or during otherwise it'll never finish). It's an area where you need to constantly look at how you can improve your skills. Essentially though as a games programmer, it's something you're going to be constantly trying to improve and be better, as some others mentioned, there's a lot of competition and you need to be very good. Put the time in and you'll see the benefits.

Erm, another bit of advice I guess I can give is don't dive into the deep end. You'll only end up dissapointing yourself when it doesn't work. You really need to build up the skill and yes, take on challenges, but challenges that you can do.... eventually. It still needs to be tough otherwise you will not learn anything, you'll just end up repeating what you already know.
 

I started out with C++ myself, and I found it to be an excellent language to start with. The basics are very easy, and then there's a huge amount of depth to the language that you can explore. It covers the entire range of the programming spectrum, so is a great place to learn principles which you can apply when dealing with other languages (when you know C++ you basically know C and Java/C# is a piece of cake).

If you have a goal of programming games in mind, remember that you will most likely spend most of your time when learning C++ building text-based console applications. Expect this to last for a few months.
Once you've mastered the language itself, then you can move on to operating system specific programming and libraries (windows/linux) and graphics APIs (directx/opengl). These are themselves vast topics which should not be underestimated. Also you will need a basic knowledge of Linear Algebra for graphics programming. I'm not saying this to discourage you, but you should know that to go from 0 to programming modern 3D games will take a lot of time and effort from you, although I'm sure the fine folk on this forum would be happy to help when you hit problems.

If it's what you want, go for it and best of luck to you! :)
 
Last edited:
Well I have (roughly) 11 weeks left for my summer to start college (Doing a level 3 National Diploma in software games and web development. I chose this because another person I know started this way also - few years on and he now owns a small games company) - during these 11 weeks I'll probably be trying to get a head start on programming (the fundamentals, maths aspects etc. :)
My art skills are not really that up to scratch, my design skills are average at hence why I would prefer to stay technical.

Thanks for all your advice so far :)
 
If I were you in your position I would just pick up a book on C++ and go through that to get a head start that way. If it's C++ you want to learn, just use that. Most languages a vaguely similar in terms of the core fundamentals baring syntax. You don't have to get a game specific book, but there are lots of good ones out there. Just look at the reviews on Amazon.

To begin with on the maths side of things, as long as you can think logically (very important as a programmer), you will be fine and you can pick up any mathematical concepts along the way as they come up.

If you've never used Linux before, don't get cut up on using it. That's another topic entirely. Just stick to Windows.

Another thing I would do on the side of going through the book is to practice what you've learnt. Just start a project and every time you come across something you're not sure how to do, simply Google for the answer or have a look in your book. If you are stuck for ideas for projects, try building a game of Tetris. It doesn't matter if you're first attempt is rubbish, as long as you are practicing what you have learnt and you learn from your mistakes!
 
Back
Top Bottom