Hello everyone! New here. Since the summer, I've finished Head First Java and just finished Effective Java. I'm getting a decent grasp after a lot of struggling. My next question is, where do I go next?
1) What book should I read next?
2) Should I be learning the IDEs? since I've been mostly reading and doing problems in the books.
3) Since I do not have a CS degree, but a BS and a graduate degree, what books outside of Java should I read (algorithms?)?
4) Will learning another language like Python or C# be helpful?
If you are done with Head First Java and Effective Java (and has understood the text), then I can suggest couple of things:
1) Pick the topic of your own interest and follow it up. e.g. swing, generics, threading etc.
2) You can pursue one of the Java certifications path.
That depends a whole lot on what you intend to do with this knowledge. If it's just for your personal enjoyment, learning desktop GUIs (in the shape of the Swing or JavaFX APIs) might be interesting, but that's very unlikely to help you find a job if that's what you want. In that case, learning about web development and databases would be more useful; someone asked about how to get started with that in https://coderanch.com/t/625648/Servlets/java/steps-java-web-development
Since, you already on the web devlopment route, I would study
3) REST/Web services
Knowing Servlets, JSPS and JPA (and the technologies that you already know, HTML, Java script and JQuery) will give you enough knowledge that you can create a web application from scratch. SOmeone comes to you and tells you "Hey I want to build a website that stores information about my widgets. Can you put one up for me?" You will be able to say "yes". You may not use the latest tools, and may not be efficient, but you will have the basics.
Now, at this point, the question is what tools you want to learn? IMO, the trend nowdays for web apps is for the UI to be Java script driven that talks to some sort of back end through REST api. So, you need to know a) how to build web pages using java scrip and how to make REST calls (which I guess you might know already.) b) how to efficiently build REST services in Java (which is where you need to focus on). Here you run into 3 camps
a) One camp believes in sticking to Oracle standards, and following the J2EE standards. If you are in this camp, you will spend most of your life cursing Oracle :p
b) Second camp uses Open source techologies and uses containers like Spring to build REST services. If you are in this camp, you will spend most of your life worried that the open source solution that you picked might be the wrong one :p
c) Third camp picks and chooses, and then worries about the solution that they picked while cursing Oracle :p
I think once you reach this point, I would just start looking for jobs and try to learn the technologies on the job. Real life experience counts for a lot more than reading stuff. Start getting some real world experience as soon as you can.Also, Tools keep changing, and you never know in 2 years you might have something completely differrent, and no matter how much you learn, you are always a step behind. Actually, the minute you finish reading the book, the knowledge you learnt is already obsolete. My strategy has always been to learn what I need to get paid and nothing more and nothing less.