The Complete Java Developer Course. Learn Step by Step

Acquire core & advanced programming skills! Includes comprehensive tutorials. Goal? Java 8 certification!
4.6 (9,960 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.
63,368 students enrolled Bestselling in Java
Take This Course
  • Lectures 279
  • Length 60.5 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 7/2015 English Closed captions available

Course Description

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!

What are the requirements?

  • 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.

What am I going to get from this course?

  • 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

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!

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction
In this section we will give you a run down on what you will be going through in the entire course.
Section 2: Setup

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.


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.


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

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 get your extended 90 day trial of IntelliJ Ultimate edition!

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 get your extended 90 day trial of IntelliJ Ultimate edition!


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!

Section 3: First Steps

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.


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.

Section 4: Variables, Datatypes and Operators

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.
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.
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.

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.


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!


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.


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.

Section 5: Java Tutorial: Expressions, Statements, Code blocks, Methods and more

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.


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.


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.


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.

In this video we continue exploring methods, and end with a method challenge to assist in your understanding of them.

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.

Section 6: Control Flow Statements

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 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.


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.

Section 7: OOP Part 1 - Classes, Constructors and Inheritance

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.


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


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.


More discussions about Constructors in this video.

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


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


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


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


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

Section 8: OOP Part 2 - Composition, Encapsulation, and Polymorphism

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.


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


Continuation on the discussion of encapsulation


Lets go through Polymorphism.


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


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.


Part 2 of the Master challenge for object oriented programming.

Section 9: Arrays, Java inbuilt Lists, Autoboxing and Unboxing

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.


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

ArrayList Part 2

Part 3 of ArrayList


ArrayList Challenge Part 1


Part 2 of the ArrayList Challenge


Final video of the ArrayList challenge.


What Autoboxing and Unboxing is.


Part 1 of the Autoboxing/Unboxing Challenge


Part 2 of the Autoboxing & Unboxing Challenge.


Part 3 of the Challenge for Autoboxing and Unboxing


Part 1 of the Autoboxing/Unboxing Challenge


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


Part 3 on the discussions of Linked Lists.


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


Continuation of the Linked Lists challenge.


The Final Part of the Linked Lists challenge.

Section 10: Inner and Abstract Classes & Interfaces

Get the basic understanding about Interfaces in Java.


Continuation on the lecture on about Interfaces.


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


Part 2 of the Interface challenge exercise.


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


Continuation of the Inner Classes discussion.


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


Get to know more about Abstraction in this lecture.


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.


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


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


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

Section 11: Java Generics

Get a basic understanding on Java Generics, what it is? and why should you use them?


In this lecture we will look at creating our own Generic classes.


Continuation in the creating our own Generics class, and also tackle the problem of making a team only accept a player of a particular type.


Final part of creating our own Generics Class discussion.


It is now to put all that you have learned from the Generics lectures and put it in this challenge.

Section 12: Naming Conventions and Packages. static and final keywords

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Tim Buchalka, 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.

Instructor Biography

Jean-Paul Roberts, Computer programmer, analyst and teacher

I am a programmer with over 30 years' experience gained in a range of industries, the last 16 with IBM.

I am now self employed developing apps for Android; programming in a range of languages including Java, Javascript and Python; and helping the next generation of programmers gain the skills that I have acquired over the years.

The first program I sold controlled stock movement in a warehouse, and ran on a CP/M computer - both the program and operating system lived in the 64 kb (yes, kilobytes) that was all CP/M systems had in those days.

I have gained experience in a wide range of industries including Utilities, Retail, Insurance and the Motor Manufacturing industry. My clients and employers have included Northumbrian Water, Arcadia, Royal Sun Alliance, Nissan and Jaguar Landrover. I also worked for Sunderland University for 3 years preparing and delivering training courses in computing.

Times have changed, the challenges are very different to what they were, but programming remains fun!

When not at my computer, I am often riding my motorbike through the wonderful countryside of the UK and Europe.

Ready to start learning?
Take This Course