   Improving as a programmer
  I am not a *totally* inexperienced programmer....But, I feel like I am at a bit of a road-block.  I really want to improve as a programmer, especially since I am working on an indie project at the moment and always feel like I don't really know what the best techniques/designs for each part of my game is.I want to keep up with trends and technology as well as improve my knowledge of the 'standard way things are done in the industry'.  I speak to my other friend (who is a super genius hehe) and he always seems to know the best techniques for rendering recently used in <x> engine and what system is most commonly used for AI or whatever~I also want to avoid the pitfalls of bad code design, u_u'What would you recommend?  Which blogs, forums and magazines should I be reading? :)   
I'm generally of the opinion that it really shouldn't matter what you read and long as you continue to try to educate yourself.  While it's nice to know the best thing or most common thing everyone else is using you shouldn't think that knowing exactly those things makes you an experienced programmer.  A lot of the time there isn't even a "standard" in the games industry, there's just how things get done at a particular studio.  Being able to solve a new problem on my own (even if it's not "the best") has been more useful than blindly plugging in other people's solution (though there admittedly is a place for that sometimes too).  Trying things out and succeeding (and more importantly failing) is a useful exercise.  Maybe you'll even find something better than the "best" for your particular problem.If you're having trouble finding resources:This website is a great resource.The progamming subreddit usually links to some good stuffJoel Spolsky has some good articles in the archive, but he's no longer blogging and he tends to be polarizing.Both Coding Horror and DailyWTF are sites I check out on a regular basis.Stackoverflow seems to be getting a lot of traction, but it doesn't work too well unless you've got an actual question to search on or ask.Books and MagazinesGame Developer Magazine usually has some good articles.Refactoring by Martin Fowler (my favorite book right now)Code Complete by Steve McConnellLarge Scale Cpp Design by John LakosEffective Cpp and More Effective Cpp by Scott MeyersDesign Patterns (some people have strong opinions for and against.  I think it has a purpose to serve)   ;  All of those (but take both Spolsky and Atwood with a teaspoon of salt), plus this.   ;  For C++ stuff, you might also want to check out the gotw.   ;  I recommend practice.  The first thing to know about practice is that working(indie project, day job it doesn't matter) isn't practice.  Practice is a deliberate attempt at improving were as work is taking your current level and using it. I would  start here.  Then goggling code kata should get you other links.   ;  I think what you're describing is part of the learning process. Probably the best thing is to keep working on your indie project. Whenever you find something where you don't know "the best way" to proceed, do some searching and ask some questions. Then pick a solution and go forward. Don't worry about picking a sub-optimal or "wrong" solution. As long as you can finish the project, it was an acceptable solution. If you find the solution was truly bad, refactor the project.On your next project you can learn from the mistakes on your last one. Read up on design patterns, but don't make the mistake of deciding the correct solution must be a sanctioned pattern. I'm of the opinion you probably won't use a pattern correctly until you've been bitten by the problem it solves.StackOverflow is good, even if you don't have a specific question. Read the top questions for the past week/month in the technologies you're interested in (and "best practices").   