Paul Anilprem wrote:
1. OCA 8 focuses on basics and is doable without going mad over stuff that no one expects you to know anyway (at this stage of your career i.e. Jr Java Developer).
I agree with this point in a different way, but not in terms of certification.
Skip to avoid my rant below:
I got the
SCJP in 2000 and
SCJD in 2003 and my skills were obsolete and so I need to reskill.
(I recently lost my job at a large bank).
Studying for Java17 OCP 829, I am stunned by how much complexity has been added since Java 5.
Most of the complexity comes from adding a new feature and trying to make it backward compatible with all the previous ones.
Hence there are a lot of edge cases and corner cases because of so many permutations between new and old features.
Because they do not want to delete old features and force everyone to upgrade. (For instance, generics and type erasure to retrofit into Java 1.0).
Furthermore, I found that most of the code wherever I worked in standard companies, was at a Java 5 level.
(I don't know about the elite F-A-A-N-G companies) .
If Lambdas and streams were used, it appeared to either a geek was trying to exercise his/her new knowledge by gratuitously rewriting a for loop into a stream (!) or it was forced by the software API they were writing to.
For instance, Splunk Java library API returns a Stream and so you have to use it as such.
SpringBoot framework method signatures have wildcards and generics and so you must know them.
But Java is no longer the most important part of a developer's suite.
Nowadays one must learn Spring, CICD, Cloud and each of them have their own certifications and steep learning curve.
IMHO if you are going to get a Java certification, then just go ahead and get the latest so you will not have to retool and get another one for (say) 10 years.
If you are just trying to learn Java, then just learn it and save your voucher money for a cloud certification!
Last year, I was shocked to learn that Java is no longer the most popular language - it is 3rd.
#1 is JavaScript, #2 is Python. Imagine that - a despised scripting language has beaten us!
When I wanted to learn AI using my Java knowledge, an AI guru told me that almost all AI uses Python.
I really wonder whether Java is tying itself into knots by all this complexity by insisting on backward compatibility, and that will be the end of Java.
Of course, there are Java gurus like Ken Kousen who insist that "Java 17 is not complex", when I said so in an online chat!
(But he most likely has 80 IQ points more than me and is not your average software engineer).