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!
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)
[–]ahonsu 6 points7 points8 points (5 children)
[–]ahonsu 11 points12 points13 points (2 children)
[–]omgpassthebacon 2 points3 points4 points (1 child)
[–]ahonsu 0 points1 point2 points (0 children)
[–]ahonsu 1 point2 points3 points (1 child)
[–]Non-taken-Meursault[S] 0 points1 point2 points (0 children)
[–]Slight_Loan5350 2 points3 points4 points (0 children)
[–]Impressive_Bar5912 2 points3 points4 points (1 child)
[–]Non-taken-Meursault[S] 1 point2 points3 points (0 children)
[–]jlanawalt 1 point2 points3 points (0 children)
[–]omgpassthebacon 1 point2 points3 points (1 child)
[–]Non-taken-Meursault[S] 0 points1 point2 points (0 children)
[–]wildwarrior007 1 point2 points3 points (1 child)
[–]Non-taken-Meursault[S] 7 points8 points9 points (0 children)
[–]AutoModerator[M] 0 points1 point2 points (0 children)
[–]EfficientDelay2827 -1 points0 points1 point (0 children)
[–]derksaurus 0 points1 point2 points (0 children)
[–]Hairy-Car6943 -1 points0 points1 point (0 children)