Java Foundations Certification - Free Course

About the Course

This is the second free course from our Java programming series. It is meant as a natural continuation of the Java Basics course, so if you are new to Programming, be sure to go over those lessons and exercises first. You can find them here.

The Java Foundations course is designed to give you all the essential skills to pass the necessary exam and become a certified Java Developer. At the moment, we do not offer certification at the end of the classes but we are working on it. 

Our free Java Foundations course includes 13 lessons in 30 hours of video lessons and 55 hands-on exercises that will help you learn the core principles of Java programming and gain practical expertise.

Free Java Foundations Full Course

Watch the entire Java Foundations free course as a single video (30 hours long) or lesson by lesson. Either way, you will learn the core concepts of Java programming:

Follow the hands-on exercises included in every lesson to develop practical Java programming skills, and algorithmic thinking skills and gain problem-solving experience. 

Learn the foundations of Java programming (data types and variables, IDEs, console input and output, conditional statements, and loops, arrays, lists, maps, strings, objects, classes, OOP, exceptions and many other topics) in 30 hours with 55 hands-on exercises.

Java Foundations Free Lessons

Watch the individual free video lessons from the Java Foundations course. Follow the hands-on exercises to learn and practice the fundamental concepts of Java programming and develop practical problem-solving skills. Those are an important part of your journey to becoming a certified Java Software Engineer.

This code lesson teaches the control-flow in Java: writing code commands, writing simple Java programs, compiling and running the code, writing control-flow logic using if-else and loops. It comes with practical exercises with automated grading.

In this lesson, we will review how to use data types and variables, the data types in Java, how variables are stored in the memory, how to convert from one data type to another (type conversion).

In this lesson, we take a look at arrays and how to use arrays in Java. We shall learn how to define and initialize and array, to to access its elements, how to read and print arrays, and basic array algorithms, like searching and sorting.

In this lesson, we will review another very important paradigm in the programming universe – methods. We will find a few ways in which will make our code more organized and readable. Also, we are going to learn how to extend the functionality of our code. We shall learn how to define and invoke methods in Java and how to use parameters and return a value.

Lists are one of the most popular data structures in programming, as they allow for flexibility. Unlike arrays, their length is not fixed and you can insert and delete elements at any point. In this lesson, we shall learn how to use lists in Java, how to define and initialize list, how to access its elements, how to add, edit, delete and insert elements, how to read, print and traverse lists.

Learn about strings and text processing in Java, how to read and print strings, how to search in a string, how to extract a substring, how to remove a substring and how to build a string.

In this lesson, we take a look at maps, lambda expressions, and the stream API in Java. We shall learn how to map keys to values, how to process sequences of elements (streams) and how to filter, transform, sort and aggregate the elements.

This lesson provides an overview of objects and classes in Java for beginners on the topic. With it, you will make your first steps in the world of Object-Oriented Programming (OOP), which is one of the most widely-used programming paradigms in modern programming. 

By the end of the lesson, you will be familiar with the objects and class in Java and their purpose. You will also know the different parts of a class: methods, constructors, getters and setters, fields, etc.

You will go over the topics of defining simple classes in Java, defining fields, constructors, methods and properties (getters and setters), as well as static members (methods and fields). You will learn how to use public and private class members, how to instantiate and use classes.

Learn the four pillars of Object-Oriented Programming (OOP): encapsulation, abstraction, inheritance and polymorphism. Learn how to define classes in Java with constructors and properties, how to define, implement and use interfaces, how to inherit classes (along with their data and functionality) and how to invoke abstract actions using polymorphism.

Learn about exception handling in Java: how to throw and catch exceptions, the exceptions class hierarchy, the compile-time and runtime exceptions and how to organize the program flow using exceptions. We shall learn how to use the try-catch-finally construct, the “throw” operator and the keyword “throws” in method declarations.

In this lesson, we explore some frequently used Java API classes. Get familiar with the Math class, how to generate random numbers, the need for BigInteger and BigDecimal in programming, and how to work with date and time in Java, as well as using the Arrays and Formatter classes in Java.

As a bonus, you can review this lesson, where we go over the topics of JDK, JRE, and command-line Java tools. You will learn how to compile and run a Java program through console commands, the concepts of classpath, JAR archives and Java modules.

What Do Our Students Have to Say?

SoftUni is a great place to make the first step that just might change your life – it happened to me. I know software engineering seems hard, but SoftUni has a great learning program that starts with baby steps and you learn new skills in stages. Once you join the program it will not be easy, but trust me - don’t give up!
Shadi Obeyd
Software Engineer - myPOS
SoftUni offers what most universities lack – a modern curriculum with emphasis on practical experience and hands-on projects, rather than solely on theory. During my time there, SoftUni gave me the ability to develop full-stack projects from start to finish and prepared me for the professional world.
Kostadin Zlatkov
Software Engineer - Oracle
All of the lecturers I met at SoftUni were great people and professionals. They were always there to help. The courses were exhaustive enough to give me the fundamental knowledge and skills needed to start a job.
Sinan Aliman
Software Engineer - Endava