0% found this document useful (0 votes)
52 views8 pages

30-Day Java 17 Crash Course

The 30-Day Java 17 Crash Course is a structured learning plan designed to teach Java 17 basics and key features through a combination of video resources and reading materials. It covers topics from Java fundamentals, object-oriented programming, collections, modern Java features, and practical projects over five weeks. The course emphasizes hands-on practice, consistency, and understanding core concepts rather than memorization.

Uploaded by

Ganit Vidyarthi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views8 pages

30-Day Java 17 Crash Course

The 30-Day Java 17 Crash Course is a structured learning plan designed to teach Java 17 basics and key features through a combination of video resources and reading materials. It covers topics from Java fundamentals, object-oriented programming, collections, modern Java features, and practical projects over five weeks. The course emphasizes hands-on practice, consistency, and understanding core concepts rather than memorization.

Uploaded by

Ganit Vidyarthi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

30-Day Java 17 Crash Course

This plan is designed to give you a solid understanding of Java 17 basics and key
features over 30 days. It combines video resources (YouTube, Udemy) with reading
materials (blogs) for a comprehensive learning experience.

Week 1: Java Fundamentals & Setup


●​ Day 1: Introduction to Java & Environment Setup
○​ Understand Java's history, features, and the JVM.
○​ Install Java Development Kit (JDK) 17.
○​ Set up an Integrated Development Environment (IDE) like IntelliJ IDEA, Eclipse,
or VS Code.
○​ Write and run your first Java program ("Hello, World!").
○​ Resources:
■​ YouTube: "Java 17 Installation" or "Setting up IntelliJ/Eclipse for Java"
tutorials. Look for recent ones (2023-2025).
■​ Udemy: Check introductory Java courses, often the first few sections
cover setup. (e.g., "Complete Java Masterclass" - check free previews).
■​ Blogs: Oracle Java documentation (Getting Started), Baeldung (Java
basics), GeeksforGeeks (Java environment setup).
●​ Day 2: Basic Syntax, Data Types, and Variables
○​ Learn about Java's basic syntax, comments, and keywords.
○​ Understand primitive data types (int, boolean, char, double, etc.) and
non-primitive types (String, Arrays).
○​ Declare and use variables.
○​ Resources:
■​ YouTube: "Java Data Types and Variables" tutorials.
■​ Udemy: Sections on variables and data types in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Language Basics), Programiz (Java Data
Types), JavaTpoint (Variables).
●​ Day 3: Operators and Expressions
○​ Learn about arithmetic, relational, logical, assignment, and other operators.
○​ Understand operator precedence.
○​ Write basic expressions.
○​ Resources:
■​ YouTube: "Java Operators Tutorial".
■​ Udemy: Sections on operators in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Operators), GeeksforGeeks (Java Operators).
●​ Day 4: Control Flow: if, else, else if, switch
○​ Learn how to make decisions in your code using conditional statements.
○​ Understand the if, else, and else if structure.
○​ Learn about the switch statement (including enhancements in newer Java
versions like switch expressions - cover basics first).
○​ Resources:
■​ YouTube: "Java If Else" and "Java Switch Statement" tutorials.
■​ Udemy: Sections on control flow in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Control Flow Statements), Baeldung (Java
If/Else, Switch).
●​ Day 5: Control Flow: loops (for, while, do-while)
○​ Learn how to repeat code blocks using loops.
○​ Understand for, while, and do-while loops.
○​ Learn about the enhanced for loop (for-each).
○​ Resources:
■​ YouTube: "Java Loops Tutorial" (cover all types).
■​ Udemy: Sections on loops in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Control Flow Statements), Programiz (Java
Loops).
●​ Day 6: Arrays
○​ Understand what arrays are and how to declare and initialize them.
○​ Learn how to access and manipulate array elements.
○​ Explore multi-dimensional arrays.
○​ Resources:
■​ YouTube: "Java Arrays Tutorial".
■​ Udemy: Sections on arrays in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Arrays), JavaTpoint (Arrays).
●​ Day 7: Introduction to Object-Oriented Programming (OOP)
○​ Understand the core concepts of OOP: Objects, Classes, Abstraction,
Encapsulation, Inheritance, Polymorphism.
○​ Learn how to define a class and create objects.
○​ Understand constructors.
○​ Resources:
■​ YouTube: "Introduction to OOP in Java" tutorials.
■​ Udemy: Sections on OOP basics in beginner Java courses.
■​ Blogs: Oracle Java Tutorials (Classes and Objects), GeeksforGeeks (OOP
Concepts).
Week 2: Core OOP & Basic APIs
●​ Day 8: Encapsulation (Getters and Setters)
○​ Deepen your understanding of encapsulation.
○​ Learn how to use access modifiers (public, private, protected, default).
○​ Implement getters and setters to control access to class members.
○​ Resources:
■​ YouTube: "Java Encapsulation Tutorial".
■​ Udemy: Sections on encapsulation in OOP courses.
■​ Blogs: Baeldung (Encapsulation), Programiz (Java Encapsulation).
●​ Day 9: Inheritance
○​ Understand the concept of inheritance and its benefits.
○​ Learn how to create subclasses and use the extends keyword.
○​ Explore method overriding and the super keyword.
○​ Resources:
■​ YouTube: "Java Inheritance Tutorial".
■​ Udemy: Sections on inheritance in OOP courses.
■​ Blogs: Oracle Java Tutorials (Inheritance), JavaTpoint (Inheritance).
●​ Day 10: Polymorphism
○​ Understand compile-time (method overloading) and runtime (method
overriding) polymorphism.
○​ Learn how to use polymorphism in practice.
○​ Resources:
■​ YouTube: "Java Polymorphism Tutorial".
■​ Udemy: Sections on polymorphism in OOP courses.
■​ Blogs: GeeksforGeeks (Polymorphism), Programiz (Java Polymorphism).
●​ Day 11: Abstraction (Abstract Classes and Interfaces)
○​ Understand the concept of abstraction.
○​ Learn about abstract classes and abstract methods.
○​ Learn about interfaces (including default and static methods in interfaces -
Java 8+ features).
○​ Understand the difference between abstract classes and interfaces.
○​ Resources:
■​ YouTube: "Java Abstract Class and Interface Tutorial".
■​ Udemy: Sections on abstraction in OOP courses.
■​ Blogs: Oracle Java Tutorials (Interfaces, Abstract Classes), Baeldung
(Abstract Class vs Interface).
●​ Day 12: Packages and Access Modifiers
○​ Learn how to organize your classes using packages.
○​ Understand the different access modifiers (public, private, protected, default)
and their scope.
○​ Resources:
■​ YouTube: "Java Packages Tutorial", "Java Access Modifiers".
■​ Udemy: Sections on packages and access modifiers.
■​ Blogs: Oracle Java Tutorials (Packages), JavaTpoint (Access Modifiers).
●​ Day 13: String Handling
○​ Learn about the String class and its immutability.
○​ Explore common String methods.
○​ Understand StringBuffer and StringBuilder.
○​ Resources:
■​ YouTube: "Java String Tutorial".
■​ Udemy: Sections on String handling.
■​ Blogs: Oracle Java Tutorials (Strings), Programiz (Java Strings).
●​ Day 14: Exception Handling
○​ Understand what exceptions are and why handle them.
○​ Learn about try, catch, finally, throw, and throws.
○​ Explore checked and unchecked exceptions.
○​ Resources:
■​ YouTube: "Java Exception Handling Tutorial".
■​ Udemy: Sections on exception handling.
■​ Blogs: Oracle Java Tutorials (Exceptions), Baeldung (Exception Handling).

Week 3: Collections & Introduction to Modern Java


●​ Day 15: Collections Framework - Overview and List
○​ Understand the Collections Framework hierarchy.
○​ Learn about the List interface and its common implementations (ArrayList,
LinkedList).
○​ Resources:
■​ YouTube: "Java Collections Tutorial" (start with List).
■​ Udemy: Sections on Collections Framework (List).
■​ Blogs: Oracle Java Tutorials (Collections), GeeksforGeeks (Java
Collections List).
●​ Day 16: Collections Framework - Set and Map
○​ Learn about the Set interface (HashSet, LinkedHashSet, TreeSet).
○​ Learn about the Map interface (HashMap, LinkedHashMap, TreeMap).
○​ Understand the differences and use cases for List, Set, and Map.
○​ Resources:
■​ YouTube: "Java Set Tutorial", "Java Map Tutorial".
■​ Udemy: Sections on Collections Framework (Set, Map).
■​ Blogs: Baeldung (Java Set), JavaTpoint (Java Map).
●​ Day 17: Generics
○​ Understand the need for generics.
○​ Learn how to use generic classes, interfaces, and methods.
○​ Explore wildcard types.
○​ Resources:
■​ YouTube: "Java Generics Tutorial".
■​ Udemy: Sections on generics.
■​ Blogs: Oracle Java Tutorials (Generics), Programiz (Java Generics).
●​ Day 18: Introduction to Lambda Expressions (Java 8)
○​ Understand functional interfaces.
○​ Learn the syntax and usage of lambda expressions.
○​ Resources:
■​ YouTube: "Java Lambda Expressions Tutorial".
■​ Udemy: Sections on Java 8 features.
■​ Blogs: Baeldung (Lambda Expressions), Oracle Java Tutorials (Lambda
Expressions).
●​ Day 19: Stream API (Java 8)
○​ Understand the concept of streams.
○​ Learn about intermediate and terminal operations (filter, map, reduce, collect,
etc.).
○​ Use Stream API with collections.
○​ Resources:
■​ YouTube: "Java Stream API Tutorial".
■​ Udemy: Sections on Java 8 features (Stream API).
■​ Blogs: Oracle Java Tutorials (Streams), GeeksforGeeks (Java 8 Stream
API).
●​ Day 20: New Date and Time API (Java 8)
○​ Understand the limitations of the old Date and Calendar APIs.
○​ Explore the java.time package (LocalDate, LocalTime, LocalDateTime,
ZonedDateTime).
○​ Resources:
■​ YouTube: "Java 8 Date and Time API Tutorial".
■​ Udemy: Sections on Java 8 features (Date and Time).
■​ Blogs: Baeldung (Java 8 Date and Time), Oracle Java Tutorials (Date and
Time).
●​ Day 21: Optional Class (Java 8)
○​ Understand the purpose of the Optional class.
○​ Learn how to use Optional to handle potential null values gracefully.
○​ Resources:
■​ YouTube: "Java Optional Tutorial".
■​ Udemy: Sections on Java 8 features (Optional).
■​ Blogs: Oracle Java Tutorials (Optional), Programiz (Java Optional).

Week 4: Java 17 Features & Beyond


●​ Day 22: Java Modules (Java 9)
○​ Understand the concept of the Java Platform Module System (JPMS).
○​ Learn about modules, requires, and exports.
○​ Resources:
■​ YouTube: "Java Module System Tutorial".
■​ Udemy: Look for courses covering Java 9+ features.
■​ Blogs: Baeldung (Java Module System), Oracle Java Tutorials (Modules).
●​ Day 23: var - Local-Variable Type Inference (Java 10)
○​ Learn how to use the var keyword for local variable type inference.
○​ Understand when and when not to use var.
○​ Resources:
■​ YouTube: "Java 10 var keyword tutorial".
■​ Udemy: Look for courses covering Java 10+ features.
■​ Blogs: Baeldung (Java 10 var), GeeksforGeeks (Java 10 var).
●​ Day 24: Text Blocks (Java 15)
○​ Learn about Text Blocks for multi-line strings.
○​ Understand the syntax and benefits.
○​ Resources:
■​ YouTube: "Java Text Blocks Tutorial".
■​ Udemy: Look for courses covering Java 15+ features.
■​ Blogs: Baeldung (Java Text Blocks), Oracle Java Tutorials (Text Blocks).
●​ Day 25: Pattern Matching for instanceof (Java 16)
○​ Learn about the enhanced instanceof operator with pattern matching.
○​ Simplify your conditional logic.
○​ Resources:
■​ YouTube: "Java 16 Pattern Matching instanceof".
■​ Udemy: Look for courses covering Java 16+ features.
■​ Blogs: Baeldung (Pattern Matching instanceof), Oracle Java Tutorials
(Pattern Matching).
●​ Day 26: Records (Java 14 - Standard in 16)
○​ Understand the purpose and syntax of Records.
○​ Learn how Records simplify creating immutable data carriers.
○​ Resources:
■​ YouTube: "Java Records Tutorial".
■​ Udemy: Look for courses covering Java 14+ features.
■​ Blogs: Baeldung (Java Records), Oracle Java Tutorials (Records).
●​ Day 27: Sealed Classes (Java 15 - Standard in 17)
○​ Learn about Sealed Classes and Interfaces.
○​ Understand how they restrict which other classes or interfaces may extend or
implement them.
○​ Resources:
■​ YouTube: "Java Sealed Classes Tutorial".
■​ Udemy: Look for courses covering Java 15+ features.
■​ Blogs: Baeldung (Sealed Classes), Oracle Java Tutorials (Sealed Classes).
●​ Day 28: Other Java 17 Features & JVM Improvements
○​ Briefly explore other minor features and performance improvements in Java 17
(e.g., enhancements to the garbage collector, Foreign Function & Memory API
- Incubator).
○​ Understand why Java 17 is a Long-Term Support (LTS) release.
○​ Resources:
■​ YouTube: "What's New in Java 17" videos.
■​ Blogs: Oracle Java 17 Release Notes, Baeldung (Java 17 Features).

Week 5: Practice and Next Steps


●​ Day 29: Practice Project 1
○​ Work on a small project that incorporates concepts learned so far (e.g., a
simple command-line application using OOP, collections, and basic control
flow).
○​ Resources: Apply knowledge from previous days. Look for beginner project
ideas online.
●​ Day 30: Practice Project 2 & Next Steps
○​ Work on another small project, perhaps incorporating some of the newer Java
features (e.g., using Records or Text Blocks).
○​ Plan your next steps: explore frameworks (Spring Boot), databases, build tools
(Maven/Gradle), or specific areas of interest (web development, mobile
development, data science).
○​ Resources: Apply knowledge from previous days. Research popular Java
frameworks and tools.
General Tips for the Crash Course:
●​ Consistency is Key: Try to stick to the daily plan as much as possible.
●​ Hands-on Practice: Write and run code for every concept you learn. Modify
examples, break them, and fix them.
●​ Don't Just Watch/Read: Actively code along with tutorials and examples.
●​ Understand Why: Focus on understanding why things work the way they do, not
just how to use them.
●​ Take Breaks: Avoid burnout by taking regular breaks.
●​ Join Communities: Engage with other learners or developers online (forums,
Discord, etc.) to ask questions and share your progress.
●​ Explore Beyond Provided Resources: The resources listed are starting points.
Feel free to explore other tutorials, courses, and documentation if a particular
resource doesn't click for you.
●​ Focus on Understanding, Not Memorization: Aim to grasp the core concepts;
syntax and specific methods can be looked up later.
This 30-day plan provides a structured approach to learning Java 17. Good luck with
your crash course!

You might also like