How do you study for complex subjects?
With subjects that are based almost completely on skill, like Math, all you need to do is practice (more or less). But what about subjects like physics and programming?
I have an issue processing information, especially instructions. So I need to take my time organizing information in my head. It's just that when subjects get too complicated, I get completely overwhelmed. It's not that I'm not able to understand. It's because my mind keeps bouncing around, trying to keep track of all the relevant information.
One answer would be to practice, but just being told to "practice" with no specific instructions is extremely confusing to me. Yes, books have all kinds of problems. Too many, in fact. I could never tell what's relevant and what's not, and in order to practice, you need to understand the general idea first, which I have more trouble doing than others, because I'm not able to focus on the instructions.
Despite all that, i actually learn faster than other students, but it just exhausts me way too much that I end up barely studying at all. How do I keep my mind organized enough to be able to learn smoothly?
It's impossible to make a complete set of rules for how to program, but there are things that you can learn in general about how to do it well. 'The Pragmatic Programmer' is a great book for this kind of general programming stuff.
Working through the examples in a book about programming will also help.
Also, reading well-written source code someone else wrote is quite helpful.
Taking time to organize information in your head (which is what you said you needed to do) is something that you need to do a lot of in programming. Since you're writing the code, you get to organize it in a way that makes sense. In a fundamental way, programming is about organizing complexity.
There is a 'Ruby Quiz' book that has a bunch of practice problems for programming. The problems are generic enough that you could do them in any language, not just Ruby.
_________________
"A dead thing can go with the stream, but only a living thing can go against it." --G. K. Chesterton
Having the subject taught in a variety of different ways helps reinforce the way I understand it to work.
Take Physics for example. In school the teacher would explain it to the class. Then gave the class write down notes and then try and apply the notes to questions.
Later on when I was at home if I was unclear about it I would look up on line and try to watch videos about it by people who explain it in different ways and find different written explanations or diagrams to back it up as well.
To me I just try and build up a picture using a variety of resources that are trying to explain the same thing.
Physics and programming are like maths too, the more you practice, the more knowledgable you become. For physics I visualize the concepts as best I can and the more details I visualize, the more I learn cuz I start to see the concepts being described. Practicing problems in physics is essential because by doing problems you see things that you wouldn't have ordinarily spotted and you also gain a mathematical understanding of the concept. In physics the trick is to approach the concepts from as many different angles as possible.
As for programming, I only know PHP but the way I learned it was by building a website and learning it as I went. When there was something I needed to program, I'd look it up and learn the concept I needed to know. For example I decided to make a login page so I learned about sessions and cookies and started testing them out. One mistake I noticed I make a lot is I have a tendency to learn through trial and error but realize afterwards that if I had just took the time to read a book on PHP, I wouldn't have wasted all that time testing things out.
I think I know what your problem is. You have trouble translating the words into your own mental language. I have the same problem, my brain doesn't translate the words automatically for me so I have to put effort into translating them myself. Sometimes people are talking to me and although I speak English and I can hear the sounds they're making, I have no idea what they are saying unless I make a conscious effort to translate it into pictures and the other things I use to think.
What are you learning, a programming language? The trick I find is to come up with abstract mental images for all the programming concepts. Drawing diagrams would help with this. Honestly for programming the best way to learn is to start a project and learn it as you go along. I had no idea what the hell variables were, no matter how many explanations I read, the concept made no sense to me. It was only when I started using them that I figured out what they were. Its an extremely simple concept but its real hard to describe so its not easy to learn it just by reading about it. What language do you wanna learn? If you like making websites I recommend you learn a server side scripting language and/or javascript because these languages are easier to learn than C++ or Java but knowing them gives you the framework for learning any programming language. If you start learning PHP, I'll make some scripts for you to play around with and I guarantee you will learn the fundamentals of PHP by playing around with them.
One thing that's helped me a lot in physics (and the other sciences) is trying to figure out how to explain it to other people. If I can successfully explain it to someone else, then there's a pretty good chance I really understand it. Of course, this also requires someone else to be willing to play the part of a student...
_________________
"Life isn't fair. It's just fairer than death, that's all."
~And if I'm flying solo, at least I'm flying free!~
