My son wants to become a video-game programmer or designer. What advice do you have?
This is a very common question. Particularly with video games, kids really enjoy playing them, and are often drawn to the potential of creating them as well. There's even a series of TV commercials that play on exactly that scenario.
I've hired a lot of programmers in my career. I've also not hired even more. So I definitely have some thoughts and advice.
•
First, what'd I'd call the basics:
Some points that are very specific to video or computer game programming and design:
I really need to reiterate the fundamentals. Don't get hung up on what programming language or what platform ... programming is more about how you think than whether or not you can express your thoughts in C++ or Java, or on a Mac or a PC. "It's just another language" is something you'll hear from top tier programmers.
I've told people that HTML is a programming language, and I encourage its use, but be careful. Building websites is not the basis of a career in something as complex as video game design. If your passion turns out to be the web, then invest in some of the programming languages of the web: PHP, Perl, Flash, Javascript.
Take the programming classes you have access to. High school, Community College, Vo-Tech - whatever. Then go get yourself a Computer Science degree or a closely related Engineering degree. I have mixed feelings on whether you need a Masters degree.
My own pet peeve: PLEASE make sure you learn assembly language along the way. It won't make sense today, but it'll help you understand concepts and techniques that a lot of programmers today have trouble with. AND it'll help you write better code, and aid in debugging it as well.
There are so many skills that could help, I could go on. Math. Logic. English. Heck, verbal and written skills are areas that I wish I had spent more time and I would recommend strongly to anyone entering any profession.
Related:
Ask Leo! - Are certifications important?
Ask Leo! - So Just Why *Are* Manhole Covers Round?
Article C2473 - November 27, 2005
i undergo a computer training for a year in one of our colleges, and really i found programming to be interesting to learn.Can i learn it hear ?
Posted by: Tijjani at February 20, 2009 1:31 AMI read the information regarding the future world in the Software Development field. But I am more interested in the Game Development field poker site as well as in robotics. I consider myself as a fantasy person with a dream of inventing ideas and turninng them into reality. Would a career in game designs/development be suitable for me || web/Business Applications based upon my personality?
Posted by: poker site at March 25, 2009 6:11 AMI'm 13 years old, and my dream job has always either become a doctor, or a computer programmer. I'm fairly smart in class, and get better grades than most kids I know. I saw a form which included the requirements needed to become a computer programmer, and what they do. I see that they create computer games, and learn to code, and find problems within the computer. After looking closer, I found out that computer programming is for me. I was wondering what I could to inorder to improve my skills in coding, and animating things using codes. If you respond, I'd really appreciate the word you've given me, and use it for the future. The requirements were completing high school, and going to university for 4 years. Then getting the bachelor's degree, and completing Computer Science in school. If this is true or not, please respond. Thank you for your time. Regards~Michael
Posted by: OMG at June 24, 2009 6:18 PMI have just completed my IGCSE and I have always been a straight A student. I am quite confident with my English, although it is not my first language. I want to be a computer programmer because Math is my favourite subject and making & breaking codes are my hobbies. I have learned the basics of c++ through various websites by myself but I can only make simple programmes, the most complex of which is probably the pyramid of numbers. However, I am not sure about what programmes I will make if I really become a computer programmer. I mean, there are games and encryptions and application softwares. I am not interested in making games but, given the two choices :encryption and application softwares, which one do you think will suit me the most? (A detailed definition (salary, competitiveness, good colleges,etc.) for each will be most helpful)
Posted by: Joe at July 23, 2009 6:18 AMOh yeah, what other programming languages should I learn after I have mastered the basics of c++, because I read that I don't have to know every commands for c++ because I won't need most of them.
Hello Leo
I am a dycalculic and I was wondering if it is at all possible for me to become a computer programmer. I think it is something I could be very passionate about, however, I am under the impression that computer programmers must excel at math. I am 24 years old and have not yet entered college because basically everything I would like to do pretty much requires me to learn and know heavy mathematics such as calculus and what not. While I have never really attempted complicated math, I highly doubt my abilities in that specific area. My dyscalculic mind set is not severe, but I clearly do have a very difficult time trying to solve math problems and even retaining the information sometimes.
Thanks
Posted by: nate at July 30, 2009 2:48 AMDear Leo
My name is Cody and I want to become a computer programmer and i have been writing code since i was 11 i am now 14 and i started in CMD with stupid BATCH files then HTML then went on to various web languages such as CSS, PHP, Javascript, and MYSQL
Then about a year and a half ago i started in more serious computer programming languages such as C, C++, and touching in Java.
I was curious about a couple things.
I have heard of some differences between C and C++ like C++ is object oriented, and that C generally compiles to a smaller file (which may or may not be true i just noticed it when i would compile the programs)
But what does Object Oriented mean, and why does C compiler into a smaller file.
But most importantly I would like to know if you know of any companies that are a good start for a computer programmer after they get there degree.
I would like to express that i have a fairly good understanding of
computer programming and responding to me would not be a waste of your time.
, thank you
Posted by: Cody at August 13, 2009 4:47 AMLeo's suggestion is quite something, he's right.
Although, there are some key factors your son should look into. He needs to figure out what he enjoys the most and what he would prefer to do in a development team, that will help him figure out if he is a programmer, artist, game/level designer, resource engineer, or tester.
He should first do like Leo said, attempt to learn to program, my suggestion is learn a language with a large community that you can get help from if need be.
Even if he doesn't like it at first, he should attempt to learn the basics, then if he succeeds in that, move on to more advanced programming.
Then if after attempting that he doesn't like programming, he should see whether he likes to create art or compose music.
Programming isn't the only required aspect of game design, that's why he could also look into game/level design, that's where most of the ideas and thoughts come out to be discussed.
Still, if he doesn't like that, he could always become a tester, but becoming a professional tester requires looking outside of the box, figuring out what is wrong and what should be there.
There is no guarantee he will get a job in any of the fields listed above, the game development industry is a HUGE competition, but that also doesn't mean he can't. With lots of practice, learning and thinking outside the box, figuring out problems that persist through masses of headache's and strife, he should be able to get a job in one of the game development fields.
I've been programming computer's for 4.5 years, led small amateur development teams, and accomplished literally TONS of research in order to find information required to get into the game dev. industry. Myself, I have partaken in every aspect of game development, from managing, designing, programming, creating something from nothing, sound engineering, and the works. You can do much at an early age, and it's no small task, he just needs to put much effort into what he wants to do, and have alot of motivation if he plans on getting a job in the industry. Oh, and I'm only 18.
Posted by: Koby at August 28, 2009 11:31 AMHey there! My name is Chris and I would LOVE to be a programmer. I have always had a passion for games. I want to program games for a living. But I'm kind of worried. I am 20 years old, almost 21 and all the comments I read about programming on this site and many others are people who are around 13 to 17 and already have a lot of experience. Am I too late? Did I miss my opportunity? Or can I still pursue my dream of becoming a programmer?
Posted by: Chrispy at September 23, 2009 4:10 AMProgramming an operating system has absolutely NOTHING to do with programming a video game. Literally. I'm not sure if you mean literally writing your own HAL, kernel, and bootsector, or working with APIs thrown at you by the OS and libraries, writing applications FOR an OS. But as far as writing an operating system goes, little to nothing but syntax and some design methods can be transfered from a video game to an OS. Video games require hardcore OOP(Most at least), and complete blindness of the computer hardware, using libraries to cover it up.
Just thought I'd clarify that.
Chrispy, you can become an extremely good programmer starting at any age provided you have a good passion. I'm only aged 16 and age hasn't proved to stop me, or anyone for that matter.
Most people who stay they want to program games don't really enjoy programming them, they just want to see and play the end result. However, many do. I suggest they work with some basic languages developing some basic software before getting into programming games. It'll probably save you a lot of time.
Cody, oop is exactly as it sounds. It's programming with objects essentially. It's hard to explain if you don't have a general idea of programming. In C++ all it literally is(in memory) structs, and functions. But in the compiler, it's much more, I.E class member protection, virtual functions, inheritance, etc.. If you're into OOP I'd take a look at java. I've worked with C and C++ for a long time, and occasionally java(I wrote an isometric game in it). Java has amazing OOP features that C++ lacks, but I still enjoy C++ much more.
Nate, programming has far less to do with math then it does to do with problem solving, it just happens to be that some problems require mathematics to be solved. If you passed grade 12 math you're good to go, but I wouldn't hesitate to take some more advanced math courses in college. There are tons of good programmers who can't solve a mathematical equation to save their life(well -- that's an exaggeration) and are great programmers because they can solve problems. However, programming a video game, a 3D one at least, will require some Trig, and geometry, possibly physics(basics though, there are a lot of powerful physics engines out there). If you're really into programming and not so much into math, you might find software engineering enjoyable, I.E writing segments of operating systems(I'm writing my own O.S atm, it's not as epic as linux, but it still takes A LOT of work to do), device drivers, etc.
"OMG", you never know until you start writing, get a book on it. 13 is a fairly good age to start programming, but just because you're good at math doesn't mean you'll be a good programmer.
"poker site", if you're into electronics, you may find software engineering or hardware engineering interesting. Software engineering I describe above(it involves programming software that communicates with electronic devices, such as drivers or segments of an OS's HAL). Hardware engineering is extremely interesting and I too have read about programming microcontrollers and building my own hardware(only problem is at 16 I have no income to purchase the devices and components). Hardware engineering involves developing devices like video cards and processors, network cards, etc..
Hope that helped those looking for an answer. AFK Working on a dumb socials projects. Yeap, I procrastinate my homework ;)
Posted by: Jeremy. A. Wildsmith at October 4, 2009 5:26 PMIm an 18 yr old High school graduate and being a video game developer is my dream!
Posted by: david powell at October 25, 2009 7:16 AM