Then most discover it's 90% history and statistics, with lots of debate about what's actually true, and don't take it any further.
Machine Learning is the CS equivalent - broad appeal, but to take it any further it's mostly maths and stats, which turns a lot of people off.
When I say I miss University, I miss the opportunity to choose classes at random and learn stuff I didn't know. I don't really miss the 8:30 classes and the long hours to produce lab assignments. I don't miss the effort, I miss the reward.
On a side note, maybe it is only their metrics about a class success and what "popular" is that are bad.
The top-level offered might not be what you want, but they probably offer lots of diversity in choice. Plus it's stupid cheap.
I took a semester of pencil sketching from my county during a particularly stressful time, other than a pencil and some paper, all other materials were provided and it was one of the most relaxing things I ever did (plus I could feel the creative parts of my brain being exercised while I let the analytic parts rest for 3 hours a week). I think it ran under $200 and the class was only 12 people.
I wrote about the courses I took. Here's about the last one: http://henrikwarne.com/2013/02/18/coursera-algorithms-course...
On the other hand, since these things started, I've finished 12 courses in a variety of fields.
I'm signed up for 5 classes starting in the next couple months, I'll probably finish maybe 3 of those. We'll see. :-)
Most of it in my case is learning for its own sake, but MOOCs are just about the best part of the internet for me. I took a Neural Networks class from Hinton and there's an upcoming class on Financial Markets from Robert Shiller. It's hard to beat that kind of access to teaching by absolute leaders in their fields.
(Insider joke, "it turns out" is one of Ng's favourite phrases...)
Now I just need a project where machine-learning would be an appropriate way of processing data!
Ng's machine learning is the first class on Coursera I actually saw through to completion, and I'm a little sad now that it's over. It reminded me of all of the best classes I took in college, how excited I was about the material and the inevitable letdown when the class ended.
How do I even express my gratitude?
This was my second Coursera class - I started with Martin Odersky's Introduction to Functional Programming in Scala (which I also highly recommend).
I took the course without any CS background, but with some background in optimization techniques. And what i really took away was to model problems, how to optimize models, how to figure out if they are working at all, and most importantly the need to have different cross validation and test sets.
The last one is something that can be used for any statistical algorithm but often missed by new engineers.
Also as a side note, if you are going to make something based on statistics you should consider to make it checked out by a statistician because it is such a big field that for example it takes 4 years to become a statistician.
The other major appeal of machine learning is that it touches all parts of computer science. You might have to go to a very low level (C, assembly, Cuda) for performance; but there's also tons of high-level work around expressing complexity elegantly-- hence the interest in using VHLLs like Python and Clojure for machine learning. Most professional software engineers are just munching tickets, but if you're in data science, you get to learn about databases, compilers, AI, information retrieval, and statistics at a more-than-superficial level.
When you have machine learning cred, you have a much better chance of being able to be an actual computer scientist instead of a cog in some dysfunctional CodeFactory.
2. Do some data science/machine learning work at your current job. It's not an either/or between SWE and DS. Software engineering is a huge part of real-world data science.
3A. Ask for a huge raise you won't get. When declined, say you'll take a regular cost-of-living raise if it comes with the title "machine learning engineer" (which, IMO, is more impressive than "data scientist").
3B. Change jobs. After (1) and (2) you're more than qualified for a data scientist role.
Focus on quality rather than quantity. Be selective. You can send out hundreds of CVs in a night, but you have a finite amount of emotional energy.
Network, but the most useful thing you'll get out of connections is information, not good-ole-boy introductions. Go to as many Meetups related to your interests as you can. (Most cities have data science meetups, Scala and Clojure and Python meetups, et al).
Limit yourself to one coding test per week. They're not hard or time-consuming but they're emotionally draining.
Get a good night's sleep before the interview. If you're unemployed, resist temptations to drink or keep an unusual schedule. You need to be "on" at 9:00 am.
Keywords in job specs don't mean a whole lot. A great HR team doesn't mean a great company, and vice versa. People on HN say, "I wouldn't want to work for a company that wrote job specs like that". Well, in reality, there are a lot of good companies out there with crummy HR. So don't get too obsessed over keywords because most of what's in a job-specs ("looking for candidate with a track record") is non-information.