Hacker News new | ask | show | jobs
by rwallace 3834 days ago
I can see how a memorization aid like spaced repetition could actually improve your productivity in 1993, but in 2015, it's neither feasible nor necessary for programmers to memorize all the stuff we use, so I'm not seeing this as terribly useful nowadays.
4 comments

So, I'm a SysAdmin, and compared to my UNIX knowledge, I'm a terrible programmer, so it's possible that everyone else is just using better tools than I am, but I've had jobs that were more programming than systems.

My impression was that in the '90s, when I started my career, everyone used IDEs where you could type your object and it would bring up a menu showing you the methods and the options to that method. I mean, with something like FoxPro or Borland Delphi, even 16 year old me could whip out CRUD apps with very little programming knowledge at all, and without spending too much time looking shit up in the documentation. It was easy

But... my impression is that nearly everyone has switched away from the IDE, and especially has switched away from editors that reduce the need for memorization. Most of the programmers I know spend most of their time in text editors that only do a very minimal amount of the programming work, meaning they've gotta memorize (or look up) a lot more than I had to when I was writing CRUD apps in the '90s. I spend a lot more time in documentation now than I did then, when I'm learning a new language or writing in a language I haven't used recently.

I mean, this is just my impression... maybe I'm just not watching the right programmers. But yeah; my impression is that the need for memorization is growing, not shrinking.

Depends on language; what languages are used in your company?
>Depends on language; what languages are used in your company?

Python, mostly.

We do a little bit of bash and a fair amount of proprietary internal-only DSL, and a fair bit of non-proprietary DSL like puppet. Maybe a homeopathic amount of C. (I actually got them to let me write something in C the other week so that I could interface with the C api of a mostly closed-source thing we use, rather than using the really hokey and broken python-to-C auto-API-generator thing, and it was totally the highlight of the month, maybe the year.)

But really, python is my problem. The other stuff it's generally acceptable for me to look up, it's just all my reflexes are still perl reflexes, so things that would take me ten minutes in perl end up being half-day projects or better, 'cause I have to look everything up (or because something doesn't quite translate) - I think a good editor could help a lot with the former (the latter, probably, much less so.)

If I took my OO components and looked up how to make it functional while changing it, does that mean I can do functional? No. Too many devs I work with would say so though. However if I spent 30 minutes each day turning one of my OO components into a functional equivalent, then after 6 months or so I'd have a good handle on it. When you combine spaced repetition with something like chunking, it becomes very powerful.
You don't need to memorize ALL the stuff you work with. But it will help to memorize the CORE of the stuff you work with. If you are a Swift or C++ programmer. Knowing/Mastering the core of the language is very doable. it's worth doing it. If you write network programming, memorizing most of the socket functions will help. Improved memory capacity improves productivity.
But wouldn't spaced repetition be useful to master C++?
Fair enough, that might actually be a counterexample; C++ has a lot of rules, which aren't quite so easy to look up as you need them compared to API calls.