   New to programming - Looking for direction
  Heh, I'm always bad at writing these general help threads, so I apologize in advance.Last year, I decided to take Computer Programming 12 at my school simply to fill up an elective block. What do you know? I actually kind of enjoyed it. Really kind of enjoyed it. However, the class consisted of mostly the teacher ramming the Java API down our throats without properly explaining what half of it does and why. I have no understanding of most basic concepts, and definitely no understanding of any advanced ones. I want to change this.What I want to learn are these non-language specific concepts. It's all well and good having the API memorized if one cannot actually do anything with it. So I beseech you, GameDev.net, please tell me where I should go to learn these things. Is there a book, or a website, that is a good starting point? Where should I begin?(Though I said non-language specific...it doesn't really have to be. If a book happens to explain these things well through it's explanation of C, I'm not going to be complaining.)   
  I don't know about where you are at, but at my college, there is one that teaches algorithm using psuedo code. Should be one at yours too, I'd think. It didn't help me a whole lot, in advance stuff like game programming but it does help.   ;  Structure and Interpretation of Computer Programs, book and videos.The programming language used is a Lisp dialect called Scheme. It's not as popular as C++, Python, Java, etc. but it's a nice, elegant language and suitable for beginners. If you enjoy math you will probably appreciate the elegance of Scheme. Either way, give the video lectures a try, they are great. My bet is that those video lectures are exactly what you are looking for. And of course read the book too. Those lectures (and the book) are from an introductory course in computer science at MIT.If you want to learn more about algorithm design, these are pretty good (but might be hard to read if you don't have a pretty good math background, or you know, have read some math at a university level):Introduction to the Design and Analysis of AlgorithmsIntroduction to AlgorithmsIf you want to practise problem solving Project Euler might be a good place.Now I realize that I might give the impression that problem solving is really all there is to programming, but there are a lot of other challenges too that's hard to teach. Like managing large projects and building large software, writing reuseable and maintainable programs, writing good documentation, etc. There are books on that I'm sure, just that I haven't read any that I can remember. But I think you should start with the problem solving aspects, because if you enjoy that, then chances are that you will enjoy programming, and if you don't, then maybe programming isn't for you. Maybe this is the wrong way to go about it, I'm not sure.Also, read this.[Edited by - tufflax on April 24, 2010 3:16:48 AM]