This course takes students to the next level of Java Development by improving on the knowledge they acquired in the Intro to Java course. Students will improve their skills through practicing and learning new topics, concepts, and Java programing techniques. Here they will learn the basics of OOP, get acquainted with streams, serialization, and method overloading, and they will learn a lot about interfaces and multiple inheritance. 

Students will learn how to work with files and archives. We'll discuss what design patterns are and how to use them. They will get experience working with JSON, Guava, Apache Commons Collections, and JUnit. They'll learn the details of garbage collection in Java. In addition to the advanced components of Core Java, they will get acquainted with tools needed by any modern software developer. Learn about Git and JAXB, RMI and Dynamic Proxy. And they'll touch on another important programming language — JavaScript.