so many different approaches... i am a beginner but i want to drop my two cents, esp. considering university.
i had a couple of pascal classes in high school... but our teacher mostly showed us toy story and took smoke breaks. there was one student teaching himself graphics programming but it was greek to me. this was around the time of doom ii, so it must have been mode 13h awesomeness.
in college i chose to study computer science partly because i wanted to be in a band (i know, right) and figured that science-ing computers was something i could do on the side to support my music... kind of like waiting tables and acting. of course, that was infinite dimensional nonsense.
the other part of it was a picture of a programmer i saw in next generation magazine... it was the issue about working in the industry. if i remember correctly, the programmer section showed two guys from sega and a bunch of big crts and cigarettes. i didn't know anything about money so i asked my mom if they listed pay was any good and she said yes. so, the only magazines i read in high school were guitar world and next generation and i guess i combined them into a psuedo-realistic plan and moved 600 miles away to see what would happen. now that i am thinking about it, i wonder whose sega office that was... would be funny to meet them.
college was a disaster. i was so unprepared for the rigor of an engineering program it wasn't even funny. i was, however, prepared to live in a big city and really squeeze the juice out of (non-academic) life. i took one computer graphics class and spent so much time dealing with memory access errors that i didn't really learn anything about the topics at hand, bicubic patches and subdivision being the only two i really remember. i also had a game programming class where i did approximately nothing (found sound effects) though my group's game got chosen for the IGF. my name got removed from the credits because i was such a horrible slacker. i failed out of college twice, the second time because i got a 'D' in game programming because i slept through the final.
while i was bumbling my way to a 1.9 gpa i often thought about switching majors to psychology or joining the army but i was stubborn and didn't make any changes. i liked my non-academic life, playing a lot of guitar and watching a lot of milkdrop. i didn't know
after i failed out the second time (five years in, one class short of graduating), i worked at a mexican restaurant and then a pizza restaurant. out of nowhere, a friend of a friend was looking for somebody to help with a mobile game startup. basically, they were making an excitebike clone for motorola flip phones (J2ME). we had no idea what we were doing, but i did make a little bit of sprite art and use mappy. i also blatantly copied a scrolling tile engine from some fly-by-night J2ME book. the highlight of that experience was calling up cingular and going into what felt like the lion's den to show their head of game acquisition our masterwork, JET SKI CHALLENGE. in addition to crashing in the middle of the meeting, the game was also pretty bad.
after about two months of that, we ran out of money and gave up. unbelievably, that experience, that big ball of mistakes, was enough to land me an entry job at a television company working on retro game emulation. i knew approximately nothing about emulation, except late nights spent with nesticle, but they were willing to teach. i started out doing rote plumbing work to get other people's emulator code hooked up to other people's gamepad code. things really blossomed when they hired the author of the main N64 emulator... he wasn't a graphics specialist but knew all about the processor memory internals and i thought that was the bee's knees. meanwhile, working on other people's games had given me the bug to get my own graphics on-screen. at the time, gba homebrew was really popular so i read the great TONC tutorials, bought a multiboot cable, and got the celestial seasonings bear flying around the screen on the real hardware. the real hardware! i can still remember how that felt. i tried and failed to learn graphics from NeHe and drifted back towards playing music. i was still doing neat things at work, learning about cps2 video hardware and how the music code picks songs in frogger (seriously) but the emulator company folded, and i was back at square one again.
i spend the next six months learning about idleness (literally, there are books on the subject, the situationists in particular were great) and trying to do the most impractical things i could think of. i went to coffee shops and practiced topcoder problems, i took long walks nowhere, i spent a lot of time wandering around libraries.
another emulator company popped up by by that point i realized that i want to make movies, not fix vcrs. at the urging of my roommate, myself and two others started a game crew... one was an artist and one was a programmer who liked the tools/infrastructure side of things so i mostly did gameplay and physics code, powerup deisgn and level design. that was a ton of fun, and i started to use LOVE2D to make little demos. sometimes arcade games, but more often what i called "mind portals" and my girlfriend called "screensavers"... silly approximations of the two-dimensional vfx i loved, just a grab bag of trig functions and color motion. i eventually tried to make a plasma, but got advice (from eddie lee / illogic tree, whose work i had just discovered) that maybe it would be faster if i didn't use lua (i was drawing a 1x1 rect for each pixel). so i was goofing around with graphics on the side while we worked on our ios action games.
anyways we fell apart, one to art school and one to salary jobs, and i was at the beginning again again again.
but, that's where i am now... i am striking out on my own. on one hand, the thought of working on not my own ideas makes me want to vomit... on the other hand, i am envious of all the stories of great mentors and growing (and typing this out made me realize the boost of working with the emulator authors).
i love art and motion and these crazy light-machines... i think ryan geiss hooked me for life... i'm so far away from expressing what is in my head but i am going to keep on keeping on.
going forward, i am going to try to learn the hardest thing in my purview. because there is likely something hard beyond that that i don't know about and i think that people rise to the challenge, no matter what. personally, i think i'll always be in the bottom ten percent of the pool but if i keep moving from one pool to the next it will sort of work out. i guess practically, i want to avoid internet tutorials and blog posts... introductory books... anything that seems accessible. i am too old late to the game to be learning with kid gloves.
anyways, long story short, i didn't start programming young and i didn't do well at college and my projects are sort of hit-or-miss so far but i feel like i am living in a magical dream world, even (especially) when nothing is making sense and the screen is black and why isn't this thing...
p.s. i loved the talk about clicking every file in windows... that feeling, so similar, used to stay up at night and dial random 1-800 numbers to see what was on the other end...