What are some good starting points for game programming / game design?
I've recently taken an interest in programming and designing games, mostly due to a friend of mine who is constantly showing me these cool little '15-minute-time-wasters' that he comes up with every month which is the seed of my awe and envy.
I'm not completely sure where I could (or better yet, SHOULD) start, so I'm looking for general tips and a nudge in the right direction. I think I understand that basically nobody can start out designing levels, games, and leading projects like that, so I think I need to start on the programming level (putting together what the guys I just mentioned would imagine up), assuming I wanted to get my foot in the door.
Books (paid or free), dedicated websites, examples, diagrams, concepts, study guides, practice exams, brochures, pamphlets (are those last two the same thing?), index cards, whatever ya got. Lay it on me! I'm just overwhelmed by all the possibilities Google likes to throw at me (the greatest search engine's greatest weakness, really).
Please and thank you :)