I'm in college and studying Computer Science. After a full semester studying Python, I feel good enough to do a bunch of different things with Python. I am now in a Java only CSC course and I'm just not understanding the concepts. When our professor shows us what certain things to, it makes perfect sense. However, later when I try to do the same thing, I can never remember how to do so. I am starting to really fall behind and don't really know what to do at this point. Should I try studying a book alongside my class? If so, what do you recommend?
God yes. I learned almost nothing about programming in school, i did it all myself outside of school hours. Which one depends on what you prefer really. Do you like more textbook to the point style, or do you prefer fun style? Head first java 2nd edition is often recommended if you're in the latter group. Its older for java 5, but it still applies. Its an entire tree however, be aware.
Primarily you should pick a project and learn while you do though, practice and making mistakes are the best teachers. Do a game of hangman on the command line, i am a big believer of doing little games when you are learning. The fun factor helps you to focus and apply yourself.
Our book in class is Object Oriented Data Structures Using Java, and it doesn't seem to help me much at all. I'm assuming that it would be considered a textbook from the former group, as opposed to the latter?
I suppose you can try to get together with other students to form a study group to help each other out. Perhaps one already exists. You can also ask your teacher if he has any ideas such as a teaching assistant to help you out. I suggest you re-read each section or chapter in the book that you are trying to implement before you try each data structure out.
I also suggest that over the summer you read a book or two on Java as was mentioned in a previous post and work through some of the book's examples in your IDE. If you really want to succeed, you should consider studying just as hard over the summer break. I suspect a lot of students will read the course book once and be done with it. Consider reading it twice over.
I started with Java in a Nutshell, although I don't like O'Reilly books in general, but remember that prior to that I already had a strong programming and OO background. I don't think I'd recommend it to a CS student, or anything with +21 days+ in its title either.
I stopped using the Nutshell after a few months and spent the next couple of years with both volumes of The Java Class Libraries open on my desk, and the JDK class poster on the wall. People used to come in to my room to stare at it; I spent a fair time doing that myself. For the last 10 years I've just kept browser 2-3 tabs open, one to the Javadoc, another to the specifications, and another to the specific specification I'm looking at.
If you want to consider a beginner book on Java, I suggest you search amazon.com for one that has good reviews. I also suggest you try to find one that isn't too many pages long (not more than 300 pages?) since you only have so much time to come up to speed for your class. You may also consider ordering it 2 day delivery to get it faster. I really think you should cram as much reading and programming on your own over the upcoming summer.
The class ends in the spring, and by that point I will have either passed or failed the class. Reading over the summer will be good to continue my studies, but reading over the summer isn't what I need right now.
Hang in there, even after you pass a class, you still need to do much reading and go back over the things you already have read before to get it to sink in. I used a Walter Savitch C++ text book in college and I supplemented it with a D.S. Malik C++ book and a Deitel C++ book. Along with this, I still did Google searches and referenced cplusplus.com. :)