Java Master Class thumbnail

Back to courses

Java Master Class

Java Bootcamp curriculum to help you become a Java Software Engineer

Level: Entry, Junior and Mid Engineers

author image

Nelson

Course by
Nelson

This course includes:

25 Hours

English Subtitles

Certification Upon Completion

Lifetime Course Access

Access to Discord group

Amigoscode Textbook

15 Days Money Back Guaranteed

Ola

Have a coupon? Enter at checkout

The tech stack you will in this course

java logojava
git logogit
terminal logoterminal
intellij logointellij
spring logospring
spring-boot logospring-boot

What you'll learn

Compiled vs Interpreted Languages

Static vs Dynamic Type Checking

IntelliJ IDEA and Jetbrains Tools

Java Data Types and Variables

Control Structures: Loops and Conditional Statements

Packages and Access Modifiers

Methods, Functions, and Exception Handling

File Operations and Input/Output Handling

Object-Oriented Programming

Inheritance, Polymorphism, and Abstraction

Dependency Injection and SOLID Principles

Data Structures: Arrays, Lists, Maps

Generics and Java Streams

Maven Build Tool

Testing with JUnit

Spring Boot Framework

Database Integration and ORM

APIs, HTTP, and Full Stack Development

Continuous Integration and Deployment (CI/CD)

Welcome to Amigoscode's most comprehensive Java course! Your journey to mastering Java, coding proficiently, and building robust applications begins here.

Last year, the vibrant energy of a Java Bootcamp in London transformed many aspiring developers. A year of on-ground experience, myriad questions, countless solutions, and then it clicked: Why not expand this learning experience? Why not mold it into a Master Class for the entire Amigoscode's community

Six intense months. Countless cups of coffee. Infinite passion. The Amigoscode team and I have funneled all this energy to bring forth more than just a course. I am excited to announce that we have surpassed our goal and included all these features to help you master the language within the shortest possible time:

  • Active learning: A ton of exercises and two guided projects prepared especially for this course: Command Line Interface and Spring Boot project.
  • 48-chapter roadmap via 25 hours of video classes: All the knowledge and practical experience you need to master the language and start building your own applications.
  • Error message? Post the problem to our dedicated Discord class and your classmates and I will be there to help you quickly resolve it with an explanation - so you can learn from your mistakes.
  • Amigoscode Textbook: Will give you easy access to code, course materials, and additional information.
  • 6-Month Bonus: Explore the full power of IntelliJ IDEA, the ultimate coding companion, for the next six months.

Who is the course for?

Whether you're a student from a Bootcamp or University, a professional versed in other languages, a self-guided coding enthusiast, or someone stepping into the realm of coding for the first time, the Master Class is crafted for you. Its mission? To transform you into a proficient Java programmer.

Wondering how can I be sure of that?

For the last four years, I have been meeting with Amigoscode's students from all these backgrounds on a day-to-day basis: tutoring, helping to resolve errors, giving advice on personal projects and just having a chat. Drawing from these multifaceted interactions, I've crafted a comprehensive roadmap designed to propel anyone with the ambition to master Java. And it’s not just my assurance—our Success Stories highlight individuals, perhaps much like you, who have successfully transitioned into accomplished roles in software engineering through Amigoscode's guidance.

New to Java or coding? It's natural to feel the landscape is vast and daunting. But here's the silver lining: you've stumbled upon the perfect course tailored to demystify the coding realm for you. Gone are the days of bewilderment and mounting frustration. With the Java Master Class, clarity is our mantra from the get-go. And with a 30-day return policy, you're free to test out the system without any strings attached.

Seasoned in Java? Fantastic! Peruse the curriculum and dive in wherever you deem fit. And even if some topics resonate as familiar, there's always a fresh perspective and hands-on exercises to elevate your comprehension and expertise.

What would make the course even better?

Added bonuses

  • Command Line Interface and Spring Boot Project project - put your Java skills into practice, solidify your knowledge of the key Java components and gain invaluable coding experience
  • Amigoscode Textbook worth $120 full of course material, examples and exercises. This is the Textbook I built and taught during the Bootcamp
  • Support from the wider Amigoscode community, with over 60,000 coders across the Facebook and Discord channels, you are joining a community that will support you for the rest of your coding journey
  • A gift worth $98.99 - IntelliJ Course!
  • Bonus 6-Month subscription to IntelliJ IDEA worth $127
  • 15-days Money-Back Guarantee. If you decide that the course is not for you, we’ll issue you a 100% refund

Why Learn Java?

There is a reason why Java is frequently taught as the first programming language at universities.

One of my favourite features of the language is what I call "abstraction revelation" - using words for otherwise abstract concepts. Java’s English-like syntax makes it easy to read and understand the reasoning behind every command line. You can quickly get hands-on, reinforce everything that you are taught, and start practising your programming thinking skills.

Once you understand how to communicate abstractly with Java, any new language that you decide to learn will come with relative ease as most of the fundamental programming principles are shared with all other languages.

You will benefit from the support of a 10 million-strong community and a massive library of open-source tools, like Spring Boot. All these resources make the development in Java swift and your code more robust and efficient.

As a result, Java dominates as the top programming language and sees versatile uses across web, mobile and enterprise industries: from large-scale applications involving millions of lines to a few hundred-lines projects.

It’s no surprise that Java presents some of the best job opportunities in the programming field, with an average salary of $104,868.

Advanced Databases Market Statistics

Bianca's Story

42K Salary from Finance Assistant to Software Engineer

Success Story

Andreas Secured a Job!

Andreas' Story

Meet The Students Ready For Success

Career Switcher

Here is why you shouldn’t waste your time and enrol now

At this moment you might be feeling as if Java is out of your reach, You have already spent a lot of time and effort learning Java and nothing has made a difference. I have been there, becoming good at something very often feels impossible until you achieve it.

Even with access to all the resources online, Most of them probably leave you even more confused and just send you to more articles/courses.

So what’s the problem? If you don’t know a single programming language from the ground up, you won’t have the necessary knowledge to evaluate the information and really understand it. Disjointed articles that describe each function are seldom enough to teach you a broader perspective of programming.

That’s why completing Java Bootcamp will be such an invaluable experience. With a course structured from the beginning to the end, lessons that won’t ever confuse you and a supportive class on discord, we will ensure that you start thinking in the language of a software engineer and go on to start building your own amazing projects.

With these skills, software engineering will become a lot of fun 😊

To unlock the full potential of software engineering

Course Curriculum

This course has 52 sections including exercises

Course Intro

1 - Intro

Preview

2 - Practice Practice Practice

Preview

3 - Textbook

Preview

4 - Discord

Preview

5 - Newsletter

Preview

Introduction to Java

1 - What is Java

Preview

2 - What can you build with Java

Preview

3 - Java Usages

Preview

4 - Compliled vs Interpreted Languages

5 - Static vs Dynamic Type Checking

6 - Java version history

Environment Setup

1 - IntelliJ IDEA

Preview

2 - jetbrains.com/idea

3 - Jetbrains ToolBox

4 - Quick Word Before We Begin

Your Gift

1 - The Gift

2 - 6 Months bonus IntelliJ Ultimate

Getting Started

1 - Create Project

2 - Your First Java Program

Preview

3 - Compiling and Running via Terminal

4 - Fixing Compilation Errors

5 - View ByteCode

6 - Public Static Void Main

7 - Understanding Java Code

8 - SOUT Keyboard Shortcut

The Basics

1 - Reserved Keywords

2 - Comments

3 - Variables

4 - Primitives Data Types Difference

5 - Numeric Literals with Underscore

6 - Arithmetic Operators

7 - Increment and Decrement Operators

8 - Comparison Operators

9 - Short hand re-assignment

10 - Naming Variables

11 - Strings

12 - String API Documentation

13 - Reference Types and Objects

14 - Reference Types and Objects Differences

15 - Pass by Value with Primitives

16 - Pass by Value with Reference Types

17 - Arrays

18 - 0 and Null Values for Arrays

19 - Quick word on Arrays

Exercises

1 - TextBook and Exercises

2 - How To Attempt Exercises

3 - Exercises for Previous Sections

4 - Quick word on the CLI Project

Loops

1 - For Loop

2 - Loops and Arrays

3 - Enhanced For Loop

4 - For i vs Enhanced For Loop

5 - While Loop

6 - Do While

Exercise

If Statements

1 - If Statements

2 - If Statements with Conditions

3 - Else If

4 - AND Logical Operators

5 - OR Logical Operators

6 - Logical Operators Recap

7 "-" ! on ifs

8 - Dont do this with "If Statements"

9 - Switch Statement

10 - Data Types for Enums

11 - New Switch Expression

Exercise

Packages

1 - Packages

2 - Creating Packages

3 - Exploring Packages

4 - Import keyword

5 - Optmizing imports

6 - Import with fully qualified name

7 - No Import for java lang

Exercise

Access Modifiers

1 - Access Modifiers Intro

2 - Public Access Modifier

3 - Private

4 - Default

5 - Recap

6 - When To Use Each Access Modifier

7 - Static Keyword

Exercise

Methods

1 - Methods

2 - Method that add 2 numbers

3 - Parameters and Arguments

4 - Void methods

5 - Naming Convention

6 - Exercise

7 - Exercise Solution

8 - Textbook Exercises

Beyond The Basics

1 - Understanding public static void main

2 - Program Arguments

3 - Type Inference with Var

4 - Break Keyword and Loops

5 - Continue

6 - Return Keyword and Void Methods

7 - Final Keyword

8 - Enums

9 - Enums Methods

10 - Implicit and Explicit Type Casting

11 - Global and Local Variables

12 - Wrapper Classes

Exercise

Strings

1 - Working With Strings

2 - How Strings are stored in memory

3 - Strings are Immutable

4 - String Literal vs String Object

5 - Comparing Strings with ==

6 - Comparing Strings with .equals

7 - Useful String static Methods

Dates

1 - LocalDateTime

2 - LocalDate and LocalTime

3 - Creating Specific Dates

4 - ZoneIds

5 - Other Date Classes

Exercise

Big Decimal

1 - The Problem With double

2 - BigDecimal

3 - Exploring BigDecimal Methods

Taking User Input

1 - Scanner

2 - NextInt and other data types

3 - Outro

Exercise

Exception Handling

1 - Intro

2 - What is an exception

3 - Try Catch

4 - Multiple Catch Blocks

5 - Using Or Within Catch

6 - The Exception Class

7 - Finally Keyword

8 - Exception Hierarchy

9 - Uncheck Exceptions

10 - Checked Exceptions

11 - Throw and Throws

12 - Throwing Exceptions

13 - When To Use Checked VS Unchecked Exceptions

14 - Creating Custom Exceptions

Exercise

Working with Files

1 - Creating Files

2 - Writing To Files

3 - Reading from Files

4 - Try with Resources

Exercise

Classes and Objects

1 - Intro

2 - Your first class

3 - Setters

4 - Getters

5 - Constructors

6 - Default Constructors

7 - Multiple Constructors

8 - ToString

9 - The Inside Constructors

10 - The This Keyword

11 - Everything in Java is an Object

12 - @Override

13 - Comparing Objects with ==

14 - Comparing Objects with .equals

15 - Generating Equals method

16 - Equals Explained

17 - Generating Code

18 - Person and Cats Example

19 - POJOS

20 - Java Bean

21 - Exercise

22 - Exercise Solution

23 - Texbook Exercises

Static Keyword

1 - Static Keyword

2 - When to use Static

3 - Static Initialization Block

4 - Instance Block Initializer

5 - Static Import

Organizing Code

1 - Intro

2 - Packages

3 - Models

4 - Service Classes

5 - Data Access Object

6 - Connecting DAO and Service

7 - N Tier Architecture

8 - Utility Classes

9 - Extra Resources

CLI Project

1 - Intro

2 - The first CLI project task

3 - Demo

OOP

Upcoming Section Intro

OOP Encapsulation

1 - Encapsulation

2 - Encapsulation in Action

3 - The Problem With Non-Private Fields

4 - Data Hiding

5 - String Class Encapsulation Example

OOP Inheritance

1 - What is Inheritance

2 - Implementing Inheritance

3 - Create an instance of Programmer

4 - Super Keyword

5 - Protected Access Modifier

6 - Override

7 - Single and Multi-Level Inheritance

OOP - Abstraction

1 - Abstract Keyword on Classes

2 - Abstract Methods

3 - A Quick Word Before We Move On

4 - Abstract Classes Example

OOP - Interfaces

1 - What is Polymorphism

2 - Car Bicycle Electric Scooter Example

3 - Create Your First Interface

4 - Implementing Interfaces

5 - Putting It All Together

6 - Constants

7 - Default Methods

8 - CLI Project Exercise

Dependency Injection

1 - Don't Do This

2 - Dependency Injection

3 - Dependency Injection In Action

4 - Singletons and @Inject/@Autowire

5 - CLI Project Exercise

SOLID Principles

2 - SOLID Principles

3 - Single Responsibility

4 - Open Close

5 - Liskov

6 - Interface Segregation

7 - Dependency Inversion

Optionals

1 - Null Pointer Exception

2 - The Wrong Way Of Dealing with Null

3 - Optionals

Data Structures

1 - Intro

2 - Overview

3 - Arrays

4 - Working With Arrays

5 - 2D Arrays

6 - Working with 2D Arrays

7 - Lists

8 - Working With Lists and ArrayList

9 - Stack

10 - Working With Stacks

11 - Queue

12 - Working With Queues

13 - Linked List

14 - Working with LinkedList

15 - Sets

16 - Working with Sets

17 - Map Interface Hierarchy

18 - Maps

19 - Working With Maps

20 - HashCode

21 - Working HashCode and HashFunction

22 - Outro

23 - HackerRank Big Notation

24 - Algorithms, Big O and Time/Space Complexity - Extra reading

25 - Textbook Exercise

26 - CLI Project Exercise

Generics

1 - Intro

2 - Class Cast Exception

3 - ClassCastException Example 2

4 - Type Parameter and Type Argument

5 - Generic Type Naming Convention

6 - Generic and Classes

7 - Generic and Classes Part 2

8 - Generics and Methods

9 - Bounded Type Parameters

10 - Multiple Bounds

11 - Unbounded Wildcard

12 - Upper Bounded Wildcards

13 - Lower Bounded Wildcards

14 - Difference Between Bounded Type Parameters and Wildcards

15 - Type Erasure

16 - Outro

Streams

1 - Intro

2 - Java Streams

3 - How Streams Work

4 - Getting Started With Streams

5 - Exercise

6 - Declarative Solution

7 - Imperative Solution

8 - Visualize Streams

9 - Outro

10 - Textbook Exercise

11 - CLI Exercise

Maven

1 - Maven

2 - Installing Maven

3 - Verifying Maven Installation

4 - Creating a Maven Project

5 - Maven Folder Structure

6 - Project Object Model (pom.xml)

7 - Target Folder

8 - Installing Maven Dependencies

9 - Using Java Faker

10 - .m2 Folder

11 - Maven Lifecycles

12 - Running Maven Commands

13 - Packaging and Jar Files

14 - CLI Project Exercise

Testing

1 - Intro

2 - JUnit

3 - Installing JUnit

4 - Launching Your First Test

5 - Calculator and CalculatorTest Classes

6 - Writing Your First Unit Test

7 - Assertions

8 - Test Scenarios

9 - Other JUnit Features

10 - Textbook Exercise

11 - CLI Exercise

Spring Boot

1 - Section Intro

2 - Intro Spring Boot

3 - Spring Initializr

4 - Open the project with IntelliJ

5 - The pom.xml

6 - Cleanup Few Things

7 - Textbook

Spring Boot - Getting Started

1 - JDK

2 - Your first Spring Boot Application

3 - Embedded Web Server

4 - Configuring Embedded Web Server

5 - Your first API

6 - @SpringBootApplication

7 - Spring Web MVC

8 - JSON For Java

9 - Java Objects to JSON Objects

Spring Boot - HTTP & APIs

1 - Introduction to HTTP

2 - The Evolution of HTTP

3 - HTTP Request and Response Messages

4 - HTTP Methods

5 - HTTP Status Codes

6 - URL

7 - API and REST API

8 - Public APIs and Other Types

9 - Why build APIs

Spring Boot - Developer Tools

1 - Chrome Developer Tools

2 - Exploring XHR for our API

3 - Inspecting Instagram Network Activity

4 - REST Client & Postman

5 - IntelliJ REST Clients

Spring Boot - CRUD - Read

1 - CRUD and Section Overview

2 - Customer Model

3 - Fake Database

4 - API Endpoint

5 - @PathVariable

Spring Boot - Structure the Backend

1 - N Tier Architecture

2 - Refactor - Controller Service and DAO

3 - @RestController @Service @Repository @Component

Spring Boot - Application context and beans

1 - Application Context

2 - Inspecting beans

3 - Bean Scopes

4 - Creating Beans

Spring Boot - Error Handling

1 - We are not handling error the right way

2 - Custom Exception

3 - @ResponseStatus

4 - Include error Message to Responses

Spring Boot - Database

1 - Section Intro

2 - Postgres and Docker

3 - Verifying Docker Installation

4 - Postgres DB with Docker compose

5 - Connecting to Database

6 - Connecting to DB using IntelliJ IDEA

7 - Data Source & JPA

8 - Installing PostgreSQL Driver and Spring Data JPA Dependencies

9 - Configuring Datasource Properties

10 - Create Customer Table

Spring Boot - Spring Data JPA

1 - Entity

2 - Inspecting The Database

3 - Column Constraints

4 - CustomerRepository

5 - CustomerJPADataAccessService class

6 - @Qualifier

7 - Saving Entities

8 - Exploring JPA Methods

Spring Boot - Get Customer By Id Exercise

1 - The Problem

2 - Exercise Solution

Spring Boot - CRUD, Create

1 - Intro

2 - Chasing Interface

3 - Override insert customer

4 - Business Logic for Adding new Customer

5 - Controller @RequestMapping and @RequestBody

6 - Testing POST Request

Spring Boot - CRUD, Delete (Exercise)

1 - Exercise

2 - Exercise Solution

Spring Boot - CRUD, Update (Exercise)

1 - Exercise

2 - Exercise Solution

Spring Boot - Exercise

1 - Start

Next Steps

Full Stack Professional

What our students say

If you have any other questions - please get in touch

Andreas testimonial cover
author image

Andreas

Junior Software Engineer@Syntax IT Group

Cristian testimonial cover
author image

Cristian

Software Engineer@Starling

Questions & Answers

What makes Amigoscode programming courses different from others?

Amigoscode offers unique, practical, and industry-relevant programming courses taught by experienced instructors. We focus on real-world applications, giving you the skills you need to excel in your career.

Can I purchase your courses through my company's training budget?

Yes, many of our students purchase our courses through their company's training budget. Our courses are considered a valuable investment in employee skill development, and they can be expensed as part of your company's training and development initiatives.

How can Amigoscode courses help me advance my programming career?

Our courses are designed to bridge the gap between theory and practice. You'll gain hands-on experience, work on real projects, and build a portfolio that will impress employers and clients, opening up new opportunities for career growth.

Do you offer any certifications upon course completion?

Yes, we provide certificates of completion for all our courses. These certificates are recognized in the industry, and they can help you showcase your skills to potential employers or clients.

Can I access the course material at my own pace?

Absolutely! Amigoscode courses are self-paced, allowing you to learn at a speed that suits your schedule. You can revisit the material whenever you need, and you have lifetime access to the course content.

Do I need prior programming experience to enroll in your courses?

No, our courses are designed to accommodate all levels of learners. Whether you're a beginner looking to start your programming journey or an experienced developer wanting to enhance your skills, we have courses suitable for you.

What kind of support do I get during the course?

We provide extensive support to our students through discord. You'll have access to a community of learners and can ask questions, share your progress, and collaborate with fellow students. In addition, our instructors are available to help with any challenges you encounter during the course.

What is your refund policy?

We offer a 15-day refund policy. If you're not satisfied with your course within the first 15 days after purchase, we will provide a full refund, no questions asked. Your satisfaction is our priority.

Featured on

business-insider image
docker-captain image
linkedin image
head-first-java image

Java Master Class

Engage in a dynamic and interactive learning experience as you complete exercises and projects.