Welcome, Guest. Please login or register.
February 07, 2012, 03:14:43 AM

Login with username, password and session length
Search:     Advanced search
The forums have been upgraded to the latest version and have anti-bot registration - yay! - John
109671 Posts in 6136 Topics by 2510 Members
Latest Member: vivahazelbaker
* Home Help Search Calendar Login Register
+  ROME.RO GameTalk
|-+  Gaming
| |-+  Game Development/Asset Production (Moderators: Bad Sector, daemonwolf)
| | |-+  Best programming to learn first - for a newbie! :)
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] 2 3 ... 14 Go Down Print
Author Topic: Best programming to learn first - for a newbie! :)  (Read 18655 times)
Chubz
Romero's Disciple
*****
Offline Offline

Posts: 3047


WWW
« on: August 30, 2004, 02:41:08 PM »

I was just curious.......I just turned 15, and 15 years old is likely a good time to start learning how to program, so lets get the show on the road!

 :P

The only bad thing, though, is that I am really puzzled by all of the options available, and which one would be best for someone completely new to programming.

I know a little HTML, although it really isnt programming.  I dont think that would really matter in terms of programming, so here are the choices that I BELIEVE are good (please correct me if these arent suitable).

Java
C
C++

Which one of these should I learn first ?

I am wanting to program PC GAMES with one of these languages btw.   :wink:

Thanks for any help given!

-Chubz  :twisted:
Logged
Brick_Sledge
Crazy Post Monster
*****
Offline Offline

Posts: 2024


WWW
« Reply #1 on: August 30, 2004, 04:16:06 PM »

Start with some form of BASIC.

It's very easy, then you should move up to C++.
Logged
Chubz
Romero's Disciple
*****
Offline Offline

Posts: 3047


WWW
« Reply #2 on: August 30, 2004, 05:51:45 PM »

Ok, I have this book called "Game Programming for Teens".

Speaking of that, here is what it looks like: http://www.gamedev.net/columns/books/bookdetails.asp?productid=280

Is that a good book to start with?

I bought it a while back but I havent really got around to learning everything yet.

I already know the simple coding of:
PRINT "Hello World!"
WAITKEY
END

In order to make it say "Hello World" and I used to know much more, but sadly I forgot it.  :p

Anyways, thanks for your help.

I guess I should read this book, then step on up to C++?
Logged
Brick_Sledge
Crazy Post Monster
*****
Offline Offline

Posts: 2024


WWW
« Reply #3 on: August 30, 2004, 07:44:12 PM »

Sure, any kind of BASIC will help start you off.

Don't expect to make fun, quality games for a while though.  After an entire school year the best I made was a version of Candy Land, which basically involved pressing enter until it says you either win or lose.
Logged
AssKoala
Hardcore Forum Freak
*****
Offline Offline

Posts: 1720


Anti-Zealot @ EA Games

WWW
« Reply #4 on: August 30, 2004, 08:05:25 PM »

Start with Java.  Starting with Basic is well.....  lets just not go into that.

Anyhow, Java is easy to pick up and fairly straightforward.  Basic is not really a language, in and of itself, it would be like saying "I can program in Assembly", there's no single Assembly and there's no real single Basic.

Java is nice to pick up because as a newbie you can write a simple game and progress up to as much power as you want.

C and C++ are, of course, the languages used to program main stream games.  However, you can't learn English and write like Shakespeare, nor can you learn C and write like John Carmack.  First you learn C/C++ and all the annoyances associated with, then you gotta learn how to work with your given OS (Win32 API calls, GTK, QT, etc), then you need to learn yourself a 3D API (Direct3D or OpenGL), THEN maybe you can make yourself a real game in either of those languages.  That is, if you want to make a real game engine from scratch, not simply use some of the many assenine libraries floating around the net.

You're 15, so there's plenty of time for you to learn things.  Best thing is, avoid sites like gamedev.  Not that they are bad, only that they are frequented by some of the biggest morons on the internet.  The moderators are intelligent guys who post good information, but me and my friend get a good laugh at the posts there on a daily basis.

As for that "programming for teens" book, I normally avoid stuff like that.  I picked up my first programming book when I was about 15, it was a "Game Programming" book + tools, I learned a bit out of it, not much, it was fairly badly written.  Picking up "real" books that don't dumb things down will help prevent any misinformation.  Learn it right the first time, otherwise you won't get it til you learn it the hard way.
Logged

If you always think like an expert, you'll always be a beginner. | "A handful of knowledgeable people is more effective than an army of fools" -Writing Secure Code, 2nd Ed.
Chubz
Romero's Disciple
*****
Offline Offline

Posts: 3047


WWW
« Reply #5 on: August 30, 2004, 08:11:43 PM »

Ok, now im even MORE confused.

:P

I may pick me up a Java book of some kind this weekend and see what I can get out of it.

I have heard that learning BASIC first would mess me up in the long run by setting me up with some bad habits and stuff that would need to be fixed when transferring to C or C++ or anything alike , so is this true?

Oh, and try not to laugh - but the author of that Programming For Teens book, "Maneesh Sethi" learned C and C++ FIRST, then he decided to STICK WITH BLITZBASIC.

Now tell me that isnt one of the dumbest things you've heard!

That is like having a Dodge Viper and deciding to step down to a bicycle.

 :wink:
Logged
AssKoala
Hardcore Forum Freak
*****
Offline Offline

Posts: 1720


Anti-Zealot @ EA Games

WWW
« Reply #6 on: August 30, 2004, 09:08:37 PM »

Ok, first off, forget everything you know and pick up a basic Java programming book.  If you want to learn to be a good programmer, don't read things on how to write games, read on how to write SOMETHING then apply that to your needs.  It's one thing to simply take whats written and use it over and quite another to tune yourself to be inventive.  Once you know the basics and can call yourself an advanced programmer, then you can take on the game programming books, otherwise you'll get some bad info in many cases.  It goes both ways, but normally "specialized" for the current "seller" books are not all that great.

Basic is a bad thing to start with, terrible really, for a couple reasons.  First off, its NOTHING like C++ or Java, it is a purely procedural language.  Unlike assembly, Basic is fairly distanced from the hardware, with pseduo-assembly like programming.  The biggest problem is a lack of understanding on areas like dynamic memory and such.

Java is not the greatest language on earth, but it is easy to work with and will work the same on any computer system.  It also runs as fast as C thanks to the JIT compiler, though graphics is pure software and as such will run as fast as you might remember software mode in older games.  Java3D exists, but working with it is like pulling teeth.  The advantage to working with Java is the fact that you will, hopefully, get a good understanding of working with Objects that many programmers don't know how to work with correctly.  Understanding basic OOP will greatly help success with C++. Java was made to be extremely similar to C++ and C, and as such, the syntax is almost identical, although C++'s Object Programming is far more powerful if used correctly.

You're in High School (I'm guessing, Freshman or Sophomore), so check out if your school supports the Computer Science AP class.  If it does, you can basically take a College-level intro to programming course and learn quite a bit (if you have a good teacher).  They moved from C++ to Java for various reasons, some of which I agree with, some of which I disagree with.  However, I recommend Java as a starting language, so you can guess I agree with the move more than disagree :)
Logged

If you always think like an expert, you'll always be a beginner. | "A handful of knowledgeable people is more effective than an army of fools" -Writing Secure Code, 2nd Ed.
Cheapy
Romero's Good Friend
*****
Offline Offline

Posts: 4028

« Reply #7 on: August 30, 2004, 09:19:59 PM »

QuakeC.
Logged
Rizimar
Global Moderator
Romero's Best Friend
*****
Offline Offline

Posts: 5847


WWW
« Reply #8 on: August 30, 2004, 09:38:00 PM »

C. I made a game in C when I was 15. And where am I now? 16 :(
Logged

warlordQ
Hardcore Forum Freak
*****
Offline Offline

Posts: 1715


WWW
« Reply #9 on: August 30, 2004, 10:05:22 PM »

Do not start off with BASIC...

You want to makes games and get into the fun world of programming... yeah your gonna love it :)

You should start off with C/C++, mostly on the C++ side... theres no need to learn 5 languages.. you only need to learn 1 language, and that would be C/C++..

Learn the basic foundations of C++.. learn all the variables, pointers, arrays, files, etc.. because with a thorough understanding of these basic foundations your going to create fantatsic stuff...

after learning these foundations, your learning will just start from this point... becuase now you have to learn technology, and how to do stuff...

When i started learning C/C++ i was reading a magazine called graphics programming.. Dianna Gruber was one author that i learned a lot from... Now on the internet, i have found her re-printed articles found in the early 90s...
these articles are very good and is your starting point into game programming
http://www.creategames.com/diana.html
Logged

Chubz
Romero's Disciple
*****
Offline Offline

Posts: 3047


WWW
« Reply #10 on: August 30, 2004, 10:11:29 PM »

Ok, thanks a bunch guys!!!  :p

Now I am stuck in between two choices......... C++ or Java?

Hmm.............

I MAY go with C++ first, but is it too complicated for someone like me to learn?

Or is Java just as hard to learn?

Once again, thanks.  Now I am almost headed in the right direction.   :wink:
Logged
AssKoala
Hardcore Forum Freak
*****
Offline Offline

Posts: 1720


Anti-Zealot @ EA Games

WWW
« Reply #11 on: August 30, 2004, 10:48:45 PM »

I would greatly dissuade you from starting with C++.  There's a reason MIT, GeorgiaTech, Caltech, RICE, and countless other major Universities do NOT start with C++.  Yes, surprisingly there's a big reason.

If you want to start with C/C++, start with C and learn hardware level things first (not necessarily CMOS, but working with registers and writing in some form of assembly and working with a stack and a heap).  You need not look past compiler misconceptions and the size of datatypes for that one.  The problem with starting with C++ is the many intricicies it has (for example, which is faster += or simply adding?  Left bit shift or right shift?  Why?).  I can guarantee you won't learn any of that from a base C++ book, nearly all books (except the ones specifically aimed at those little things that are a good 100 pages long and cost $60) ignore these areas.  There's also the problem with memory management, locality, among other advanced topics.  If you have NO base programming before delving into C++, you may well end up like the countless programmers without a clue.

The reason I recommend Java is not for you to spend an entire year on Java, master Java, continue another year, become a Java Guru and make crappy Java games.  The idea is to get a good understanding of basic OOP principles as well as the procedural programming involved.  Working with C++ brings its own issues, you have to handle your memory directly, you have to make calls to the OS directly, not the VM, C++ compilers are all different without any real "standard" where some conform to some areas more than others, etc etc.  Java is far more direct, despite its own problems.  You go to java.sun.com, check out the Java API for your version (right now 1.4.2 is a good one) and have all the code and functions at your disposal.  Simply not the case with C++.

So really, its not C++ vs. Java, its "start from assembly and work up" or "start with Java and work down".

Starting with C++ is a bad idea, this is my opinion and I started with C++.  I'm quite versed and skilled with C++, however, the time it took me to learn various parts of CS theory with C++ was greater than if I had used Java.  I had to learn on my own and I would say that it is not the best way to do things.  Knowing what I know now, I also know the misconceptions associated with working in a language like C++ or C before either starting at the very bottom or at the very top of the abstraction levels.

With C and C++, the answer to every question is normally "it depends" (whats the size of an integer?  Whats the size of a structure?  A class?).  With Java, the answer can vary, but in 90% of the cases, its always the same.
Logged

If you always think like an expert, you'll always be a beginner. | "A handful of knowledgeable people is more effective than an army of fools" -Writing Secure Code, 2nd Ed.
TheProgrammer
Serious GameTalker
****
Offline Offline

Posts: 572


« Reply #12 on: August 31, 2004, 04:36:01 AM »

Personally, I would recommend learning C first. In my opinion, there is a significant advantage
starting with C/C++ over Java, it is that you will
get to understand the two most important principles of programming: Pointers and
Procedural programming. (OOP won't just simply replace it)

The the fact is, when C was developed back in 1970, its purpose was to ease the job of
porting the Unix from PDP-7 to PDP-11. Pointer is the
feature that make C as powerful as assembly language and as easy to
use as high-level language. Pointer gives the programmer the freedom to
access in hardware level. C also was the first programming language
powerful enough to develop an OS.

Not to mention that, as you said, you want to be a game programmer,
this is the concept you will need to master sooner or later. Java has
pointers, but it just hides from you. (they call it reference)



Note: if you decided to learn C first, this is a tip for you. Today many
C/C++ compilers compile your text file as C++ language. Make sure
that you name your text file as .c so that the compilers will treat it
as C language, not C++. There are some features are allowed in C++,
but not in C. For example, you must declare all the variables before using
them in C. If you don't make the compilers treat it as C, many of the
mistakes will pass the compilers, and you don't know it.
Logged
DI-MeisterM
Monsterator
Post Monkey
*****
Offline Offline

Posts: 1193


WWW
« Reply #13 on: August 31, 2004, 05:44:10 AM »

In the university we only use Java. Every project is based on it.
If it's good or bad is another topic... :)
Logged

AssKoala
Hardcore Forum Freak
*****
Offline Offline

Posts: 1720


Anti-Zealot @ EA Games

WWW
« Reply #14 on: August 31, 2004, 06:20:09 AM »

Quote from: TheProgrammer
Personally, I would recommend learning C first. In my opinion, there is a significant advantage
starting with C/C++ over Java, it is that you will
get to understand the two most important principles of programming: Pointers and
Procedural programming. (OOP won't just simply replace it)


You HAVE to use procedural programming in most of your code, that is all stored in an Object (Unlike Smalltalk, Java isn't a "true" OOP language, neither is C++).  In addition, EVERYTHING in Java is a pointer (although they go under the name references).  While you don't have to dereference them and you can't perform pointer arithmetic with them, there are major differences, however the idea is the same.  Every language has procedural programming, simply by its definition.
Logged

If you always think like an expert, you'll always be a beginner. | "A handful of knowledgeable people is more effective than an army of fools" -Writing Secure Code, 2nd Ed.
Pages: [1] 2 3 ... 14 Go Up Print 
« previous next »
 

Powered by MySQL Powered by PHP Powered by SMF 2.0 Beta 4 | SMF © 2006–2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!