These days machine learning primarily is using statistical techniques. It is almost synonymous with statistics. So, linear algebra is a good start. You will also need solid understanding of probability and statistics (e.g. random variables, probability distributions,
density estimation, Bayes networks, Markov models, graphical models, etc.)
A good book to pick up would be Pattern Recognition and Machine Learning by Christopher Bishop.
What programming language you use is largely irrelevant here. If anything, it is useful to know Matlab, simply because it makes it very easy to prototype machine learning algorithms, and it is widely used by the machine learning research community. Also check out Weka, which is a Java library which implements virtually every conceivable classification and clustering algorithm, and provides great tools for training and testing classifiers.
If you seriously want to get into this field, I would recommend going to a grad school with a decent CS department or a decent stats department, and getting at least a Master's in either CS or stats.