I’m Grokking, Here!

I’ve heard the term “grok” a lot this week, which is strange because I’ve never noticed it before. Like so many words that once you know them you see them everywhere, “grok” is now a part of my permanent vocabulary.

Grok: (verb)  To understand intuitively or by empathy, to establish rapport with.

It describes the end of the process of inhaling new information, especially in relation to learning a new skill or technology. The final result of grokking is the intimate knowledge of that thing, to have grokked it. But until that nirvana, one is simply on the journey to Grokville. And on that journey, whether at the beginning before hitting enter on “Hello World” or toward the end when you are contributing to the GitHub, you are “grokking.”

The ultimate grok (yes, I’m nouning the verb) has to be from the team on the Nebuchanezzer in The Matrix. The film depicts Tank flipping through a stack of physical disks, sidestepping boring protocols and loading all the fun fight knowledge into Neo’s brain directly. Physical media…how quaint! I wonder if the movie were made today if they’d write “npm install grok” and then “grok kung-fu@1.7-beta -g -v -f –save-dev” or some such nonsense in the command line.

https://www.youtube.com/watch?v=wiVcPQJLk2A

Although, I think The Matrix got the on-screen GIFs down pat. We should definitely have GIFs while we grok in our eventual dystopian future. In fact, we need some Slack-like commands in all command-line interfaces.

“$ gify ‘3d spinning man'”

In any case, my personal journey with grokking started slow. In my formative years putting HTML to screen, I didn’t think I needed to learn much. Everything to know became obvious over the course of a few weeks on the job, because all I was doing was data entry. Literally, my first job as a “web developer” was sifting through thousands of static HTML pages across hundreds of microsites and updating pricing information by hand in Microsoft FrontPage 2000. I wish I could be that guy who swaps war stories about late 90’s web development, but this was in 2010. The company I was at, Cthulhu bless ’em, worked with razor-thin margins and the cash outlay for the likes of Visual Studio or even Dreamweaver cost a few dollars. Which, if you are just changing static HTML on table-based layouts, is an unnecessary frivolity.

As someone who has unsuccessfully attempted to get a business off the ground, I completely empathize with the want to control costs. As a developer, ouch.

After a year of this, I was blown away when a friend showed me a little snippet of JavaScript that automatically updated the date. When I updated the pricing, I would also go to the bottom of the page and update the copyright date manually. We had Excel documents keeping track of the pages that had their copyright updated. It was a months-long process to update them all, spread across three “developers.” I mean that in the loosest possible sense of the word.

Overnight, our date updating process didn’t exactly get DRY, but it got better. It went from wet like the ocean to wet like an Olympic-sized swimming pool. I still updated the bottom of each page manually, but this time with a snippet of JavaScript. I was on top of the world. I was saving future “developers” from ever having to update that date again, and if that meant that I needed to repeat the same line of JS over and over again, thousands of times across thousands of .html pages, by goodness I was going to do it.

By the time I discovered templating with PHP, that is, that I could include a require at the beginning and end of the document, I knew this web development thing ran a whole lot deeper than I expected. I lobbied for changes to be made to our site, and thankfully (they are really great people, actually) the company was on board. Unfortunately, the more I learned the more I realized I was in over my head.

Grokking PHP, HTML5, JavaScript, CSS, and Perl (because that is what the shopping cart was written with, in one thousands-of-lines-long file) all at the same time by a junior developer in an environment with no support was just too much. What would take a seasoned team of a couple of devs a few months to do would have taken me years, perhaps decades, working alone.

Long story short, I graduated college and managed to land a job doing .NET work with a team that knew way more than me, in an environment that expected a whole lot. I was thrown in the deep end, as it were, but I managed to grok enough quickly enough to keep my head above water. It was a fantastic learning experience.

In the intervening years, I’ve managed to get grokking down to an art. You read documentation, watch videos, and try to follow along with tutorials. Write notes with a physical pen and paper. Follow along the tutorials in an actual IDE or text editor, and if something goes wrong, fix it. After that, build something on your own a little bigger than a “Hello World,” something new and fun and exciting for you. After about 20 hours of this you’ll know enough to be dangerous. You won’t be an expert, but it will be enough to get you off the ground.

Or maybe I have it all wrong. Maybe I should be putting my floppy drive in and skipping the operation programs, I don’t know. You tell me. How do you grok?

↓ I'll get a dopamine hit if you share this post