View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Complete beginner

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

15 replies to this topic

### #1Oxymoron28  Members

Posted 18 July 2012 - 08:03 AM

I'm a complete beginner at programming, I tried to teach myself C++ a while ago and it all went downhill. I struggled a lot with it and was really put off, but I've always regretted giving up.

I made a topic a while ago about dyscalculus and programming and many people here posted about how they'd dealt with it so I've decided I'm going to work on it as well, but I don't know a good place to start.

What languages would you suggest for a total beginner? And what books?

Because I'm interested in Game Development is it advised I focus on that area more so? Or just programming in general?

Thanks for your time and help!

### #2TMKCodes  Members

Posted 18 July 2012 - 08:20 AM

POPULAR

Just learn the damn C++ language if you want to focus on game development. It is not actually that hard. Think of pointers as pointing with your finger at person who is pointing at another person who has 303 written on his forehead. Now have two dimensional pointer and you want to know what the variable on the third persons forehead is. You point at the one who points the variable and ask him could you get the number from his forehead. The one you point with your finger points at the one who has the 303 written on his forehead and asks him what is the number on your forehead he replies to the second pointer and the second pointer replies to you 303.

int ** you;
int * yourfriend;
int hisfriend = 303;

you = &yourfriend;

// Now your friend points at his friend
yourfriend = &hisfriend;

// Now lets see where your finger is
std::cout << &you << std::endl;

// Now lets see what we are pointing.
std::cout << *you << std::endl;

// Now we want to know what number he has written on his forehead so we want to know what your friend is pointing.
std::cout << **you << std::endl;

### #3DavitosanX  Members

Posted 18 July 2012 - 08:27 AM

I would suggest trying different languages out, but I suppose that sounds a little daunting to a complete beginner. In my experience (which isn't much), Python is a fairly aproachable language, and is currently used by lots of developers. I'd say it's a good place to start.

Check this out: http://docs.python.org/tutorial/

Starting out in game programming? Me too! Check out my blog, written by a newbie, for the newbies. http://myowngamejourney.blogspot.mx/

Also, if you don't mind a 5 seconds ad, here's a great free ebook for beginners on the subject of pygame: http://bit.ly/19Bem2q

### #4Acotoz  Members

Posted 18 July 2012 - 08:48 AM

Start with pseudo language, I don't know if there are books focused on that.

But I am a great advocate to learn C++ as a first language if possible, my first language was Pascal, then I moved to C++.

### #5freakchild  Members

Posted 18 July 2012 - 08:58 AM

I'm a complete beginner at programming, I tried to teach myself C++ a while ago and it all went downhill. I struggled a lot with it and was really put off, but I've always regretted giving up.

Persist and keep trying, if not with C++ then something else. At some point things will click and probably sooner than that you'll realize that you did learn something from your prior experience, even if you think a little negatively of it now.

Bear in mind that a little of people have difficulties learning some aspects of C++, including and commonly things like pointers. Don't worry too much about this, just keep trying with such concepts and eventually it will fall into place. We all went through this and if it held us back which is comment, it was eventually proven to be a temporary setback, as will your challenges.

I made a topic a while ago about dyscalculus and programming and many people here posted about how they'd dealt with it so I've decided I'm going to work on it as well, but I don't know a good place to start.

I don't have much knowledge of that in particular but bear in mind plenty of programmers have one issue or another that holds them back. I've always had a problem remembering formula for example and while it is not as serious as dyscalculus I do have to more or less constantly look things up.

Also bear in mind that programming and math have a strong link, but not all programming involves doing math. Doing non-math programming will help eventually bust through the barrier of other challenges.

What languages would you suggest for a total beginner? And what books?

Don't know about current books and for the most part I'd say 'use the internet for the same' anyway, but as far as languages go a lot of people recommend C# over C++ as a first language.

Personally I would try several different languages and in addition to C#, try Java and Python in order to get a feel for which one you like best and are going to be most comfortable with. While all languages are different, there are many traits that are shared and learning one will help you learn another. Finding what is easiest for you will either way help you learn the language you eventually desire (even C++) and you won't be wasting time looking at any of them because what you do learn in one language, even if it does not transfer directly (and it often does) will broaden your knowledge and experience FTW.

Because I'm interested in Game Development is it advised I focus on that area more so? Or just programming in general?

You don't need to focus on games to learn programming. There are many examples of small games however that do make good exercises. For whatever aspect of a language you are currently learning, follow whatever source material you use (books/web) and learn with their examples first. Then I would search the web for other examples of the same language aspects, which should introduce you to other programs which use the same. This'll tell you a lot about how the various concepts are applied, which should give you good ideas for how you might want to pursue exploring them further, via a game or whatever.

That's actually a masked suggestion to look at other peoples code as often as possible. You'll learn a lot from others, both good and bad ways and experience will eventually guide you down the good path...but don't be scared to learn the bad either. You need to crash and burn in order to take the best path later on.

Don't try anything too big until you have learnt enough. How to judge that? Well, you'll gradually sense this more than anything and it won't hurt to start things and then try something smaller. Testing your boundaries like that is par for the course. You may not realize this, but you've already been doing this by the sounds of it.

Time and patience is more the issue than anything else. If you have those, try out various languages as I've mentioned and take your time to do whatever you feel comfortable with.

Also...just ask, as you have done here. There are plenty of people that will help with whatever you are stuck on so in many ways there is no need to even go near the highest levels of frustration.

Edited by freakchild, 18 July 2012 - 09:06 AM.

### #6BitMaster  Members

Posted 18 July 2012 - 09:02 AM

Personally, I would strongly advise against learning C++ as a first language. There is currently a longer thread happening about that topic anyway: http://www.gamedev.n...first-language/
I did not keep close track of it but several people whose opinion I respect agreed with that assessment when I quickly skimmed over it. I do not want to pollute this thread with what would better be placed in the other thread but let me make one quick point:
As a beginner in programming, you need (and want) to be able to try something and see if it works. With C++, a lot of things can be horribly wrong (and will cause huge problems later on) but appear to work perfectly fine.
No language is perfect with that, but Java let's get you away with very little bad stuff. I don't have much experience with either Python or C# but both should be reasonable choices as well. At least much more reasonable than C++.

Edited by BitMaster, 18 July 2012 - 09:03 AM.

### #7Neometron  Members

Posted 18 July 2012 - 09:05 AM

Try this book 'Code' by Charles Petzoid. I have this bood and it helped me understand how computers really work. The book starts with some history and then progress into how to build a computer from scratch using relays and logic gates. Afterwards, it shows how asm translate to binary. This is not c++ but it will help you get a better understanding about computers and programming in general.

### #8Krik  Members

Posted 18 July 2012 - 09:06 AM

What languages would you suggest for a total beginner?

Try learning Python or Java, even C# is easier. I beleive Python has a very active game development community. If I am understanding what I have read about games, C++ is what you need for top notch games, but to build simple ones, where you can hone basic programming skills without the hassels of the C++ language there are several to choose from. If I had to recommend one I would say give Python a look their website has some very well done documentation. In fact to date I only know of one other language that does a slightly better job on documentation, PHP. Most languages are refered to as c-based languages so if you get one down you have a big step up in learning C++.

Because I'm interested in Game Development is it advised I focus on that area more so? Or just programming in general?

I would think you could make a game right out of the shoot. How much code does it take, for example, to make a text based dice game? You could probably do it in a hundred lines of code or less. Start simple and work you way up. The trick is to get your mind set on the fact you will not be starting your million dollar game idea for at least 2 or 3 years (not to discourage you).

By "dyscalculus" I assume you mean "dyscalculia". I guess if I was about 10 years younger I would have had it too. But as I was born too soon I never got dyagnosed, thankfully. To do complex math you need to forget the methods you were taught in school. Most don't realize it but just about every day you are doing algebra. If you go do anything were you plan to spend a predefined limited amount of money the process by which you decide how to spend that set amount is algebra. And I guarantee you didn't write out the equation and you likely did the math in your head. The basis for all math is 2+2 (addition) or 2-2 (subtraction), anything more complex than that is had it origin there. Sometimes geometric calculations require a formula but those should be as simple a basic addition (multiplication) and subtraction (division). If its more complex than that someone is just showing off and go find a simpler formula elsewhere. Knowing you have dyscalculia is likely a bigger disadvantage than the actually having dyscalculia, as it causes one to give up long before they would have otherwise.

Edited by Krik, 18 July 2012 - 09:14 AM.

### #9birko19  Members

Posted 18 July 2012 - 09:18 AM

I'm a complete beginner at programming, I tried to teach myself C++ a while ago and it all went downhill. I struggled a lot with it and was really put off, but I've always regretted giving up.

I made a topic a while ago about dyscalculus and programming and many people here posted about how they'd dealt with it so I've decided I'm going to work on it as well, but I don't know a good place to start.

What languages would you suggest for a total beginner? And what books?

I will share my two cents on the subject. I think learning the syntax and actual programming methods is not the problem. Usually people find it easier when they take baby steps, this is usually best when you're working with something straight forward that let's you do things in order. Languages like C++, C#, or Java are object oriented programming languages, while it's possible to implement none object oriented designs with them, most tend to focus on that and assume that you will be using them for an object oriented purpose.

My advice is to choose something straight forward yet challenging at the same time. The first time I learned how to program is when I was doing windows forms with VB 6, and while it was great and easy, is was way too easy and did not teach me a lot of fundementals. Eventually I did learn C programming by doing tutorials and writing command line programs, only then I learned how to program very well. I found C to be a great language for a begginer because it was top to bottom and once the concepts of programming were learned, I was able to apply them to other languages later on such as C++, C#, Java, JavaScript, PHP, etc, though I eventually had to takle the different styles of programming, but that should be done when you can program a bit.

Because I'm interested in Game Development is it advised I focus on that area more so? Or just programming in general?

Thanks for your time and help!

Don't worry about game programming until you at least learn how to program. Dedicate yourself a good month to two to learn programming (Depending on how fast you pick things up). Game programming will eventually be waiting for you when you're done with general programming.

### #10Dwarf King  Members

Posted 18 July 2012 - 09:19 AM

You should buy these two books or borrow them from you local lib:

http://www.amazon.com/Beginning-C-Through-Game-Programming/dp/1435457420/ref=sr_1_1?ie=UTF8&qid=1342624511&sr=8-1&keywords=beginning+c%2B%2B+game+programming

http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/ref=sr_1_2?s=books&ie=UTF8&qid=1342624588&sr=1-2&keywords=python+programming+an+introduction+to+computer+science

The first one will teach you the basis of C++ and the second one will give you a good basic introduction to python, which is a little easier to learn than C++. Start with python and then after a while the C++ book will seem to be more easy to pick up. I have read the two books my self and I learned a lot form them. They are true gems for beginners

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

Albert Einstein

"It is a miracle that curiosity survives formal education"

Albert Einstein

### #11Oxymoron28  Members

Posted 18 July 2012 - 01:21 PM

Thanks for all the help and advice! I'm going to get a book on C++ I think, and try and work from there. This time though I'm going to approach it differently I think.

I'm going to order this book http://www.amazon.co.uk/gp/offer-listing/1435457420/ref=sr_1_1_olp?ie=UTF8&qid=1342638656&sr=8-1&condition=new and see how I get on with it. If all else fails, I'll have a look at different languages such as Python and C#.

### #12timothyjlaird  Members

Posted 18 July 2012 - 08:11 PM

I would at least take a look at c#.

It's a lot easier to put something with a GUI together FAST with it...and if you are using VS2010 intellisense works better with c# than c++, which makes the learning curve a bit smoother (although relying on it too much can bite you in the ass later).

The blessing and curse of c# is that it has automatic garbage collection...which is nice when you do not need or want absolute control over memory, but sucks when you want to micromanage and squeeze as much performance out of your program as possible.

I'm not trying to sell you on either language...I just recommend that you experiment and keep your mind open.

### #13FredOrJoeBloggs  Members

Posted 19 July 2012 - 04:03 AM

C++ is a great language, I've been using it for 20+ years. Don't try an learn it as a first language, it will destroy you.

C#, VB, etc are really cool languages, but the sheer volume of library functions is enough to put anyone off.
Python also has a lot of libraries and again this can cause issues when it come to learning. Also (since I guess you ultimate aim is to learn C++) it has a number of un-C++ like areas that might cause you issues when you try and move over.

JavaScript is probably quite a good place to start. It has no cost, Firefox and notepad will get you going and you can get quite complex with it. I think it will be quite easy to get to grips with thinking like a programmer, which is what you really need to learn, not the language, also its quit C like. (see www.w3schools.com)

Posted 19 July 2012 - 05:25 AM

Perhaps try give scripting a go. Jump into something like PHP and try apply Programming Concepts there, as you build your confidence you can jump around into C++,

I'm repeating myself alot - I suggest this book to everyone lol But read up on Professional C++ (Marc Gregoire, Nicholas A. Solter, Scott J. Kleper) 2nd Edition. It will teach you HOW to program, and how to program in C++. Alot of beautiful organized information that can help you go in the right direction.

As you say your completely new to programming, the issue isn't learning C++. First you need to know how to program. Pick a simple language, and learn how to program.

Game programming is difficult, its not just Programming moving Pictures - theres a whole unity of systems and tecniques in place, so while yes - even if you program boring applications like a word processor, or a messenger - these are all concepts you can use and apply to game programming to. (EG Multithreading, Networking, Program Flow & Control, Streams - File Loading/Saving)

Best wishes to you

Edited by dimitri.adamou, 19 July 2012 - 05:30 AM.

### #15Serapth  Members

Posted 19 July 2012 - 08:12 AM

C++ is a great language, I've been using it for 20+ years. Don't try an learn it as a first language, it will destroy you.

C#, VB, etc are really cool languages, but the sheer volume of library functions is enough to put anyone off.
Python also has a lot of libraries and again this can cause issues when it come to learning. Also (since I guess you ultimate aim is to learn C++) it has a number of un-C++ like areas that might cause you issues when you try and move over.

JavaScript is probably quite a good place to start. It has no cost, Firefox and notepad will get you going and you can get quite complex with it. I think it will be quite easy to get to grips with thinking like a programmer, which is what you really need to learn, not the language, also its quit C like. (see www.w3schools.com)

I have been working with JavaScript quite a bit lately, between some Appcelerator mobile work, using JavaScript server side with Node and even writing a HTML5 w/ cocos2D tutorial series. So I've put a lot of thought recently in JavaScript / HTML5 as a beginner platform.

First let me say, JavaScript is a much maligned language. It is much better than many people give it credit.

That said:

- most of the tutorials are really bad.
- much of the language is really bad.
- HTML/CSS is a right stupid platform.

These three combinations make it very hard to recommend to a beginner.

The biggest negatives to JavaScript are:
- it's FARRRRRRRR to easy to create globals.
- data hiding is crude at best

Actually those two are reason enough for me to recommend a new developer stay away, but there are more reasons. One, it's not a classical OO language, its a prototype based language, and there are very important differences. This isn't a "bad thing", but it is a confusing one for new developers, especially new developers that want to move on to 4g OO languages. There are some downright confusing aspects too... the rules around super and this are almost byzantine enough to make the C++ designers blush!

Then there is HTML5, which is a gigantic hackjob of a platform. You can make it work, and it can do some powerful stuff, but a new developer shouldn't be hacking out things just to make it work.

Dont get me wrong, I like HTML5 to a degree, and JavaScript is actually quite fun. I just wouldn't say that's true for a beginner.

.... still better than C++ though.

If you do go the JavaScript route, there are two books that should be on your must buy list. JavaScript:The Definitive Guide followed by ( seriously followed by, this isn't a beginner book, but it's the closest thing JavaScript has to Effective C++ ) JavaScript:The Good Parts. Warning though, the author in the second book comes across like a gigantic dick. You know it's a good book when I read it and thought "Wow, this guy is a massive arrogant prick"... but still finished it and recommend it to people! Oh, plus it's short and cheap. I reviewed both of them earlier, and these books are pretty much all you need to work with JavaScript should you decide to go that route.

Edited by Serapth, 19 July 2012 - 08:19 AM.

### #16DZee  Members

Posted 19 July 2012 - 08:57 PM

I recommend Head First : Java 2nd edition, it will hold your hand all the way to using Objects. The book is very interactive with lots of illustrations. Although you know, if you are someone like me that likes to procrastinate and do everything but something productive it can be difficult to learn by yourself.

I can say many times that I'd read a chapter and almost always close my eyes and fell into a deep sleep. Thankfully I went into CS at school to push me into learning more.

Edited by DZee, 19 July 2012 - 09:02 PM.

I "surf" the web, literally.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.