I'm a Java developer and I want to pursue career in Data Science and machine learning.
Please advise me where and how to begin? What subjects and mathematical/statistical skills are required and so on?
I would say that trying out the resources online such as the Explore Data Science course and Andrew Ng's ML Course on Coursera (mentioned in the notes above) are great. However, nothing beats true data that you understand inside and out. After picking up some skills from Explore Data Science, I propose you collect your fuel usage data continuously. Collect the basics: city, state, gallons, total cost, and your vehicles mileage. When you forget to enter it, then you have to learn how to work with missing data. As you feel more comfortable, enter in kaggle contests. The data science community is growing so quickly that the online resources are vast and will help you identify any areas where a text book is what you need. Good Luck!! Have fun!
So far the answers have focused on learning particular methods. They are fine, but they won't make you a Data Scientist. Being a Data Scientist is not solely or even primarily about having mastery of particular data analysis methods (ML or others).
Most fundamental is problem solving and decision support. What ever data you collect, what ever analysis methods you apply, and however you improve those methods over time, these must support the over-arching goals of solving problems or making better decisions.
You need to start getting first-hand experience with data in your field. I don't mean Kaggle data (i.e. already cleaned). I mean raw data or nearly raw. A good 50% of a data scientist's time is spent wrangling raw data and cleaning it to the point where it's usable in analysis. You need to learn how to deal with missing data, erroneous data, ambiguous data, misformatted data, and so on.
You should also get some experience with decisions that do not map neatly on to the data. Recommender systems are easy in this regard. For example, you might take on the challenge of evaluating software vulnerabilities to guide vulnerability management decisions.
coursera should be a good start. i have seen machine learning on their course list if im not mistaken. once you get the hang of it, a machine learning classic text like "machine learning and pattern recognition" by bishop or other texts can familiarize you with different classes of algorithms. if you want to go in depth, mathematics is a must, but if you just want to get familiar and use the algorithms there's absolutely no need for it
My advice is to begin with a thorough grounding in Statistics, for which a lot of classic and unambiguous material is available online. Topics that you should have a firm grasp on include regression, correlation, hypothesis testing and the bias-variance tradeoff. You don't have to go into too much theoretical depth into any of these topics but you should know what these are before you start studying machine learning. Your study in machine learning should include developing an understanding of hypothesis spaces, Bayesian analysis (can you explain the difference between MLE, MAP and optimal Bayes?), Expectation Maximization, logistic regression, clustering (especially k-means), max-margin classifiers (SVMs), overfitting (can you explain what it is in terms of bias and variance?) and feature selection. Linear algebra is helpful but can be done without in many cases.
As someone who does research in data mining and has worked closely with several companies, I can tell you that if you seriously want to go into machine learning, it is NOT enough to simply know how to code something using Weka or R. Those are easy enough to use once you know the concepts. When companies hire data scientists, they want someone who can take the raw data and do something useful with it. A good grasp of fundamentals is obviously essential, since each company's data has its own quirks (and will typically be too big for you to try 'everything'). Good luck!