I have deep interest in AI and want to start learning how to implement current method. I know about java and C++; are these languages sufficient?

I'd appreciate suggestions regarding free online courses/websites that utilize Java/C++. If I lag some knowledge which is required before starting AI then please let me know.


AI is a wonderful field to get into. Not only is it in high demand in the job market, it also helps you perceive the world in a whole new way. It's great that you have a deep interest in AI. In my opinion, you'll progress faster if you are having fun. Learning is always accelerated when you are curious and deeply interested in a particular domain or technology.

First, begin by building your foundations, and then later you can specialize in specific areas of interest.

As a beginner it's not advisable for you to just dive deep into every machine learning topic, you could easily get discouraged. There's too much ground to cover and the field is progressing rapidly. Start by learning the foundational concepts. Focus on one thing for now and learn the concepts really well.

Below are the basic topics that I would suggest you pick up as you begin your journey towards proficiency in AI.

Learn and refresh in math ( linear algebra, numerical optimization, and differential calculus), probability and statistics: I cannot stress enough how important basic statistical concepts are in understanding AI. Statistics will help you grasp many of the algorithms used such as linear regression and classification. Matrix Algebra, on the other hand, is important when you start manipulating large amounts of data. Additionally, you need at least a basic grasp of calculus. Important concepts such as gradient descent cannot be understood without at least a basic comprehension of calculus. Regarding materials to learn these courses I recommend that you download Stanford University's Elements of Statistical Learning. https://web.stanford.edu/~hastie/Papers/ESLII.pdf and consider enrolling in Khan academy's differential calculus course. https://www.khanacademy.org/math/calculus-home/differential-calculus

Programming: Programming is key in order to successfully implement learning algorithms. Its great that you know Java and C++, as long as you get the concepts (variables, loops, objects, methods and data structures) picking up other languages becomes easier. I advise that you pick up Python since it enables fast and natural expression of mathematical equations. It also has a fantastic ecosystem, there is virtually a Python package for almost any conceivable math function.

However, before you pick up Python. There are a number of ML libraries for Java which can leverage on your experience with the language, such as WEKA, MOA, Deeplearning4j, Stanford coreNLP, Apache Singa, Mallet, and Elki. These are super useful Java libraries which can be applied directly to many problems in the field. I advise you to sign up for Code Academy which is a platform where you can learn to code interactively. https://www.codecademy.com/

You will then need to familiarise yourself with basic Learning Algorithms: There are numerous algorithms in Machine Learning which are important to one problem or the other. There is no single model that works best for all problems. Familiarizing yourself with Linear Regression, Support Vector Machines, Dimensionality reduction, Gaussian Processes, Naive Bayes, Decision Tree's and K-Means algorithms will definitely prove useful in the long run. I recommend you pick up the freely available book Deep Learning by Yoshua Bengio and Ian Goodfellow for this http://www.deeplearningbook.org/

To have a competitive edge be sure to invest in 'theory': A great grasp of the theoretical topics that surround AI (i.e. the theory of computation, signal processing, and the artificial neuron) lays a strong foundation for a lot of the abstract areas of AI. You also need to be well versed in AI theory in order to keep up with new developments in the field.

Practice: Consider getting started on some simple AI projects i.e. a chatbot, handwriting recognition or a tic-tac-toe bot. I recommend that you post your code on Github so that others see your progress and contribute new ideas on how you can advance forward. Kindly follow Siraj Rawal's GitHub account for interesting AI project ideas https://github.com/llSourcell?tab=repositories

Get a mentor: A mentor will be glad to assist you to progress in your understanding of the field as they themselves have been through your shoes so they understand your needs before you even ask. Not only will a mentor help explain advanced concepts, they will breakdown jargon and correct your mistakes. You can sign up to Machine Learning Mentor to link up with a mentor in your AI studies http://www.machinelearningmentor.com/

All the best


If you are coming from Java, it would make a lot of sense to play around with deeplearning4J at first. From there I would start learning python as this is the primary language used today in ML.

Lectures are a great way to get your feet wet in understanding and applying ML concepts.

My favorites are:

Stanford ML(Andrew NG): https://www.youtube.com/watch?v=UzxYlbK2c7E (covers classic algorithms in depth)

MIT AI(Patrick Winston): https://www.youtube.com/watch?v=TjZBTDzGeGg&t=2s (great starter course that covers basic concepts beautifully)

Deepmind RL(David Silver): https://www.youtube.com/watch?v=2pWv7GOvuf0&t=7s (Best RL course available)

Beyond that, start implementing these concepts. There are hundreds of tutorials on computer vision, natural language processing, and reinforcement learning.


I have been programming Java (also sometimes C++) since the 1990s, and wanted to get into AI in September 2017. I spent a lot of time with the Java implementation of TensorFlow, but I finally (after 1 month) gave up and started to learn Python.

I bought the O'Reilly book "Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques for Building Intelligent Systems" and went through the examples (all in Python).

Now, 4 months later, I feel quite comfortable with Python, and understand the AI examples in the book. Looking back, for me this was by far the fastest way to go. Learning Python took me longer than I thought, but I am happy to use Python now besides Java.


Not the answer you're looking for? Browse other questions tagged or ask your own question.