# Beginners

Road map for beginners new to deep learning.

## How Do I Start Using Deep Learning?

Where you start depends on what you already know.

The prerequisites for really understanding deep learning are linear algebra, calculus and statistics, as well as programming and some machine learning. The prerequisites for applying it are just learning how to deploy a model.

In the case of Deeplearning4j, you should know Java well and be comfortable with tools like the IntelliJ IDE and the automated build tool Maven.

Below you'll find a list of resources. The sections are roughly organized in the order they will be useful.

## Free Machine- and Deep-learning Courses Online

Patrick Winston's Introduction to Artificial Intelligence @MIT (For those interested in a survey of artificial intelligence.)

Andrej Karpathy's Convolutional Neural Networks Class at Stanford (For those interested in image recognition.)

## Math

The math involved with deep learning is basically linear algebra, calculus and probility, and if you have studied those at the undergraduate level, you will be able to understand most of the ideas and notation in deep-learning papers. If haven't studied those in college, never fear. There are many free resources available (and some on this website).

Linear Algebra for Machine Learning; Patrick van der Smagt

## Programming

If you do not know how to program yet, you can start with Java, but you might find other languages easier. Python and Ruby resources can convey the basic ideas in a faster feedback loop. "Learn Python the Hard Way" and "Learn to Program (Ruby)" are two great places to start.

A Vim Tutorial and Primer (Vim is an editor accessible from the command line.)

If you want to jump into deep-learning from here without Java, we recommend Theano and the various Python frameworks built atop it, including Keras and Lasagne.

## Python

## Java

Once you have programming basics down, tackle Java, the world's most widely used programming language. Most large organizations in the world operate on huge Java code bases. (There will always be Java jobs.) The big data stack -- Hadoop, Spark, Kafka, Lucene, Solr, Cassandra, Flink -- have largely been written for Java's compute environment, the JVM.

## Deeplearning4j

With that under your belt, we recommend you approach Deeplearning4j through its examples.

## Other Resources

Most of what we know about deep learning is contained in academic papers. You can find some of the major research groups here.

While individual courses have limits on what they can teach, the Internet does not. Most math and programming questions can be answered by Googling and searching sites like Stackoverflow and Math Stackexchange.

Last updated