Table of contents
- Make sure you explore surroundings of the question
- Preparation and resources
- Why and is it worth it?
- Would it be possible to pass without preparation? (Was asked by my colleague)
- Additional resources
This article is aimed to share my Spring Certified Professional exam experience including preparation (resources, time, schedule) and few details about the exam itself.
The best way to start is to look at a few guides and instructions from the official Pivotal Spring Certification page. There is a Study Guide and Exam Brief that pretty much cover most of the exam details you're wondering about. Quick summary: it's a multiple-choice exam, 50 questions within the timeline of 90 minuted. It's designed to test your knowledge of Spring Framework and various parts of its ecosystem.
Make sure you explore the surroundings of the question
At the end of the study guide there is a statement that I would like to question "When you worked through this guide and know all the answers, we are pretty confident that you should pass the certification". To be frank, it's true and false at the same time, depending on how you would approach questions from the guide. I started doing so in a very straightforward way, answering questions directly and in the end, was confident that I'm ready (it turns out I wasn't, but fortunately I realized it before passing the exam thanks to the simulator that I would come back later in the article). In addition to knowing answers to a question, make sure you explore all the possible scenarios/usages/exceptions around the term since the exam is indirectly aimed to shift your "Spring as a black box" mental model to focus on internal mechanics. To give you an example there is a question "Can you describe Scopes for Spring beans? What is the default scope?" where I would list scopes and define each of them. However, there are other aspects of this question such as bean injection where prototype bean is injected into a singleton and scoping behavior is different (depends on the implementation).
With the help of the exam brief, you can list most asked topics based on the percentage from the top to bottom. This can be helpful if you're is short on time. In this situation, I would recommend spend a decent amount of your time on matters like "Container", "Boot", "AOP", "Transactions", "MVC" since it covers the biggest part of the exam and gives you answers on the majority of questions. Short aside: It doesn't mean you shouldn't look and learn subjects like "Actuator" or "Spring Security", the intention of the aforementioned is from a time management perspective. In the end, your goal is obvious - to gain as much knowledge as possible and answer all the questions.
One of the reasons you might be short on time has to deal with exam schedule - I usually tend to schedule exams when I pass ~50% distance. It helps to keep the ball rolling by the pressure of an actual deadline (since all the prep work is in your free time). However, at the same time life happens and the deadline is approaching - you have to carry on considering the amount of time and questions you need to answer to pass the exam.
From a duration perspective and my experience, 90 minutes for 50 questions is more than enough (again, everybody's experience is different). It falls under the category - whether you know the answer or you don't. There is no middle ground. It's also worth to mention passing score 76% (which I believe is generous) - allows you to fail 12 questions.
Preparation and resources
As was mentioned, the best way to prepare is to answer all the question from the Study Guide. It's good if you know all of them (you can skip the rest of this article), but if you don't here are a few options:
Official Spring Documentation
The best and ultimate source of truth, always free and up-to-date. Unfortunately, some of these pages are not-google-index friendly, so it might take a while to find them. Even to have a reference for future me, posting them here:
- Spring Framework documentation
- Spring Boot documentation
- Spring Testing documentation
- Spring Data JPA documentation
- ..and others...
The issue with documentation is that there is a lot of content which makes it time-consuming to find an exact answer to your particular question. Although I will list alternatives, it's worth remembering that the exam heavily relies on the official documentation. If you go through partially or through all of it, please pay attention to green "Admonition blocks" such as this one:
"Core Spring 5 Certification in Detail" book from Ivan Krizsan
The best part of that book is that contains exact answers on each question in detail. Here's a link - Core Spring 5 Certification in Detail.
During the time I was studying, some parts of this book were outdated since initially it was designed for Spring 4.x (by the time I'm writing this article the latest Spring Framework version is 5.x as in the exam). However, I got a few notifications on the email and recently checked - this book is completely up-to-date with the most recent version of the exam. Thanks a lot and great job Ivan!
Video course from Dominik Cebula
If you're like me, retain more knowledge from audio and video content, the landing page of the Pivotal exam mentions official Spring Core course. It can only be attended at a specific time and lasts four days in a row, which makes it cumbersome from the time perspective (it also costs some money for an individual - at the time of writing this article is $3,200). As an alternative, I found this course from Dominik Cebula to be very handy (I'm not compensated for the link and only share based on my personal experience) which you can attend at your own time and pace. This course is still in development, but few modules cover fundamental and frequently asked of the exam.
Testing your knowledge
After you successfully answered all the questions from the Study Guide, I would recommend practicing them via practice tests. There are quite a few available on the web (free and paid). One of the best and the one I would recommend is at certifications-questions.com (note: I'm not affiliated in any way with this website and don't receive any commission, all recommendations based on my experience). They do have enough questions to verify your knowledge and identify any gaps (like the one I mentioned with bean injection). During the time I was going through it, I noticed some outdated questions from the old version of the exam containing XML configuration for spring beans, spring-security, and other modules. However, the owner keeps the website regularly updated and these parts are updated to include Java configuration or/and annotation style answers. The bottom line: it's still very well worth it even if you encounter some outdated parts.
I heard some people are very against practice questions. I don't share that opinion and believe that it's still important to go through practice quiz to get in the mood of a "quiz" (such as understanding a sense of time crunch and being able to quickly shift from the depth of one topic to another).
Another good example of free pdf practice questions is javaetmoi.com (big thanks to the author).
Why and is it worth it?
It's not a secret that simplicity of working with Spring Boot makes development much easier compared to traditional, custom and non-framework approaches. However, at some point, you want to know how does all of that "Spring's magic" works. That was the biggest motivator for me. Not only that, but it gave me more holistic knowledge and confidence in some particular areas that I didn't have before.
Is that worth it? I could not find a better phrase than MOSS GU has in this article(listed below):
The certification itself is worthless but the knowledge is invaluable. You don’t have to pass this certification to gain knowledge. This certificate is just a test that you have gained this knowledge.
Would it be possible to pass without preparation? (Was asked by my colleague)
It depends on the level of your experience and detailed knowledge of Spring/Spring Ecosystem. Take a look at the questions from Study Guide. This would help you to answer this question.