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

Learn to Think Like a Programmer: Jumpstart your Java coding skills in this engaging, skill-focused programming course

TT2000 / TTCODE101-J


5 Days

Course Overview

Getting Started with Programming, OO and Java Basics for Non-Developers is a fast-paced, five day course designed to provide you with a first look at how to code in Java to a very basic level. You’ll gain light hands-on programming experience, while you begin your journey to develop a programmer's mindset.

Throughout the course you'll explore the intricacies of the application development cycle, program structure, and language syntax. You’ll learn and practice core coding skills including fundamental OO concepts, vital programming constructs, string and character manipulation, dynamic memory allocation, standard input/output, and exception handling. You’ll also explore the power of inheritance and polymorphism as you learn to define specialized object implementations. The course also covers processing command line arguments and environment variables, empowering you to set up your own development environment to create flexible, user-friendly programs. With a wealth of hands-on lab exercises, you'll practice and refine your newly acquired skills.

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.

NOTE: Although this course is geared for non-developers, it is helpful for attendees to have a somewhat technical background and to be comfortable working with computers, having the ultimate goal of becoming a Java software developer. 

Course Objectives

With our supportive instructors, you'll enjoy a safe environment to explore, ask questions, and grow, leaving you confident and ready to continue your exciting learning journey. Working in a hands-on learning environment, guided by our expert team, you’ll explore:

  • The basic programming constructs that all programming languages share
  • Fundamental programming concepts, such as variables, data types, loops, and conditional statements.
  • Object-oriented programming principles, including encapsulation, inheritance, and polymorphism.
  • How to handle problems that might occur during the execution of a Java application.
  • How to use Java libraries and APIs for common tasks, such as file I/O, data manipulation, and networking.
  • Implementing exception handling and debugging techniques to ensure robust and reliable code.
  • Utilize industry-standard tools and Integrated Development Environments (IDEs) to efficiently write, test, and deploy Java applications.
  • Best practices for code organization, documentation, and version control to enhance collaboration and maintainability.
  • Specific Java 17 features that are covered in the course include: Switch Expressions, Text blocks, Pattern matching for instanceof, Introduce records as carrier of immutable data

Course Prerequisites



This course is designed for anyone new to coding and eager to learn how to program using Java. While it's tailored for beginner-level students, please note that it is technical in nature. If you're transitioning from a non-technical role to coding for the first time, feel free to reach out to us for additional guidance or pre-training suggestions that can better prepare you for this course. Our goal is to make your learning experience exciting, challenging, and valuable, without being overwhelmed.


Attendees might include:

  • Technically minded attendees who want or who want to begin the process of becoming an OO application developer
  • Technical team members from non-development roles, re-skilling to move into software and application development roles within an organization
  • Recent college graduates looking to apply their college experience to programming skills in a professional environment, or perhaps needing to learn the best practices and standards for programming within their new organization
  • Technical managers tasked with overseeing programming teams, or development projects, where basic coding knowledge and exposure will be useful in project oversight or communications needs



  • Basic computer literacy: Familiarity with computer operating systems, file management, and general navigation to ensure a smooth learning experience.
  • Foundational knowledge of IT concepts: Understanding of essential IT terminologies and concepts, such as computer networks, software applications, and data storage.
  • Analytical thinking: Ability to analyze problems and think critically to develop logical solutions, fostering a programmer's mindset.
  • Attention to detail: A keen eye for detail, ensuring the ability to spot errors and maintain code quality throughout the learning process.


Related Courses | Java Essentials Suite

The following are a subset of our related basic Java Foundation courses. Please see our catalog for our complete list.

  • TTCODE101-J:   Getting Started with Coding Basics (5 days)
  • TT2000:         Getting Started with Programming, OO and Java Basics for Non-Developers (5 days)
  • TT2120:         Java Programming for Non-OO Developers (C, COBOL, Mainframe)
  • TT2104:         Fast Track to Core Java Programming for OO Developers (C#, C++, etc.)

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda and labs may adjust during live delivery based on audience skill-level, needs and participation.

Day 1

  1. Overview of Computer Programming
  • Explain what a program is
  • Explain why there are different types of languages
  • Explain what a compiler is
  • Explain what an interpreter is
  1. Features of a Program
  • Understand what the entry and exit points of an application are
  • Explain what variables are
  • Explain what programming instructions are
  • Explain what errors and exceptions are
  • Understand what programming algorithms are
  1. Software Development Life Cycle
  • Purpose of the software development life cycle
  • SDLC Phases
  • software development life cycle vs a methodology
  1. Thinking in Objects
  • Understand the difference between a class and an object
  • Deconstruct an object into attributes and operations
  • Map an object to a class
  • Define inheritance
  1. The Java Platform
  • Introduce the Java Platform
  • Explore the Java Standard Edition
  • Discuss the lifecycle of a Java Program
  • Explain the responsibilities of the JVM
  • Executing Java programs
  • Garbage Collection
  • Documentation and Code Reuse
  1. Using the JDK
  • Explain the JDK’s file structure
  • Use the command line compiler to compile a Java class
  • Use the command line Java interpreter to run a Java application class
  1. The IntelliJ Paradigm
  • Introduce the IntelliJ IDE
  • The Basics of the IntelliJ interface
  • IntelliJ Projects and Modules
  • Creating and running Java applications

Day 2

  1. Writing a Simple Class
  • Write a Java class that does not explicitly extend another class
  • Define instance variables for a Java class
  • Create object instances
  • Primitives vs Object References
  • Implement a main method to create an instance of the defined class
  • Java keywords and reserved words
  1. Adding Methods to the Class
  • Write a class with accessor methods to read and write instance variables
  • Write a constructor to initialize an instance with data
  • Write a constructor that calls other constructors of the class to benefit from code reuse
  • Use the this keyword to distinguish local variables from instance variables
  1. Object-Oriented Programming
  • Real-World Objects
  • Classes and Objects
  • Object Behavior
  • Methods and Messages
  1. Inheritance, Abstraction, and Polymorphism
  • Encapsulation
  • Inheritance
  • Method Overriding
  • Polymorphism
  1. Language Statements
  • Arithmetic operators
  • Operators to increment and decrement numbers
  • Comparison operators
  • Logical operators
  • Return type of comparison and logical operators
  • Use for loops
  • Swtch Expressions
  • Switch Expressions and yield

Day 3

  1. Using Strings and Text Blocks
  • Create an instance of the String class
  • Test if two strings are equal
  • Perform a case-insensitive equality test
  • Contrast String, StringBuffer, and StringBuilder
  • Compact Strings
  • Text Blocks
  • Unicode support
  1. Fields and Variables
  • Discuss Block Scoping Rules
  • Distinguish between instance variables and method variables within a method
  • Explain the difference between the terms field and variable
  • List the default values for instance variables
  • Final and Static fields and methods
  1. Specializing in a Subclass
  • Constructing a class that extends another class
  • Implementing equals and toString
  • Writing constructors that pass initialization data to parent constructor
  • Using instanceof to verify type of an object reference
  • Pattern matching for instanceof
  • Overriding subclass methods
  • Safely casting references to a more refined type
  1. Using Arrays
  • Declaring an array reference
  • Allocating an array
  • Initializing the entries in an array
  • Writing methods with a variable number of arguments
  1. Formatting Strings
  • Format a String using the formatter syntax
  • Apply text formatting
  • Use String.format and System.out.printf

Day 4

  1. Records
  • Data objects in Java
  • Introduce records as carrier of immutable data
  • Defining records
  • The Canonical constructor
  • Compact constructors
  1. Java Packages and Visibility
  • Use the package keyword to define a class within a specific package
  • Discuss levels of accessibility/visibility
  • Using the import keyword to declare references to classes in a specific package
  • Using the standard type naming conventions
  • Visibility in the Java Modular System
  • Correctly executing a Java application class
  • The Java Modular System
  • Defining Modules
  1. Utility Classes
  • Introduce the wrapper classes
  • Autoboxing and Unboxing
  • Converting String representations of primitive numbers into their primitive types
  • Defining Enumerations
  • Using static imports
  • Deprecating classes and methods
  1. Java Date/Time
  • The Date and Calendar classes
  • Introduce the new Date/Time API
  • LocalDate, LocalDateTime, etc.
  • Formatting Dates
  • Working with time zones
  • Manipulate date/time values
  1. Inheritance and Polymorphism
  • Write a subclass with a method that overrides a method in the superclass
  • Group objects by their common supertype
  • Utilize polymorphism
  • Cast a supertype reference to a valid subtype reference
  • Use the final keyword on methods and classes to prevent overriding
  1. Interfaces and Abstract Classes
  • Define supertype contracts using abstract classes
  • Implement concrete classes based on abstract classes
  • Define supertype contracts using interfaces
  • Implement concrete classes based on interfaces
  • Advantage of interfaces over abstract classes
  • Advantage of abstract classes over interfaces
  1. Introduction to Exception Handling
  • Introduce the Exception architecture
  • Defining a try/catch blocks
  • Checked vs Unchecked exceptions

Day 5

  1. Exceptions
  • Defining your own application exceptions
  • Automatic closure of resources
  • Suppressed exceptions
  • Handling multiple exceptions in one catch
  • Enhanced try-with-resources
  • Helpful NullPointerException(s)
  1. Building Java Applications
  • Steps involved in building applications
  • Define the build process
  • Introduce build scripts
  • Explain the standard folder layout
  • Resolving project dependencies
  1. Introduction to Generics
  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls To Generics
  • When Generics Should Be Used
  1. Collections
  • Provide an overview of the Collection API
  • Review the different collection implementations (Set, List and Queue)
  • Explore how generics are used with collections
  • Examine iterators for working with collections
  1. Sealed Classes
  • Introduce sealed classes
  • The sealed and permits modifier
  • Sealed interfaces
  • Sealed classes and pattern matching

Course Materials


Setup Made Simple with our Robust Learning Experience Platform (LXP)

All course software (limited versions, for course use only), knowledge checks, digital courseware files or course notes, labs / data sets and solutions, live coaching support channels (as applicable) and rich extended learning / post training resources are provided for you in our “easy access / no install required” high-speed Learning Experience Platform (LXP) remote lab and content environment. Our tech team works with every student to ensure everyone is set up with access and ready to go prior to every course start date, ensuring smooth delivery and great hands-on experience.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Getting Started with Programming, OO & Java Basics for Non-Developers (TT2000) 5 Days Jan 8 to Jan 12 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Getting Started with Programming, OO & Java Basics for Non-Developers (TT2000) 5 Days Mar 4 to Mar 8 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Getting Started with Programming, OO & Java Basics for Non-Developers (TT2000) 5 Days Apr 29 to May 3 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Getting Started with Programming, OO & Java Basics for Non-Developers (TT2000) 5 Days Jun 3 to Jun 7 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Getting Started with Programming, OO & Java Basics for Non-Developers (TT2000) 5 Days Aug 5 to Aug 9 10:00 AM to 06:00 PM EST $2,495.00 Enroll

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by October 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More