We may earn an affiliate commission when you visit our partners.
in28Minutes Official

BONUS - Learn to Build REST API with Spring, Spring Boot, and JPA

7 Things YOU need to know about this

#2: Designed for

#4: PUZZLES and EXERCISES to help reinforce your learning

#5: One of the first courses to be updated to JAVA 16. Covers all new features in Java 9, Java 10, Java 11, Java 12, Java 13, Java 14, Java 15, and Java 16.

#6: Highly recommended.

5 STARS - This course exceeded all my expectations.

5 STARS - Great mix of theory and exercises.

5 STARS - What a great course.

Read more

BONUS - Learn to Build REST API with Spring, Spring Boot, and JPA

7 Things YOU need to know about this

#2: Designed for

#4: PUZZLES and EXERCISES to help reinforce your learning

#5: One of the first courses to be updated to JAVA 16. Covers all new features in Java 9, Java 10, Java 11, Java 12, Java 13, Java 14, Java 15, and Java 16.

#6: Highly recommended.

5 STARS - This course exceeded all my expectations.

5 STARS - Great mix of theory and exercises.

5 STARS - What a great course.

5 STARS - This is the best Java course I've come across. It's straight to the point without any missing details. You can get an idea of what you're getting into working with Java fast with this course. I really like it.

5 STARS - Never thought taking an online course will be so helpful. The instructor is quite engaging, gives a good amount of exercises.

5 STARS - This course is wonderful. I really enjoy it. It really is for beginners, so it's very helpful for people which don't know anything about programming.

5 STARS - It's very well thought out. I enjoy the constant exercises and the challenge they present to make things happen.

COURSE OVERVIEW

Java is one of the most popular programming languages. Java offers both object-oriented and functional programming features.

We take a hands-on approach using a combination of JShell and Eclipse as an IDE to illustrate more than 200 Java Coding Exercises, Puzzles, and Code Examples. This course assumes no previous ( beginner ) programming or Java experience. If you’ve never programmed a computer before, or if you already have experience with another programming language and want to quickly learn Java, this is a perfect course for you.

In more than 250 Steps, we explore the most important Core Java Programming Language Features

  • Basics of Java Programming - Expressions, Variables, and Printing Output

  • Java Operators - Java Assignment Operator, Relational and Logical Operators, Short Circuit Operators

  • Java Conditionals and If Statement

  • Methods - Parameters, Arguments, and Return Values

  • Object-Oriented Programming - Class, Object, State, and Behavior

  • Basics of OOPS - Encapsulation, Abstraction, Inheritance, and Polymorphism

  • Basics about Java Data Types - Casting, Operators, and More

  • Java Built-in Classes - BigDecimal, String, Java Wrapper Classes

  • Conditionals with Java - If Else Statement, Nested If Else, Java Switch Statement, Java Ternary Operator

  • Loops - For Loop, While Loop in Java, Do While Loop, Break and Continue

  • Immutability of Java Wrapper Classes, String and BigDecimal

  • Java Dates - Introduction to LocalDate, LocalTime and LocalDateTime

  • Java Array and ArrayList - Java String Arrays, Arrays of Objects, Primitive Data Types, toString and Exceptions

  • Introduction to Variable Arguments

  • Basics of Designing a Class - Class, Object, State and Behavior. Deciding State and Constructors.

  • Understanding Object Composition and Inheritance

  • Java Abstract Class and Interfaces. Introduction to Polymorphism.

  • Java Collections - List Interface(ArrayList, LinkedList and Vector), Set Interface (HashSet, LinkedHashSet and TreeSet), Queue Interface (PriorityQueue) and Map Interface (HashMap, HashTable, LinkedHashMap and TreeMap() - Compare, Contrast and Choose

  • Generics - Why do we need Generics? Restrictions with extends and Generic Methods, WildCards - Upper Bound and Lower Bound.

  • Functional Programming - Lambda Expression, Stream and Operations on a Stream (Intermediate Operations - Sort, Distinct, Filter, Map and Terminal Operations - max, min, collect to List), Functional Interfaces - Predicate Interface, Consumer Interface, Function Interface for Mapping, Method References - static and instance methods

  • Introduction to Threads and MultiThreading - Need for Threads

  • Implementing Threads - Extending Thread Class and Implementing Runnable Interface

  • States of a Thread and Communication between Threads

  • Introduction to Executor Service - Customizing the number of Active Threads. Returning a Future, invokeAll, and invokeAny

  • Introduction to Exception Handling - Your Thought Process during Exception Handling. try, catch, and finally. Exception Hierarchy - Checked Exceptions vs Unchecked Exceptions. Throwing an Exception. Creating and Throwing a Custom Exception - CurrenciesDoNotMatchException. Try with Resources - New Feature in Java 7.

  • List files and folders in Directory with Files list method, File walk method and find methods. Read and write from a File.

Start Learning Now. Hit the Enroll Button.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Hands-on with exercises and puzzles: learn object oriented programming with java
  • Clear your java interviews: get all the skills to demonstrate an expertise with java programming

Syllabus

Introduction to Course - Java Programming
Step 01 - Course Overview - Java Programming For Absolute Beginners
Course Downloads - Course Guide and Presentation
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses JShell and Eclipse IDE, which are standard tools, to provide a hands-on approach to learning Java, making it easier for beginners to grasp the concepts
Covers a wide range of Java concepts, from basic syntax to object-oriented and functional programming, providing a comprehensive foundation for complete beginners
Includes puzzles and exercises to reinforce learning, which can help developers of all levels solidify their understanding of Java concepts through practical application
Covers new features in Java 9 through Java 16, which is helpful for developers looking to stay up-to-date with the latest advancements in the Java programming language
Recommends Java 21 or higher, which may require learners to download and install the latest version of Java, potentially posing a challenge for some beginners
Teaches Eclipse, which is a widely used IDE, but learners should be aware that they may need to configure it to work with newer versions of Java

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive java for beginners

According to learners, this course is exceptionally well-suited for complete beginners in Java and programming. Many highlight the instructor's clear explanations and engaging teaching style as key strengths. The course is praised for its hands-on approach, featuring a good balance of theory and practical exercises, including numerous puzzles and coding challenges that help solidify learning. Students appreciate that the content is up-to-date with recent Java versions. While primarily for beginners, some found it a great refresher or quick introduction even with prior experience. The structured, step-by-step delivery makes complex topics digestible, leading to a strong foundational understanding of Java.
Covers recent Java versions and features.
"One of the first courses to be updated to JAVA 16. Covers all new features in Java 9, Java 10, Java 11, Java 12, Java 13, Java 14, Java 15, and Java 16."
"The course is updated regularly which is a huge plus in a fast-changing language like Java."
Well-structured and easy to follow steps.
"It's very well thought out. I enjoy the constant exercises..."
"The course flows logically from one topic to the next."
"Structured in a way that makes learning complex topics achievable."
Plenty of hands-on practice helps reinforce concepts.
"Great mix of theory and exercises."
"I enjoy the constant exercises and the challenge they present to make things happen."
"The instructor is quite engaging, gives a good amount of exercises."
"The exercises and puzzles are spot on and really test your understanding."
Perfectly designed for absolute programming beginners.
"It really is for beginners, so it's very helpful for people which don't know anything about programming."
"This course is wonderful. I really enjoy it. It really is for beginners..."
"This is the best Java course I've come across. It's straight to the point without any missing details."
"Excellent course for absolute beginners. Very clear and easy to understand."
Instructor is engaging, clear, and knowledgeable.
"The instructor is quite engaging, gives a good amount of exercises."
"Never thought taking an online course will be so helpful. The instructor is quite engaging..."
"The instructor is great and explains everything clearly."
"His method of teaching is easy to follow and he is very knowledgeable."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Java Programming for Complete Beginners with these activities:
Review Basic Programming Concepts
Solidify your understanding of fundamental programming concepts before diving into Java. This will make learning Java syntax and object-oriented principles easier.
Browse courses on Variables
Show steps
  • Read introductory materials on variables and data types.
  • Practice writing simple programs using loops and conditionals.
  • Complete online quizzes to test your knowledge.
Review 'Head First Java'
Supplement the course material with a beginner-friendly book on Java. This will provide a different perspective and reinforce key concepts.
Show steps
  • Read the first few chapters covering basic syntax and object-oriented principles.
  • Work through the examples and exercises in the book.
  • Compare the book's explanations with the course's explanations.
Solve Basic Java Coding Problems
Reinforce your understanding of Java syntax and data structures through practice. Regular coding exercises will help you internalize the concepts taught in the course.
Show steps
  • Find a website with Java coding challenges for beginners.
  • Solve problems related to variables, loops, conditionals, and arrays.
  • Review your solutions and compare them with others.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple Calculator Application
Apply your Java knowledge to create a practical application. This project will solidify your understanding of object-oriented programming and user input/output.
Show steps
  • Design the user interface for the calculator.
  • Implement the arithmetic operations using Java methods.
  • Handle user input and display the results.
  • Test the application thoroughly.
Create a Java Cheat Sheet
Summarize key Java concepts and syntax in a concise cheat sheet. This will help you quickly recall important information and reinforce your learning.
Show steps
  • Review the course materials and identify the most important concepts.
  • Organize the information into categories such as data types, operators, and control flow.
  • Write concise explanations and examples for each concept.
  • Format the cheat sheet for easy readability.
Review 'Effective Java'
Deepen your understanding of Java best practices and design patterns. This will help you write more efficient and maintainable code.
Show steps
  • Read selected chapters focusing on topics covered in the course.
  • Analyze the examples and understand the reasoning behind the recommendations.
  • Apply the best practices to your own Java projects.
Help Others on Java Forums
Reinforce your understanding by helping others learn Java. Explaining concepts to others will solidify your own knowledge and identify any gaps in your understanding.
Show steps
  • Find online Java forums or communities.
  • Answer questions from other learners.
  • Explain concepts in your own words.
  • Provide code examples and debugging assistance.

Career center

Learners who complete Java Programming for Complete Beginners will develop knowledge and skills that may be useful to these careers:
Java Developer
A Java developer specializes in developing applications using the Java programming language. This course is an excellent fit for someone aiming to become a Java developer, as it covers all the fundamentals of the language, including object-oriented and functional programming paradigms. The course also provides a thorough introduction to the Java platform, which includes essential knowledge about the JVM, JRE, and JDK. The hands-on exercises and puzzles in this course are particularly helpful for practical application, helping one become a proficient Java developer. The bonus REST API content using Spring Boot and JPA is directly relevant to backend Java development.
Software Engineer
A software engineer applies engineering principles to the design, development, and testing of software systems. This course covers the fundamentals of computer programming using the Java language, including object-oriented and functional programming, which are essential for a software engineer. The course's comprehensive curriculum, covering Java features, collections, and exception handling, helps build a strong base of knowledge. The hands-on exercises and puzzles are useful for transitioning from a student to a software engineer. This course is a good starting point for someone entering a software engineering career, giving a base for learning other software engineering principles.
Software Developer
A software developer designs, develops, and maintains software applications. This Java programming course provides a strong foundation in core Java concepts, object-oriented programming, and functional programming, which are all essential for a software developer. The course's hands-on approach, with numerous exercises and puzzles, directly prepares you for the practical aspects of software development. Learning to build REST APIs, as covered in the bonus content, is especially valuable for modern software applications. This course is an ideal starting point for aspiring software developers.
API Developer
An API developer designs, builds, and maintains application programming interfaces (APIs), which allow different software systems to communicate with each other. This course introduces the fundamentals of Java programming and goes into the creation of REST APIs with Spring, Spring Boot, and JPA. The practical hands-on exercises, combined with the API bonus content, make this Java programming course particularly relevant for aspiring API developers. This course is helpful for understanding how APIs work when developing software using Java.
Backend Developer
A backend developer focuses on the server-side logic, databases, and APIs that power applications. This course can help one prepare for a backend developer career by teaching core Java programming skills and focusing on important topics such as object-oriented and functional programming. The course's coverage of REST API development using Spring, Spring Boot, and JPA is particularly relevant for backend work. This Java course could be a good starting point for anyone interested in building the backend of software applications. The threading and multithreading sections of the course prepare one to handle concurrent processes in the backend.
Application Developer
An application developer builds various software applications that run on computers or mobile devices. Core Java programming, which this course focuses on, is a foundational skill for application development. The course's approach, mixing theory with practical exercises, helps develop the practical skills needed to be an application developer. The object-oriented programming and functional programming aspects taught also enable one to build complex and efficient applications. This Java course is a great way to build a strong foundation in application development. Working with Java collections, generics, and exception handling, as taught by the course, are key skills for an application developer.
Full-Stack Developer
A full stack developer handles both the front-end and backend development of an application. While this course primarily focuses on Java and backend technologies, it provides a solid foundation in Java programming, which is essential for the backend component of full stack development. The knowledge of building REST APIs using Spring, Spring Boot, and JPA, included in the course's bonus material, is crucial for connecting the front-end and backend. This Java course is useful for anyone looking to start a full stack development career, by providing an essential backend skill and preparing one for more advanced concepts in backend development.
System Architect
A system architect designs and oversees the implementation of complex software systems. While this role often requires experience, this Java programming course helps one build a foundational understanding of software development principles, especially object-oriented and functional programming. The course also covers essential Java features that are important for designing scalable and maintainable systems. This course may be helpful as a starting point to begin one's journey to becoming a system architect, providing practical experience in understanding the many working parts of a system. A good understanding of exception handling as covered in this course is also essential for designing robust software systems.
Technical Lead
A technical lead directs a team of developers in software development projects. While an advanced career role, this course helps provide a strong foundation in core Java programming concepts, essential for a technical lead who will guide a team of Java developers. Understanding the Java platform, as taught in this course, is also critical for making architectural decisions. The course's coverage of object-oriented and functional programming principles allows a technical lead to make informed decisions about software design and architecture. This Java course may help to enhance leadership of a Java development team.
Mobile Application Developer
A mobile application developer creates software for mobile devices. While this course focuses on core Java programming, it provides a strong foundation in the essential programming concepts such as object-oriented and functional development. The course's hands-on approach using exercises and puzzles also helps build practical development skills that are transferable to other aspects of mobile development. While Java is not the primary language for all mobile platforms, the techniques and skills learned in this course may be useful. This Java course may be helpful as a first step when aiming to build mobile applications.
Database Developer
A database developer designs, develops, and maintains databases. While this role is more focused on data management, a solid understanding of programming concepts, such as those taught in this Java programming course, can help when working on backend integrations. The course's focus on object-oriented programming and exception handling may be useful for creating robust database applications and integrations. This course may provide useful context for database developers who occasionally need to program with Java or work on backend applications.
Quality Assurance Engineer
A quality assurance engineer is responsible for testing software to ensure that it meets quality standards. While this role does not primarily involve development, a good understanding of programming can be very helpful when creating automated tests. This course teaches the fundamentals of how to write code, and the fundamentals of Java, which may be useful for a quality assurance engineer who works with Java-based applications or who seeks to automate software testing. This Java course may be helpful in gaining a more complete picture of software development.
DevOps Engineer
A DevOps engineer is responsible for the continuous integration and deployment of software. While this course does not focus on DevOps-specific tools, it provides a solid foundational understanding of software development with Java, which can help understand the overall software development lifecycle. The course touches on important principles of software design and implementation that a DevOps engineer would benefit from knowing. This Java course may help build an understanding of common programming practices, but is not required for DevOps.
Data Scientist
A data scientist analyzes complex data to extract insights and trends. While this Java course is primarily focused on application development, it may be useful by providing a basic programming foundation that could be built upon. The course's focus on object-oriented programming and working with data structures might be helpful for a data scientist who needs a basic understanding of Java. The course may be useful in developing the foundations of software programming before moving on to data science techniques.
Machine Learning Engineer
A machine learning engineer develops and implements machine learning models. While this course is not directly focused on machine learning, the programming skills developed could be helpful to develop machine learning models in the future. This Java course may provide an introduction to the process of creating software, a useful skill even if the machine learning engineer primarily works with other languages. This course may provide some helpful background understanding of software development but is not strongly correlated with this field.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Java Programming for Complete Beginners.
Head First Java visually rich, brain-friendly guide to Java programming. It uses a unique format to engage readers and make complex topics easier to understand. is particularly helpful for beginners as it simplifies object-oriented concepts and provides numerous examples. It serves as an excellent companion to the course, offering a different perspective and reinforcing key ideas.
Effective Java provides invaluable insights into writing robust and maintainable Java code. It presents a collection of best practices and design patterns, explained with clear examples and justifications. While it may be more suitable as additional reading, it offers a deeper understanding of Java's nuances and helps you avoid common pitfalls. is highly recommended for those who want to elevate their Java programming skills beyond the basics.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser