Everybody needs an occasional vacation — time set aside to relax, recharge, get inspired, expand your horizons, etc. You don’t need to travel far to get these things, but it certainly helps to move yourself out of familiar territory.
As a programmer, it’s also important to occasionally get away from the codebases you use on a daily basis and explore the vast world of code that’s sitting out there. In other words, you need to take a Code Vacation.
What Is a Code Vacation?
A Code Vacation is when you spend time exploring code that you don’t interact with every day. It could be a popular OSS repo with a billion stars or your friend’s repo that you heard them mention once last year. It could be in your favorite programming language or in FoxPro. It’s most likely a repository you’ve never looked at before, but it could be one you’re a little bit familiar with.
All that matters is that you’re getting away from your daily repo for a little while and that you’re open to learning something new.
The process of taking a Code Vacation isn’t official. For me, it involves sitting down away from any distractions, cloning a repository, popping open the README file, and then going wherever my curiosity takes me.
How to Take a Good Code Vacation
A lot of considerations for a real vacation also apply to making the most of Code Vacations. Here are a few of them.
Know Your Goal
Whether I’m taking a two-day trip to a nearby city or a weeks-long getaway to an unfamiliar country, I always ask myself what I want to get out of it (in a general sense). Am I headed to Chicago just for fun? Because I like it there and want to remember what it’s like? Or because I want to do something specific?
This question matters because it will help you answer more functional questions like: How much should I plan ahead? Am I making a day-by-day itinerary, or is this a time to wing it?
On a code vacation, you should ask the same questions. That way, when you find yourself looking at a terribly confusing function five directories deep into your Code Vacation repo, you’ll know whether to keep digging or move on.
Consider How Familiar the Territory Will Be
For a real vacation, you may go somewhere that has a vastly different geography and culture than what you’re used to. You need to consider this before you leave so that you can be mentally prepared to face some challenges. If you don’t, it might ruin the trip!
Code is the same way. If your Code Vacation repo uses a programming language you’ve never seen, and you don’t know any similar languages, then prepare to be confused and frustrated at times. That’s not a bad thing, but it is something to be prepared for. Give yourself some time to research. Keep a tab open with some official documentation; that’s like having a translation dictionary or app on hand.
Do Some Research Up Front (Maybe)
I don’t know very much about Morocco. If I were going to Morocco, I would spend lots of time learning about the language, history, geography, etc. Even if I didn’t know exactly what I’d be doing there, having some context would certainly help me make the most of the trip.
I also don’t know much about the city of Peoria, Illinois, but I know it has a similar geography and culture to my own city. So I probably wouldn’t do much research if I were going there. In other words, I wouldn’t be scared of my trip being ruined because I forgot to look up major historical landmarks near Peoria.
It’s the same thing for a Code Vacation. If you know you’ll be in unfamiliar territory, do some research. Skim a few Wikipedia articles; look at one or two blog posts about how people are using the code. Give yourself enough context to have a starting point when you arrive. If you don’t want to do this research, then pick a Code Vacation spot that will be less overwhelming.
When you’re on vacation and something catches your eye, what do you do? Take a picture! We take lots of pictures on vacations because there’s so much going on that we want to remember. It can be hard to retain everything that you see. Plus it’s fast and easy to take a picture, and it’s no big deal if you delete it later.
When you embark on a Code Vacation, have your favorite note-taking app ready. If you see some interesting code, just copy and paste it, and maybe save a file name and line number. If you notice an interesting pattern or architectural decision, write it down. It’s perfectly fine if you never look at the note again.
Consider Traveling with a Guide
I went to China some time ago. I didn’t know any Mandarin and knew very little about the culture. But I had a translator, and I’m positive that having him around made a potentially terrifying, anxiety-inducing trip into a really great adventure.
When you’re taking a Code Vacation, you should at least consider having a “guide” with you. This could be someone who’s worked in the repository (or at least knows the language). They don’t have to sit there while you browse around in the code. But maybe they can spare some time to give you an overview of the repository and answer questions sporadically. It should be someone who’s excited to help you out. Otherwise, it would be like asking busy Beijing locals to help you find a restroom.
Take it Easy
You’re on vacation! Appreciate the experience, and don’t get hung up on the little things. When I go to a new city, I always start out by getting frustrated at navigating the unfamiliar streets in heavy traffic. But I’ve learned to get over that as soon as possible in order to enjoy everything else.
On a Code Vacation, you won’t understand every line you read. You’ll see code that you think should have been written a different way. But if you really want to learn new things and find something positive to bring back to your own code, you can’t be focusing on things that are confusing or frustrating.
You’re the Boss
You could technically go your whole career without a single Code Vacation. It’s easy enough to spend all your time in your project’s code, learning only what you need to for your current work. But there are vast universes of code out there, and I highly recommend that you make a habit of exploring them.
I hope you give Code Vacations a try and that you’re patient with yourself and the code’s authors. You’ll need to experiment to find out exactly what works for you. Keep in mind that, unlike a trip to Antarctica, you can get up and leave any time you want to. Happy cyber travels!