# How much C++ is needed for research in machine learning and artificial intelligence?

I am currently doing a master's in applied mathematics, and I recently got interested in machine learning and artificial intelligence, and I am thinking of going for a Ph.D. in this area. I have a reasonable maths and stats background, but I haven't done any course in ML/AI. Next semester, I am thinking of doing courses in ML (uses the book by Bishop), AI (uses the book by Norvig) and reinforcement learning at my university. Another advanced course in C++ is being offered, which I am also very interested to take, but the problem is it will be very difficult to manage all of these courses together. I have some knowledge of C++ (built some parts of a reasonably big project in the past but got a bit rusty nowadays) and very basic knowledge of Python, though I find Python much easier to learn and use than C++.

So, my question is: how important is C++ if I go for a Ph.D. in ML/AI/CV/NLP, etc.? Should I bother taking the C++ course or be more focused on Python and do the other three courses i.e., ML, AI, and reinforcement learning?

• Most real machine learning is done on the GPU, so using python and C++ shouldn't offer that much of a difference in what you can achieve, it would mostly just be that python is 10x easier to use. For example, a lot of the state of the art in machine learning is written using python libraries that handle the complicated GPU stuff for you. There's arguments to be made for C++, but in regards to machine learning, I really don't think it has a place. Python is just better in almost every way IMO Jul 9 at 4:00
• I learnt all I know through playing around with projects and reading disjointed resources online, so I'm afraid I don't know. However, I can point you towards the Stanford lectures on Youtube (cs231n). They're free and very good. A bit complex if you're just starting, but very informative Jul 9 at 6:42
• Consider also generating C (or C++) code -it could be compiled into a plugin- (see this answer...), and combining existing libraries. We aim to do so in RefPerSys Jul 11 at 21:04
• Learn also several programming languages. For example, Scheme (with SICP...) or Prolog. And read the Dragon book to understand how programming languages get implemented. See also Pitrat's blog. Feel free to contact me by email to basile@starynkevitch.net Jul 11 at 21:11
• Consider also reading Pitrat's last book Artificial Beings: the conscience of a conscious machine Jul 12 at 6:21