Fun and learning. In a dungeon!


March 15, 2023

RStudio running a browser on a mobile phone playing the tile-based game from the r.oguelike package.

Learn hard and you too can be a mobile gamedev like me.


Today I spoke at a public sector1 event for data scientists2. I said that learning is best when focused into little projects that are fun.

To the point

The abstract sums it up, obviously:

Ever done a technical training module and then immediately forgot what you learnt? Do you sometimes feel like you’re ticking boxes instead of actually developing your skills? Yeah, me too. Luckily, more active styles of learning are available. Maybe you can try working on a small, focused project where you can make mistakes and have fun. I’ve had success with this and, as a bonus, accidentally learnt more than I had planned to. I’ll give you an example of my experience and some ideas for how you might be able to do it yourself. The talk will involve a detour to an underground cave, but you won’t need any extra equipment.3

Yes, a cheeky teaser there to pique the interest. But everyone came to my talk anyway because it was the only one at that timeslot.

You can just look at the slides below if you want (direct link, source). Press ‘s’ to pop out the speaker notes.

These were made with Revealjs via Quarto, of course.

On my soapbox

So what incredible insight did I bring to the event?

Basically, I think ‘module-based’ learning—often passive video walkthroughs with comprehension exercises—are too generic and I usually struggle to remember anything from them.

I think ‘project-based’ learning is preferable. Think about what you actually want to learn and develop a small-scope, discrete project around it. Make the subject matter fun. Fail meaningfully by be being open, recording what you’ve found, and involving your community.

My contrived soundbite is that module-based is done to you and project-based is done by you.

Is this a new thought technology? No. Is it always true and applicable to everyone in every conceivable scenario and with every learning need? No. What’s my expertise? None, really. I’ve just spent a long time in lots of different departments and I can tell you what has worked for me4 as someone who entered the public sector with little computing or coding ability.

Am I all too aware of how self-indulgent this all sounds? Yes. Did I need a whole talk to explain this? No, probably not. I’m happy if just one person stops to think about this next time they want to learn something. I’m also content if one person panicked slightly when they realised that R is a game engine now.


Session info
Last rendered: 2023-07-06 19:26:56 BST
R version 4.3.1 (2023-06-16)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.2.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/London
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] htmlwidgets_1.6.2   compiler_4.3.1      fastmap_1.1.1      
 [4] cli_3.6.1           tools_4.3.1         htmltools_0.5.5    
 [7] xaringanExtra_0.7.0 rstudioapi_0.14     yaml_2.3.7         
[10] rmarkdown_2.23      knitr_1.43.1        jsonlite_1.8.7     
[13] xfun_0.39           digest_0.6.31       rlang_1.1.1        
[16] evaluate_0.21      


  1. On the same day as train and public sector strikes, oof.↩︎

  2. I’m becoming more convinced that I don’t know what ‘data scientist’ means anymore. ‘Old man yells at cloud (computing)’, etc.↩︎

  3. A reference of, course, to my little toy {r.oguelike} project. This is an R package I wrote to achieve some learning goals and also to have some fun; it contains a novelty tile- and turn-based game that the player interacts with in the console. This also fit the themes of the conference—connectivity and patterns—because it contains a procedural dungeon generator and enemy pathfinding.↩︎

  4. Would’ve been smarter to bring, y’know, actual evidence rather than anecdotes to a data science conference, eh?↩︎