I wondering what's my next step in learning Java and Programming in general.
Here's where I stand:
- Did 2 semesters of the same Java class. ( had to repeat )
- I can create hierarchies and packages of very simple programs. For example: I can create an Addition Class that does addition and have a subclass extend that class. Or I can put that class in its own package and import it.
- The highest math I've done is College level Algebra.
I'm currently reading "Developing Games in Java" by Brackeen and while I understand the concepts for the most part, reading and dissecting the codes in the book is extremely difficult. Most of the difficulty is not knowing the methods and classes from Swing or AWT.
I'm thinking about learning and memorizing the classes from AWT and Swing that are relevant to what I'm trying to do. But is it necessary? One of the pros about Java and other similar languages is reusing code that you've written and what other people have written.
You don't need to memorize the Swing classes. If you want to write code which uses them, you should instead go through Oracle's Swing tutorial. It covers all of the main UI components and their supporting classes. By going through the tutorial, you will come to recognize the classes, which is far more practical than just memorizing them (although I'm not even sure what it means to "memorize" a class).
And when I say "go through" the tutorial, I mean to take the example code which they provide, and make changes to it so that you can see what happens. Don't just look at the code, play around with it.
I would suggest your next step should be to write a useful application. Pick something which you want your application to do, and set out to make an application which does that. Do the simplest possible thing first, and then when you have that working, extend it to do more complicated things.
If you are learning, I would not really recommend a book which (at least from the title) is about developing games in Java. Like Paul recommended, start with the Oracle tutorials. Just avoid the Netbeans section at this stage, else you will end up focusing learning Netbeans instead of swing (Netbeans is a tool, i.e. an IDE )
Also, you can safely opt not to use AWT. It is an predecessor of Swing, and modern applications hardly use AWT. The preferred way is Swing.
Have you downloaded the Java API? If not you can get it from here Cultivate the habit of referring to the API docs. That way you need not waste energy "memorizing" it.