Hacker News new | ask | show | jobs
by sytelus 4859 days ago
Unfortunately just learning ruby, rails or any other programming languages doesn't prepare you at all for type of challenges you are talking about. I've been working on search, machine learning, prediction models, computer vision and so on and these are absolute cream of the challenging problems out there that I highly enjoy. Other my favorite areas are compilers, kernels, audio and image processing but I'm not actively working in it currently. But to even understand current state of art in these areas, let alone contribute to it, you will need solid foundation build on math (especially linear algebra, probability & stats, calculus), machine learning, distributed computing, graph algorithms, probabilistic data strutures and other CS areas. It takes years to build this theory foundation and perhaps more if you are not already enrolled in to any degree programming. Programming is actually the most trivial part of working in these areas.

Employers who do have these kind of challenging work are never looking for just Ruby or Java guy who knows all syntax, framework and how to code. They would need your experience and academic background to convince them that you do have necessary math and CS foundation to tackle their challenges. The best way to start out for "plain vanilla" programmers is to get in to open competitions like at http://www.kaggle.com/competitions. Also keep an eye out for any companies sponsoring such competitions like Netflix did years ago. The reason this is good way to start is because here would typically be discussion groups around this where experts discuss their approaches for real problem and real solutions and you can learn a lot from this. Once you select such a challenge to work on, give it all to it. Devour every piece of research, CS and math that comes in your way to understand what's going on. If you keep at it for 2-3 years, you would be in might be in good position to demonstrate future employers your work and worth to work on these challenging problems.