The Mystery of the Deterministic Super Shotgun
two-wrongs.com
two-wrongs.com
Tracing a related input from ingestion to the point of interest is a very good strategy: it's reliable, and you pick up important context on the way.
"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.
dammit
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
It is rarely used in the original, Heinlein sense.
For example, http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-dev... is titled "Using FizzBuzz to Find Developers who Grok Coding", but at best FizzBuzz can tell if someone had a basic understanding of coding.
At https://netbeans.org/bugzilla/show_bug.cgi?id=32241 you can read "Code completion does not grok implicit constructors". Here too it's used synonymously with 'understand'. Ditto with "The one where I grok jQuery" at http://www.chenhuijing.com/blog/the-one-where-i-grok-jquery/ .
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.
For example, last fall I had a conversation about the term "to architect", a http://www.neatorama.com/2014/09/06/The-20-Most-Controversia... . It's from this conversation that I learned to think about terms as also having an ingroup/outgroup meaning.
The discussion concerned the idea that (building) architects don't say "We architected this" but rather "We designed this". Quoting from http://www.archdaily.com/451372/for-architects-only-how-kany... :
> 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.
Another dimension is its use as a shibboleth. In this case, the origins from a science fiction novel that was popular in the counter-culture of the 1960s and made its way into the hacker culture of the 1970s and 1980s. Its use indicates membership in this group, even if the meaning duplicates words in common practice. Similarly, your use of cromulent indicates your alignment with a TV series.
If you mean to include that dimension as well, then you are right; using 'grok' embiggens the distinction between ingroup and outgroup in a way that those words do not.
Your description here is nothing like the original meaning.
The logic is easy to follow. But WTF is 54. Until I understand why 54 is there I don't grock the code even if I understand what it does. Again I might not agree with the coder but I need to understand what they where thinking before I can change anything.