Getting Started with Programming, OO & Java Basics for Non-Developers

Unlock your potential with 'Getting Started with Programming, OO & Java Basics for Non-Developers', a comprehensive course designed for beginners eager to explore Java 21's cutting-edge features and dive into the world of software development.

Course Category Icon

Essential Skills Gained

Checkmark

Write and execute Java programs using modern IDEs and gain a basic understanding of coding mechanics.

Checkmark

Apply object-oriented programming principles to design and structure professional-grade applications.

Checkmark

Utilize Java's core features to manage data, handle errors, and build efficient programs.

Checkmark

Understand and adopt best practices for clean and maintainable Java coding.

Format

  • Instructor-led
  • 5 days with lectures and hands-on labs.

Audience

  • Aspiring developers from non-technical backgrounds
  • Technical professionals collaborating with engineering teams
  • Recent college graduates entering programming roles
  • Technical managers needing coding knowledge for project oversight

Description

Learning to program opens up a world of possibilities, whether you are looking to build applications, improve your problem-solving skills, or just understand how software works. Getting Started with Programming, OO, and Java 21 Basics for Non-Developers is a hands-on, expert-led course designed to make coding approachable, even if you have never written a line of code before. You will learn how programs work, how to think like a developer, and how to write and organize Java code in a way that makes sense. With plenty of hands-on practice, you will gain confidence using Java 21’s latest features, working with IDEs, and understanding key concepts like variables, loops, methods, and object-oriented programming. This course is built for technically-minded beginners who want real coding experience in a structured, supportive environment. Over five days, you will write your own Java programs, explore core programming concepts, and see firsthand how to build applications from the ground up. You will also work with essential Java tools, handle errors, and learn best practices for writing clean, efficient code. With expert guidance and a focus on hands-on learning, you will walk away with practical skills that you can use immediately. Whether you are starting your journey into development, working with technical teams, or just curious about how programming works, this course will give you the foundation you need to get started. Becoming a modern software developer is like learning a new language; it requires study, practice, and dedication well beyond this course to apply your new skills effectively. While this five day program won't transform you into an experienced developer, it will lay a solid foundation in coding basics using Java, while teaching you to think like a programmer. Although this course is technical in nature, our instructors will guide you every step of the way, providing a supportive environment for you to explore, ask questions, and prepare for your next learning milestones.

Calendar icon

Upcoming Course Dates

No upcoming dates. Please check back later.

Course Outline

Download PDF

Overview of Computer Programming

  1. Explain what a program is

  2. Explain why there are different types of languages

  3. Explain what a compiler is

  4. Explain what an interpreter is

  5. Lab: Matching Terms

Features of a Program

  1. Understand what the entry and exit points of an application are

  2. Explain what variables are

  3. Explain what programming instructions are

  4. Explain what errors and exceptions are

  5. Understand what programming algorithms are

Software Development Life Cycle

  1. Explain the purpose of the software development life cycle

  2. Explain what each phase is for

  3. Explain the difference between the software development life cycle and a methodology

Thinking in Objects

  1. Understand the difference between a class and an object

  2. Deconstruct an object into attributes and operations

  3. Map an object to a class

  4. Define inheritance

  5. Lab: Designing an Application

The Java Platform

  1. Introduce the Java Platform

  2. Explore the Java Standard Edition

  3. Discuss the lifecycle of a Java Program

  4. Explain the responsibilities of the JVM

  5. Executing Java programs

  6. Garbage Collection

  7. Documentation and Code Reuse

Using the JDK

  1. Explain the JDK’s file structure

  2. Use the command line compiler to compile a Java class

  3. Use the command line Java interpreter to run a Java application class

  4. Lab: Exploring MemoryViewer

The IntelliJ Paradigm

  1. Introduce the IntelliJ IDE

  2. The Basics of the IntelliJ interface

  3. IntelliJ Projects and Modules

  4. Creating and running Java applications

  5. Tutorial: Working with IntelliJ 2023.2 (Community Edition)

Writing a Simple Class

  1. Write a Java class that does not explicitly extend another class

  2. Define instance variables for a Java class

  3. Create object instances

  4. Primitives vs Object References

  5. Implement a main method to create an instance of the defined class

  6. Java keywords and reserved words

  7. Lab: Create a Simple Class

Adding Methods to the Class

  1. Write a class with accessor methods to read and write instance variables

  2. Write a constructor to initialize an instance with data

  3. Write a constructor that calls other constructors of the class to benefit from code reuse

  4. Use the this keyword to distinguish local variables from instance variables

  5. Lab: Create a Class with Methods

Exploring Object-Oriented Programming

  1. Real-World Objects

  2. Classes and Objects

  3. Object Behavior

  4. Methods and Messages

  5. Lab: Define and use a New Java class

Inheritance, Abstraction, and Polymorphism

  1. Encapsulation

  2. Inheritance

  3. Method Overriding

  4. Polymorphism

  5. Lab: Define and use Another Java Class

Language Statements

  1. Arithmetic operators

  2. Operators to increment and decrement numbers

  3. Comparison operators

  4. Logical operators

  5. Return type of comparison and logical operators

  6. Use for loops

  7. Switch Expressions

  8. Switch Expressions and yield

  9. Lab: Looping (optional)

  10. Lab: Language Statements

  11. Lab: Switch Expressions

Using Strings and Text Blocks

  1. Create an instance of the String class

  2. Test if two strings are equal

  3. Perform a case-insensitive equality test

  4. Contrast String, StringBuffer, and StringBuilder

  5. Compact Strings

  6. Text Blocks

  7. Unicode support

  8. Lab: Fun with Strings

  9. Lab: Using StringBuffers and StringBuilders

Fields and Variables

  1. Discuss Block Scoping Rules

  2. Distinguish between instance variables and method variables within a method

  3. Explain the difference between the terms field and variable

  4. List the default values for instance variables

  5. Final and Static fields and methods

  6. Lab: Field Test

Specializing in a Subclass

  1. Constructing a class that extends another class

  2. Implementing equals and toString

  3. Writing constructors that pass initialization data to parent constructor

  4. Using instanceof to verify type of an object reference

  5. Pattern matching for instanceof

  6. Overriding subclass methods

  7. Safely casting references to a more refined type

  8. Lab: Creating Subclasses

Using Arrays

  1. Declaring an array reference

  2. Allocating an array

  3. Initializing the entries in an array

  4. Writing methods with a variable number of arguments

  5. Lab: Creating an Array

Formatting Strings

  1. Format a String using the formatter syntax

  2. Apply text formatting

  3. Use String.format and System.out.printf

  4. Lab: Textblocks

Records

  1. Data objects in Java

  2. Introduce records as carrier of immutable data

  3. Defining records

  4. The Canonical constructor

  5. Compact constructors

  6. Lab: Records

Java Packages and Visibility

  1. Use the package keyword to define a class within a specific package

  2. Discuss levels of accessibility/visibility

  3. Using the import keyword to declare references to classes in a specific package

  4. Using the standard type naming conventions

  5. Visibility in the Java Modular System

  6. Correctly executing a Java application class

  7. The Java Modular System

  8. Defining Modules

Utility Classes

  1. Introduce the wrapper classes

  2. Explain Autoboxing and Unboxing

  3. Converting String representations of primitive numbers into their primitive types

  4. Defining Enumerations

  5. Using static imports

  6. Deprecating classes and methods

  7. Lab: Enumerations

Java Date/Time

  1. The Date and Calendar classes

  2. Introduce the new Date/Time API

  3. LocalDate, LocalDateTime, etc.

  4. Formatting Dates

  5. Working with time zones

  6. Manipulate date/time values

Inheritance and Polymorphism

  1. Write a subclass with a method that overrides a method in the superclass

  2. Group objects by their common supertype

  3. Utilize polymorphism

  4. Cast a supertype reference to a valid subtype reference

  5. Use the final keyword on methods and classes to prevent overriding

  6. Lab: Salaries - Polymorphism

Interfaces and Abstract Classes

  1. Define supertype contracts using abstract classes

  2. Implement concrete classes based on abstract classes

  3. Define supertype contracts using interfaces

  4. Implement concrete classes based on interfaces

  5. Explain advantage of interfaces over abstract classes

  6. Explain advantage of abstract classes over interfaces

  7. Lab: Interfaces

Introduction to Exception Handling

  1. Introduce the Exception architecture

  2. Defining a try/catch blocks

  3. Checked vs Unchecked exceptions

  4. Lab: Exceptions

Exceptions

  1. Defining your own application exceptions

  2. Automatic closure of resources

  3. Suppressed exceptions

  4. Handling multiple exceptions in one catch

  5. Enhanced try-with-resources

  6. Helpful NullPointerException(s)

  7. Lab: Exceptional

  8. Lab: Helpful Nullpointers

Building Java Applications

  1. Explain the steps involved in building applications

  2. Define the build process

  3. Introduce build scripts

  4. Explain the standard folder layout

  5. Resolving project dependencies

  6. Tutorial: Importing code Using Maven

Introduction to Generics

  1. Generics and Subtyping

  2. Bounded Wildcards

  3. Generic Methods

  4. Legacy Calls To Generics

  5. When Generics Should Be Used

  6. Lab: DynamicArray

  7. Lab: Adding Generics to Dynamic Array

Collections

  1. Provide an overview of the Collection API

  2. Review the different collection implementations (Set, List and Queue)

  3. Explore how generics are used with collections

  4. Examine iterators for working with collections

  5. Lab: Create a simple Game using Collections

Your Team has Unique Training Needs.

Your team deserves training as unique as they are.

Let us tailor the course to your needs at no extra cost.