PASSED! Scott’s Experience Taking the Java 21 Certification Exam 1Z0-830

As we mentioned earlier this week, Oracle announced their new Java 21 Certification Exam 1Z0-830 this week. Being a gluten for punishment, I signed up as soon as it was available to take (Thursday). I passed! But with a much tighter margin than I expected. Read on for more details.

What can I say about the exam? Well, first signing up and taking the exam is a completely different process. It’s all remote now! We will be posting a series of articles covering the steps to take the exam (and there are many!). So I’ll leave off those details for now.

The 1Z0-830 exam itself is very different from past exams. The first hint was they raised the exam time from 90 to 120 minutes. And I can see why! The questions (and answers) on the exam are quite long. While there was a handful of singe-page questions, the vast majority required scrolling multiple pages. This was compounded by the fact for some questions, each multiple choice option contained 20-30 lines of code with 6-10 options available. Process of elimination can be a slow process if you’ve got to eliminate 9 out of 10 answers!

I don’t know about you, but reading over a hundred lines of code for a single question is really time consuming! I ended up finishing with only 5 minutes to spare.

There’s no other way to put it, but the exam was difficult. While I think all of the questions were in scope (and covered in our new Java 21 1Z0-830 book coming out later this year!), I’ve never seen so many topics mixed into a single question. As an example (not real!), a question might have a 15-line code sample and then asked you to select 2 out of 6 interface declarations (~20-lines each) that will make the code print “Hello World”.

If you expected the options to all be similar, you’d be wrong!

Some of the options were vastly different than others, testing all sorts of things. As a further example (again, this isn’t a real question), one interface might be wrong because it includes a private instance variable, while another might be incorrect because of some inheritance issue. Furthermore, another might be wrong because it includes a pattern matching switch statement that is missing a default clause.

TLDR: Oftentimes, each question covered topics across multiple objectives.

There were the occasional question that limited its breath to a single objective, but I found that to be the exception, not the rule.

As for content, I can’t give too much away but I will say this:

  • [New Java 21 Feature] Pattern matching switch was definitely on the exam (with and without records)
  • [New Java 21 Feature] I didn’t get a question about Virtual threads or Sequenced Collections, but that’s likely just bad luck of the draw.
  • Previous exam topics like JDBC/Annotation/Security were not on the exam (reflected in the objectives).
  • Logger.getLogger() appeared on the exam but don’t panic. You don’t need to know anything beyond it, other than it being an alternative to System.out.println().
  • Records were definitely on the exam. Like. A lot.
  • Streams, while certainly still on the exam, weren’t as challenging or centrally focused as they had been on previous exams. In fact, when I saw a stream question, I was excited because they tended to be shorter and easier to read (direct opposite of my previous exam experience!).
  • Modules were on the exam. I actually thought the module questions were fairer and more self-contained than other questions, in part because you can’t easily mix modules with other topics like pattern matching or threading.

When taking the exam, you absolutely need to pace yourself! If you get a question that’s just too long, you should definitely skip and come back later. Unfortunately for me, at least half of the questions were quite long to read. Another tip is to study the options carefully (which is really hard to do in a short time and given the 20-30 line length of each option) to try to spot differences. For example, if you can spot that 4 out of 8 questions use a bad modifier or return type, you can answer it much more reliably. Unfortunately, many of the questions bordered on being eye exams. While I could have easily spotted a private modifier in the wrong place on a short code sample, add multiple layers of inheritance and dozens of lines of code, and it blended in surprisingly well. The questions were fair, but quite difficult.

Oh, and scrap paper. You need scrap paper. There is no in-app whiteboard (like they did in the past for some exams). Since it’s proctored remotely, I asked my proctor before I started I could use blank sheets of paper. I held the sheets up to the camera one at a time, and they approved. I don’t know if Oracle has a policy, so it might be proctor specific. Scrap paper was critical in part because if you have to pick from 2 out of 10 options, you need to some way to track what you’ve eliminated (the right-click to cross out feature has been off the exam for years now). There were also a number of questions that involved doing math (order of operation, nested for() loops with lots of variables, etc) that tracking variable states was hard.

On the plus side, my results were available immediately on the screen as soon as I submitted the exam, and the certificate was posted to my Certview within the hour.

We’ll have more details after Jeanne takes the exam, so stayed tuned!

It’s a Book! OCP Java 11 Complete Study Guide Now Available!

Update (11/05/2020): Read The 1Z0-819 Exam page to learn how you can easily our Java 11 Study Guides to prepare for Oracle’s 1Z0-819 Exam, as well as the 1Z0-817 Upgrade Exam.

Jeanne and I thrilled to announce “the birth” of our new OCP Java 11 Complete Study Guide! This nearly 1200 page tomb of work is the combined product of our two recent OCP Java 11 Study Guides (Programmer I and Programmer II) and contains everything you need to pass Oracle’s the 1Z0-815, 1Z0-816, and 1Z0-817 Java exams. On top of that, it’s filled with challenging practice questions, interesting examples, and a bit of fun and humor.

Available for purchase now in physical or digital editions, where ever books are sold.

the effective remote developer – live blogging at qcon

The Effective Remote Developer
Speaker: David Copeland @davetron5000

See the list of all blog posts from the conference

David has worked for 4 years remotely. Most people are remote.

Definition of remote

  • “You are remote if you do not often interface face-to-face with the people you work with”
  • hard – lone wolf – only one person is remote
  • easy – everyone is remote
  • also – multiple offices

Definition of effective

  • Productiving value
  • Agency – don’t just want to be closing jira tickets
  • Inclusion – don’t want to be that guy in Alabama that people send work to
  • Rewarding

Not easy; takes constant upkeep

Benefits

  • Freedom & flexibility – no commute, acccess to own kitchen, live where want
  • Company has access to wider pool of talent – slowing down ability to liver by restricting to specific area

Must build with people you don’t know and maintain trust with people that don’t.

Trust

  • “the half life of trust is six weeks – it must constantly be replenished”
  • Communicate frequently and clearly – Turn big projects into small ones. Everyone knows what working on. Get early feedback. So shows value delivering. Provide more context. Read what wrote and revise at least once. Use bold/underline/whitespace for clarity.
  • Be responsive, but set boundaries – publish your working hours (including time zones). Put in email signature and comment if meeting outside working hours. Developer a worklow where you aren’t heads down coding for hours; develop mental SLAs for communication. Specific affirming (positive) feedback is useful.
  • Assume good intentions – we are not good at critiquing. remember the reviewer is trying to help even if sounds cold and harsh.
  • Help others help you – go to chat or video for people who don’t communicate well over emai. Find out how everyone best communicates. Be specific in what type of feedback you want

Base level of technology

  • Easiest thing, but need to be successful
  • Chat system that is easy to use
  • Video conference that supports multiple people
  • Better mic than laptop mic

Types of communication

  • Coding – Think about smallest viable change. Write better change requests so can judge your changes. Learn to screencast (quick video) and diagram.
  • Synchronous – ex: video chat. Experience people as a human when not present. Be prepared. Formulate opinion in your mind. Use nouns instead of pronouns more than you think in case a few words drop. Also, pause more frequently and ask for feeback. “Any questions before I move on”. Don’t multitask; pay attention – best case is missing info; worst case is getting called out or having to ask. Have regular backchanel for tech issues.
  • Asynchronous
  • Socializing – If quiet in office, people still know who you are and that humanizes you. If remote, you are a producer of emails. Use time before meeting starts to socialize. Have one on ones with no agenda. Like scheduling time to stand around the water cooler. Travel to meet others in person. Accept that will miss happy hours

Remember computers are terrible and nothing works. Can bond over shared bad experience.

When interview, do chat and give take home project (add a few features) then pair program remotely to add another feature. Then fly onsite to interview. Have hired a few without flying in

Dedicated area at home to work.

Many of these tips are helpful even without remote developers.