I want to become a game developer, I am an A student in 11th grade and feel like I am wasting my time in High School. I'm thinking of switching to homeschooling so that I have more time to focus on learning game development on my own while finishing high school at home. Some people I spoke to about this say its better to stay in school and go to college, some say I can get my diploma through homeschooling and this way I can get a head start on what I love to do, and get hands on experience. I am not sure what to do and was wondering if there are any experienced programmers out there that can give me advice on what route I should take??
You're in 11th grade. I'd advocate finishing high school and attending a college or university with a decent program related to the specialization you'd like to have in the games industry -- that means computer science if you want to be a programmer, for example.
I don't see a lot of advantages to being "homeschooled" for your last year-and-change of high school. Everybody feels like they are wasting their time in high school -- you'll probably have bouts of that exact same feeling in college (and you'll probably be just as wrong then as you are now).
Sure, you can devote more time to focusing on your immediate interests if you don't finish high school, but it might be harder to get into the best college you're otherwise capable of with only a GED, because those factors sometimes matter (regardless of whether or not they should matter). The danger is that by self-directing your education you are running, potentially, a much larger risk of misguiding your education. More so, I feel, should you choose to eschew college as well. You also narrow your focus, potentially prematurely, which might make you less desirable than others who are more generally educated.
I strongly and repeatedly advocate making games and practicing the craft you intend as a career to students, interns, and potential hires. You should do that regardless of the educational path you are on -- with that in mind, the fact that the strongest candidates for a job are usually those who practice game development to some extent as a hobby, the "head start" you get won't really be that terribly advantageous and it certainly won't count as applicable work experience to a potential employer.
If you feel that not finishing high school is the right thing for you to do for other reasons, then I encourage you to consider those. But my professional opinion is that it's not as advantageous for your future career as you might be assuming.
First I will admit to some bias, I am a PhD student in computer science at a large research institution (Clemson University), so I'm all about getting some education :-)
Short answer, if you want to have a good chance of becoming a game developer (and by this I assume you mean working for a AAA company like Blizzard?), you need to finish strong in high school (take the AP computer science exam), go to college for a degree in computer science, and try to specialize in some aspect of the game development process (game engine design and architecture, resource management, tooling, particle systems and FX, physics engines, simulation etc).
The value of your education is not in learning the tricks of the trade or preparing for a specific career, its learning the underlying concepts and understanding how to make good decisions based on thoughtful analysis and critical thinking; your confusing two things your education and your career. Your education can never be taken from you, while you can always lose your job.
In a practical sense, being self taught will definitely hinder your development as a programmer, you wont have the resources available to your average college student such as computer labs, high powered clusters, an army of people with similar interests, and professors hired to help you, there is a wealth of information on the internet, but it never beats hearing it straight from the mouth of an expert.
Another angle of this is the amount of stuff you need to know to be an effective programmer. Modern game development is extremely technical no matter how you approach it, knowledge of advanced data structures, a keen understanding of the inner workings of C++, and a strong grasp of linear algebra and physics is nearly universally required for a industry job. This is why the majority of entry level and lead software engineer jobs on Blizzard's jobs website require a bachelors degree. These concepts are hard to learn well unless you're forced to learn them.
In short, why get in the way of yourself? If you are making straight A's then you will definitely get in the college of your choice and probably get some merit scholarships. The game industry will still be here after taking the time to get a four year degree, and if you pursue attending a school with good connections to the game industry, then summer internships and job offers are a definite possibility. As a last good read, I would highly recommend this treatise on becoming an expert. It has some good insights into why computer science is not to be taken lightly.
My advice: Finish High School for sure, but don't waste your time on a CS degree. It will get you very little that you'll need to get a job. I say this having interviewed many CS grads who know little or nothing about what they need to know about: Software development.
Instead, I'd spend my time writing the exact kind of code that you want to get paid to write. Do that via:
- Your own imagination and ideas
- Read every book on game development you can find.
- Study all the gaming code you can get your hands on.
- Participate in an open source gaming project.
- Any other way that you can develop a body of gaming code.
Once you have a body of code that you can show (much like a photographer's portfolio) then use that to apply for jobs. Don't be afraid of the fact that you don't have a degree (even if they ask for one). Let your code do the talking. Ultimately, whether you can code or not is what potential employers want to see. If they care that you've got a CS degree, then you probably don't want to work there.
"Stay in School" is all great and good -- do finish High School -- but CS degrees are way, way overblown. Many famous developers don't have them.
ADDED: If you want to see why CS degrees are dubious at best, read the part about "Take programming-intensive courses" in this article (http://www.joelonsoftware.com/articles/CollegeAdvice.html) by the great Joel Spolsky.
I agree with everyone else about not switching to home schooling in the last year, I only see it either doing noting at all or hurting your chances in the long run.
On the topic of going to collage, be aware that MANY "game schools" are scams to just rip people off for money. Think the tighten up the graphics on level 3 kind of guys.
The guys over at Extra-Credits did a very good presentation on Game Schools, showing you what to look for in a good school and what warning signs to look for in a bad school.
Should I finish high school or teach myself? - those two aren't mutually exclusive. I'm both finishing school and teaching myself.
And there's not much "game development knowledge" that is exclusive to game development. It's mostly just mathematics, computer science and physics, all of which you learn about in school.
I know it's a very unpopular opinion around people of our age, but school has actually been quite beneficial to me.
If you have to sacrifice anything in order to get more time for your own hobbies, there are much better candidates than education: sports, social life, TV (didn't watch it in years), procrastination...
The definitive answer is that you should definitely stay in school. It will give you knowledge that is not only applicable to game development, but other fields too, because you cannot predict your future.
Financial When I went to college the surveys indicated that after four years the experience you gained working made you as valuable as a new college grad. After that the college grad got raises faster and surpassed the non graduate. This may not be true any longer but I suspect it still is.
Personal You will meet a lot of great people at college. It's important to learn about, and from, them.
My recommendation It worked out better for one guy (zuckerberg). It didn't work out better for the other 89,999,999 drop outs.
For sure finish High School. However, I'm going to differ on what everyone else says, because I'm a bit biased.
While a CS/equivalent degree can help you get your foot in the door at companies, it may or may not teach you a lot, depending on the college. I'm sure everyone learns a lot that goes to MIT.. but also pays >$10K a semester, if they can even get in.
I have to ask you a few things though.
- Have you made any projects/games before to the point that you can call them "complete"? (and something beyond the basic hello-world)
- Are you constantly learning about game development via the appropriate mediums(stackoverflow, forums, blogs, books etc)
- Do you enjoy creating games, even if you don't get paid for it?
- Do you feel comfortable teaching yourself and learning through the internet?
If you answered no to any of those questions, you're probably better off getting a degree because you're not experienced enough. However, if you answered yes to all of those, then a degree will only serve one purpose: getting your foot in the door.
That being said, I'm a (non game) programmer. I graduated high school, and took a few college courses, but never got a degree. I'm now 21(with almost no debt to my name!) and working in an entry level(ie, junior) position at a respectable, though small company. Here's how I did it and what you need to be doing:
- Contribute to and create open source projects! This is the absolute best way to get real-life experience working in a team
- Graduate high school. If you don't, many companies will see this and think "he has no discipline", because it takes quite a bit of discipline to finish. If you don't finish something tedious like high school, how will you deal with getting a game to complete when all the "fun" stuff is already done?
- Create a project. It can be open source, or not. But, this project needs to be the most polished game you can possibly make. If it's an app-store game, publish it. This will be the key part of your resume to future employers. Because you have no degree, you have to really wow them to get them to consider you. They have to know, without a doubt, that you know what you are doing.
- Create a nice resume and start applying for entry level or internship jobs! Make sure your resume points out that you are motivated enough to be self-taught, shows off all of your previous projects and contributions, etc.
Now, the hardest part about this path, is getting that first job, and leaving a good impression. Your first job probably won't be anything exciting, and you'll probably be underpaid and god knows what else. But, get the job! Make sure to be completely honest about what you lack though. If they're a Java shop and you know C# make sure to say something like "I've learned many languages and can pick them up easily. It'll take me a little while to get up to speed with Java, but I also know C# which is quite similar". The number one thing you don't want to do is get the first job and then they figure out that you don't know anything they expected of you.
After the first job, things are significantly easier. Most companies care much more for prior work experience than a college degree. Make sure to stick out your first job though for at least 2 years, maybe longer. When you feel comfortable, start sending out applications to other "better" entry level jobs. Basically, your first job will serve as your replacement for a degree. It'll be bad, but the next job will know that you have the know how and won't worry so much about lacking a degree.
This worked for me, and hopefully it works for you. Of course no guarantees, but I'm speaking from real-world experience. I got a programming job literally 2 months after graduating from High School. It wasn't the best job and it was practically slave wages, but 2 years later, here I am at a much better job, getting paid decently, and I wake up every morning and actually enjoy what I do. And many people have left this company to work at Microsoft and other big names.
- Make personal games
- Get (any) game-dev related job
Note: You may still want to take a few college courses depending on what you want to be doing(graphic designer, programmer, modeller, etc). For instance, having a thorough understanding of geometry can help you program 3D games. Also, if you're a bit of an introvert, you may want to take a public speaking class, just to pick up that skill. That's one of the classes I plan on taking sometime because I suck at public speaking, yet it's useful even for programmers.
Also, I began programming very young. In 7th grade, and got to a point that I could learn just about any new language and had a few "good" projects by my senior year. If you started later, this path may be more difficult.
That's good to hear that you are in grade 11 with an ambition to do great things. I started out learning C programming in grade 11 as well. I would highly suggest finishing off High School and during your spare time learn a programming language and start building console games and read up as much about the game industry as you can. Of course, play a lot of games.
Jumping the gun to college or university doesn't actually help in my opinion, I have done that and I got burn. Because the video game industry looks for people beyond academic background, they need people that are on top of things in the industry. If you are aiming for giant game developers like Blizzard, Capcom or SquareEnix. You need to know quite a few things and they expect you to know it well. Simply having a degree would not get you in their door, but the combination of experience and academic credential can increases your chances significantly.
Of course, there is a lot more to consider than simply going to school and getting the job. You have to factor into the educational cost, supplies and living expense while you are taking this road. Lifestyle also plays a big part within the gaming business, because they are not your typical 9-5 jobs, if family comes first, then perhaps video gaming might not be the best suit.
Degrees are great, they reinforces your knowledge and make you more competent and what not. They are great and make you more versatile and open for any type of programming job. As your knowledge grows in development, you'll realize how much school doesn't teach you and those are the things that you needed the most.
My golden rules for the new age of student is to work first, get hands on experience, then go to school. Because if you really don't like it, at least you haven't spend a dollar in it. But if you do take the road to school first and graduate just to find that you hated your job. Then you are in the world of pain.
Hope you find your answer!