Archived

This topic is now archived and is closed to further replies.

Question about becoming a computer programer?!?

This topic is 6027 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have always been into anything computer related. And with all the new games that are coming out I find myself more and more amazed by computer programers. I would like to become a computer programer, and have been asking friends from online games and whatnot about getting the education I need. I have gotten so many varied responses that I am even more confused. People mention languages like C/C++, High Order Language(ADA), Low-Level Language(Assmebly), COBOL and the such. What I want to know, is to do games like Asheron''s Call, WW2 Online, Anarchy Online, and all the newer games coming out....what do you need to know. And if you could explain what all those languages mean or are I would appreciate it. I am still kinda young, only 12...but want to get my priorites in order so when I am older I will have a job that I truly love to do. I would just like to know, what I need to know in order to get a job in the future. And since a lot of the people I have talked to probably don''t know anything about it, well I would just like to get it straight from the horses mouth. SO IN SHORT....HEEEELLLPPP!!!

Share this post


Link to post
Share on other sites
First of all, take a look at the link Martee posted. Now, I get to tell you the steps that I tell everyone (): Learn C/C++ (that will take a LONG while to get down well), learn to program for a specific OS (most likely, Windows), learn a graphics API (OpenGL or DirectX). Each of these steps require lots of experimentation, you can''t just read a couple books and understand them . You''re not going to even be doing graphics for a couple monthes, if not even a year, writing your own Asheron''s Call is a long way off (sockets and network programming is hard, even if you know what you''re doing ).

Resist Windows XP''s Invasive Production Activation Technology!
http://druidgames.cjb.net/ (If my website isn''t down, it''s a miracle!)

Share this post


Link to post
Share on other sites
Thanks, I will try to learn a little more about it. I figure I got nothing but time to learn it all. I am not wanting to make a game right away, just want to be able to someday. One more quick question if I may....


Most of my questions were answered....but what is High-Order Language(ADA)? Is that just the fancy name for C++ and other such languages? Or is this a totally different type of language? Thanks again for all the info, it really helped a lot....guess I got my work cut out for me.

Share this post


Link to post
Share on other sites
I agree with Null and Void. Start with C/C++. Learn it well. One thing that needs to be stressed is to start small. Its very hard to make a simple game first and not something fancy that gets you in over your head. Thats how I am. As they say, "Anyone can program games, but real programmers can finish them."

Share this post


Link to post
Share on other sites
The "level" of a language relates more or less to how err.. "abstract" it is. On the low end, you have assembly language (well, machine code). In assembly, every instruction you write is one instruction the computer executes. It''s not very sophisticaed, most of the instructions generally deal with just arithmetic and moving data around. Its not very often that you need to write in assembly language anymore, unless you''re writing something like a boot loader. Desipite this, some people will still try to tell you that you need to use assembly for your super-high-performance routines. In my experience, that''s bunk, but others will disagree

Then you get higher level languages, where each statement of the language you are writing will "compile" down into possibly many machine instructions. This allows you to write complex programs much easier, the compiler does the work in figuring out all the little instructions that need to be strung together to get what you want done, you just tell it in a language that looks slightly more like english. C isn''t really that high level of a language, and neither is C++ (but c++ is higher). Most really high level languages take care of a lot of stuff for you, like memory allocation and management, and have lots of builtin types that you''d normally need to write yourself (like lists and trees and hashes).

One thing to remember though is that the compiler that turns your high level code into machine code (or bytecode, or what have you) is only using a set number of algorithms to generate your code, so sometimes it will not be the most efficient. In general, the lower level the language, the closer to the metal you are, and the less stuff is going on "behind the scenes" without you knowing. Takes a long time to write and debug, but it''s fast and lean. High level languages are fast to write and debug but all those layers of abstraction are adding to your code, resulting in slower and larger binaries. This is just a guideline, its not always true, but is a lot of the time.

Share this post


Link to post
Share on other sites
Thanks guys, I half expected to just get a bunch of flames for not knowing anything about this. Tons of useful info, do most programers just, well I guess specialize is the word, in one language. Or is it good to learn one then, try to learn another one. And also if you learn 1 language does that make it easier to learn others. I know they are not really related languages, but if you can learn how to do 1 type, does it make it easier to learn another? Say I started with the easiest language to learn, I learn it, will it make it any easier to learn others. Since I will have some basic programming knowledge. And about that ADA language is that harder than C++? Is that why it isn''t as popular, or is it an inferior language or something. Once again, thanks everyone....really helping me plan my future out.

Share this post


Link to post
Share on other sites
Depends what you''re doing. If you''re just programming games you might just learn one language and stick with it. If you''re planning on getting a degree in CS you''ll probably end up learning several, to say the least. As you learn em, they get easier and easier, because eventually you stop learning the languages, and start learning the mechanics behind the languages, then everything just falls into place. They say that about spoken languages too, which I suppose is true but I never bothered to become fluent in any. Currently I know about 10 various languages, but several of those I havent used in years and forget most of the specifics. However, most people who have been using them for a long time can pick up a new language in a matter of days, and be fairly proficient with them in a few weeks. The first few, however, take *much* longer

All in all, though, its all about the right tool (language) for the job. C++ is a good general purpose language, but when all you have is a hammer, everything looks like a nail, as they say.

Share this post


Link to post
Share on other sites
Well, as you keep mentioning ADA, I''ll tell you what I know about it. It''s a high-level language designed for programming real-time multithreaded systems. I believe the Department of Defense requires all programs they use for some systems to be written in ADA. It''s almost a dead language other than that. One of my professors actually knows a lot about it, as he''s done projects sponsored by the DOD before, and he says its one of the worst designed languages he''s ever used... And that would be why it''s not used anywhere it isn''t required to be used.

Share this post


Link to post
Share on other sites
quote:
Original post by c_wraith

Well, as you keep mentioning ADA, I''ll tell you what I know about it. It''s a high-level language designed for programming real-time multithreaded systems. I believe the Department of Defense requires all programs they use for some systems to be written in ADA. It''s almost a dead language other than that. One of my professors actually knows a lot about it, as he''s done projects sponsored by the DOD before, and he says its one of the worst designed languages he''s ever used... And that would be why it''s not used anywhere it isn''t required to be used.


The last time I worked for gov''t contracts was 95 or so, and I heard rumor that the DoD was looking at relaxing their ADA requirement since C (and C++) were becoming so widely used. I don''t know what came of that, though. I do know that ADA has its naysayers, but so does every language.

As for ''what language is used to program games'', a quick trip through www.gamasutra.com will show that it seems about 50-70% of games are made with C/C++ in part. There are some freaks, like Roller Coaster Tycoon, that were done in assembly. But professionally, you basically just stick to whatver platform and language your shop is using. And don''t be surprised when you have to learn a script or shell language here and there as well.

Share this post


Link to post
Share on other sites
I would say that learning languages is easy (well, most languages ), it''s learning to think like a programmer thats difficult.

So my advice would be to select a language that''s easy and learn to program using that (and really try to master that language). This will make you quite well equipped to learn other (more complex) languages.

Most languages are after all very similar.

The first language I really learned was Turbo Pascal, which is in my opinion a very good language for beginners, though it''s very seldom used in a professional setting. Then I migrated to C++ (which contrary to popular opinion, I found quite easy, possibly because I already knew how to program Turbo Pascal).


In the introductory computer-science courses at my local university the first language they teach is ML (a functional language), followed by Java (an imperative language).

My teachers there claim that functional languages are easier to learn for non-programmers. I don''t know if I agree on that, but then it could just be that I''m so stuck in the imperative way of thinking.

Oh, and BTW, if you want to program games, make sure you pay attention in your mathematics classes. It will pay off later

Share this post


Link to post
Share on other sites
As a professional computer consultant, here''s my advice:

1) Have a genre that drives you to learn, but don''t let that prevent you from doing other things. Always try to learn new things.
2) Learn things conceptually. If you understand how things really work at an abstract layer, you can extrapolate that information to other areas.
3) Focus on your favorite languages, but don''t descriminate against the others. The more languages you know, the better the chance you can work where and when you want.
4) Unless you make it big by accident, get a computer-related post-secondary education. When you are trying to break into the field, you need every edge you can get.
5) After working for a while (if you think you''re good), stop working for others and start working for yourself. Computer consulting is lucrative. Start up your own business (in the U.S. you guys have S-corps which are great).

Good luck.

Share this post


Link to post
Share on other sites
Man, starting a new Company in Austria is a pain.. (at least what I''ve heard...) you have to pay so many taxes that it, at first doesn''t even pay off...

I strongly recommend kinda starting on 2 basis:
1.) C and non Web oriented languages (C, C++, Pascal, and so on)
2.) java-script and other weborientated Languages. (java-script, Java, HTML of course, .php and so on)

this will give you a real nice Base to start off.. you never know what direction the mainstream will go... I guess it''s more on the web side, anyway, that''s another story..

ok,
I wish you lots of luck,
it for sure won''t be easy,
but one kinda famous guy said one thing:

"If you do what you love, and do it as well as you can, good things will eventually come of it. Not neccassarily quickly or easily, but if you stick with it, they will come."
- Mike Abrash

Always have that in mind and you''ll find your way :O)
//-> moralic->off(); :p

cya,
Phil



Visit Rarebyte!
and no!, there are NO kangaroos in Austria (I got this questions a few times over in the states

Share this post


Link to post
Share on other sites
At 12 I would have to recommend something like Visual Basic or Delphi (Pascal). Both Pascal and Basic were developed to teach programming. Basic is most likely the better starting point. Pascal enforces more structure, but starting out just learning to program period is an accomplishment. Also most scripting languages in applications is in Basic. Both Visual Basic and Delphi will allow you to accomplish a good deal with very little effort. That is extremely important starting out. You need to be able to impress yourself quickly to get the positive reinforcement needed to keep going. Ultimately yes you do need to learn C++, but ultimately you need to learn many languages because the chance of you coding in C++ when you are 60 is about zero. Languages come and go, but the process of learning one stays the same. You might as well start on an easy language since you have plenty of time.

Share this post


Link to post
Share on other sites
Please, please, please... if you''re gonna take up programming, either (a) try and take some classes somewhere, or (b) buy a good book on the subject.

The reason I say this, is that although you can pick up programming just by doing it, reading source code, experimenting and so on, there is so much you miss without a good knowledge of the theory. Without the theory, you may develop poor programming habits that are hard to get out of at a later stage. (And don''t think that other people''s code is perfect, even when they are in the industry! Far from it.) You need to learn about hashing, linked lists, binary/decimal/hexadecimal, trees, recursion, abstraction, algorithmic complexity, and so on. (Plus polymorphism, inheritance, overloading, STL etc if you use C++.)

Without understanding these basic concepts, your programming skills will be hampered. A lot of people, especially on these boards, seem to get stuck on the simple stuff, just because they never learned some of the more fundamental concepts of computer science. Expecting to learn C++ just from code is like expecting to learn French just from a phrase book. You need the context and background to truly learn it.

Share this post


Link to post
Share on other sites
I started out at 12, just like you, programming in QBASIC. BASIC is a good language to start with, as it was designed to teach programming. After fooling around with it for a while (mind you, I never really mastered QBASIC), I was encouraged to try C or C++. A (much older) friend loaned me his copy of "The C Programming Language", and I immersed myself in C theory. I didn''t understand all of it, but I learned a lot. A friend of my father''s, a professor of Mechanical Engineering and Mathematics, then told me to jump straight into C++. Conventional wisdom at the time (and to a large part even now) was that one had to learn C before C++. Not so.

About then I became something of a language packrat, briefly programming in assembly, PowerBuilder, VisualBasic (which I still use), FORTRAN and C, along with my day-to-day C++. I once learned Perl in 4 days for a job. In other words, once you''ve learned one language, you can quickly become proficient in another, though not a master.

I don''t advocate that you follow my footsteps, because I''ve pciked up dozens of good and bad idiosyncracies, largely as a direct result of fooling with too many languages at once. Take the excellent advice that has been proferred to you to learn a high level language and learn it well. Then begin to learn others, taking time to understand them thoroughly. Also, keep abreast of new language developments. I was out of the loop for a few years, and now may need some remedial C++ classes to take advantage of newer language features.

Above all, believe in yourself. Be patient ad be diligent, and you will succeed.

Share this post


Link to post
Share on other sites
I know a guy who is just starting to learn C now (he''s 14) and he is doing it coming from Visual Basic, and I''m telling you, Visual Basic is a bad starting point to go from. He always tries to do things like use the = operator for string copying, doesn''t understand why he can overrun arrays and use pointers without having to allocate memory to them. He also doesn''t understand why strings have to have a zero on the end of them. He didn''t know that = returns a value and will not give a warning if you use it with if().
I learned C first, and so I didn''t have any of these problems with it. I learned C when I was 10 (but it took me two years, if you start older it takes you less time to learn) so you should not have too much trouble with it.

Share this post


Link to post
Share on other sites
I started to learn C thanks to a tutorial on the internet at:

http://book.ygm.itu.edu.tr/Book/Corona/CTut/index.htm

I found it absolutely excellent -- the author assumes you''ve never used C before, and it gave me a strong basis on which to build from.

Helped me masses here at university where we use Java. Had I not learned the basics of C in my spare time while at school, I''d be having a tough time!

Share this post


Link to post
Share on other sites
I started learning C (my first language) when I was 10, I don''t see why other people can''t. It wasn''t that hard (and I had one 50 page book that someone lent me to learn with for a week, after that I learned from the BC++ 5.0 documentation). I highly suggest getting a book or downloading a tutorial though, don''t take the ''harder'' path (caused by lack of funding ) that I had to.

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I learned C and C++ when I was 12. It was my first language. I think furby100 made a good point about Visual Basic. If you start off with languages that are too easy or too different from what you will end up learning, you''ll carry over old habits, which isn''t good. Go to the library or book store and get a book about programming in C, and then when you''re done you can try to learn C++. Just make sure when you read the books, make sure you understand everything and if not be sure to re-read certain parts for as long as takes to understand it. Programming really isn''t that hard when you are used to it. Start out with simple console applications, then maybe buy a book on the Windows API, and then maybe a book on DirectX (I''d recommend any book by André LaMothe). Once you learn C and C++ (or even just C) you''ll be able to pick up new languages very easily if you want to. But C/C++ is what''s most commonly used. It has the right balance between speed/efficiency and ease of use. Just start small, and work up from there. It may be a while (probably a year or two) before you actually start writing simple games. Pay strong attention to math class and possibly buy some reference books about math or something.

Share this post


Link to post
Share on other sites
Wow! I thought I was the only nerd who is learning programming at an early age! I learned BASIC from an old computer with a cartridge drive and a 5 1/2 floopy disk. BASIC code is easy to pickup from reading it from other programs which I did at about age 7(sorry I still broke all your records). In 7th grade I became an avid programmer on the TI-83 calculator making useful programs to do functions that weren''t built in. This year I started my comnputer science class. I could have almost not even taken the course and gotten an A on the final. I learned two things during the course of the year. One I learned 2 weeks before it was actually covered(filstreams). The other was just not much a topic(stupid header files to simplify arrays, they were called apstring and apmatrix). I don''t like this years computer science class. It would have tought me in one school year what any idiot should be able to learn in 2 or 3 months of programming from a book. And using the books you understand whats REALLY going on and they cover more - my class has just finished doing basic classes(w/ no constructor/destructor) yet we haven''t covered overloading functions or pointers. I wonder thought, most people say you wont be programming games for a while...the second year course for computer science at my high school (Computer Science Accelerated) has the students working on a real world project where a lot of them edit games like Starcraft, Doom, or Quake 2. And by at the rate that my normal computer science course class went, a lot must be learned in Accelerated...

And if I insulted anyone by calling them a nerd, I''m sorry - but thats how the rest of the world veiws a typical programmer(of any sort).


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I''d start with C and after a week or two I''d also start learning java (not java-script) simultaneously. I think learning two languages at the same time will really be helpful. The reason is that the very first language you learn tends to lock you into a thinking pattern. If you learn C and java simultaneously you''ll have an advantage. Then when you''re ready switch over to C++.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
phuepp1,

Your comment about kangaroos reminded me of something I did years ago. It was probably around 5th or 6th grade. I had to do a term paper, and I chose Adolph Hitler as the topic. I was astonished to find out that he came from Australia. :-) That was a huge suprise to me. Well, later my older brother caught the mistake so I changed it before I turned it in (thank god!).


Share this post


Link to post
Share on other sites