Hacker News new | past | comments | ask | show | jobs | submit login

This is a fun exercise, then ask the second question "How productive can I be in my job when the network is unavailable?"

The author states : What I’m trying to show with all this is that you can do something 100 times but still not remember how to do it off the top of your head.

My experience differs from this, if I were to rewrite it I would say something like:

"You can do something 100 times, and as long as you can look it up somewhere, it is okay to not memorize how to do it."

You have to evaluate the impact on your flow of stopping to look something up, you have to evaluate what you consider your 'base' skill set is to evaluate if you should memorize something.

Before Google, the canonical case here was arithmetic. Who needs to memorize multiplication tables if you have a calculator handy to do simple arithmetic. Basically if you cannot do basic arithmetic in your head, you are always going to be at a disadvantage with respect to someone who can.[1]

I have found a reasonable compromise, when I Google something like this, I write down the solution in an Evernote notebook that I keep for such things. So if the same question comes up I can always find the answer and don't have to have either the web page or Google around to get to the answer.

[1] And as a "magic trick" you can hand a cashier what appears to them to be an odd amount of money, only to have them discover when they enter it into their register the change is a minimal number of coins/bills.




> "You can do something 100 times, and as long as you can look it up somewhere, it is okay to not memorize how to do it."

We used to memorise information, now we memorise meta-information - a mental map of concepts and trigger keywords. We have learned to quickly grok new concepts and we still have to understand how things work in order to do anything.


That's one of the cool things about the Red Hat Certified Engineer, no internet access. You still of course have access to anything available from the yum/rpm repositories, so man pages and documentation are there for the browsing.

I definitely felt proud of myself for passing, especially when the other 6 senior linux admins all failed because they were too arrogant to study or prepare.


Yes, there is value in memorizing things, as things in our memory are easier to work with for thinking than things we have to go out, search for, access, and then get into our memory. See for example Barbara Oakley's discussion on mathematical fluency:

nautil.us/issue/40/learning/how-i-rewired-my-brain-to-become-fluent-in-math-rp

Or Feynman on the need for mathematical fluency to do physics:

> What we have to do is to learn to differentiate like we know how much is 3 and 5, or how much is 5 times 7, because that kind of work is involved so often that it’s good not to be confounded by it. When you write something down, you should be able to immediately differentiate it without even thinking about it, and without making any mistakes. You’ll find you need to do this operation all the time—not only in physics, but in all the sciences. Therefore differentiation is like the arithmetic you had to learn before you could learn algebra.

> Incidentally, the same goes for algebra: there’s a lot of algebra. We are assuming that you can do algebra in your sleep, upside down, without making a mistake. We know it isn’t true, so you should also practice algebra: write yourself a lot of expressions, practice them, and don’t make any errors.

Of course, in this particular discussion re: javascript, I think the design of the language doesn't help much here. Consider Javascript's `Date`, which the OP calls out as an API with a particularly difficult to remember set of conventions. Authors of languages and libraries can remedy this by having a coherence in design, naming, and behavior that help people build mental structures to memorize how these work and achieve the kind of fluency they need to do things without googling. Ruby's standard library I think is particularly good at this(here "principle of least surprise" helps not just with discovery, but retention).

EDIT: also want to add that using documentation and external resources is totally valid, as the grandparent comment states. There's just a balance to be had between relying on Google versus what you can draw from your mind quickly. Also think it's worthwhile to note that there is interesting work to be done in making documentation systems better and more integrated into our runtimes, see for example: https://www.geoffreylitt.com/margin-notes/


Flow is key. At the same time, I agree on not having to (or trying to) memorize everything.

I've been exploring building a tool which is sort of a "universal search bar" for programming questions: finding answers via google, searching local repos, finding code snippets you've saved, etc. Another way to think of it is like an extension of your memory.

The idea is to make the information super fast to retrieve so you break don't break flow while you're programming.

For anyone who's curious, I'm collecting interest here: https://forms.gle/8q9nPUc22t6WDFsG7


I also run into this while learning a language. There are words I'd have to look up in Spanish every time I encounter them. Started writing down these problem words in a notebook to commit them to memory to end the cycle.


Personally if the internet is down my employer wouldn’t expect me to get any work done, so it doesn’t matter. Would be different if I was self employed though.


The easiest arguments to win are against the ones you invent




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: