"Use your friends [...] Keep it simple. [...] Play. [...] Given these criteria, my recommendations for a first programming language would be Python or Scheme. But your circumstances may vary, and there are other good choices. If your age is a single-digit, you might prefer Alice or Squeak (older learners might also enjoy these). The important thing is that you choose and get started."
It would be interesting to try to find scientifically optimal ways of doing study iteration, or approaches to interpreting the complete (experiment_rev, results)-list from another researcher...
I'd recommend doing a startup and/or side project involving interesting functions of massive datasets.
Technology-wise, at least consider...
- learning SML or OCaml or Erlang
- learning Python
- going deeper into Python. It's a fantastic way to express oneself. It beautifully offers (generators, coroutines, multithreading, subprocesses, and networking) for piping and distributing your computation, a flexible blend of functional and imperative, and its syntax is the most conducive to elegance, simplicity, and rereadability of anything I've tried.
...then building the core algorithms in C/C++ with SWIG wrappers, the tip of the iceberg with Django, and everything else in pure Python.
A must-read: "Generator Tricks For Systems Programmers"
Most of the the side-projects I started were definitely interesting to me in some way. They were a way for me to explore how something could be made easier, how it should be done, and how it could help me get more done.
For my company/startup (http://greaterscope.com) I'm also building online storefront software, which has plenty of interesting problems. It can involve massive datasets (for me), clever algorithms, etc. It has been the perfect opportunity for me to harden and field-test my tools. This is written in PHP, because it's the language I know best, and I feel like the problem isn't "solved" for PHP yet.
But those are beside the point because I've started to think more about "what I really want to do" and how to "not get stuck doing something I don't want to do". So I defintely feel the need to find something I like doing even more than storefront software in PHP.
Thanks for the technology recommendations. Python is high on my list at the moment. I'm on the lookout.
I'd also add that, in my experience, web app development Python and Ruby can (a) get interesting, and (b) provide a good segue into other development. Most Rails and Django developers that I know make well over $30/hour (3-4 times that, typically), work on interesting projects, and work on things other than just web apps.
Though I like what Norvig said in http://norvig.com/21-days.html
"Use your friends [...] Keep it simple. [...] Play. [...] Given these criteria, my recommendations for a first programming language would be Python or Scheme. But your circumstances may vary, and there are other good choices. If your age is a single-digit, you might prefer Alice or Squeak (older learners might also enjoy these). The important thing is that you choose and get started."