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’ :