# Software Engineering to Deep Learning

Software Engineering is a process of building Software functions that defines logics and functions that you use to transform. If you have been a software engineer, the most essential skills that you need is "Logic" and a programming language that you can pick up.

In Software Engineering you use your brain to create the complex Logic, manage system resources, cache and direct the dumb computer to do all the work. Software Engineering the outcomes are definite. You create a logic, and feed it data to store or have the system perform in certain fashion.

In Machine Learning the paradigm changes. You are using either Statistical Models, Neural networks that will generate functions (Models) which is like your code to generate outputs for you.

Now If you are Software Engineer and you stumble upon your first piece of Tensorflow code, your mind is zapped

Where is the set methods, if-else, loops etc??

There is NONE!

For you are asking the computer to generate an function based on the data it observes, essentially what you would have done when writing a code.

The main thing that you need to learn is the Math behind the algorithms.

The main building blocks of the Math Behind Machine Learning

- Statistics including Probability

- Linear Algebra

- Calculus

Now, if you are an engineer and scratching your head. You are trying to remember all that was taught in College :).

Here are some courses that you could take to refresh your memory:

A good old college text book should also work perfectly.

Once you have completed the basics. You should feel confident to jump into the actual understanding the Machine Learning concepts and the Math behind it.