My plan for learning to program

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

User avatar
JaxDragon
Chaos Rift Junior
Chaos Rift Junior
Posts: 395
Joined: Mon Aug 04, 2008 2:03 pm
Current Project: Kanoba Engine
Favorite Gaming Platforms: PS3, PC
Programming Language of Choice: C++
Location: Northeast NC

My plan for learning to program

Post by JaxDragon »

This probrably won't interest the more experienced users, but I am really bored and this may interest some newer programmers.

First off, decide what kind of programs you want to make
There are 3 major ones that most people talk about
1)GUI Applications(level editors, text editors, etc.)
2)Game applications(should be self explanatory)
3)Hacking applications(applications made to mess with a program, or just make people mad)

If you chose GUI applications, heres how I think you should start
1)Learn a simple language like perl
2)Advance your language database to C/++
3)Google what framework you need to make the GUI's, as they all differ from operating system to operating system

If you chose game programming, heres how I think you should start
1)Learn C/++, the reason being, you will use this the most often, and it is good to start off in a good object-oriented rythum, otherwise you would have gotten the hang of a simple language, which will probrably mean a harder transition
2a)Learn a game oriented BASIC language, this will get you started into actual game programming.
2b)Learn Python and pygame
3)Learn a C++ game framework of your choice, each OS can have different frameworks

If you chose "hacking" programming, heres how I think you should start
1)Learn C++
2)Learn assembly
3)Learn about TCP/UDP sockets
4)Realise that it requires years of college in network safety, give up, and switch to game programming or GUI programming

Here are links to various tutorials that should help you get started:

SDL Tutorials:
http://www.lazyfoo.net

C++ Tutorials:
http://www.youtube.com/watch?v=Ad0wuvnMUSg, then continue with his series

And the best resource of all...
http://www.google.com

I hope this guide helps people!
Last edited by JaxDragon on Sun Oct 05, 2008 2:53 pm, edited 2 times in total.
User avatar
Arce
Jealous Self-Righteous Prick
Jealous Self-Righteous Prick
Posts: 2153
Joined: Mon Jul 10, 2006 9:29 pm

Re: My plan for learning to game program

Post by Arce »

Nice, finally somebody capable of learning themselves. ;P

So which path you going to take? (assuming you're actually new and not just posting this as a kind of tutorial for nubz, which is fine. xD)
<qpHalcy0n> decided to paint the office, now i'm high and my hands hurt
User avatar
JaxDragon
Chaos Rift Junior
Chaos Rift Junior
Posts: 395
Joined: Mon Aug 04, 2008 2:03 pm
Current Project: Kanoba Engine
Favorite Gaming Platforms: PS3, PC
Programming Language of Choice: C++
Location: Northeast NC

Re: My plan for learning to game program

Post by JaxDragon »

I myself have taken the path of the game developer. I have learned C++, and am working on BlitzBasic. I was foolish and tried to jump right in to graphical C++ API's and was given a ticket to an epic fail. Thats why I suggest you get the hang of something like blitz before moving on to SDL or something.
User avatar
dejai
Chaos Rift Junior
Chaos Rift Junior
Posts: 207
Joined: Fri Apr 11, 2008 8:44 pm

Re: My plan for learning to program

Post by dejai »

Why not learn a language such as python and ease into a program such as pygame which allows you to develop games with python. Also python would come in handy for many years to come long after you learned C++ as a scripting language among its many other important functions. Not to mention it would be cross compatible across operating systems and would give you more freedom of choice over what you develop should you mature as a programmer and seek a different sector of the programming industry or wish to broaden your horizons. Also Pygame uses SDL anyway so you would still be familiar with the environment and how it works when you switch over to C++. Which would be a great way to ease into development don't you think!

Links:

I took the liberty of grabbing some links for you:
http://www.python.org/ This comes with a lot of information on python and some tutorials on how to get started and download python.
http://www.pygame.org Find information about how to make games with python here.

Books / Ebooks:

At this point I would recommend buying yourself a nice book on python but take the following ebooks as a great way to get started and further your knowledge:
Dive into Python
http://diveintopython.org/toc/index.html This is a great book for someone that wants to get into programming fast, but be warned its a bit rough around the edges and may not be the best for a first time programmer you will want to look for a book stating Learn to PROGRAM with python and not Learn to program in python there is a key difference and if its your first language some would recommended a Sams 24 hours or 21 day book. Or an O'Reily the ones with the animals on front.

How to Think Like a Computer Scientist Learning with Python
http://openbookproject.net//thinkCSpy/ Is another great ebook source and it seems to be in depth maybe for beginners as long as you know your stuff about computers. Check it out this may also be for you.

Thinking in Python
http://www.mindview.net/Books/TIPython This is a great book also available in hard copy which is a good book to read once you have grasped the fundamentals of the language. Through Sams or O'Reily.


Now I am not criticizing your plan I am just providing an alternative that may work out better in the future for you. In the end do what you want but please respect that I went to the trouble of trying to help you out.


Examples of PYGames:
ImageImageImageImageImageImage
Note that a lot of hard work went into these projects.
User avatar
eatcomics
ES Beta Backer
ES Beta Backer
Posts: 2528
Joined: Sat Mar 08, 2008 7:52 pm
Location: Illinois

Re: My plan for learning to program

Post by eatcomics »

That is some good advice. I took the same aproch as you, try c++, fail with the graphics, switch to blitz, be happy...
Image
User avatar
JaxDragon
Chaos Rift Junior
Chaos Rift Junior
Posts: 395
Joined: Mon Aug 04, 2008 2:03 pm
Current Project: Kanoba Engine
Favorite Gaming Platforms: PS3, PC
Programming Language of Choice: C++
Location: Northeast NC

Re: My plan for learning to program

Post by JaxDragon »

Python is a good language, and easy to learn. Open source is the way to go. It's just that most python/pygame programs, don't have as much flexibity as C++ programs do. But I will edit my post and encourage to learn Pygame, as it is good to go from C++ to Blitz to Pygame. Python together with C++, with python as a scipting language, holds a lot of power.


BTW, You forgot the BEST pygame game of all, FRETS ON FIRE
User avatar
sparda
Chaos Rift Junior
Chaos Rift Junior
Posts: 291
Joined: Tue Sep 23, 2008 3:54 pm

Re: My plan for learning to program

Post by sparda »

Python and Pygame are an excellent starter combo! I'm familiar with it and I can tell you that
there are a few examples (that come with pygame) in which BlitzBasic code is ported. I can
remember a graphic swizzle that was ported to Python from Blitz and it was pretty awesome.
I definitely recommend it as a supplement to any Blitz coder, as its not difficult to learn at all.
User avatar
dejai
Chaos Rift Junior
Chaos Rift Junior
Posts: 207
Joined: Fri Apr 11, 2008 8:44 pm

Re: My plan for learning to program

Post by dejai »

I however cannot talk from experience I learned C++ straight out and I am going to tell you now its possible however the learning curve is much larger than other languages and its much harder to make games right with C++ as apposed to python or another language. For your first programming language I would not recommend blitz basic, though it may give you quick results it may promote sloppy programming (I am only saying this in terms of the basic language itself you can rebut if you know the language). Also learning to program is different from learning a language. All programming languages have things in common and its the theory behind this that you really have to grasp. Anyway whatever you choose make sure you understand what the code your writing means and how it produces its results.

P.S When you open a source file and see you know almost nothing about how the code inside or how it works you should be happy because it means there is a lot of room for you to improve. Unless of course its that old text box used in Gyrovorbis engine I suppose no one will ever know what the hell that did.
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: My plan for learning to program

Post by MarauderIIC »

dejai wrote:P.S When you open a source file and see you know almost nothing about how the code inside or how it works you should be happy because it means there is a lot of room for you to improve. Unless of course its that old text box used in Gyrovorbis engine I suppose no one will ever know what the hell that did.
The same thing twice. Sometimes three times. I should know, I fixed it =)
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: My plan for learning to program

Post by Falco Girgis »

I wrote that shit when I was 16! I was young, virgin, and naive!
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: My plan for learning to program

Post by MarauderIIC »

That's no excuse! :)
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: My plan for learning to program

Post by dandymcgee »

:oops: *Runs off to attempt to fix his messy source code* <- Why I work alone.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
JaxDragon
Chaos Rift Junior
Chaos Rift Junior
Posts: 395
Joined: Mon Aug 04, 2008 2:03 pm
Current Project: Kanoba Engine
Favorite Gaming Platforms: PS3, PC
Programming Language of Choice: C++
Location: Northeast NC

Re: My plan for learning to program

Post by JaxDragon »

Lol @
dandymcgee wrote::oops: *Runs off to attempt to fix his messy source code* <- Why I work alone.
User avatar
ismetteren
Chaos Rift Junior
Chaos Rift Junior
Posts: 276
Joined: Mon Jul 21, 2008 4:13 pm

Re: My plan for learning to program

Post by ismetteren »

Is c++ really the way to go for GUI applications? what about c#?? It is alot easier to actully make some GUI with that.
Image ImageImage Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: My plan for learning to program

Post by Falco Girgis »

Actually, to be completely honest, I'd say C++ is not the way to go for GUI applications. You would have such an easier time with a higher level language like C#, Java, VB, or scripting languages like Python, Perl, etc.

...But if you're planning to use the knowledge/experience that you gain from making a level editor and apply it to your actual game development, maybe you would be better off with C/++.
Post Reply