Tales from the jar side, week of Feb 24 - Mar 3, 2019
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of Feb 24 - Mar 3, 2019! This week I taught a couple of Java-related courses, plus had a big recording session in Boston for new O'Reilly Learning Paths on Spring and Spring Boot and Reactive Spring.
Let me address that last one first.
And Winter slumbering in the open air,
Wears on his smiling face a dream of Spring!
-- Phil Conners, quoting Samuel Taylor Coleridge's Work without End in Groundhog Day (a rather depressing poem if you read the whole thing, but I'll go with the pun here)
One of the reasons I like creating videos for O'Reilly Media is that they have their own studios, one on each coast. In California, the studio is at the O'Reilly headquarters in Sebastopol. I recorded my Android videos there, because at the time I was headed to a Gradle Summit conference in San Jose and decided to travel a couple days early. The rest of my videos have been recorded in the O'Reilly studio in Boston, MA.
As a No Fluff, Just Stuff speaker, I'm used to speaking in front of a technical audience, often while live coding or at least demonstrating the details of an application. Recording videos for O'Reilly consists of doing the same thing, but this time talking to a camera. The whole process is very natural for an NFJS speaker, especially if they're also accustomed to teaching training classes.
That means I did this a lot a couple of years ago, which is why I have about a dozen video courses at Safari*.
* Yeah, I know. There is no Safari. It's all the O'Reilly Learning Platform, or you can say just Learning Platform, or even Platform. None of those really work for me yet. In earlier newsletters I referred to "The Site Formerly Known As Safari" and I was tempted to assign that some weird, unpronounceable emoji, but eventually I'm going to have to do what they want. I'm just not quite there yet.
The way I normally go about preparing for a new recording is to either deliver a topic as one or more NFJS talks, or give it as an online training course, or, ideally, both. That way I can work out all the kinks in the examples and my presentations, so when I get to the video I can just talk to the camera.
When it comes to the Spring framework, I've been teaching training courses on it since the 2.0 release, which was in October of 2006 (I just looked it up -- my how time flies). It also helped that the Grails framework, which I've been using since about 2007, was based on Spring, so the concepts carried right over.
A lot has changed since those early days, and I had to work to keep up. The biggest was probably the introduction of Spring Boot in 2014. That has been among the most successful software launches I've ever seen. It revitalized what was getting to be an old, clunky system, making it much easier to create and configure Spring applications.
(Around that time, Craig Walls -- author of Spring in Action and the default Spring speaker on the NFJS tour -- told me something big was coming, but wasn't allowed to give me details. Turns out he was right.)
A few years ago, at one of the SpringOne2GX conferences (combining Spring with Groovy, Grails, Gradle, and other projects from the Groovy ecosystem), I approached a booth that talked about getting training on Spring directly from Pivotal (the company behind it now, replacing the previously named Spring Source -- it's a long story). I told them that I wanted to teach for them, and they told me to do so, I had to get certified. That involved taking a certification test, but in order to do that they required me to attend their Core Spring training class.
I had little desire to sit in a class that talked about topics I already knew. They say doctors are the worst patients, and I can vouch for the fact that I have pretty high standards for training courses. I was reluctant to sit in one, but totally unwilling to pay for one, especially given that I had to travel to attend it. I managed to negotiate with Pivotal so that they waived the fee for me and even covered the flight and hotel costs, so I flew to Philadelphia to sit in a five-day class.
It wasn't too bad, though I wasn't wild about the instructor, who slowed the class down so much we didn't cover a good 1/3 of the materials. I understood the motivation. When you realize there are students who aren't getting certain topics, you naturally want to help them catch up, but it's a balancing act. You can't let your more experienced students get bored in the process. Worse, for me this was prep for a certification exam, so I really wanted to see all the topics that were going to be covered.
At any rate, I found a few sample tests online, and between them, the training class, and my own experience, I easily passed the exam. After that I taught a couple dozen training classes for Pivotal over the next few years, and even helped break in a new instructor who is now the head of the program. The best part was that I became quite familiar with the official training materials used by Pivotal, so I knew what parts of the framework they cared about and what issues they emphasized in their exercises. All of this meant that when it came time to propose a Spring framework video for O'Reilly, I was as ready as I could possibly be.
My first O'Reilly recording on Spring was called Spring Framework Essentials. That was back in 2015, when Spring Boot was still shiny and new. As often happens, I didn't have my apps well prepared before I went into the studio, but I was able to build and explain everything as I went along. That video was released in January of 2016, and has been my most successful product there ever since. It currently has 60 reviews, with an average rating of 4.9/5.
I have to admit that really surprised me. I knew it was solid, but I never expected it to do that well. It has earned double what any other video I have there makes every month since it was released. It's another lesson to me that in the technical world, when it comes to sales, the topic is much more important than the instructor.
It's been three years, though, and again a lot has changed. I've kept up with those changes in my online and on-site courses, but when I was told about the new Learning Path 2.0 system, I was eager to update my videos.
By the way, the whole "Learning Path 2.0" concept means that in addition to the video parts of the course, there are supposed to be text snippets, references to other materials, and (ugh) assessments of student progress and learning. One of the reasons I teach training courses rather than academic courses is so I don't have to grade anyone, but these aren't about grading. They're supposed to help the students measure their own progress. I still have to complete all those extra features before my new videos can be released.
In the end, we recorded two Learning Paths -- one for Spring and Spring Boot, and one for Reactive Spring. I already had a Reactive Spring video, too, but I figured I could update that during the same recording sessions, assuming I could keep my energy up long enough. As a result we recorded about six hours of video (four for the basics and two for reactive) over two days, which was pretty intense. I even managed to throw in a brief section on Spring with Kotlin, which may turn into another full video down the line.
Now the videos need to be edited and processed, and I have to supply all the supplemental materials, but I expect everything will be released before the end of the month. I'm sure I'll talk about that here when it's ready.
JUnit 5 and What's New in Java
The other courses I taught this week were an introduction to Testing with JUnit 5, and a free-form course I call What's New In Java. Both of those are fun for me. The developers who re-wrote JUnit to move to version 5 did an excellent job, and I'm happy to show everyone the details.
That, by the way, is why I'm an instructor rather than a research scientist. I'll get into my history in another newsletter, but as a teaser, one of the biggest moments in my career happened while I was still stuck at United Technologies Research Center in a job I disliked in an environment I hated. I had already moved from research to a software group (which actually had Artificial Intelligence in the job title, back before it was cool), and a new Assistant Director took over. As I got to know him, my opinion of him kept going further and further down. He was what I would now call a buzzword architect. All he knew how to do was to mimic his boss's goals and inject various buzzwords into them without understanding anything.
Actually, I'm sure that's not true, but that's where my frame of mind was at the time. I was bitter, cynical, and desperately unhappy. I was struggling to find any way out of my situation but couldn't imagine anything better.
That director gave everyone a copy of the book The 7 Habits of Highly Effective People (yeah, he was the kind of person to do that) and made each of us write our own personal mission statement. Very reluctantly, I decided to go along with at least the mission statement part. I remember writing something like, "I want to work with software and the latest toys, learning about the newest developments in the field, and telling everyone about them."
As it turned out, that was more or less correct, and became the basis of everything I do now. It took me a few years to reorient my life around those principles, but eventually I got there.
My What's New in Java course fits that bill exactly. The class lets me show developers what's changed in Java in the last few years, in a way that helps them decide when to upgrade. It's a fun course that changes every time Java has a new release. The next release is scheduled for this month, so I'll get to update it again.
Last week:
Testing with JUnit 5 on O'Reilly Learning Platform
What's New in Java on O'Reilly Learning Platform
Recording Spring and Spring Boot and Reactive Spring learning paths on O'Reilly
Next week:
The DevNexus conference, where I'm doing a one-day Kotlin tutorial
Lots of writing, hopefully. I'm headed for an "early access" release of my Kotlin Cookbook, as well as an early review of Managing Your Manager.
Longer term:
Music in the Meetinghouse concert with my wife on Saturday, April 6, at 7:30 pm. I'll have more to say about that over the next couple of weeks. See this pdf brochure for details.