Beginning programming...

Started by
5 comments, last by SKATIN_HARD 18 years, 9 months ago
Ok, I'm sure you all have heard this before, "I'm new to programming and I wanna make games...blah, blah, blah,...yada, yada, yada.". Well, I'm in that group too, I'm just trying to figure out the best way to do it. I have looked on this an other websites (such as IDGA.org and Sloperama.com...) and I am STILL finding stuff that is very helpful in my quest to start making games. My concern is this: Do you need to have a strong mathmatical background in order to be proficient in programming? I have messed with HTML and yes I know it's the easiest code out there, but when the talk about having degrees to get into programming, I'm seeing math related subjets. My degree is in Organizational Management, but I want to be on the team to create the games not manage them. I did take some art classes in college, but I don't want to concentrate just on art either. It has been recommended by a few sites that you try to make a simple game of your own first to get a feel of the actual process of making a game. This of course would mean that I'd have to do both sides, programming and art. I think I'll be more proficient on the art side (as far as "traditional" art goes...) but I think it'd be cool to be able to add value in two areas, especially if I end up with a small group. The only other question I have is whether to go C++ or Visual Basic to learn programming. I've already read the pros and cons (even though it's like Greek to me now...), but if I get a book that show me how to program in C++ as complete beginner I'm might take a stab at that. I have someone who can show me a thing or two about PhotoShop and you guys are a beast when it comes to 3-D art apps! One thing I'm definitely trying to do is find some folks here who do this on the side so I can learn some things. I already tried to find a chapter with IGDA here in the DC area, but they are no longer active...sigh. Many thanks for those who take the time to read my post and I am still looking on different websites to get some answers of my own. Thanks. Daris L. Cotton PS Do any of you remember Sony's Yaroze system for the PSX? It was black and was only for those who planned to do hobby programming or use it to create a game to actually sell.(I remember seeing pics of this waaaayy cool shooter this guy did from Japan...) Are any of the console companies doing that today? Is this what running Linux on game consoles is all about? Just curious is all. Thanks again.
Advertisement
Check out the forum faq for this forum, linky just above the post title. There many of your questions are answered. You can also look around a bit in this forum, you're not the only one asking these kinds of questions [smile]
Hi.

You don't need an extremely strong math background to start programming, though it will help. Highschool math is sufficient enough if your just starting out. Everything else just comes along on the way.

I suggest you learn C++. It's the standard game programming language (not saying that games are never made with another language). If you do want to go in the C++ direction, cprogramming.com has a good set of tutorials; but hey, it's your choice. you may also want to look at the begginer section here.

Hope this helps

printf("C++ 4 Lifen");

I'm a GL guy.
Quote:
Do you need to have a strong mathmatical background in order to be proficient in programming?


Depends on the definition of 'strong' and it depends on the programming you're doing.

You can be a competant programmer without a strong math base at all. Making games though is much more than just programming.

That said, there are many common programming areas that do require a strong math base. Games tend toward requiring more, because graphics, physics and much of the other 'world modelling' require heavy mathematics. These do not make up the whole of a game of course, but you would be limiting yourself substantially.
Quote:Original post by Shoutout33
Do you need to have a strong mathmatical background in order to be proficient in programming?


I have a mathematical background, to I cannot bear witness for those who don't. However, one thing I can guarantee is needed is the ability to reason about and keep track of what your program is doing, being able to break down problems into elementary tasks and being able to precisely tell the computer how to accomplish these tasks. Is that a "mathematical background"? Well, you take the same kind of steps as are involved in building a mathematical proof (indeed, some sub-fields of software engineering are concerned with mathematically proving the correctness of your program...)

Quote:I have messed with HTML and yes I know it's the easiest code out there, but when the talk about having degrees to get into programming, I'm seeing math related subjets.


HTML isn't programming. All it can really teach you is to close the tags you've opened. That's already a start, since correctly disposing of resources you've allocated is a fundamental concept. [smile] But HTML is completely missing the concepts of control flow (if X is true do Y else do Z. Keep doing X until Y is true ...), variables, etc.

Quote:My degree is in Organizational Management, but I want to be on the team to create the games not manage them.


Somebody with actual management skills, at last! The Help Wanted forum is filled with people recruiting teams with them as "Manager" or "Idea guy" because they really have nothing to contribute.

Quote:I did take some art classes in college, but I don't want to concentrate just on art either.


Even if you don't end up being one of the project's artists, being able to estimate how long it would take to produce art assets is a big plus. Similarly, being able to figure out what is possible and what isn't code-wise is invaluable to a manager. Now, if you can get the artists and the programmers to agree, you have it made [smile]. You can't be an effective manager if you can't communicate with your team and understand what they are doing. That implies knowing at least something of everybody's respective fields, even though you don't have to be an expert in everything.

Quote:It has been recommended by a few sites that you try to make a simple game of your own first to get a feel of the actual process of making a game. This of course would mean that I'd have to do both sides, programming and art.


This is sound advice. You might even enjoy it. And you can never know too much.

Quote:The only other question I have is whether to go C++ or Visual Basic to learn programming.


I'd go with neither. For a Beginner, my personal opinion is that Python is more suitable. The interactive interpreter is a wonderful way to experiment.

Quote:One thing I'm definitely trying to do is find some folks here who do this on the side so I can learn some things. I already tried to find a chapter with IGDA here in the DC area, but they are no longer active...sigh.


Check the GD Gatherings at the top of the page. No guarantee you'll find someone in your vicinity, but you can always start looking there.

Quote: Are any of the console companies doing that today? Is this what running Linux on game consoles is all about? Just curious is all. Thanks again.


Sony plans to ship the PS3 hard-drive with Linux preloaded. People in the console development forum can probalbly tell you more. As for running Linux on other consoles, it generally takes a hack.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
I pretty much agree with what Fruny said.

First, C++ isn't a very good beginners language.
The thing is that the specifics of C++, or any other language, is simple to learn, and takes a matter of hours.

The hard part is the ability to break down any problem into small manageable tasks, and reason about the problem you're working on and the solution you're implementing. That's what takes months and months to learn, but it's also something you only need to learn once. You can learn this from any language, which is why Fruny recommended Python. It allows you to learn this absolutely vital part of programming, without being distracted by the quirks of a more complex and far messier language like C++. In the end, it allows you to learn programming faster and easier.

And once you've done that, C++ is easy enough to pick up.

(However, it is perfectly possible to start with C++. No one are arguing with that. It just isn't the easiest solution.)

As for the mathematical background, you don't really need much to learn programming. As long as you know basic math (addition, subtraction, division, square roots and so on), you can program.
What's more important is the ability to structure your thoughts, and keep track of exactly which steps have to be performed in which order to solve a problem.

But the thing about programming is that it basically requires very little skill. You need to know the most fundamental math operations, you need to be able to keep a cool head and impose order or structure on your thoughts, and that's basically it.
But depending on what you're programming, you might require any other skill on top of it. Write a word processor with spell checker, and you're going to need excellent language skils and knowledge of every quirk of the grammar of your language.
If you're writing a 3d game, you need to know a lot about 3d math. Write software to plan the flight schedules for an airport, and you need to know a hell of a lot about that.
Write a program to educate children about some subject, and you need knowledge both of the subject in question, and of how to teach.

So yes, for some purposes, you're going to need excellent math skills. For others, you can get by with next to no knowledge of it.
For a game, you usually need to know some math, but you should be able to pick that up along the way. (You're not going to be making Doom 4 any time soon anyway)
Welcome aboard! Have some maths skills could never hurt when learning to program. You might want to look into java. There are many free IDE's that you could use and sun offers the compiler and runtime for free. Java is kinda close to c++ in it's features so you will be able to pick up stuff you will need for the future if you plan to learn c/c++ someday.

This topic is closed to new replies.

Advertisement