In Memes We Rust

Learning Rust to make a Mocking SpongeBob text generator

Katie Hughes ✨
3 min readJul 25, 2018
Having fun is an important step in my learning process.

This may seem like a familiar scenario:

  • My friend says a comedically judgmental thing on Slack.
  • We all respond with an emoji representing the Mocking SpongeBob meme.
  • I try retyping their message, alternating case.
  • It’s a pain.

That was all it took to add a new item to my “learning project ideas” list: spongemock CLI. It’s simple enough to be done in one sitting but is dumb and frivolous enough where I find it fun and interesting.

Is it unique? No, of course not. Does that mean I shouldn’t do it? No, of course not!

I had been wanting to learn Rust for a while but never made it a priority. It seemed really fun! People I admire were learning it! I should learn it! So I did.

I had a week off and while I was just lounging around a house in the high desert of Oregon, sipping gin and tonics, I decided it was time to learn Rust (and work on that silly spongemock idea I had).

I found The Rust Programming Language Book (apparently called “the book” according to at least the rust lang documentation page) and immediately enjoyed how well written it was. In college, I majored in computer science and minored in psychology and the quality of textbooks was day and night: psychology books just got how people learned in a way computer science books didn’t.

The way the Rust book was formatted reminded me of those psych textbooks — it was cognizant of how people (specifically, its intended audience of engineers) learn. There’s some basic getting started but it immediately dives into a project and explains things enough as you work on it. Then it goes into details of how things work until it’s time for another project.

I decided that after the project in chapter 2, I would start working on my spongemock program and just see what I can do.

Chapter 2 gave me a really solid foundation: some input, some output, a little looping — great! I filled in the gaps I needed to complete a basic spongemock by searching for it myself. A lot of those gaps were around string and character manipulation. The way Rust handles strings and characters reminded me of C (what I mostly did in college) more than anything I’ve done in a while.

This strategy of information gathering got me pretty far! I could ask for input and mock it by alternating case for letters only, leaving alone any other character.

I mean honestly that’s the heart of spongemock. But I started dreaming up ideas! For example: making it more of a CLI than cargo run and taking command line input (it does now!) and maybe even having flags and reading from files. That’s when I started having a harder time understanding what I was finding online.

BUT GUESS WHAT: the book is so well formatted and teaches a command line program with file I/O as chapter 12.

I’ve decided that this project will be a work in progress as I go through the book. It was a good learning project because I could do it in one sitting and knock out what I needed for basic functionality. It was also a good learning project because it can grow as I learn:

  • As I learn better practices
  • As I learn file I/O
  • As I learn more about building a CLI
  • As I learn more about being a Rust programmer!

I wish my operating systems education had been less judgmental. Rust seems like a good community to relearn systems in a healthier way. I like this project because it is small, bite sized, and not serious at all. I saw a tiny itch and scratched it without worrying about if it had been built (it has) or if I was doing it right (probably not).

Best practices and unique ideas come in time and practice, they don’t have to be the priority when you start learning.

I loved getting to be a creative investigator where my only goal was a silly program for the sake of learning and I’m excited to continue down that path with the book and spongemock. I certainly will be keeping my eye out for more small joke ideas that get me excited about learning because that’s what really matters.

Want to check out my project?



Katie Hughes ✨

pun-loving code witch // casual comic book reader // full time nerd 👩🏼‍💻 she/her