Programming and Game Design

Recommended Videos

Edible Avatar

New member
Oct 26, 2011
267
0
0
Hey guys, I was wondering if anyone here knows any good websites or books that teaches beginning programming and codeing. My friend at college has asked me and all i could find was the advanced stuff and open source projects (I also introduced him to Extra Credits for further info).

Tl;dr: do you know of any free, easy to grasp, programming books or websites?
 

DazZ.

Elite Member
Jun 4, 2009
5,540
0
41
http://www.codecademy.com/
Give that website a go, it's really basic and lets you learn the fundamentals of how code works.

It's not how I learnt, but I've ran through it and it seems to be decent enough for a first thing. It's Javascript which isn't something I'd recommend making games in straight away, but it'll show you what basic code looks like and when you find another language you want to do you'll certainly pick it up easier. It doesn't get too in depth however but I doubt that's what you're looking for.

Totally free!
 

DoPo

"You're not cleared for that."
Jan 30, 2012
8,663
0
0
Matthew94 said:
What language are you looking to learn?
This, obviously. Unless your friend wants to write machine code by hand (i.e. really freakin' hard and time consuming) he would be coding in some language or another.

Java seems popular-ish. And the official Sun[footnote]RIP :([/footnote] Oracle [http://docs.oracle.com/javase/tutorial/] pages are a really good source to learn Java stuff. A friend of mine once recommended me Thinking in Java as a good book. Although I don't know how beginner friendly it is. Also, I'd suggest myself that he installs BlueJ [http://www.bluej.org/] to write Java in for the beginning. It's a teaching tool specifically for Java and Object Oriented (i.e. a really big thing) software. There are stuff like Java2D and Java3D to do with graphics and games but leave those off for a while. I hear they can be a pain in the ass.

C and C++ are also popular for coding in. I think C++ would be the more appropriate for games. There are [http://www.cplusplus.com/doc/tutorial/] free [http://www.cprogramming.com/tutorial.html] tutorials [http://www.learncpp.com/] online. Lots of them. Probably a bunch of books, as well. I still can't decide if C++ is harder or easier for beginners than Java. But at least one would be really useful...

...partly because of C# (pronounced "see sharp"). As the name suggests, it tries to be close to C/C++ but the syntax is really similar to Java. I've heard it described as "broken Java", and I might agree but I have never really coded any C# - I have seen other people's code though and helped them with it. I only used my Java knowledge to do that. Anyway, C# is used for Xbox games, as far as I'm aware. And XNA Game Studio hence uses C# (also, as far as I'm aware).

Python is always a good language to learn. Need not be right now, but it's really useful, if you ask me. I really liked Dive Into Python [http://www.diveintopython.net/] which is also free. But now when I googled it, I found Dive Into Python 3 [http://diveintopython3.ep.io/] which is supposed to be the new revision of the book. I literally juust stumbled upon that one, so I don't know much. If it really is the book, it will be even more useful than the other one.

EDIT: I'll just add this link about AI [http://www.ai-junkie.com/] here. It might be useful to somebody. I was digging through my bookmarks and I found it. A friend of mine who is into AI gave it to me and I value his judgement. But I don't know if it's suitable for beginners, I haven't taken a look at it myself.
 

BreakfastMan

Scandinavian Jawbreaker
Jul 22, 2010
4,366
0
0
DoPo said:
I still can't decide if C++ is harder or easier for beginners than Java.
Imma stop you right there and say "harder". Java does not let you do as much, which is good for learning the fundamentals.

Though, I would recommend starting with Python and working your way up. Python is really easy to use and good for getting the basics. Then, start working your way up to Java and C#, and eventually C++.

And if it is possible, I would highly recommend taking a programming class at a college. Not only because you can talk to a teacher who is far more experienced in this stuff than you, but also because you need to learn a lot of theory and algorithims to be a good programmer. Object Oriented programming, Binary Trees, Queues, Stacks, Linked-lists, Graphs, Quicksort, Mergesort, Djikstra's Shortest path... Lots of stuff to know.
 

isometry

New member
Mar 17, 2010
708
0
0
I recommend flash, you can get an old version of Flash 8 for about $100 (the old version is just as good for beginners / non-pros).

Flash is good because it has the important features of an art program, but also with a built in programming language (similar to javascript, which is a C-like language). This makes it easy to draw sprites and start moving them around with code. Also there have been tons of books and tutorials made to learn games programming in Flash, I'd said to just go with whatever is cheap and available - for beginning stuff pretty much all books are the same.
 

Esotera

New member
May 5, 2011
3,396
0
0
brilliant book [http://www.pygame.org/docs/] that slowly introduces you to the basics & ends with you writing a small game.

As your friend is a beginner, I'd absolutely recommend they pick Python, as it's very much focused on simplicity & power. If speed is an issue then picking up Java or C++ eventually might be worth it, but for a beginner I'd strongly recommend the Python route. The official documentation is here [http://docs.python.org/].
 

DoPo

"You're not cleared for that."
Jan 30, 2012
8,663
0
0
BreakfastMan said:
DoPo said:
I still can't decide if C++ is harder or easier for beginners than Java.
Imma stop you right there and say "harder". Java does not let you do as much, which is good for learning the fundamentals.
Actually, that is what I think - Java seems easier and I started off with it. However, Java is really restricting to what you are allowed to do, and I've seen that intimidates people. I've also seen it intimidate people who know C++ from before ("Why do I have to fix things at compile time?!"). Also, Java is more OO than C++, or at least in C++ you can easily break away from the paradigm and do something you understand how works. That's the reasons why I would assume people would have somewhat less trouble with C++. But it is really easy to slip and end in the deep end - pointers could potentially melt the brain of a novice, not to mention other low-level stuff C++ is happy to hand to you. Java at least is really strict in this regard.
 

Scars Unseen

^ ^ v v < > < > B A
May 7, 2009
3,028
0
0
While it isn't the first language people think of(although a version was used for Jak and Daxter), the book Land of Lisp [http://landoflisp.com/] teaches Common Lisp through the writing of a series of games. It also has comic strips.

EDIT: Speaking of comics...





 

TechNoFear

New member
Mar 22, 2009
446
0
0
Edible Avatar said:
Hey guys, I was wondering if anyone here knows any good websites or books that teaches beginning programming and codeing. My friend at college has asked me and all i could find was the advanced stuff and open source projects (I also introduced him to Extra Credits for further info).

Tl;dr: do you know of any free, easy to grasp, programming books or websites?
I suggest XNA from Microsoft using MS Visual Studio Express (all are free).

http://www.microsoft.com/download/en/details.aspx?id=20914

C# is a very common commercial language and has masses of code, examples and tutes on the net.

MS Visual Studio is the most commonly used IDE / compiler used in commercial coding (so getting used to how it works is a valuable skill).

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express

These free tools can be used to develop for XBox and Windows (both PC and phones).

They allow rich client GUIs, rather than console based GUIs you will get from C/C++ (unless you brave the complicated world of event driven coding using the WIN32 API).

This site has step by step guides and examples to begining game programing (also sprites / images if you are not an artist).

http://www.xnadevelopment.com/tutorials.shtml

Avoid C/C++ as these are only used for embeded or real time applications (like low latency trading algotithms). Which is a pity as C++ has been my tool of choice for the last decade and C for the decade before that.
 

TechNoFear

New member
Mar 22, 2009
446
0
0
DoPo said:
That's the reasons why I would assume people would have somewhat less trouble with C++.
C++ is an order of magnitude harder than JAVA.

JAVA holds your hand and cleans up after you, while C++ gleefully helps you crash the entire network and trashs your hard-drive for giggles.

It is why you can make up to US250k coding low latency trading algorithyms in C++ (which JAVA is too slow for).