Hacker News new | ask | show | jobs
by vikp 4594 days ago
Hey, good question.

I actually started out building stock prediction algorithms, then realized I had no idea how to do that (~October 2011). I was mainly coding in C# and Ruby, and picking it up from books.

I then found Kaggle, which has a lot of great machine learning competitions. They will post something like "predict bond prices accurately", or "score essays automatically", and lots of people get to compete to create the best solution. The leaderboard format really motivated me, and I met some great people and did very well. I learned a lot of the stuff I needed from online books, Khan Academy, etc.

Concurrently with Kaggle, I started a consulting business, and got a lot of clients through there.

After I spent a lot of time doing machine learning, I was found by edX (edx.org), an online education company that was looking for people to develop ways to grade essays at scale. I thought I knew how to program before, but I actually didn't (I was coding mostly in R for Kaggle, and not using classes or building resuable code, etc).

At edX, I actually learned how to test/deploy and develop properly. I also ended up doing 99% web development, which is fine, as I learned that skill, but got a bit bored due to not using machine learning at all. I learned Python, Django (the main web framework), and a lot of server deployment and other skills. I can't emphasize how invaluable working at a startup that did things the right way was in terms of my learning.

I recently left edX to work on some of my own projects. Currently, I am working on an android application, Happsee (www.happsee.com) that helps track, visualize, and discover what makes us happy (and can do a lot of cool machine learning with). I have also worked on an open source learning management system, Movide (www.movide.com).

The key for me to learn programming is to de-emphasize the programming. I don't actually care much about programming. I care about making things. I get a similar joy from snapping legos together and making something and from coding. So find a problem you want to solve, and start thinking of things you could make to solve that problem.

For me, data is insanely cool, and I have done a lot of random explorations on my blog. I just did an analysis of happiness (http://vikparuchuri.com/blog/what-makes-people-happy/), but I have also analyzed how much characters on the Simpsons like each other (http://vikparuchuri.com/blog/how-do-simpsons-characters-feel...).

Small projects like that are a great way to learn, and can get you exposure through presentations, blog, etc.

If you have any questions, I'm happy to help. vik at equirio dot com.