Failed the Oracle Certified Professional: Java SE 21 Developer exam — and instead of stewing, turn it into a project.
Similar to YAML being “yet another markup language” despite its official mantra “YAML Ain’t Markup Language” — you might ask whether ‘YABL’ stands for Yet Another Blog Listing?
Long story short: the reason is self-challenge. If this blog turns out helpful to others, that would be a plus. The self-challenge is to, with a healthy dose of discipline, try and improve my Java coding skills and better master adjacent subjects.
Why?
Well, on June 6th, I did not pass the Oracle Certified Professional: Java SE 21 Developer (1Z0-830) exam (“OCP21”). After ample study and more than a decade of Java programming experience, I thought my preparation was sufficient. Unfortunately, it wasn’t. The OCP21 has become quite difficult, and considerably more so compared to past exams.
Java evolves, and so does the amount of material to master. The list of exam objectives is quite staggering. Also, the test itself has changed. It used to be relatively short multiple-choice questions. Now, the questions and especially the answers choices are long. Very long. So long that you find yourself scrolling down pages — just to scan through them all. Inspecting long questions — and even longer answers — takes time. So much so that I ended up in a time squeeze. For the last questions, I just gambled as there was no time left. If I had gotten just four more questions right, I would have passed..
Turn a failure into a project: a blog
The bigger the challenge, the sweeter the victory. Passing the OCP21 (or OCP25 for that matter, as JavaSE 25 has just been released) will be such a challenge. And this blog will help me with that.
Why? Well, I’ve noted that to really pass the OCP21 exam, I’ll have to:
- read the Java Language Specification (“JLS”) from start to finish;
- complete many exercises using my IDE1 (and perhaps, ideally, without an IDE, using plain Notepad or vim); and
- practice example questions under time pressure, forcing me to switch quickly between various subjects — ranging from high-level topics (like module migration strategies) to low-level details (like javac command flags).
This all sounds fun, right? Well — no.
If you have trouble falling asleep, try reading the JLS, for example. At least I found myself dozing off more than once. Nevertheless, understanding the language — and particularly “why” certain things are the way they are — is important. If you understand the “why”, you can typically deduce the nitty-gritty details that you’d otherwise have to memorize.
Add some necessary fun to the mix: a blog!
This blog is meant to add the much-needed ingredient of fun to the above-mentioned mix of tasks. If I am going to read the JLS “cover to cover” (granted — it’s HTML/PDF only), I know I’ll be making loads of scribbles and potential exam questions and answers. Ideally, I’d go through all of these frequently and in random order. For that, flashcards would work, but due to their limited length they would not train the necessary skill of quickly scanning lengthy answers.
So, instead of flashcards, why not try making my own test bank in Java? There may already be others available, but hey — why not take on the challenge of coding it anew in Java? And if I make my own test bank, why not host it myself?
I decided to do just that and add that bit of fun to the mix. Now, this very blog is indeed hosted on my own server — an age-old HP Proliant MicroServer that has been idle for years. I could have used a VPS2 or a cloud provider, but where is the fun in that?
Doing it all myself has another advantage: there are no legal constraints preventing me from pentesting my own blog/website/hardware. Offensive security and penetration testing are also some of my favorite pastimes. So, bear with me — and see how it all evolves 🙂
Leave a Reply