As I have stated in an article earlier this spring, I have been somewhat busy during the last few months. The reason for this was the Core Spring 5 training and certification.
In this article I will share my experiences with both the training and certification as well as some thoughts on the subjects.
On January 16th 2018 I found myself in Amsterdam for the four-day Core Spring 5 course at the Trifork office. The reason for attending the course on this particular occasion was that it was one of the last courses that included a certification voucher in the price.
Prior to going, I was under the impression that I had to attend the course in order to be allowed to take the certification test. Only after arriving I learned that Pivotal had removed this requirement some six months earlier. I’ll write more about my impression of the training, but for now I just want to say that I do not regret taking the four-day training and I do feel it was money well spent.
The entire training was conducted in English by Joris Kuipers to a group of six developers, me included. First of all, it was very obvious that mr Kuipers has taught this course before – in fact he has been training developers in Spring for ten years! He is very knowledgeable and extremely experienced. He were able to answer all questions from the students without the slightest hesitation. In addition, I understood that he is still working as an architect and/or developer and thus has a sound connection to the reality of software development.
For the exact specification of the curriculum of the course, please refer to Trifork’s webpage. An even more detailed description of the course contents can be found as a PDF on the Pivotal Core Spring Training webpage. The topics of the course matches those of the certification very well. As far as I am concerned, the areas covered in the course make up a solid foundation for developing in the Spring echo system.
One thing that did strike me was that there were very few, if any, references to the, at that time, recently released version 5 of the Spring framework.
The theoretical parts consists of a massive set of slides – there were 1135 of them in the PDF document that I were allowed to download prior to attending the lessons.
The material is fairly detailed and there are information in the slides that, more or less, directly answers a few of the questions asked in the certification study guide, which I had some difficulties finding elsewhere.
The course consists of an even mix of theory and exercises, which I found very good. Given that the scope if the course is quite large, I would say that the exercises are necessary in order for the students to be able to remember anything after the completion of the course. The exercises are well-prepared, sort of “fill in the blanks” exercises that consists of writing code to complete one or more aspects of a smaller example program. For each lab exercise, you are given two projects; one that you are to work in and a solution project.
The course naturally suggested the Spring Tool Suite to be used when working with the exercises, but I had no issues working in IntelliJ IDEA under Ubuntu Linux.
Thoughts About the Training
As before, I feel that taking the Spring Core 5 training was very worthwhile for me, despite the fact that I have used the Spring framework for many years.
Given that the course is not really new and the cost of the course, I would expect the slides to be completely revised for Spring 5 and to contain a small amount of errors, if any.
Regretfully this is not the case. The quality is not poor but rather not as high as I would expect. At times I had the feeling that Pivotal is just retaining this training in order to earn a little more money out of it without wanting to make any further investments in it.
Scope and Prerequisite Knowledge
Some of my fellow students were beginners with the Spring framework. While I did not ask them, I suspect that they were more or less overloaded with information. If I had employees and wanted them to take the Spring Core training, I would let them work some time to gain some basic familiarity with the Spring frameworks before sending them to the training.
For me, I feel that the training very nicely detailed my knowledge and extended it into previously unknown territories.
I may be wrong, but I cannot recall anything in the course that explicitly mentioned the additions to the, at the time, recently released Spring 5 framework. It would have been nice if there had been a section of the course dedicated to talking about new features of Spring 5.
As far as the exercises are concerned, I felt that they were a bit too simple. I would have wished for exercises that forced me to think more and work more with API documentation and reference literature. I realize that this may be a trade off that had to be made in order to be able to cover that big a scope in only four days.
The time allotted to each of the labs were, as far as I am concerned, sufficient. The only occasion when I felt like being in a hurry was when I couldn’t get a pointcut expression quite right but that is not something I can blame anyone but myself for.
After having taken the training I were given a certification voucher that were valid for three months. Note that you no longer get these vouchers when taking the Spring Core training!
Given my previous experiences when taking certifications and the fact that I had to undertake all preparations in my spare time, I would have wanted at least six months to prepare for the certification examination.
I do wish that I had more time for a pet-project to familiarize myself with, for instance Spring Security, which is one of my weaker areas.
Computer-Based Certification Test
I am used to certification-tests where you go to a test-center, enter a small room and spend one to two hours alone with a monitor and a keyboard doing your test.
The Spring Core certification is a computer-based certification which you can take anywhere that you like, given the requirements stipulated on the website of the company that delivers the exam.
Prior to taking the test I had to install a special browser extension and check that my computer met the requirements. This can be accomplished at the webpage of Examslocal, after having selected which exam you want to take.
On the test day, which for me was a Saturday, I chose to go to the office and sit in a conference room in order to ensure that I would be undisturbed during the test and have access to a wired network connection.
During the entire exam, the webcam of your computer will be switched on and you will be monitored. All interaction with the person monitoring you is done through a text-only chat. Before starting the test I also had to show the room as well as the underside of the table I was sitting at to the person monitoring my test.
The test itself consists of 50 questions that contained a number of alternatives. Some questions explicitly stated that one single answer was to be given, others allowed you to chose more than one answer without telling you how many answers were to be given. Finally, if I remember correctly, there were at least one question in which you were to give a specified number of answers.
As usual with this kind of tests, questions can be flagged for review. I could also go back to earlier questions and change my answer(s) if I wanted to.
Thoughts About the Certification
I feel that the questions were good – no trick-questions or similar appeared in my test. The questions were not necessarily easy, as some were quite detailed even down to the level of method-signatures.
The questions where you are to supply an undisclosed number of answers are obviously more difficult compared to questions with a given number of correct answers. However, all questions that I encountered in the test I took were reasonable.
The key to successfully passing the certification is real-world experience with the different topics, so I recommend taking your time to prepare writing as much code as you feel necessary.
You need to answer 74%, which is 37 questions, of the 50 questions correct in order to pass. I did pass the test with 86% correct answers. I would have wished for 90% or more, but given the time constraints I am happy with the result.
All in all the experience is a positive one and I feel I have learned a lot from attending the training and preparing for the certification. Apart from learning, the training has also made me more curious to discover the Spring framework, Spring Cloud, the new reactive parts of Spring etc in even greater detail.