Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

My day job is plain old software development. I am also doing my Masters in CS (part time, course based). I took a course on AI and found machine learning quite fascinating but like most courses it only offered a basic intro.

I intend to learn more about Machine Learning and if possible get a job in that field. When I look at job postings in this field it is clear that a Phd in Machine learning (or prior experience in the field with considerable expertise) is required for most of them.

I'm looking for advice on self learning to gain experience that'll useful in industry. At least, enough experience to get my foot in. I will do the obvious ones like reading text books, papers etc. Perhaps any open source efforts that I can participate in or something I could do on my own?

Apologies if I'm being vague here but I hope there are at least a few of you who done a similar switch and can advise.

Thanks !

share|improve this question

migrated from stackoverflow.com Mar 3 '11 at 20:36

This question came from our site for professional and enthusiast programmers.

closed as not constructive by Yannis Mar 7 '12 at 9:56

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Probably not the best place to ask this - but check out weka –  SB01 Mar 3 '11 at 20:35
Inspired by Watson? –  DaMartyr Mar 3 '11 at 20:37
My day job made me do some Machine learning and shallow NLP. I used weka alot You can read the documentation, read code and contribute. That will help you in learning. You can also check Mahout too. –  Zimbabao Mar 3 '11 at 20:40
Check out kaggle.com participate in some of the contests there. –  Mike Brown Mar 18 '13 at 14:20

3 Answers 3

You're right, machine learning is a fascinating field. I myself am about to finish university with a strong focus in machine learning and will be looking for a job in the general field soon. I also haven't quite figured out how to go about that.

But general machine learning is quite a wide field. I would suggest to get more specific. Which field that includes machine learning are you most interested in? There are many to choose from:

  • speech recognition / natural language processing
  • image / video processing / computer vision
  • medical systems
  • fraud detection
  • search engines
  • human-computer interfaces
  • ...

All of these fields (can) include machine learning techniques.

In my experience, most general machine learning courses will only introduce the basics of many techniques for two reasons:

  1. as I said: the field is just too wide to go really deep everywhere
  2. most of the techniques only make sense if they are combined with actual applications

I never really grokked SVMs until I had to use them in my own research. I never really understood the different algorithms used on HMMs until I did some work in speech processing.

And when looking for a job I think it's similar: Companies are more likely to look for people with experience/knowledge in the specific area they are working in, rather than the general field of machine learning. Machine learning jobs are more likely to be research/PhD/postdoc positions.

share|improve this answer

Natural Language Processing as a practical application of machine learning

I'm working full time and am studying part-time in a computational linguistics (aka NLP, natural language processing) Master's degree program. There is a ton of machine learning in this field, such as for speech recognition, document classification, etc. The key is a solid basis on mathematics, statistics, and logical notation. Take classes in these areas to learn (or solidify your knowledge) before you graduate, as learning these topic on one's own can be difficult.


Also, note that unlike many other CS fields, the machine learning field is firmly split between practitioners and theorists. The practitioners use machine learning as tools, while the theorists want to prove and improve machine learning methods. The resulting problem is that books on machine learning are typically written from the theorists' point of view, like Hastie's book. The only practitioner's book I've found is "Programming Collective Intelligence" by Segaran, which covers basic concepts. I still haven't found a good practitioner's book on SVM, PCCM, etc.

share|improve this answer

Machine learning has a massive amount of probability and statistics so taking a few advanced courses in these subjects would be a really great place to start.

share|improve this answer