By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - PC Discussion - i want to learn how to code....

I think that with C you won't get "addicted" to a lot of "easy" stuff you get with Python, Java, C#. for example, even if you won't use pointers in long term, I believe it's something that every programmer should know about (even more if you don't want web programming)

after you feel comfortable with it, you can try the other languages. programming in Python SHOULD be even easier if you already know how to program "the hard way". 



the words above were backed by NUCLEAR WEAPONS!

Around the Network
salaminizer said:

I think that with C you won't get "addicted" to a lot of "easy" stuff you get with Python, Java, C#. for example, even if you won't use pointers in long term, I believe it's something that every programmer should know about (even more if you don't want web programming)

after you feel comfortable with it, you can try the other languages. programming in Python SHOULD be even easier if you already know how to program "the hard way". 

 

I somewhat agree with you here, but where do you stop?  Should they start out with assembly to get an incredibly in-depth appreciation of what goes on with registers, etc.(I know you would learn this in Computer Architecture classes but most of these classes rarely much involve coding)?  With the way languages are going now days I believe that a brief understanding of the low level functionality can be more than sufficient for most purposes.

I believe an understanding of patterns and paradigms are far more important from a business perspective.



if you just want to make little games to impress your friends and you don't care about pc hardware, learning directX or dealing with memory managemnet. C# with XNA should be your port of call, you'll get your game on. If you decide yes for here, ignore below.

if you want to one day be a professional game programmer. I'd recommend learning in order

- Pascal (this language forces you to code proper-procedural structured code. its also very strict with typecasting which will force you to think about data structures and datastructure types which is important in gaming)
- C (you'll get the ability to carry over what you learned from pascal in respect to structure with the added ability of shooting yourself in the foot if you aren't careful).
- C++ & C# (C# is stricter with OO models and useful for tool deving for your game)

for languages.. for api's I'd most likely start off with using allegro when you hit C then progress to directX once you are happy in allegro. when you move to C++, learn STL and have a look at the BOOST library.

Pointers are lovely, alot of programmers (esp unigrads) are very scared of them. I guess you should be, stuffing up your pointer arithmatic = painful debugging but if you treat your pointer code with the upmost respect you'll get rewarded with blistering speed.

Above all else, whatever you decide, code as many games as possible, even if they are stupidly simple. Tetris clone #123123 and Space Invaders clone #1231241232 is worth your time to code up, you'll learn alot from it. do _not_ attempt to build 3d graphics & games until you've mastered simple 2d games from tetris to your mario clone.



 

if you eventually want to get into real game developement, c++ is really the only way to go, i first learn visual basic in high school then taught myself c++ and im working on opengl right now

c++ is a little difficult to learn but its far worth it, read the tutorials on www.cplusplus.com and you should learn quite quickly



We talked about this privately, but just a reminder, check out Dark basic Professional, good stuff and gives a solid path for understanding functions as well as each branch of how engine development works, plus scripting. On scripting, LUA is widely used these days. get good at that and you might land a gig with a studio. Once you get some serious skill, get out to GDC in San Fran with a ton of resumes. Lots of people to make contacts with there.



Around the Network
JaggedSac said:
salaminizer said:

I think that with C you won't get "addicted" to a lot of "easy" stuff you get with Python, Java, C#. for example, even if you won't use pointers in long term, I believe it's something that every programmer should know about (even more if you don't want web programming)

after you feel comfortable with it, you can try the other languages. programming in Python SHOULD be even easier if you already know how to program "the hard way". 

 

I somewhat agree with you here, but where do you stop?  Should they start out with assembly to get an incredibly in-depth appreciation of what goes on with registers, etc.(I know you would learn this in Computer Architecture classes but most of these classes rarely much involve coding)?  With the way languages are going now days I believe that a brief understanding of the low level functionality can be more than sufficient for most purposes.

I believe an understanding of patterns and paradigms are far more important from a business perspective.

I think the concepts involved in programming with C are crucial for any programmer, mainly memory management and pointers. They're better learned first, than struggled with later after the bad habits have setted in.

For people programming in higher-level languages, the concepts involved in programming with Assembly are only crucial for the micro-optimizations minded programmer. That's my guideline for recommending C as a first language. Assembly can come later without harm.

 



My Mario Kart Wii friend code: 2707-1866-0957

JaggedSac said:
salaminizer said:

I think that with C you won't get "addicted" to a lot of "easy" stuff you get with Python, Java, C#. for example, even if you won't use pointers in long term, I believe it's something that every programmer should know about (even more if you don't want web programming)

after you feel comfortable with it, you can try the other languages. programming in Python SHOULD be even easier if you already know how to program "the hard way". 

 

I somewhat agree with you here, but where do you stop?  Should they start out with assembly to get an incredibly in-depth appreciation of what goes on with registers, etc.(I know you would learn this in Computer Architecture classes but most of these classes rarely much involve coding)?  With the way languages are going now days I believe that a brief understanding of the low level functionality can be more than sufficient for most purposes.

I believe an understanding of patterns and paradigms are far more important from a business perspective.

well, I dunno haha. I think that kinda following lessons should be good. for example, knowing how to implement linked lists and other structures should be quite useful when implementing interfaces. if you already have that "base", it should be far easier. and in the end I think that it doesn't matter what language you will program, Java, C++ and even Python can be quite overwhelming for beginners, IMO.

and what NJ5 said above.



the words above were backed by NUCLEAR WEAPONS!

NJ5 said:
JaggedSac said:
salaminizer said:

I think that with C you won't get "addicted" to a lot of "easy" stuff you get with Python, Java, C#. for example, even if you won't use pointers in long term, I believe it's something that every programmer should know about (even more if you don't want web programming)

after you feel comfortable with it, you can try the other languages. programming in Python SHOULD be even easier if you already know how to program "the hard way". 

 

I somewhat agree with you here, but where do you stop?  Should they start out with assembly to get an incredibly in-depth appreciation of what goes on with registers, etc.(I know you would learn this in Computer Architecture classes but most of these classes rarely much involve coding)?  With the way languages are going now days I believe that a brief understanding of the low level functionality can be more than sufficient for most purposes.

I believe an understanding of patterns and paradigms are far more important from a business perspective.

I think the concepts involved in programming with C are crucial for any programmer, mainly memory management and pointers. They're better learned first, than struggled with later after the bad habits have setted in.

For people programming in higher-level languages, the concepts involved in programming with Assembly are only crucial for the micro-optimizations minded programmer. That's my guideline for recommending C as a first language. Assembly can come later without harm.

 

The thing is, once you learn either C#, Java, or C++, you have pretty much learned the other two as well.  Of course there are syntactical differences but those are simple to overcome, especially with a good IDE.  Assembly is pretty much a niche area of programming as far as jobs go.  As far as optimizations go, you pretty much just use well known programming practices in your code and the compiler takes care of the rest(sometimes you need to understand certain language specific optimizations).

For instance in Java

int j = array.length;

int sum = 0;

for(int i = 0; i < j; i++){

   sum += array;

}

is slower than

for(int i = 0; i < array.length; i++){

  sum += array;

}

due to compiler optimizations.  The compiler knows the end of the array and doesn't make sure there is no index out of bounds after every iteration.  Of course it is good to know about handling pointers and pointers can be an excellent way of creating data structures such as trees, hashes, etc, but sometimes letting other people take care of the dirty work helps out productivity.

EDIT: it seems to have gotten rid of my brackets on the array indexing and caused the text to be italicized.



@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 



My Mario Kart Wii friend code: 2707-1866-0957

You want to start small, learn the coding techniques, then it doesn't really matter what language you program in. However, i suggest java or c++, but to be honest java is anal.

look into these important elements of programing

- if/esle statements
- switch statements
- while loops
- for loops
- input/output

play around with these, most programmes, say Dev C++ provides the hello world project, just build on that and play around with these techniques.

after that and you feel confident, move onto harder stuff like:

- header files and classes
- functions and parameters
- objects
- inheritence
- pointers

Then if you get that far, well there is plenty of advanced stuff to do after that.



Nintendo = Innovation = Wii