You should make more useless packages. To be more specific: make packages that are useful to you, but might be useless to others.
Because building silly stuff is fun and sets the bar low for you to play and learn.
I’m a big fan of Simone Giertz (see all the gifs in this post). Simone is known as the ‘Queen of Shitty Robots’ and has a youtube channel where she builds robots that are, uhm, not very good at the thing they’re designed for. I can not explain how badly they fail except showing some gifs of the typical results:
and linking to her channel.
Learning while playing
Recently Simone gave a TED talk about why we should all create useless stuff and I thought it was both hilarious and inspiring. Watch the video here or at the bottom of the page where I embedded the youtube iframe.
In the talk, Simone tells us that, when she was younger she was very afraid to fail. She thought she was only pretending to be good at something and that she got very frustrated when something didn’t work out immediately. But when she wanted to learn more about robotics she took a completely different approach: she would make the shittiest thing possible. You see, when the robot failed, the project would still be successful!.
And when the expectations and tension got away, she actually enjoyed working and learning new stuff. The way a child might learn! Playing while learning.
And that is what I have been doing all along. I take ideas and build stupid packages around them. They are never published to CRAN, remain on my github in an abandoned state, but that doesn’t matter! I build stuff to learn more.
Silly things that taught me more
For instance: I saw the image magick package and noticed how cool it was, but I never really got it. I wanted to learn more, so I made a bananafyer. A script that adds bananas to any picture ( projectlink, blogpost about adding bananas, blogpost on how to extend it ). Along the way I learned something about building command line tools.
I had short periods of coffee related projects and interests.
- I kept track of how many coffee cups I drank over a period of months (coffee data and analyses of coffee as a package)
- created a bunch of color schemes and coffee help in coffeegeeks package
I’ve created a scale to measure how much R-nerdiness you have https://github.com/RMHogervorst/r_scale Made multiple data sets:
- I created a data set of werewolves https://github.com/RMHogervorst/werewolf,
- a data set of unicorns and unicycles https://github.com/RMHogervorst/unicorns_on_unicycles
Or a list of things that should be a package but aren’t yet https://github.com/RMHogervorst/shouldbeapackage
Sometimes I go a bit overboard and even create a whole new organisation with a single useless purpose:
At useR2017 I insisted there would be karaoke, pressed people for their favorite songs
- Raoke package https://github.com/raoke/
- with accompanying shiny app https://rmhogervorst.shinyapps.io/powrballad/ to select a song
- https://github.com/rtrek with TNG phrases and stuff.
Build more silly things
I am slightly embarrassed when I look at all this stuff, but deep down I also feel pride. I had so much fun creating this all! Building silly things is a very creative pursuit. I’m creating something that did not exist before.
Now, I don’t play any instrument, I can not dance, my sketches look like they were drawn by a 12 year old, but I DO know how to add dancing bananas to any picture. And that counts for something.
So when you want to learn something, build something silly. Create something new that makes you laugh. And while you play, you learn! you don’t have to put online of course, but if you do, you’re helping others. So it might be worth it.
And here is Simone Giertz TED talk: ‘Why you should make useless things’ :