Complete Java Engineer
Comprehensive industry-vetted program integrated with time-tested design principles, best practices & instructor-led Java EE project. Trusted by 100k+ students.
Promo video explaining the need for Complete Engineers and how the course accomplishes that. Must watch.
Become a Complete Java Engineer!
This Master Course has been meticulously developed for half-a-dozen years and follows a unique, industry-vetted curriculum to help you become a Complete & Professional Java Engineer. The curriculum has been designed to address several challenges many engineers are facing esp. when implementing large, complex software. Their solutions are often poorly implemented resulting in several rounds of "code refactoring" leading to loss of valuable time for the organization. This can be attributed to the way we are taught programming where focus is on teaching only programming language features without any emphasis on best practices & design principles needed for building good software. To address these short comings, the course has been built with a larger goal of teaching not just Java, but also how to write well-designed, professional code.
To address the shortcomings in current courses, the program takes a holistic approach by incorporating the following:
1. Comprehensiveness - To ensure that you master Java, the program is highly comprehensive covering most language features and discussing them at a very in-depth level. The program includes two parts - Core & Advance Java. Everything from Java language basics to concurrency and databases to functional-style and even modular programming are discussed. Each lecture is carefully crafted explaining the motivation with well thought out practical examples.
2. Best Practices & Design Principles - To further ensure you are industry-ready and can write well-designed, professional code, tons of industry standard best practices & design principles are discussed. This is a USP of the program.
3. Instructor-led Project - In addition to learning best practices, it is also good to have the experience of implementing something concrete. Towards this end, you'll implement an instructor-led Java EE Web application using professional coding conventions with Eclipse as IDE. This is akin to working with an experienced engineer on your first job.
The program can take around 4 months full-time to complete and is self-paced. Check out Core & Advance tabs for more specifics.
The Core Java part constitutes the first 60% of the program and can take around 2 months full-time. Though this part covers the core fundamentals, you'll still learn many design principles & best practices followed in the industry. The instructor-led project also starts after learning object-oriented concepts and will be built progressively as we learn new concepts. You'll also learn how to use Eclipse professionally. Below is a high-level break-up of topics discussed under Core Java.
The Advanced Java part constitute last 40% of the course and it also takes around 2 months of full-time. Below is a high-level break-up of topics discussed under Advanced Java. The instructor-led project that started in the core part will be completed in this part. By the end you would have implemented a full Web application with MySQL as database. Finally, after being introduced to JPMS, you'll learn how to build software that is space-optimized, i.e., software that takes very little space.
You can also optionally earn our Complete Java Engineer! certification - our endorsement that you've mastered Java and are ready to write professional-level code. To receive this certificate, apart from completing the lectures & quizzes, you would have to complete the below programming assessments all verified by our engineers.
This lecture conceptually explains basic concepts like Class & Object through nice illustrations.
Class & ObjectsIntroduces Switch statement. Explains how it is more readable, concise and efficient compared to if-statement.
Switch Statement: IntroductionThis lecture demonstrates how a thread is launched and also put to sleep.
Launching a Thread!Motivation Behind Creating This Course
FREE PREVIEWCourse Structure & Guidance on Doing the Course
FREE PREVIEWSchedule for College Students
Chapter Introduction
What is Java & Who is Using It?
Story behind Java's Creation ~ A Brief History
Compilation
Platform Dependency
Interpreter
Platform Independence in Java
Java Virtual Machine (JVM)
An Overview of Java SE
Java SE Release Cycles & Release History
Installing Java 17 on Windows
Installing Java on Mac
Installing Java on Linux
Setting Classpath Environment Variable
Writing First Java Program
Conclusion ~ Chapter 1
Chapter 2 Quiz
Important Q&A Discussions! (+)
Chapter Introduction
Class & Objects
FREE PREVIEWAbsolute Java Basics
FREE PREVIEWIdentifiers - A Note on Naming Rules
Variables: Introduction
Declaring & Re-initializing Variables
Assignment: Currency Converter - Creating a Class with Variables
Variables: Primitive Types
Primitive Variables: Integers
Question on Binary Representation of Negative Number
Other Integer Literal Formats
Use byte & short Variables Judiciously (+)
Primitive Variables: Floating-point Numbers
Floating-point Pitfalls*
Primitive Variables: Character Data Type
Alternate ways to initialize char variables
Primitive Variables: Boolean Data Type
Quiz: Primitive Variables
Variable Kinds - Instance, Static, and Local Variables
Multi-variable Declaration Statements
Variables: Type Casting
Variables: Object References
Statements
Arrays
Assignment: Currency Converter - Array Creation & Accessing its Elements
2D Arrays
3D Arrays
Methods: Introduction
Method Types ~ Instance & Static Methods + Demo
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?
Method Overloading
Methods: varargs
Brief Summary on varargs Parameter
Constructors
Constructor Overloading
Constructor Overloading ~ Alternate way of delegating
Minor Note on Method Invocation & Implicit Narrowing Conversion
this Reference
Demo: Reinitializing Object References ~ More Brainstorming! (Incl. Assignment)
Minor Note on Executing StudentTest and a Java 11 Feature
Coding Exercise 1: Implementing Instructor Class ~ Manipulating Arrays with Object References
Review of Exercise 1 Solution with Best Practices
Conclusion
Chapter 3 Quiz
Important Q&A Discussions! (+)
Chapter Introduction
Operators
Arithmetic Operators
Arithmetic Operation Rules
Minor Clarification on Arithmetic Operator Precedence Rule
Quiz: Arithmetic Operators
Note on Student Class
Comparison Operators
Logical Operators with Operator Precedence
Car Price Estimator ~ Coding Exercise for Comparison & Logical Operators
Coding Exercise 2: Car Price Estimator ~ Putting Comparison & Logical Operators into Action
Car Price Estimator - Exercise Solution Review
Bitwise Operators
Quick Note on Bitwise Operators with Boolean Operands
Bit Shift Operators
Quiz: Bitwise & Bit Shift Operators
Control-flow: if-statement
Coding Exercise: Amusement Park Ticket Price Calculator ~ Putting if statements into Action
Switch Statement: Introduction
Switch Restrictions
Arrow Labels in Switch (Java 14)
Switch Expressions (Java 14)
Quiz: switch Statement
Control-flow: Ternary
Additional Notes on Ternary Operator
Control-flow: for Statement
More for Statement ...
Another Look at Nested for Statement
for-each Statement*
Variable Scope
Exercise
Coding Exercise 3: Computing GPA ~ Putting Operators & Control-flow to Test
Computing GPA - Exercise Solution Review
Demo: while Statement
Demo: do Statement (incl. Scanner Class for taking Input)
Blocks
break Statement
Labeled Statement & Labeled break
continue Statement & Labeled continue
Recursion
Minor Correction in Binary Search Code
Conclusion
Chapter Introduction
Java API*
Accessing Packages
Creating Packages & Classpath Management
Naming Packages
Access Levels
More on private Modifier
Chapter 5 Quiz: Packages & Access Levels
Introduction
Installing Eclipse
Writing a Java Program in Eclipse
Eclipse Build Process
Importing Demo Code
Source Code Navigation
Automatic Source Code Cleaning & Generation
Shortcuts Cheat Sheet
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 with over half-a-dozen years of teaching experience with over 100k students globally. He has also been 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.