In a field like programming, where the need to understand various arbitrary things at a high level is so common and important, 'grok' seems like an ideal addition to the vocabulary.
"Grok" in is original use is something more like a deep and complete understanding. Here is Heinlein's explanation from "Stranger in a Strange Land":
"Grok means to understand so thoroughly that the observer becomes a part of the observed—to merge, blend, intermarry, lose identity in group experience. It means almost everything that we mean by religion, philosophy, and science—and it means as little to us (because of our Earthling assumptions) as color means to a blind man."
In the linked-to essay, the writer ends with an incomplete understanding of the Doom code base, and therefore has not grokked it.
When Nacraile comments, "it also would have been a poor lesson in grokking big unfamiliar codebases", this appears to use "grok" as the equivalent with "come to grips with", meaning "to begin to deal with someone or something difficult or challenging in a sensible way." That also appears to be the way you use it.
But 'grok' is supposed to mean something more like understand various arbitrary things at a low and intimate level, not at a high level.
but ofcourse, the different levels of understanding are vitally important when working on code- in my experience heinlein's original definition is still preserved behind the scenes, but for practical use it seems to be used to describe the process of approaching that level of grok, with the superlative 'fully grok' I think generally being used to describe something like 'a fully ample level of understanding', which is still rarely reached for complex systems
My experience has been that "grok" as used by coders is synonymous to "understand", with the caveat that it's used to indicate in-group membership in the hacker community.
It is rarely used in the original, Heinlein sense.
I did find an example that is in line with the original Heinlein meaning; "How to Grok Web Standards" at http://alistapart.com/article/grokwebstandards uses it in the Heinlein way. My thesis is that 'grok' is often used to indicate in-group hacker membership. You'll notice that unlike the previous three, this explains the term 'grok'. This means it's not being used to indicate in-group membership.
I agree with everything you've said, and intensely dislike almost all uses of 'grok', as well as 'cromulent' and 'embiggen'. But one thing you don't mention in your comments, and that I have trouble putting my finger on, is exactly how the use of an exclusionary in-group term causes harm. What is the harm, and how is it caused? Unlike the original shibboleth, anyone can properly pronounce 'grok' if they want to prove their allegiance. What makes you resist?
I didn't mention harm. Like many ingroup/outgroup terms, it can be used to strengthen group membership and it can be used to raise a barrier between insiders and outsiders.
> When Kanye West spoke with students at my alma mater on Sunday evening, he said “I really do believe that the world can be saved through design, and everything needs to actually be ‘architected.’” In the social media frenzy that followed, a recurring response that I saw on architecture-centric sites was to snicker at West’s use of the word “architect” as a verb. For many, this was symbolic of West’s ignorance and hubris as he presumed to talk about something without knowing anything.
As that article points out, as well as the pointers I gave in my own side of the conversation, architects do say "to architect", and have done for many decades.
We of course have many terms that make it possible to distinguish between a good programmer and a non-programmer. A short list includes "closure", "garbage collection", and "mock object". These are specialist terms that convey a meaning not captured by standard English terms. While barriers to the field, they are essential barriers because the underlying concepts are meaningful.
But "grok", while it is supposed to have a meaning somehow different or deeper than "fully understand", is not actually used that way and is not an essential specialist term for the field.
This makes grok (and other words like 'frob') a meaningless barrier to entry. As I mostly work to get non-programmers (in my case, chemists) to do more programming, this makes it a barrier I dislike.
I like this style of use: "[I know how the function is defined,] But I don't grok that -- I don't have any intuition for the type signature or the desired result." (from http://stackoverflow.com/questions/13317242/what-are-paramor...). Using the word to make a distinction between formally understanding something and having a deeper intuition for it.
I agree, it's one of the nicest examples I've seen. However, "But I don't grok that" is almost synonymous with "But I don't fully understand that", is it not?