Hacker News new | ask | show | jobs
by DarkShikari 6109 days ago
In general I've found I'm best when I'm self-motivated, which really shouldn't be surprising to anyone on HN.

All the math courses I took up to Calculus BC were through the Stanford distance learning program (EPGY), which really helped enforce this. I also took three courses on C programming from them in 2nd-3rd grade; I was pretty terrible at the time but something from must have them stuck with me really well, because when I finally came back to C 10 years later it was nearly effortless.

Similarly, almost all the skills I would say I've learned really well in recent years (e.g. SIMD assembly) are things that I've learned on my own time outside of class.

Another related observation is that I tend to learn on an S curve ( http://en.wikipedia.org/wiki/Sigmoid_function ). For example, take the process of learning x86 SIMD assembly: it took me days to write my first assembly function (from scratch with no knowledge whatsoever other than an example for syntax and documentation pages). Then it took me mere hours to get acquainted with SIMD basics and start writing basic SIMD functions. In just a few more days I had written dozens of optimized SSE versions of MMX functions...

...and yet it probably took me a whole year after that to gain enough experience to feel comfortable writing extremely complicated functions from scratch.

In other words, initial learning is slow, then learning builds on itself to vastly accelerate speed, but then honing ones' abilities is slow again.