Please NOTE: While titled as a complete course from beginner to master, this course primarily focuses on establishing strong foundational programming concepts in Java. It's ideally suited for beginners who want to learn Java programming from the ground up. The course provides a comprehensive introduction to Java, covering essential programming concepts and gradually building up to more advanced topics. With Java being one of the most popular programming languages worldwide (used by over 7.6 million developers), this course provides the essential skills needed to start a career in software development.
-
Java Fundamentals
- Write your first Java program
- Understand variables, data types, and operators
- Master control statements and program flow
-
Data Management
- Work with arrays and ArrayLists
- Implement file I/O operations
- Handle strings and StringBuilder
-
Object-Oriented Programming
- Construct objects using OOP principles
- Implement inheritance and polymorphism
- Design class hierarchies
- Work with abstract classes and interfaces
-
Advanced Concepts
- Exception handling
- File I/O operations
- Enumerated types
- Complex application development
Throughout the course, you'll build several practical projects:
- Average of Three
- Mad Libs Clone
- Learning Packages of the Month Club
- Divisible by Three
- Guess the Number
- Working with Arrays
- Working with ArrayLists
- Name Permutations
- Sum of Elements
- Tic-Tac-Toe
- BankAccount Class
- IceCream Class
- Circle Class
- Employee Class Hierarchy
-
Getting Started
- Section Overview
-
Introducing Java
- Hello World
- Variables and Data Types
- Operators
- User Input
- Projects: Average of Three, Mad Libs Clone
-
Control Statements
- Selection and Repetition
- Continue and Break
- Random Numbers
- Projects: Learning Packages, Divisible by Three, Guess the Number
-
Arrays and ArrayLists
- Array Fundamentals
- ArrayList Usage
- Wrapper Classes
- Projects: Working with Arrays, Working with ArrayLists, Parallel Arrays
-
Strings and StringBuilder
- String Methods
- StringBuilder Class
- Project: Name Permutations
-
Methods
- User-Defined Methods
- Method Calls and Recursion
- 2D Arrays
- Projects: Sum of Elements, Tic-Tac-Toe
-
Introduction to Classes and Objects
- OOP Basics
- Encapsulation
- Projects: BankAccount, IceCream, Circle Classes
-
File I/O and Exceptions
- File Input/Output
- Projects: Creating Rectangles and Circles from File
-
More Object-Oriented Programming
- Inheritance
- Polymorphism
- Abstract Classes and Interfaces
- Enumerated Types
- Projects: Employee Class Hierarchy
- Beginner coders new to Java
- Experienced Java programmers looking to sharpen their skills
- Developers seeking to upskill in Java
- Codestars By Rob Percival: Revolutionizing coding education for over 500,000 students
- John P. Baugh, PhD:
- Professor and chair of computer information systems at Oakland Community College
- PhD in computer and information science
- Former software engineer at Siemens PLM Software
- Consultant for US Department of Defense contractors
To begin your Java journey:
- Install JDK (Java Development Kit)
- Set up your development environment
- Start with the first section: "Getting Started"
# Compile and run in one step (Java 11+)
java HelloWorld.java
# Traditional two-step approach
javac HelloWorld.java # Compile
java HelloWorld # Run
# Create output directory for compiled classes
mkdir out
# Compile with package structure (-d flag creates necessary directories)
javac -d out src/main/java/packagename/*.java
# Run using fully qualified class name
java -cp out packagename.ClassName
# Example:
javac -d out src/main/java/section9moreoop/*.java
java -cp out section9moreoop.AnimalDemo
To run programs from any directory using just the fully qualified class name:
# Add to your shell profile (.zshrc, .bash_profile, etc.)
export CLASSPATH=/path/to/your/project/out:$CLASSPATH
# After setting CLASSPATH, you can run directly
java section9moreoop.AnimalDemo
- Package names must match directory structure
- Class names are case-sensitive
- Always include the
.java
extension when compiling - Never include the
.class
extension when running - The
-cp
flag sets the classpath for finding compiled classes - When using packages, always use the fully qualified class name (e.g.,
section9moreoop.AnimalDemo
)
- Hands-on coding challenges in every lecture
- Practical project-based learning
- Comprehensive coverage of Java concepts
- Real-world application examples
- Progressive difficulty curve
Note: This course is available on the O'Reilly learning platform with a 10-day free trial.