Flowsmith

6-month track

Java

Six months from core syntax to a deployed Spring Boot service.

What is Java?

Java is a statically-typed, object-oriented language that runs on the JVM — one of the most widely deployed runtimes in enterprise software and large-scale backend systems. Its strict typing and mature tooling make it a common choice for teams that need code many people can maintain for years.

What you'll learn

  • Design classes with proper encapsulation, inheritance and interfaces
  • Use the Collections framework and streams instead of hand-written loops
  • Write and run unit tests with JUnit as part of every feature, not after it
  • Build and deploy a real REST API with Spring Boot

Curriculum

month 1

Foundations

Get productive with Java's syntax and the JVM.

  • Variables, types and control flow
  • Methods and classes
  • Compiling and running with javac/java
  • Reading a stack trace

month 2

Object-Oriented Java

Java's whole design is built around this.

  • Classes, constructors and this
  • Inheritance and interfaces
  • Polymorphism and abstract classes
  • Encapsulation and access modifiers

month 3

Collections & Generics

Stop writing your own list and map implementations.

  • ArrayList, HashMap, HashSet
  • Generics
  • The Collections framework
  • Lambdas and the Stream API

month 4

Exceptions & I/O

Handle failure and files the way real Java code does.

  • try/catch/finally and custom exceptions
  • Reading and writing files
  • Streams and buffered I/O
  • Input validation

month 5

Concurrency & Tooling

Move beyond a single-threaded toy program.

  • Threads and the executor framework
  • Build tools: Maven or Gradle
  • Unit testing with JUnit
  • Logging basics

month 6

Capstone Project

Ship a real backend service.

  • Design a small Spring Boot REST API
  • Connect it to a database
  • Write tests for it
  • Deploy it