Joe Jordan

the geek of hearts

How to be awesome

| Comments

I have spent some time reading about, and trying out, ‘go’ - the google systems language that’s supposed to take the union of solid static typing with the readability of dynamic scripting languages. However, I’ve found the task somewhat laborious. While I can happily read about examples, and indeed fiddle with them to change the results, and while this does lead to a limited understanding of some bits of the language, I can’t say I’m ready claim I “know go”.

Thinking back to how I’ve learned other languages, it is never from reading books and examples. In the two I know best- action script 2 (very similar to javascript) and python, real competency has come only with, what else, extended practise. I learned action script while working on a project at my last employer- there was a large, ageing codebase in the language, which occasionally (and eventually quite frequently) required extending and updating. In the process of fixing and occasionally rewriting bits of the code over a couple of years, I learned every trick in the AS2 book, most of which are directly portable over to js, and thus come in handy even now. My other programming example, python, is the language I’m implementing all my PhD code in. I have been falling in love with python (and indeed C, which I have written some extensions in) over the last 18 months, because while forcing myself to use it I’ve discovered all the niche features like list comprehensions, decorators, and class hacking/dynamic code generation (and indeed learned how to use pointers, pthreads and macros, both as compile switches and sequence shorteners.)

However, while reading Rippetoe I’ve realised that this isn’t at all surprising. As with weightlifting, programming and any activity (physical or mental), humans are astonishingly well suited to adaptation. This has to do with the way neural networks work. Our brain is obviously a neural net, but so, significantly, is our spine. The two combined, the CNS, form the basis of all learning, and the best way to teach them is practise. This also works for most other parts of your body: muscles grow under repeated work, and indeed differently depending on the type of load (big single reps might build muscle mass, but smaller loads and sets of twenty will increase your resistance to lactic acid buildups, and thus greatly increase your endurance.) Similarly, skin develops fatty deposits in frequent cold conditions, and bones grow thicker the more you stress them thanks to their piezoelectric nature.

So, while sharpening my Das Keyboard for the best typing speeds, picking a suitable part of my PhD to write in ‘go’ to give me a better shot at learning it properly, hitting the gym and park in carefully scheduled bursts of training, and using memrise to help me nail down the vocab I’m forgetting between mandarin classes, I’ve resolved to start having experiences; repeatedly. Not only does science say this will make me happier, but science says if I do it repeatedly it will also make me awesome.