Attention New Devs: Professionals Google Stuff. A Lot.

And that’s a good thing

Recently, while doing some tutoring I was asked, “Are you allowed to look stuff up at work?” Allowed to? That’s practically a job requirement. But when they asked me that, I remembered how I used to worry about not being allowed to google stuff, too. When I was starting out, I mistakenly thought “real” devs were too smart to waste time searching on Stack Overflow. Well, I’m here to tell you to stop stressing, that’s not how it works.

We start off memorizing because we’re used to it

I think it’s because of school, honestly. When you took a civics test, you couldn’t just google what the executive branch does. But that’s not how programming works. If civics were like programming, there would be a new America founded every other year, and each one had slightly different laws, and that’s depending on what version the constitution was on in their package.json . Everything in programming is broadly the same, but minutely different, which makes memorizing a challenge.

Memorizing everything is inefficient

If you’ve gone to a boot camp, you’ve probably heard something like “Learn concepts, not syntax.” Which seems dumb at first. When you learn your first language, you absolutely have to learn syntax. What else are you doing? If you’re learning JavaScript, your thought process might be “I need to write for (let i=0; i < users.length; i++) .” But when you go to your second language, it clicks. All that JS syntax is wrong now, so instead, you think, “I need to iterate through this array of users. I’ll just look up how Ruby does loops.” You start to move away from syntax and into pseudocode. By not worrying so much about syntax, you can focus more on overall program logic.

Everything changes

Another big reason coders look stuff up a lot is because things change. One year ago, I learned how to build React components with classes and Redux. Now it seems like everyone has moved on to functional components with Hooks and Context. Same goals, different methods. This trend of change is exacerbated a bit in front end with JavaScript frameworks, but all languages either grow or die. Yesterday’s REST is today’s GraphQL.

It’s been done before

Another common reason people look stuff up is that reinventing the wheel isn’t always worth it. If you need a specific bit of code, for example: creating a list of letters from A…Z, AA…AZ, BA , etc. Well, you probably aren’t the first. Check to see if there’s already a go-to solution you can build on. But don’t just mindlessly copy. Make sure you understand everything before adding it, there may be parts you don’t need. Searching around first is a great way to see new ways of thinking and get better at asking the right questions.

What to Remember and What to Store

To broadly sum up how you should spend your studying time: Try to memorize the ideas, and save the locations of the specifics. When you take notes, and you should be taking notes, make them electronic so they’re searchable. But more importantly, when you find good stack overflow questions and helpful blog posts, save the gosh darn links. I really can’t stress that enough.

Storing all those links will save you time in the future. That way, when you run into the same flexbox issue again, or forget how Ruby handles arrays, you can instantly find all those helpful resources. I’ve taken a lot of inspiration from reference types. Your program doesn’t know what the object in the variable is, just its location in the memory banks. You don’t need to remember everything, you just need to be able to access it quickly in notes.

Everyone Searches — Professionals Save

As Adam Savage says, “The only difference between screwing around and science is writing it down.” I think that translates to coding nicely. It’s not just goofing off on a personal project if you catalog all the resources you find. I’ve talked about it before, but I have a 20-page doc at work for troubleshooting and resources. Almost three pages of that are just links to various blogs, docs, and videos.

So to all the new devs out there, please know: you’re not supposed to memorize everything. Sure, some stuff will become muscle memory, but that’s a side effect, not the goal. Don’t sweat the small stuff, store it.

happy coding everyone,

mike