Java In-Depth: The Master Course
Become a Complete Java Engineer!
Comprehensive Master Course program integrated with design principles, best practices & instructor-led Java EE project
Learn Best Practices
Master design principles & best practices for writing well-designed, professional code
Master Java Language
Gain in-depth understanding of core & advanced concepts with 75+ hours of high quality video lectures. Self-paced with 24x7 life-time access
Real-World Project
Gain real-world experience by implementing an instructor-led Java EE Web application using professional coding conventions
Course Overview
This Master Course has been developed to help you become a complete & professional Java engineer. To realize this, it takes a holistic approach in teaching Java programming. To ensure that you master Java, the course has been developed to be highly comprehensive covering most Java language features and discussing them at a very in-depth level. To further ensure you are industry-ready and can write well-designed code, tons of best practices & design principles are discussed in detail. Towards this end, you'll also implement an instructor-led Java EE Web application using professional coding conventions. You can also optionally choose to earn our Complete Java Engineer! certification, which is our endorsement that you've mastered the skills taught in this course and are truly industry-ready. Certification involves different programming assessments like projects and coding exercises all verified by our engineers.
This is by far the best advanced as well as beginner course I have ever read/seen since Andre LaMothe quit writing.
Over 100k students from over 160 countries ranging from complete beginners to experienced Java professionals including employees of large multi-national companies like IBM & TCS are learning from these lectures. Over 50 million minutes of these lectures have been watched so far. This course has helped many students start their professional journey as confident Java programmers.
What you will learn
The course is very comprehensive covering everything from origins of Java to language basics, object-oriented concepts & design, JVM internals, exceptions, IO, collections framework, generics, multi-threading, databases, functional-style programming (lambdas & streams) and modular programming (JPMS). The course also gives a very good introduction to Java EE technologies like JSP, Servlets and JSTL, which help in project implementation. Project is an instructor-led bookmarking application implemented progressively as we learn new concepts.
Every concept is clearly explained with well thought out examples, nice illustrations and demonstrated in code with Eclipse as IDE. An excellent Eclipse tutorial is also included. Several challenging coding exercises & quizzes are included to validate what has been learned.
Finally, course also teaches several best practices & design principles that are essential for writing well-designed code. This is one of the main highlights of the course.
Mastering Java Language
Gain in-depth understanding of core & advanced features of Java including JVM internals. Includes several challenging coding exercises & quizzes to reinforce what you've learned.
Best Practices & Design Principles
Get a deep understanding of professional coding conventions & design principles that any good software engineer must know. This is one of the USPs of this course.
Implementing a Real-World Project
Get real-world experience by developing an instructor-led Java EE-based Web application using technologies like JSP, Servlets, and MySQL.
Coding Exercises & Quizzes
Several challenging coding exercises & quizzes are included to validate what you have learnt.
Quick Personalized Responses
Get in-depth personalized responses within 24 hours for all your questions. 10k+ questions have already been answered.
Optional Professional Certification
Optionally, you can get certified as Complete Java Engineer! - an endorsement from our engineers that you've mastered core & advanced Java for writing professional-level code. See FAQ below for details on programming assessments for this.
A Partnership for Lifelong Learning
As the Java language evolves, we also promise to keep the course updated. Custom Runtime Images & Records are some of our newest updates!
Course Curriculum
-
Chapter Introduction - 3:08
-
What is Java & Who is Using It? - 6:42
-
Story behind Java's Creation ~ A Brief History - 7:36
-
Compilation - 9:51
-
Platform Dependency - 8:38
-
Interpreter - 7:50
-
Platform Independence in Java - 8:57
-
Java Virtual Machine - 14:01
-
An Overview of Java SE - 21:28
-
Java SE Release Cycles & Release History - 6:49
-
Installing JDK 17 on Windows - 22:58
-
Installing Java on Mac - 4:46
-
Installing Java on Linux - 6:52
-
Setting Classpath Environment Variable - 9:20
-
Writing First Java Program - 16:15
-
Conclusion - 2:40
-
Chapter Quiz
-
Important Q&A Discussions! (S)
-
Chapter Introduction - 3:19
-
Class & Objects - 12:32
-
Absolute Java Basics - 17:13
-
Variables: Introduction - 10:20
-
Declaring & Re-initializing Variables - 15:00
-
Assignment: Currency Converter - Creating a Class with Variables
-
Variables: Primitive Types - 2:00
-
Primitive Variables: Integers - 19:47
-
Question on Binary Representation of Negative Number
-
Other Integer Literal Formats - 10:33
-
Primitive Variables: Floating-point Numbers - 11:09
-
Floating-point Pitfalls* - 10:55
-
Primitive Variables: Character Data Type - 17:01
-
Alternate ways to initialize char variables - 6:25
-
Primitive Variables: Boolean Data Type - 5:57
-
Variable Kinds - 26:38
-
Multi-variable Declaration Statements - 9:31
-
Quiz: Variables
-
Variables: Type Casting - 19:25
-
Variables: Object References - 6:19
-
Statements - 7:40
-
Arrays - 27:35
-
Assignment: Currency Converter - Array Creation & Accessing it Elements
-
2D Arrays - 7:22
-
3D Arrays - 5:20
-
Use byte & short Variables Judiciously (S)
-
Methods: Introduction - 20:51
-
Method Types - 21:27
-
Summary on Accessibility of Members from Static & Instance Methods
-
Assignment: Currency Converter ~ Invoking Methods of an Object
-
How Data is Passed to Methods in Java? - 18:18
-
Method Overloading - 10:21
-
Methods: varargs - 8:39
-
Constructors - 22:07
-
Constructor Overloading - 24:47
-
Constructor Overloading ~ Alternate way of delegating - 3:58
-
Minor Note on Method Invocation & Implicit Narrowing Conversion (S)
-
this Reference - 14:35
-
Reinitializing Object References ~ More Brainstorming! - 20:00
-
Minor Note on Executing StudentTest
-
Coding Exercise 1: Arrays with Object References
-
Review of Exercise 1 Solution with Best Practices - 21:43
-
Conclusion - 3:38
-
Chapter Quiz
-
Important Q&A Discussions! (S)
-
Chapter Introduction - 3:32
-
Operators - 4:09
-
Arithmetic Operators - 22:13
-
Arithmetic Operation Rules - 8:55
-
Quiz: Arithmetic Operators
-
Note on Student Class
-
Comparison Operators - 14:45
-
Logical Operators - 28:13
-
Car Price Estimator ~ Coding Exercise for Comparison & Logical Operators - 19:48
-
Coding Exercise 2: Car Price Estimator ~ Putting Comparison & Logical Operators into Action
-
Car Price Estimator - Exercise Solution Review - 6:06
-
Bitwise Operators - 9:24
-
Quick Note on Bitwise Operators with Boolean Operands
-
Bit Shift Operators - 5:37
-
Quiz: Bitwise & Bit Shift Operators
-
Control-flow: if-statement - 18:05
-
Control-flow: switch - 18:04
-
When is switch Preferred? - 3:36
-
Quiz: switch Statement
-
Control-flow: Ternary - 7:25
-
Additional Notes on Ternary Operator
-
Control-flow: for Statement - 11:56
-
More for Statement ... - 21:54
-
for-each Statement* - 18:42
-
Variable Scope - 5:16
-
Exercise
-
Coding Exercise 3: Computing GPA ~ Putting Operators & Control-flow to Test
-
Computing GPA - Exercise Solution Review - 21:28
-
Control-flow: while Statement - 3:26
-
Control-flow: break Statement - 9:16
-
Control-flow: continue - 5:08
-
Recursion - 27:01
-
Minor Correction in Binary Search Code
-
Conclusion - 5:54
-
Chapter Introduction - 2:43
-
Strings: Introduction - 5:44
-
String Class - 19:46
-
Assignment: Calculating Term Frequency in a Document
-
String Pool & Interning - 15:51
-
String Immutability - 3:29
-
String Concatenation - 10:32
-
String Concatenation Performance* - 3:14
-
Escape Sequences - 4:50
-
Strings - Important Q&A Discussions! (S)
-
Coding Exercise 4: Sentiment Analysis: Mining Pros & Cons ~ Putting String Class to Test
-
Math Class - 20:14
-
Boxed Primitives & Static Factory Methods* - 14:15
-
Uses of Boxed Primitives - 15:23
-
Autoboxing - 4:25
-
Prefer Primitives over Boxed Primitives* - 11:36
-
Coding Exercise 5: Parsing API Response ~ Let's make use of Boxed Primitives & String class
-
Chapter Quiz
-
Chapter Introduction - 1:23
-
Information Hiding - Use Accessor Methods* - 10:58
-
Enhancing Student Example with Information Hiding - 12:26
-
Minimize Accessibility of Classes & Members* - 3:49
-
Coding Conventions: Naming Classes, Methods and Variables* - 10:04
-
Coding Conventions: Structuring Programs* - 7:31
-
Coding Conventions: Stylistic - 6:39
-
Coding Conventions: Comments - 13:12
-
Inheritance - 8:27
-
Access Modifiers & Inheritance + Demo - 12:27
-
Note on Recommended Order for Modifiers (S)
-
IS-A Test - 4:07
-
Coding Exercise 6: Hospital Management System (HMS) ~ Let's put Inheritance into practice!
-
Polymorphism + Demo - 12:20
-
Casting Objects & instanceof Operator + Demo - 9:49
-
Coding Exercise 7: Extending HMS with a Billing Component ~ Putting Polymorphism into Practice!
-
Type Safety - 7:27
-
Method Overriding + Demo - 14:49
-
Minor Correction in First Method Overriding Rule
-
Method Binding + Demo - 17:03
-
Question on Method Binding
-
What is Not Overridden? (final Method is one of them) + Demo - 14:17
-
Demo: Fields are Not Overridden - 3:03
-
Object Class + Demo* - 7:52
-
Constructor Chaining + Demo - 8:33
-
Preventing Inheritance - 5:30
-
Conclusion - 7:02
-
Chapter Quiz
-
New Requirement: thrill.io for Kids - 6:14
-
Note on Next Lecture on Abstract Classes
-
Abstract Classes & Methods + Demo - 6:27
-
Note on Abstract Classes & Constructors
-
Prefer Class Hierarchies over Tagged Classes* - 5:58
-
Coding Exercise 8: Computing Health Insurance Premium for Staff ~ Let's put Abstract Classes & Methods into practice!
-
New Requirement: Sharing Bookmarks - 5:20
-
Multiple Inheritance & Diamond Problem - 4:08
-
Interfaces - 18:44
-
Update to Interfaces due to Java 9
-
More on Interfaces - 8:08
-
Note on Next Lecture on Interfaces
-
Demo: Interfaces - 11:23
-
Interfaces: A Conceptual View - 7:50
-
Prefer Interfaces over Abstract Classes* - 7:56
-
Refer Objects through their Interfaces* - 3:20
-
Coding Exercise 9: Computing Health Insurance Premium for Staff (Part 2) ~ Let's put Interfaces into practice!
-
Marker Interfaces - 6:44
-
Cloneable Interface + Demo - 6:03
-
default Methods (Java 8) + Demo - 18:51
-
Recap of default Methods - 4:17
-
default Methods: Other Benefits + Demo - 10:09
-
Static Methods in Interfaces + Demo - 11:48
-
Private Methods in Interfaces
-
Conclusion - 12:37
-
Chapter Quiz
-
Important Q&A Discussions!
-
Project Introduction - 3:58
-
MVC Architecture - 6:55
-
Implementing Entities - 12:04
-
Implementing Manager Classes - Demonstrates Singleton Pattern!! - 12:33
-
Implementing Constant Exporting Classes - 4:50
-
Implementing Data Store - 18:40
-
Implementing Dao Classes - 5:40
-
Launching the Application - 9:14
-
Implementing User Bookmarking Feature - 15:54
-
Implementing Kid-Friendly Eligibility Criteria Using TDD - 19:41
-
Marking Bookmarks as Kid-Friendly - 19:01
-
Minor Coding Correction in Previous Lecture
-
Implementing Sharing Feature: Part 1 (Implementing Shareable Interface) - 13:31
-
Troubleshooting StringUtils Compilation Issue
-
Implementing Sharing Feature: Part 2 (View, Controller and Manager) - 19:08
-
Introduction - 8:28
-
Lifetime of a Type - 8:32
-
Lifetime of a Type: Class Loading - 9:36
-
Lifetime of a Type: Linking - 10:07
-
Demo: Lifetime of a Type - 17:50
-
Quiz: Lifetime of a Type
-
Reflection - 7:55
-
Accessing Class Object - 6:20
-
Demo: Reflection - 12:44
-
Coding Exercise 10: Simulate a Basic Unit Testing Framework ~ Putting reflection into action!
-
Runtime Data Areas - 6:33
-
Method Area & Heap - 10:46
-
Method Table - 6:55
-
Garbage Collection: Introduction - 8:46
-
Garbage Collection Algorithms - 7:13
-
GC: Generational Collections - 10:08
-
Important Questions on GC Algorithm (+)
-
Demo: Tuning Heap & Analyzing GC Cycles - 7:43
-
Eliminate Obsolete Object References (aka Memory Leaks)* - 6:25
-
Stack - 5:48
-
Stack Frame - 6:03
-
Instruction Set: invokespecial & invokevirtual + Demo - 17:57
-
Conclusion - 8:04
-
Chapter Quiz
-
Chapter Introduction - 3:04
-
Demo: Exceptions & Exception Handling - 15:00
-
Demo: Multiple Exceptions & Polymorphically Referencing Exceptions!! - 9:40
-
Checked & Unchecked Exceptions + Demo - 10:08
-
Exceptions & Method Overriding
-
finally Block + Demo - 11:53
-
try-with-resources Statement + Demo - 15:09
-
Demo: Suppressed Exceptions - 7:23
-
Demo - Best Practices: Creating New Exceptions* - 12:49
-
Demo - Best Practices for Capturing Failure Information* - 9:20
-
Demo - Best Practice: Exception Translation & Chaining* - 7:13
-
Coding Exercise 11: Extending Compute GPA Exercise with Exceptions
-
Bit of Brainstorming! (+)
-
Exceptions: More Advice ...* - 6:22
-
Assertions - 10:07
-
Demo: Assertions - 9:19
-
Conclusion - 6:08
-
Chapter Quiz
-
Exceptions ~ Important Q&A Discussions!
-
Chapter Introduction - 6:32
-
Character Encoding + Demo (Prerequisite) - 19:40
-
Stream IO - 6:33
-
Byte Streams - 5:50
-
Reading Byte-Oriented Files Efficiently + Decorator Pattern + Demo - 19:56
-
Character Streams - 4:07
-
Reading & Writing Text Efficiently - 9:39
-
Project Extension: Reading User & Bookmark Data from Text Files (Demo) - 10:52
-
Project Extension: Downloading WebLinks & Writing to Disk (Demo) - 13:02
-
Demo: Reading User Input from Console using BufferedReader & Scanner - 9:38
-
The File Class + Demo - 14:39
-
Serializing Java Objects + Demo - 17:34
-
Deserialization & Versioning + Demo - 12:04
-
Demo: Decoding with Compatible Encoding Scheme - 3:35
-
Conclusion - 7:17
-
Chapter Quiz
-
Input-Output ~ Important Q&A Discussions! (+)
-
Chapter Introduction - 7:35
-
Collection Interface - 6:31
-
List Interface - 3:31
-
ArrayList - Introduction - 6:12
-
Demo: ArrayList - 16:16
-
Iterator + Demo - 19:18
-
List Iterator + Demo - 10:36
-
LinkedList - 10:38
-
Queue & Deque Interfaces - 9:36
-
ArrayDeque + Demo - 9:46
-
Coding Exercise 12: Flight Reservation System ~ Putting Lists & Queues into Action!
-
Hash Table - 9:36
-
Set Interface & HashSet + Demo + (Overriding hashCode & Equals)* - 14:51
-
LinkedHashSet + Demo - 5:21
-
SortedSet & NavigableSet - 9:04
-
TreeSet (Comparable & Comparator) + Demo - 18:03
-
Demo: More TreeSet ~ Exploring NavigableSet Methods - 9:46
-
Coding Exercise 13: TreeSet & Comparator Exercise
-
Map Interface - 8:32
-
Demo: HashMap + Excercise - 13:38
-
Demo: Beware of Creating Mutable Keys - 7:35
-
LinkedHashMap + Demo - 17:42
-
SortedMap, NavigableMap and TreeMap + Demo - 10:17
-
Demo: Arrays Class - 19:54
-
Further Clarification on Arrays.asList() Explanation
-
Demo: Arrays Class (Part 2) ~ Parallelized Operations from Java 8 - 8:22
-
Demo: Collections Class - 16:34
-
Best Practice: Return Empty Arrays or Collections* - 5:18
-
Conclusion - A Quick Summary - 8:34
-
Chapter Quiz
-
Collections ~ Important Q&A Discussions! (+)
-
Chapter Introduction ~ Motivation & Agenda - 12:24
-
Generic & Parameterized Types - 8:33
-
Demo: Creating Generic Types + Type Erasure Discussion - 15:55
-
Project Extension: Replacing Arrays with ArrayLists (Part 1) - 13:13
-
Project Extension: Replacing Arrays with ArrayLists (Part 2) - 9:49
-
End of Part 1 (Core Java) of the Course
-
Bounded Type Parameter + Demo - 11:15
-
Avoid Raw Types in New Code* - 12:14
-
Unbounded Wildcard + Demo - 10:10
-
Invariance + Demo + Prefer Lists to Arrays* - 7:15
-
Generic Methods* - 15:04
-
Demo: Generic Methods & Generic Constructors - 20:46
-
Important Question on Type Inference & Invariance (+)
-
Bounded Wildcards: Motivation + Demo - 11:23
-
Bounded Wildcards & More Expressive APIs* - 12:43
-
Demo: Bounded Wildcards - 15:26
-
Generics Restrictions - 4:45
-
Conclusion - A Quick Summary - 11:58
-
Chapter Quiz
-
Important Q&A Discussions!
-
Chapter Introduction - 9:18
-
Nonstatic Member Classes & Adapters + Demo - 17:08
-
Note on Nonstatic Member Classes - From Java 16 Onwards (+)
-
Anonymous Classes + Demo & Function Objects* - 21:56
-
Local Classes + Demo - 7:42
-
Fix in Previous Demo on Local Classes for Java 9 and above
-
Static Member Classes (Favor them!) + Demo* - 15:13
-
Variable Scope with Nested Classes - 4:36
-
Conclusion - A Quick Summary - 6:24
-
Coding Exercise 14: Anonymous Class & Static Member Class Exercise
-
enums: Motivation & Introduction (Avoid int Constants)* - 10:25
-
Enum Class + Demo - 12:33
-
enums with State & Behavior + Demo - 6:08
-
Nested enums + Demo - 4:16
-
Project Extension: Converting Constant Exporting Classes to Enums - 12:17
-
enums with Constant-specific Behavior + Demo - 11:10
-
Bit of Brainstorming! (+)
-
Chapter Quiz
-
Chapter Introduction ~ Motivation & Agenda - 8:12
-
Threads: Introduction - 7:52
-
Minor Correction on Thread States
-
Demo: Launching Threads and Making them to Sleep! - 14:40
-
Demo: Thread Naming, Prioritization and Joining (Avoid Thread Groups)* - 12:55
-
Race Condition + Demo - 13:28
-
Synchronization + Demo* - 10:49
-
Java Memory Model (JMM) - 10:44
-
Volatile Variables + Demo - 9:29
-
Atomic Variables + Demo - 17:54
-
Important Question on Atomic Variable (+)
-
Synchronization Best Practices* - 8:40
-
Thread Cooperation & Management + Demo - 14:44
-
Demo: wait & notify - 21:54
-
Thread Interruption + Demo - 23:51
-
Explicit Locks (Reentrant Lock) + Demo - 25:59
-
Hijacked Signal: Single Condition Queue with signal notification (+)
-
Quiz: Concurrency Part 1
-
Prefer Concurrency Utilities over wait & notify* - 5:47
-
Executor Framework + Demo* - 16:21
-
Executor Service & Future - 13:39
-
Demo: ExecutorService & Future - 10:18
-
Tasks with Time Limits + Demo - 11:41
-
Project Extension: Downloading Web Links Concurrently - 19:20
-
Project Extension: Implementing Background Job to Download Web Links - 21:03
-
Quiz: Concurreny Part 2
-
Database Introduction & Chapter Agenda - 15:12
-
Installing MySQL Database & MySQL Workbench - 10:30
-
Database Design & Normalization - 24:31
-
Database Design using MySQL Workbench - 17:37
-
Project Ext.: Creating Database via CREATE & INSERT Queries + Storage Engines - 25:29
-
Installing JDBC Driver - 9:10
-
Writing SELECT Queries with Multiple Tables, GROUP BY, ORDER BY, etc. - 19:27
-
Project Extension: Loading Data from Database via JDBC API - 20:50
-
Project Extension: Saving Bookmarking Data via INSERT Queries - 14:04
-
Project Extension: ALTER Query & Saving Kid-Friendly Details via UPDATE Queries - 19:14
-
Useful Links to Some Tutorials
-
Functional-style Programming: Motivation & Chapter Agenda - 8:44
-
Lambdas - Introduction - 13:40
-
Demo: Lambdas - 10:23
-
Demo: Capturing Variables from Lambdas ~ Closures! - 13:29
-
Quiz: Lambdas
-
Lambdas: Important Q&A Discussions!
-
Predicate, (Bi) Function, and Unary Operator Interfaces + Demo - 25:09
-
Demo: Consumer, Supplier, and Primitive Functional Interfaces - 14:33
-
Quiz: Functional Interfaces
-
Demo: Method References - 12:59
-
Demo: Constructor References - 8:52
-
Streams + Demo - 23:41
-
Stream Operations: An Overview - 7:03
-
Demo: Slicing a Stream - 18:49
-
flatMap Operation - 7:50
-
Demo: flatMap Operation - 5:17
-
Demo: Stream Matching Operations - 10:33
-
Demo: Stream Finding Operations & Optional Class - 18:27
-
Stream Reduction Operations + Demo - 23:10
-
Assignment: Let's test our skills on reduce() operation
-
Assignment Solution
-
Coding Exercise 16: Covid Tracking with reduce()
-
Solution: Covid Tracking with reduce() - 9:59
-
Special Cases of Reduction Operation - 7:05
-
Mutable Reduction with Collection Operations + Demo - 23:34
-
collect() with Collector - 10:52
-
Demo: Collecting Stream into List & Set - 12:01
-
Coding Exercise 17: Covid Tracking with collect()
-
Solution: Covid Tracking with collect()
-
Demo: Grouping Stream Elements - 18:32
-
Demo: Summarizing Groups & Generating Multi-level Groups - 25:16
-
Side-effect Free Functions - 4:50
-
Demo: Streams & Side-effect Free Functions - 21:37
-
Conclusion - 8:58
-
Important Q&A Discussions!
-
Motivation & Agenda - 7:42
-
Web Basics - 23:31
-
Java EE & Servlet Containers - 12:07
-
Installing Tomcat - 7:21
-
BooksAloha! ~ Creating & Deploying a Web Application using Servlets - 23:31
-
Servlet Life Cycle - 13:35
-
Implementing BooksAloha! as MVC using JSP - 22:35
-
Using JSTL to Improve Presentation Layer - 13:44
-
Project Extension: Web-enabling thrill.io Project - 6:03
-
Project Extension: Implementing Browse Functionality - 28:55
-
Project Extension: Implementing Bookmarking & MyBooks Functionality - 29:19
-
Project Extension: Implementing Login Functionality with Session - 35:06
-
JAR Files - Introduction - 8:52
-
Demo: Creating & Manipulating JAR Files - 21:20
-
Chapter Introduction & Agenda - 6:16
-
Motivation: Stronger Encapsulation - 10:04
-
Motivation: Ease of Understanding - 5:39
-
Motivation: Smaller Distributables - 9:29
-
Motivation: Reliable Configuration - 11:19
-
Anatomy of a Module - 21:00
-
Demo: Creating Downloader & Indexer Modules - 22:53
-
Interoperability: Pre-Java 9 Code on Java 9 & Later
-
Module Path & Module Resolution - 12:30
-
Demo: Creating Modular JARs - 6:19
-
Demo: Achieving Reliable Configuration with Modules - 14:31
-
Demo: Creating Modules from within Eclipse - 8:31
-
Demo: Creating Modular JAR from within Eclipse - 4:55
-
Unnamed Modules: Using Modular Code - 17:22
-
Unnamed Modules: Using Modular Code from Command Line - 7:40
-
Minor Correction in Previous Lecture
-
Automatic Modules: Using Non-Modular Code - 9:15
-
Demo: Automatic Modules - 12:24
-
Note on Auto-Suggest Option in Previous Lecture
-
Chapter Summary
-
Custom Runtime Images: Introduction - 12:17
-
Demo: Custom Runtime Image with Platform Modules - 14:01
-
Minor Note on Previous Lecture
-
Custom Runtime Image with few Application Modules: A First Look - 3:00
-
jdeps: Java Dependency Analysis Tool - 6:18
-
Converting Automatic Module into Explicit Module - 7:44
-
Custom Runtime Image with Application Modules - 9:58
-
Conclusion
-
Module Introduction & Agenda - 2:25
-
Introduction to Version Control System (VCS) - 8:57
-
Introduction to Git - 10:02
-
Setting-up Project Code - Simulating a Professional Set-up! - 5:32
-
Creating Git Repository & Committing Code from Eclipse - 12:55
-
Hosting Repository on GitHub - 10:41
-
Team Collaboration Set-up - 2:23
-
Cloning Repository & Committing Code from Eclipse - 10:54
-
Pull & Update from Remote Repository from Eclipse - 3:04
Instructor Bio
Dheeru Mundluru is the instructor for this program. A passionate software engineer & educator, Dheeru has around 15 years of experience developing innovative software for start-ups in silicon valley and elsewhere. He holds a Ph.D. in Computer Science from University of Louisiana at Lafayette (USA). He is an experienced online instructor and is also rated as one of the top instructors on Udemy. His engineering expertise includes developing complex Web data integration & mining software with Java as the main programming tool. Coming from start-up world, he also has extensive end-to-end experience in developing Web applications using technologies such as Spring, Hibernate, MySQL, and Solr.
Writing well-crafted code that follows the best design practices is of utmost importance to him. He brings the same level of passion and completeness to his teaching.
Frequently Asked Questions
When does the course start and finish?
You can start & finish it anytime. For someone completely new to programming, it can take around 3-4 months of full-time effort to complete it in the right way. That would set you up for the rest of your career!
Is the course for beginners and any prerequisites?
Course is designed to help "absolute" beginners to truly master Java and use it professionally. Over half-to-one year of your self-study effort has been packed into 75+ hours. Only requirement is you need to put in lot of effort and work through the course patiently & systematically. So, no prerequisites.
Will the course be helpful for Java professionals?
Absolutely. As mentioned in the promo video & course description, the USP of this course is it is integrated with tons of design principles & best practices that are essential for building well-designed software. The course was designed after realizing that many senior-level engineers were actually missing these skills.
What is Complete Java Engineer! certification? What are its requirements?
Complete Java Engineer! certification is a true validation of skills that you have mastered through this course. If you wish to receive this optional certificate, you'll have to first complete all lectures and submit working code for all coding exercises and the instructor-led project. Once all your code and details are verified, you'll be given access to mini-project(s), which you will have to successfully complete.
Is the course fee refundable?
No. To ensure the course is right fit for you, please review the preview videos, course description and curriculum carefully.
Join today and become the most powerful version of yourself
ENROLL for $150What they are saying about the course
"Absolutely amazing, complete and in depth course. I would recommend this course to everyone interested in Java and programming in general. Dheeru Mundluru is an exemplary and responsive instructor. ... due to this course I have fell in love with Java language and its ecosystem."
Muhammad Abdullah
"This is hands down the greatest online course I've ever taken ... To really benefit from this course, you'll have to sit there and bang your head but if you take careful notes and make sure you can explain each step you're taking to solve a problem, you'll come out on top. I am now a data engineer and this course is one of the biggest catalysts for my transition into tech"
Carlvin Sanon
"This is a wonderful course. The Instructor is highly competent. He is a world-class instructor ... Taking this course will definitely give you a tremendous appreciation for this great language."