December 13, 2019
I’m familiar with ES5, ES6, Vue, React, and Node.js. This is a lot of variety in one language.
So, I have decided to learn Java without the benefit of relevant work projects to guide me. This is how I’m going to go about doing that.
So, why Java over Ruby, C++, or Python? Because it seems that most enterprise web-focused companies use Java on the back-end. My company included.
Devin said use IntelliJ. IntelliJ is a LOT. It's extremely comprehensive and very good at being an IDE. In the course I ended up doing, we're required to use NetBeans, and honestly, the simplicity of it is a little bit more appealing right now. I highly recommend using an IDE for Java because you can compile and see your output by clicking one button, but that doesn't mean you should use all the features that autofill an immense amount of code for you. Write every line yourself.
You also need to install a JDK (Java Development Kit). Luckily, this has gotten easier with OpenJDK. Download the latest LTS version, and default for whatever other settings are there.
That's all you need to start writing Java.
It's very difficult to find Java courses that are up to date. I originally started going through a course that covered Java 7, but Devin said there have been substantial changes between Java 7 and Java 8. The minimum Java version to start with today is Java 8. This generally means that you need to look for courses that were made past 2014-2015.
I couldn't find any I liked, so I turned to reddit. People were raving about this course from the University of Helsinki. I wasn't going to try it because it's not a video course, but I'm very glad I did.
The link for that is here. I highly recommend it. It's thorough, yet practical.
If you need to use video courses, there's this highly recommend course on Udemy.
I’ll be practicing by going through the Java track on Exercism.io.
I will also be making a bunch of practice projects afterwards. I'll probably start with Robert Heaton's Programming Projects for Advanced Beginners.
The possibilities of MOOCs and formal, academic online education really open up when you know Java. I really want to go further into OOP and also learn about algorithms and data structures.
This is still a complete unknown for me.
If you liked this post, get updates about new posts by signing up to my infrequent newsletter.