Greetings!
I've been working with Java almost 2 years now and I've reached the point in which I feel comfortable using the language on a daily basis to solve production problems (I work as backend developer with a SpringBoot - Reactor stack), but I'm aware that there's a bunch of stuff about the language that I don't know about.
In other words, I'm aware that I'm ignorant, but I don't know what I'm ignorant about. Does that make sense? I don't want to comfortably fall into the slumber of competent incompetence. In other words, I don't want to get stuck as an expert beginner.
Based on my work experience, I've identified three "clear" areas where I've noticed my knowledge is limited and I know that I can do better and an additional, blurrier area that makes me uncomfortable:
-
Generics.
-
Exception handling and error management.
-
Data structures beyond the basic ArrayList and HashMap. That is: get to know other implementations of those interfaces, other types of collections, etc.
-
Working with Java without "hand-holding" tools or frameworks: I usually work pretty comfortable because the microservices I work on are already created and their build steps established (we use Gradle). But when I consider the possibility of booting a new microservice on my own (from choosing dependencies to establishing build steps and the like), I get a little anxious, I must admit.
I'm already working on those items and have, more or less, an action plan to improve my knowledge on them. Furthermore, I'm complementing my learning with the book "Effective Java" by Joshua Bloch. However, that's more of a "reference" book and it's not really read from cover to cover.
So I guess my question is, what is next? What more should I know at this stage? What Java subjects, characteristics and features does a person with my experience level usually take for granted and is ignorant about? What resources could I use to take my Java to the next level?
Please be aware that I'm trying to stay focused on Java. I'm aware that I also need to learn more about additional frameworks and external libraries, but in this particular scenario I want to become proficient in Java alone and get to understand the language on its own really well.
Thanks a lot!
YouTube channels to learn advanced Java programming?
Where to learn Advanced Java?
A quick skim over the contents of the latest edition of the book Java The Complete Reference by Hebert Schildt is a good place to see what it is that you don't yet know.
It is also an excellent reference and has good examples. If you need more practice and examples you can always visit the official Java tutorials for jdk 8 website.
More on reddit.comResources for learning advanced java?
Need to Learn Java (advanced)
Try “java brains” channel on youtube, this have some good advance java resources.
More on reddit.comHow do I learn advanced Java skills?
To learn advanced Java, start by building a strong foundation in core Java concepts. Then, explore online courses that focus on advanced topics. Practice coding regularly, work on projects, and contribute to open-source initiatives to apply your skills. Joining developer communities can also provide support and resources as you progress in your learning journey.
Can I study advanced Java skills for free on Coursera?
Yes. You can start learning advanced Java skills on Coursera for free in two ways:
- Preview the first module of many advanced Java courses at no cost. This includes video lessons, readings, graded assignments, and Coursera Coach (where available).
- Start a 7-day free trial for Specializations or Coursera Plus. This gives you full access to all course content across eligible programs within the timeframe of your trial.
If you want to keep learning, earn a certificate in advanced Java topics, or unlock full course access after the preview or trial, you can upgrade or apply for financial aid.
What skills do I need to learn for advanced Java?
To learn advanced Java, you should have a solid foundation in core Java concepts. Key skills to focus on include object-oriented programming, data structures, algorithms, multi-threading, and design patterns. Familiarity with Java frameworks like Spring and Hibernate can also be beneficial. Additionally, understanding database management and web services will enhance your ability to work on enterprise-level applications.
Videos
Which are the best Java related contents on YouTube nowadays?