Becoming a Java Developer
My thoughts on how to get started and the path to take
In this article, I want to recommend to you how I would go about learning Java and learning to be able to write Java programs of any sort if I had to start over. After programming in Java for about 4 years, a lot of insight has been gained.
Why Java?
Java, in my opinion, is a good language to start with as a new aspiring programmer for three reasons.
- It is easier to learn than other languages
- There are tons of resources on the interwebs for it
- It is still used in many types of applications including web development, Minecraft game modifications, Discord bots, and pretty much anything else
Resources to Use
My absolute favorite programming book is Java: The Complete Reference
The level of detail that Herbert Schildt puts into this book is so profound that you could read this book many, many times and come out of it with new knowledge each time. I recommend it to absolutely anyone wanting to learn Java, the only downside is that it doesn't have exercises and problems for you to practice with. As a supplemental book including both great information and tons of practice problems, I recommend: Introduction to Java Programming and Data Structures, Comprehensive Version. I used it in college.
Video Resources
My Java Series: youtube.com/watch?v=2XE7OWv4Tdg&list=PL..
My series is based largely on the first Java book recommended above, so reading and watching both at the same time could be a way to see it done concretely and learn it. There are also more professional courses on Udemy if interested.
My Community
Feel free to join my Discord server: discord.gg/cortexdev
Here you can get advice from other coders, get help with your code, or find people who have the same interests as you.
The Learning Path
Practice, practice, and practice
As a preface to this section on what to learn, I want to tell you how to learn. Everyone is different. Some people can read something once, and have it memorized and understood until the end of time. Some people need to take notes. And some people are in the middle. That's okay! Don't let anyone try to discourage you from using whatever learning method you have figured out for yourself, like writing code down(even if it is a bit comical).
With that said, I highly recommend coding out what you learn after you learn it. As my priest always said, "Practice makes permanence". For example, after reading or watching a video on if statements -- go ahead and make a new Java project and code out some if statements for yourself and make sure you actually understand how to use it. Studies have shown that such "active learning" in which you get your feet wet rather than merely watch someone else demonstrate or explain the content to you is a very helpful method of crystallizing your intelligence.
Practice, practice, practice!
The Core
When you first start off learning any major modern programming language, you will always be learning the same things. What to do after that can be the most daunting thing to decide. Here is what I recommend:
- Variables
- Branching with if statements and switch statements
- Looping
- Methods/Functions
Then, you jump into the juicy stuff. Object Oriented Programming, the programming paradigm of today (for now). This entails classes, inheritance, polymorphism, and such juicy things.
- Object Oreinted Programming
- Exceptions
- Generics
- Collections
- The Stream API
- more and more and more
For Reference, I think Parts 1-21 of The Complete Reference gives you all of the general knowledge you will want to get started, even if you skip around a bit in Part Two of the book.
Moving on
Once you learn "The Core", you could choose to keep learning forever and ever. As a programmer, you will be doing that anyway. There are so many things in the Java language. But what you should really do at this point is start worrying about how to get some experience under your belt as a Java developer. Again, the best way to learn something is to do it hands-on. With the multitude of different paths and choices you could choose, this is one of the most intimidating stages of becoming a programmer. What really matters most is that you choose something.
Think of a project for yourself, and do it. It doesn't matter if there are some unknowns in the way, this just means that along the way to finishing this project, you will learn new things and learn how to apply them. Speaking from my personal experience, I have had to take on big intimidating projects and I had no idea how to use a lot of the libraries or technologies involved. But I prevailed because I was hungry to do it and learned.
Here is some project inspiration if you need some, but you are not limited to this:
- More complex console applications than you have already been making, like simple games such as tic tac toe.
- Discord bots
- Minecraft Plugins
- GUI Programs with Swing or JavaFX(a calculator)
- Websites with Java
- assignmentgeek.com/blog/java-project-ideas
And that's all I got for you! If you got this far and have some other useful advice or feedback, leave a comment.