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
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.
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,