Ask HN: your favorite high-risk high-return investment in a new skill

12 points by eddieplan9 ↗ HN
I have been a Vim user for over 10 years now. Thanks to Vim's extreme steep learning curve, I've tried and given up many many times along the way, but I am lucky to have eventually forced myself to stick to it. It has been one of the best things I've done to myself. I'd like to know what other tools or languages or techniques or philosophies fellow HNers have found to have a similar high-risk and high-return profile.

8 comments

[ 8.6 ms ] story [ 116 ms ] thread
Building a software factory.
Regular expressions. With a few weeks of learning the cryptic syntax you'll enjoy a lifetime of reaping its power.

Mastering Regular Expressions by Friedl is regarded as one of the best resources. But just to get up and running and as a reference I recommend http://regular-expressions.info

The Dvorak layout. The high return? Using Emacs is less bad for the hands, I think, because Ctrl+X stretches the fingers apart instead of scrnching them up. Also, the underscore key is in a very accessible location. I tried learning it in high school, failed, and eventually forced it upon myself in my freshman year by playing a video game while using it. The problem? It is low-return.

Another? Learning Haskell would count, except I did it for fun, so there was no risk. I could say learning Perl has been very useful, but again, there was very little risk -- I was in high school and didn't have a computer I could use all the time, so I simply read the 3rd edition of Programming Perl straight through up to the reference section, and then reread the first 7 or 8 chapters. That taught me how regular expressions worked, that closures existed and how they worked, and other mundane stuff like foreach loops and pipes.

Another? Maybe learning about math. I spent a lot of effort learning a little bit of math. When I think about the return I've gotten, well, I'm very comfortable with discrete math and quite good at estimating the performance of programs. The presence of some math-related things on my resume helped me land the phone screen for my first job out of college. The problem? It was low risk because I enjoyed it.

Another? Golf. You could say it was my parents who took the risk because they paid for lessons and clubs, while I enjoyed every minute of learning how to play. The return? It's fun to play but really it's that I got my dad to start playing. He now enjoys it a lot more than I do and has made several friends through the game. My return? One time the son of a guy my dad played golf with several times hired me for a cool summer job dealing with optics measurement systems. The problem is that this is a lame example: no risk for me, and the return was kind of indirect.

Another? Making sure to take the core CS classes while I got a math major. The reward? I was able to tack on a dual CS major with another semester (plus got some knowledge). The risk was 5 or 6 poorly taught CS classes.

Another? Maybe Emacs counts. I couldn't convince myself to learn it and use it the first time, but eventually I managed to convert myself over to XEmacs from whatever awful thing I was using. However, it's not as much of a risk as Vim, which is known to cause brain damage.

Another? Learning how to play the piano. I spent 12 years taking piano lessons. The return? When I had wrist problems as an adult programmer, I got a digital piano and started playing again, and the wrist problems went away for good.

Not frantically keeping up with all the blogs/sites that I would read, and not force myself to comment regularly.

I eventually realized that it's impossible for me to be a catalogue/archive of the latest news (it's like swimming upstream), and I realized that forcing myself to comment is very unnatural.

I'm just going to assume that this comment came totally naturally.
Learning "deep" statistics, probability, and applied models of the same. My loose plan is to hack at applied stuff with Clojure and J instead of R. R is clearly the right choice for this, with SAS/Stata/SPSS right behind in terms of increasing employability.

Neither Clojure or J are particular skills for me either, so I am somewhat doing the worst approach - tackling a new project with a new set of tools . . .

Abstract/linear algebra. I enjoyed it thoroughly at university but it never seemed very useful in practice, until I had to deal with a complex problem of manipulating graphs. All of a sudden I found semi-ring homomorphisms coming in handy again, and on the back of that realisation have made some very cool software.

The risky learning curve came when I had to revise all the stuff I'd half-forgotten, taking a few weeks out to do nothing but maths, in the hope that my hunch would pan out. It did pan out, and now I'm settling down to the long hard slog of exploiting it properly.