What i mean is there a good 'timeline' for studying programming? Is there a structure i should follow for the first year or so of proper programming(not playing with console i/o)? it is easy to follow a basic tutorial then a <insert library here> tutorial but what after that? I am still about midway through my basic tutorial(for object pascal) and have been taking comprehensive notes if that helps at all.

That just means you have more time to get it sorted out. Get your grades high and look into loans, etc. If you can keep that up then just start picking up tutorials and such for your interests, which will also help you to choose courses once you're ready for college.

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Pick a project that seems challenging but doable. Finish it and you will have learned something useful along the way. Rinse. Repeat.

If there is something you are interested in learning, pick a challenge that requires learning about it. More challenging projects are more rewarding if you complete them, but you'll get frustrated if you can't make progress. If you do get stuck, perhaps you can find a related easier challenge to tackle first, and then get back to the more difficult one.

You don't need to go to college. The internet provides all the required information.

I fear for a generation that has learned everything by studying from the internet. I'm no luddite, but we're definitely not to a place where the 'net is a trustworthy reference manual. Web resources need a degree of experience or blind luck to filter through all the bad blogs and tutorials in order to find the good, rigorous instruction that will give people the right foundation. Colleges seek to get ABET accreditation for a reason, standards exist to ensure degree holders actually know the right stuff when they graduate.

I'm not saying it's not possible, I've learned a LOT from this site alone, and there are indeed tons of great sources of information, but the signal to noise ratio is still fairly bad, and a lot of what I picked up happened after I got a formal foundation in programming from a university that let me recognize mistakes and/or selectively glean the good bits out of an otherwise useless blog post.

Documentation for APIs? Absolutely. Neat snippets of code (especially game-technology-related information)? Sure. I'd lean towards material that has passed a publisher's check though (and even that's not completely foolproof) as opposed to any random joe's tutorial on programming. It's just as easy to pick up bad habits and concepts for a beginner who can't tell the chaff from the wheat.

Now, since OP is so young, my point is a little future-centric. I'd stick to a good book or two (search around this site, lots of great book recommendations) to get my feet under me, and as a bonus books travel anywhere and don't need 'net access And give yourself targets, like Alvaro mentioned. Academic/tutorial exercises are so sterile and singularly purposed, you really start learning a lot about code interaction and design when you try to write software that does something you want.

Web resources need a degree of experience or blind luck to filter through all the bad blogs and tutorials in order to find the good, rigorous instruction that will give people the right foundation.

One has to do research, as with anything else: If you're unsure about the quality of the resource, you should ask around. If you're dealing with something sub-par, the experienced developers here on gamedev would be more than willing to confirm that.

Also, there's more to the internet than just "blogs and tutorials". Top universities (MiT, Stanford, Berkley, etc) provide the bulk of their curriculum online. I don't agree with some of their teaching approaches (as prestigious as those institutions are), but I'm pretty sure that they have their facts straight, so anyone willing to learn can start there, with full confidence that they're not consuming garbage.

standards exist to ensure degree holders actually know the right stuff when they graduate

You could argue that they're just not driven enough, and that academic institutions are not there to "hold hands", but that's basically an argument that supports my original point: Ultimately, it's all up to the individual, and there's no need to pay someone for the privilege that is inherently yours (to study).

Ultimately, it's all up to the individual, and there's no need to pay someone for the privilege that is inherently yours (to study).

That's completely fair, and I took classes with plenty of fizzbuzz-failers. I just wanted to represent the pro-college side as well as the pro-independent approach. One thing that college gives you (as a motivated learner anyway) is a large collection of co-learners and instructors who bring different specializations, viewpoints, and insights to a regularly attended, long-term assembly (aka class) with a bit more accountability. You can get something similar in places like this (web forums and chat rooms) but learning from a forum doesn't give you a degree, and--let's be honest--that can make a big difference if you're looking to apply for work afterwards.

If you're just learning to learn, take whatever approach you want. I got my IT certification by spending too much money on coffee at a local bookstore (well, I studied for it that way, Barnes & Noble doesn't give CompTIA tests). People have been wildly successful and dismal failures using both routes. But the degree-holding ones probably made it past more HR screens.

Edit: Good point about the youtube series, I had forgotten about those. For free, it's great material. If given the option, I'd prefer to be sitting in the class though, so I could ask questions that come up.

Edit 2: Just so I don't keep bumping this thread to derail it, I meant "accountability to show up", as in a peer + instructor group you can rely on to be regularly present. And counterpoints are easy to find for both sides, because it's not a black and white issue. My goal was simply to impress that both options are there, and having a degree doesn't *hurt* your chances of getting work. It just opens you up to a superset of the jobs seeking programmers.

I'm not really sure what you mean by "accountability". The instructors are certainly not accountable for your progress. If you're talking about people who can only learn when placed under some kind of high pressure ... I don't know; That just sounds silly to me.

learning from a forum doesn't give you a degree, and--let's be honest--that can make a big difference if you're looking to apply for work afterwards

Assuming that a degree is the only requirement (which is very unlikely, especially today) -> It depends on the company, but generally, in any place where developers make hiring decisions (which is where you actually want to work, for obvious reasons), your proven abilities are the only thing that truly matters.

Valve's Chet Faliszek makes that abundantly clear:

He was very careful not to make it explicit, because questioning the value of "higher-ed" is still somewhat taboo, but he's basically saying that it doesn't matter, and that makes perfect sense.

On the topic of self-teaching vs formal/university study, I want to say that I truly believe it is completely up to the student. My field of expertise is Japanese language pedagogy (which, btw, a BA in Japanese is absolutely worthless, to comment on degrees). And I have seen students study heavily at top universities and come out not knowing even the basics of Japanese, while I have seen students study on their own and become quite fluent and have a solid understanding of the language. And I've seen the opposite, too. I, myself, could not learn the tiniest thing about Japanese studying on my own, but became an expert through university study. And it should go without saying that there are self-study students who fail, too.

It's about the student and finding what works for them. Some people can't learn stuff without good direction and instruction, even if all the knowledge is readily available to them. Some people don't know how to learn in a controlled setting, however.

And as far as misinformation goes, I have learned plenty of misleading and downright false things from both the internet and professional instructors with doctorates in the field. I think no matter your source of information, it is the responsibility of the learner to reference other sources and build his own confidence in his knowledge. Don't ever trust a single source blindly.

And on the original topic, if you can get ahold of syllabi from university courses, they make for great self-study outlines. Figure out what kinds of topics the classes are covering and in what order, and then try following that order yourself. I don't know why I never thought of doing this for programming until now -- it's one of the first things I recommend to students trying to learn Japanese through self-study.

I have often found that by following any school's method of teaching from the beginning to the end, leaves me learning and retaining very little. Once you have decided what language you want to concentrate on, try starting and the END instead of the BEGINNING. People want to talk to you more if you start out by saying GOODBYE first instead of HELLO WORLD! What I am advising you to do, is first learn on how to write your Data files to your hard drive through your language. After all, you will find ending your game is every bit as important as starting it.

Assuming that a degree is the only requirement (which is very unlikely, especially today) -> It depends on the company, but generally, in any place where developers make hiring decisions (which is where you actually want to work, for obvious reasons), your proven abilities are the only thing that truly matters.

Valve's Chet Faliszek makes that abundantly clear:

a degree isn't the only requirement anywhere but the idea that degrees don't matter to the extent that you are implying is just false and/or wishful thinking. There are a lot of truly great programmers in the world and 95+% of those guys have at least 4 year degrees, often from prestigious universities. You will be competing with them for jobs. Why would a hiring manager choose a great programmer who has no credentials over a great programmer with a CS degree, all things being equal? Because of the uncredentialed guy's obvious genius and the twinkle in his eye? -- this is fantasy, and doesn't even touch on the (social) connections a truly gifted programmer will make at a first-tier engineering school. Look, I'm not saying the whole pulling-ones-self-up-by-ones-bootstraps thing can't be done: just that success this way is much rarer and it is the much more difficult route. This is not the 1990's anymore and it is competitive out there. Telling a young person not to worry about college because game companies will just recognize how great they are is just giving really bad advice.

I see this a lot on these forums and elsewhere. I think there is also a belief among younger people posting here that the easiest route to success in the game industry or software in general is striking it rich on their own as an indie developer. Okay, this too is folly ... it's a nice dream and people should try and follow their dreams etc. But basically no one strikes it rich as an indie developer. If you're young and you want to write games the main way you are going to get to do it without having to have to do it when you get home as a hobby or a sort of second job is by becoming a real programmer and getting a real programming job for some game company, meaning becoming a software engineer, meaning studying engineering, period. It's really that simple.

Why would a hiring manager choose a great programmer who has no credentials over a great programmer with a CS degree, all things being equal?

Because they're cheaper; Because they have a proven ability to learn independently, and the motivation to do so.

Telling a young person not to worry about college because game companies will just recognize how great they are is just giving really bad advice.

If you're really "great", and you have a portfolio that clearly proves that, I don't see how it would be "bad advice". Watch Chet's presentation; that's the stuff that they actually care about, and that's how people get hired.

For the vast majority, spending 4 years in some program of questionable merit is considerably less beneficial. People go into debt, only to end up in a highly competitive market, where a degree holds virtually no distinguishing value. I mean, when 60% fail FizzBuzz; it's not even a half-decent interview filter.

I think there is also a belief among younger people posting here that the easiest route to success in the game industry or software in general is striking it rich on their own as an indie developer.

Well, that's clearly foolish: Independent game development is insanely difficult, and if you're getting into it just for the money, you're basically wasting your time, for reasons I outlined in this post.