Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add The Complete Java Developer Course. Learn Step by Step to your Wishlist.

Add to Wishlist

The Complete Java Developer Course. Learn Step by Step

Acquire core & advanced programming skills! Includes comprehensive tutorials. Goal? Java 8 certification!
4.6 (11,926 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
70,036 students enrolled
Created by Tim Buchalka
Last updated 2/2017
English English
$10 $195 95% off
5 days left at this price!
30-Day Money-Back Guarantee
  • 62.5 hours on-demand video
  • 6 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?

Student Reviews For The Complete Java Developer Course

"If you want to learn java programming, then this is definitely the best place to start. Tim is a brilliant instructor and he is quick to answer any questions you might have about programming in java. Because Tim explains almost all the programming concepts in a non-technical jargon, this course is perfect for complete beginners." - Casper

"Great course everything is explained simply which is very important for learning programming and he nails it!" - Keith Fox

"great course , i like how he gives you challenges that will really challange your knowledge on that section . he is very audible and although some part are a bit long it's just because he takes time to solve all challenges to make sure you got it . well i think this is the best course i have taken." - Chukwuebuka

"this course has taught me soo much. I have gone from being a newbie to pretty much an expert :) thanks soo much Tim :D"  - Via Kim

"This instructor is awesome. I love his material because its easy to understand and professional. I love the fact that there is always a challenge to do. I find myself learning more when I do challenges. Keep up the good work Tim!" - Alex


So you want to learn Java, or update your existing skills to Java 8?  But maybe you are struggling to find the right course to help.

Well, you have come to the right place!  Make no mistake, this is the best Java course on Udemy.  Just read the thousands of reviews students have left (including the ones above).

It's your time to shine! Are you ready to learn how to program in Java?

This course assumes no previous experience and takes you from the absolute beginner concepts like showing you the tools you need to download and install, writing you very first Java program, and then goes into more detail as we explore the entire Java feature set.

All the essential Java keywords, operators, statements, and expressions are explained in great detail, together with complete chapters on object-oriented programming and the Java API.

You learn to develop powerful Java applications using one of the most powerful Integrated Development Environments on the market, IntelliJ IDEA!

But don't worry, if you are used to using Eclipse, NetBeans or some other IDE. Because this is a pure Java course you are free to use any IDE you wish and you will have no problems getting the most out of the course.

Now don't worry if none of that made any sense. Because, I go into great detail explaining each and every core concept, programming terms, and buzzwords.

By the end of this course, you will have a mastery of programming in Java no matter what level of experience you are at right now.

Be sure to click the free preview button on this page if you want to get a taste of the quality of the training.

My goal is not just to show you how to program, but to help you understand what you are doing, and why you are doing it as well!

Not only do the videos show you how to become a programmer in great detail, but this course has a unique challenge feature included.

Each time a core concept is taught, a video presents a challenge for you that is designed to help you understand what you have just learned.

You will go away and complete the challenge, and then come back and see the challenge answered and explained in detail in the video, allowing you to check your results!

This is a fantastic way to really help you understand Java faster and ensure you will reach your goal of becoming a Java Developer in record time.

As your instructor, I have over 30 years experience as a software developer and teacher and have been using Java since around the year 2000. Yes, over 15 years!

I am an expert programmer but also have the relatively unique ability to make teaching fun and easy.

Don't worry; I might be a geek, but I do make programming fun and painless for you to learn!

Not convinced? Just go and take a read of some of the rave reviews given to me in my other courses.

The facts are that students love my classes and style of teaching because it helps them reach their goals faster.

Are you ready to let me help you become a Java developer?

Course updates

One of the things I pride myself on is how often I add new content to my videos, and also how often I update them, and this course is the same.

As an example, my Android course has had over 72 hours of material and numerous updates applied to it to ensure its current and is of the best quality for you.

I am always adding new content to the course as well as updating it on a regular basis to make sure you access to the best and most update to date and comprehensive Java training available!

This is the number one course you need to get enrolled in if you truly want to learn how to become a Java Developer.

So, are you ready to get started? Enroll now and I look forward to seeing you inside!

Who is the target audience?
  • The course is aimed at complete beginners and intermediate programmers. No previous programming experience is assumed!
  • If you are an expert Java program with extensive knowledge and many years experience, you may not get a lot out of this course. For everyone else the course is perfect for you!
Students Who Viewed This Course Also Viewed
What Will I Learn?
Program fluently in Java
Understand the concepts of Object Oriented Programming
Be able to download and install Java on their computer
Understand Java Keywords, Expressions, Operators and Statements
Create their own java programs
Take their knowledge of Java to write applications for Android devices, the web, or even desktop applications
View Curriculum
  • A computer - Windows, Mac and Linux are all supported and setup and installation videos for each platform are included!
  • Nothing else is needed, everything you need to get started programming in Java is included in the course, and all the tools used are free.
Curriculum For This Course
Expand All 288 Lectures Collapse All 288 Lectures 62:42:25
1 Lecture 07:53
In this section we will give you a run down on what you will be going through in the entire course.
Preview 07:53
12 Lectures 51:52

In this video we will go through an overview of the Java Development Kit (JDK) and IntelliJ, the Integrated Development Environment (IDE) we are using in the course.

How to Use This Section Of The Course

This video will show you how to install the Java Development Kit (JDK) for your Windows PC. By the end of the video you will have the JDK installed.

Preview 03:10

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Download and Install IntelliJ for Windows

Configuring IntelliJ for Java on Windows

This video will show you how to install the Java Development Kit (JDK) for your Mac running OS X. By the end of the video you will have the JDK installed.

How To Install The Java Development Kit (JDK) For Mac OS X

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Download and Install IntelliJ on a Mac

Configuring IntelliJ for Java on a Mac

This video will show you how to install the Java Development Kit (JDK) for your machine running Ubuntu Linux. By the end of the video you will have the JDK installed.

How To Install The Java Development Kit (JDK) For Ubuntu Linux

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

IntelliJ is the tool we are going to use for Java development in this course. This video will guide you through the process of downloading, installing and configuring IntelliJ IDEA for your machine runnning Ubuntu linux. By the end of the video you will have Intellij installed and will be ready to start programming in Java!

Install and Configure IntelliJ For Ubuntu Linux
First Steps
3 Lectures 20:06

An introduction to this section on downloading and installing the tools for Java development.


This video discusses the process of creating your first project in the IntelliJ IDE. We are starting with the infamous "Hello World" program. You will learn how to run and test your program, and understand how to printout messages to the console, and why you would want to do that.

Preview 12:11

Its time to explore the IntelliJ IDE interface. Find out about navigation, the Project window, and how to customise the display to suit your preference. You also learn how IntelliJ structures projects you have created, and you will know where the various files are found in the project and on your computer.

Exploring The IntelliJ Interface
Variables, Datatypes and Operators
8 Lectures 01:41:47

An introduction to this section of the course dealing with Variables, Datatypes and Operators.


In this video you will be tackling Java variables and data types. These are "boxes" in your computer memory to store items in. We will cover what they are, how to declare them, and how to make use of them in programs. We'll print some variables out on screen, and finish with a challenge that will test your understanding.
Preview 15:10

In this video we will be talking about the most common data types use in Java which are the primitive data types. We will focus on byte, short, int and long. You will learn how to declare and use these, and what they are used for, and the range of values you can store in them. Finally, you will get to test your new found knowledge with a challenge at the end.
Getting To Know Primitive Data Types - The Byte, Short, Int And Long

Continuing on with our discussions of primitive data types, in this video we will explore data types that deal with numbers that are not just whole numbers. You will be introduced to the float and double primitive data types, find out how each are declared, learn the differences between them both, and why you would choose one over the other. At the end of the video will be a challenge to help your understanding of what we have learned in the video.
Getting To Know Primitive Data Types - Float And Double

Char and Boolean are the two primitive data types explored in this video. We will be covering how to declare these type of variables and you will obtain a better understanding of how to use, and why you would want to use these data types in your programs. We finish off with a challenge.

Getting To Know Primitive Data Types - Char And Boolean

This video will summarize all primitive data types we have worked with so far, and then look at another very important object in Java, the String. Although it seems at first glance to be another primitive data type, the String is actually much more as you will find out!

Understanding Strings And Finishing Up Primitive Data Types

Its time to find out about Operators in Java, and the If statement. What they are, how to use them, and why you need to u nderstand them to become a good programmer.

Preview 16:10

More Operators are discussed in this video, and then we move on to operator precendence which is an important concept to understand. We also discuss some typical gotchas for students new to progamming and Java in general. By the end of this video you will have a good understanding of operators and how to use them.

More On Operators And Operator Precedence
Java Tutorial: Expressions, Statements, Code blocks, Methods and more
7 Lectures 01:33:52

An introduction to this section of the course dealing with Expressions, Statements, Code blocks and Methods.


In this video we will learn about Java keywords as well as what makes up an expression. You will find out the keywords that Java has already reserved, how Java lets you know that these keywords are reserved, and you will get to know what a valid expression looks like. A Challenge is at the end of the video to assist your understand of these important concepts.

Preview 07:13

In this lecture we will discuss what statements are, and how to construct them. We will then move to finding out how Java treats whitespaces (and what it is) and how indenting your code makes for a better programming experience.

Statements, Whitespace and Intentation (Code Organization)

Lets discuss code blocks, what they are, how to put a code block together, and why you would want to use one. We will cover the if then else statement, and how this applies to programming and finish off with a challenge to help you understand the concepts taught in the video.

Code Blocks And The If Then Else Control Statements

A very important concept in Java are Methods. In this video lecture you will learn what they are, how to create them, and why they are integral to Java (and programming in general). We will go through what a method is comprised of, and the advantages of using them and how to have them perform constructive tasks in your Java programs.

Methods In Java

In this video we continue exploring methods, and end with a method challenge to assist in your understanding of them.
More On Methods And A Challenge

Method overloading allows you to duplicate your methods with the same name. In this video you will find out how to do this, and why you would want to do it, and how its used frequence in Java development. We will end with an advanced challenge to test your knowledge.

Method Overloading
Control Flow Statements
4 Lectures 01:01:31

Get the basic understanding on what this section will cover with regards to Control Flow Statments


We learn about the switch statement in Java in this video, and its role in controlling the flow of your programs. Plus apply the skills you have learned with a challenge exercise.

The switch statement (+Challenge Exercise)

The for statement is extremely popular and useful in Java. Lets explore how to use it in this video. Plus apply the skills you have learned with a challenge exercise.

The for Statement (+Challenge Exercise)

To other major control flow statements in Java are the while and do while statements. Lets explore both in this video. Plus apply the skills you have learned with a challenge exercise.

The while and do while statements (+Challenge Exercise)
OOP Part 1 - Classes, Constructors and Inheritance
9 Lectures 02:04:49

An introduction to this section of the course dealing with Object Oriented Programming, specifically, Classes, Objects, Constructors and Inheritance.


Lets kick off our study of object oriented programming with classes in this video.

Preview 16:30

Lets continue on with our discussions about Classes in Java in this video.

Classes Part 2

Lets look at Constructors and their importance to creating classes in Java in this video. Plus apply the skills you have learned with a challenge exercise.

Constructors - Part 1 (+Challenge Exercise)

More discussions about Constructors in this video.

Plus apply the skills you have learned with a challenge exercise.

Constructors - Part 2 (+Challenge Exercise)

Inheritance is a very important concept in OOP. Lets explore it and its role in Java in this video.

Inheritance - Part 1

Continuing on with our inheritance discussions from the previous video, we look at more advanced concepts in this video.

Inheritance - Part 2

Its challenge time, lets look at understanding what we have learned about Inheritance with a challenge in this video.

Inheritance Challenge Part 1 (+Challenge Exercise)

Finishing off the solution to the inheritance challenge raised in the last video.

Inheritance Challenge Part 2
OOP Part 2 - Composition, Encapsulation, and Polymorphism
9 Lectures 02:16:14

An introduction to this section of the course dealing with Composition, Encapsulation and Polymorphism.


The second major component of OOP is composition. Lets explore that concept in this video.


Lets finish off our study of composition in Java in this video. Plus apply the skills you have learned with a challenge exercise.

Composition Part 2 (+Challenge Exercise)

Have an understanding about one of the fundamental object oriented programming which is encapsulation


Continuation on the discussion of encapsulation

Encapsulation (+Challenge Exercise)

Lets go through Polymorphism.

Preview 20:31

Continue with the discussion on Polymorphism and take on the challenge.

Polymorphism (+Challenge Exercise)

Part 1 of the Master challenge for object oriented programming to help you understand what has been taught in this and the previous sections of the course.

OOP Master Challenge Exercise

Part 2 of the Master challenge for object oriented programming.

OOP Challenge - Solution
Arrays, Java inbuilt Lists, Autoboxing and Unboxing
18 Lectures 04:53:15

Its time to get an overview of Arrays, what they are, and how to use them.


Get to know more about Arrays by taking on this challenge exercise.

Arrays (Challenge Exercise)

Get to know the concept of Lists and ArrayList in Java.

List and ArrayList Part 1

ArrayList Part 2

Part 3 of ArrayList

ArrayList Part 3

ArrayList Challenge Part 1

ArrayList Challenge Part 1

Part 2 of the ArrayList Challenge

ArrayList Challenge Part 2

Final video of the ArrayList challenge.

Preview 10:46

What Autoboxing and Unboxing is.

Autoboxing and Unboxing

Part 1 of the Autoboxing/Unboxing Challenge

Autoboxing & Unboxing (Challenge Exercise) - Part 1

Part 2 of the Autoboxing & Unboxing Challenge.

Autoboxing & Unboxing (Challenge Exercise) - Part 2

Part 3 of the Challenge for Autoboxing and Unboxing

Autoboxing & Unboxing (Challenge Exercise) - Part 3

Part 1 of the Autoboxing/Unboxing Challenge

Preview 16:39

Part 2 of the discussion on about Linked List and to show you examples on using it on Java.

LinkedList Part 2

Part 3 on the discussions of Linked Lists.

LinkedList Part 3

Now that you have understand Linked List now its time to apply it to a challenge.

LinkedList Challenge Part 1

Continuation of the Linked Lists challenge.

LinkedList Challenge Part 2

The Final Part of the Linked Lists challenge.

LinkedList Challenge Part 3 (Final video)
Inner and Abstract Classes & Interfaces
12 Lectures 02:55:32

Get the basic understanding about Interfaces in Java.


Continuation on the lecture on about Interfaces.

Interfaces Part 2

Now we have learn about interfaces it is now time to take on the Interface challenge exercise.

Interfaces Challenge Part 1

Part 2 of the Interface challenge exercise.

Interfaces Challenge Part 2

Understand the concept of nesting a class within a class with Inner Classes.

Inner classes Part 1

Continuation of the Inner Classes discussion.

Inner Classes Part 2

It is time to put what you have learned with Inner Classes with this challenge.

Inner Classes Challenge

Get to know more about Abstraction in this lecture.

Preview 16:39

Part 2 of the Abstraction discussion, as well as discussions on how it is different to an interface and when to use an interface or an abstract class. And also the challenge for the Abstract Class.

Abstract Classes Part 2

Find out the solution to the Abstract Class Challenge that was show in the previous video.

Abstract Class Challenge Part 1

Continuation of the Abstract Class Challenge and also some discussions on the code that were actually typed.

Abstract Class Challenge Part 2

Final part of the Abstract Class Challenge and also discuss on the differences on the implementation of the add item, remove item, and traverse.

Abstract Class Challenge Part 3
11 More Sections
About the Instructor
4.6 Average rating
15,477 Reviews
86,118 Students
4 Courses
Java, Android & Python Professional Developer & Teacher

Tim's mission is simple:  to make a difference in your life by helping you to become a software developer.  Tim does that through his Android, Python and Java courses.

When Tim started programming over thirty years ago, there was no online video training.  

There was no "easy" way to learn.  The Internet, in its current form, didn't exist, and as a result, Tim couldn't "Google" for help, or watch videos on Youtube.

After learning the hard way, Tim was determined to become the best teacher he could, and to make his training as painless as possible, so that you, or any one else with the desire to become a software developer, could become one.

In between doing that, Tim spent the best part of those years as a professional software developer.

Tim is relatively unique, in that he is a professional, experienced software developer who also has exceptional teaching skills.  

Many instructors have no work experience in the field!  Make sure the person you trust with your education is a real expert with substantial previous professional experience.

The bottom line for you is, when taking any of Tim's courses, is that you will learn the right way to do things from an expert, in the shortest possible amount of time.

Tim's Java, Android, and Python courses, here on Udemy are of the highest quality as reviewed by his students.   Ten's of thousands of students, just like you, have taken his classes, thousands have left glowing reviews, and many have gone on to full-time jobs, or consulting/freelancing opportunities after completing one of his courses.

Tim recently placed in the top ten Udemy instructors as voted for by his students and Udemy themselves.  

What does all of this mean for you?

You can have full confidence that Tim's courses are of exceptional quality, and that he can teach you to become a software developer if you have the desire to become one.

Are you ready to start?  You can get started today!  No previous experience is necessary.

In 2016, video training is the quickest way to learn, and with Tim's experience and training, it is possible for you to become a software developer!  You can do this!

Why not start today?  Click one of his courses below, and watch his introductory video, to find out more about who he is and what he can offer you.

Report Abuse