This course for anyone who want to be Java programmer from scratch, We will start by discus all Java fundamentals that you need to start programming Android, Java web or Java Desktop apps. We will start first by install the development environment then you will run your first Java app, and understand how program flow works in Java. Then we will talk about variables and Math operation and proirites. Then we will take about logic and making decision, then we will talk about loops. then we will talk about functions and OOP concept that you need to use when you program apps with Java, then we will talk about multi-processing and how you could run multi-process in same time and how to avoid Deadlock, then we will talk about Databases, then we will talk about collections and which type collection you have to use for better performance depend on your app. Then we will talk about Java 8 new features, then we will talk about build desktop GUI application with JavaFx.