Learning by letting others workout in the Gym - #JoelKallmanDay

This year I'm on the road for Joel Kallman Day, speaking at POUG 2024, AOUG (EMEA tour 2024), HrOUG 2024 and DOUG Day 2024. But when it's Joel Kallman Day, it's Joel Kallman Day and I can't miss it.

So I thought of a little non-technical thing to write about: How I learn by letting others do the hard workouts... 


If you don't know Oracle DevGym yet, I strongly suggest you play around with it. It's great for giving you a mental workout while most likely learning something you didn't already know (or at least get a refresher.)

The DevGym is crammed full of quizzes on SQL, PL/SQL and other Oracle database related topics. And where do these quizzes come from, you ask? Well, over the years there've been multiple quiz authors, starting with the founder of the site, Steven Feuerstein. One of these authors is yours truly, having written a good deal of mostly SQL quizzes (but a smattering of other topics as well.)

And here's where I learn a lot...

Typically when I write a quiz, I start by figuring a topic. Often I'll open the SQL Language Reference page. Here I alter the original URL https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/index.html by replacing index.html with toc.htm to get https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/toc.htm (this I do with many of the reference manuals, as the toc.htm is so easy to Ctrl-F in, so I've bookmarked many toc.htm URLs.)

When I have the manual table-of-contents, I scroll down to "some point not near where I last did something", like maybe about two thirds down or quarter down or whatever, and start looking for a reasonable topic. When I have a topic I like, I try and think of a "demo use-case" I can create a question about that'll teach what point I want to make with the quiz.

Having typically made a table with some data and a question with a desired output, I set to work creating a set of possible pieces of code that either produces that output or not (either produces wrong output or raises error.)

And this is where I learn so much doing this. In normal work I'd make a reasonable working solution - done. Here I try and make multiple solutions that work, as well as multiple that don't work - and sometimes I'm surprised and discover that what I thought would work, does not, or vice versa. Or I'm surprised to read in the manual something that causes me to go "oh, I didn't know that, I need to include that in the quiz."

So to all you out there that use the DevGym - thank you! Making you work out is making me learn lots of interesting stuff. It's a win-win - we all grow smarter. And that's also a community effort...

Comments