Step by step guide to becoming a modern Java developer
- What is Git/GitHub & Why do we need it? | Git Tutorials #1
- Installing Git + Initial Setup? | Git Tutorials #2
- Git: Three Stage Architecture | Git Tutorials #3
- Tracking Our first Git Project | Git Tutorials #4
- Cloning a Remote Git Repository from GitHub | Git Tutorials #5
- Git: File Status Lifecycle | Git Tutorials #6
- .gitignore: Ignoring Files in Git | Git Tutorials #7
- Git Diff: Showing Changes Between Commits/Staging Area & Working Directory | Git Tutorials #8
- Git: Skipping The Staging Area | Git Tutorials #9
- Moving and Renaming Files In Git | Git Tutorials #10
- Git Log: Viewing & Changing Commits In Git | Git Tutorials #11
- Unstaging & Unmodifying Files In Git | Git Tutorials #12
- GitHub: Working with Remote Repositories | Git Tutorials #13
- Setting Alias In Git | Git Tutorials #14
- Git: Creating & Switching Branches In Git | Git Tutorials #15
- Branching & Merging a Production Grade Project | Git Tutorials #16
- Resolving Merge Conflicts (With Example) | Git Tutorials #17
- Git Branching Workflow in Production | Git Tutorials #18
- Pushing Git Branches To Remote Repositories | Git Tutorials #19
- Getting Started
- Programming Tools Setup
- First Steps
- IntelliJ Basics
- Expressions, Statements & More
- Control Flow
- OOP Part 1 - Inheritance
- OOP Part 2 - Polymorphism
- Arrays
- List, ArrayList, LinkedList, Iterator, Autoboxing
- Day 00
- Day 01
- Day 02
- Day 03
- Day 04
- Day 05
- Day 06
- Day 07
- Day 08
- Day 09
- Abstraction in Java
- Generics
- Nested Classes and Types
- Lambda Expressions, Functional Interfaces, and Method References
- Java Collections
- Using Final, Immutable classes, Constructors, Initializers, Sealed classes
- Streams
- Back to a Few Nuts and Bolts
- Day 10
- Day 11
- Day 12
- Day 13
- Day 14
- Day 15
- Day 16
- Day 17
- Day 18
- Day 19
- Regular Expressions
- Input & Output (I/O), Working with Files in Java
- Concurrency
- Working with Databases
- Java Networking with Channels, Reactive Programming, and Virtual Threads
- Debugging and Unit Testing
- Day 20
- Day 21
- Day 22
- Day 23
- Day 24
- Day 25
- Day 26
- Day 27
- Day 28
- Day 29
- 01 - Understanding Dependency Injection
- 02 - Setting Up
- 03 - Understanding Spring Bean Factory
- 04 - Writing Code Using the Bean Factory
- 05 - ApplicationContext and Property Initialization
- 06 - Using Constructor Injection
- 07 - Injecting Objects
- 08 - Inner Beans, Aliases and idref
- 09 - Initializing Collections
- 10 - Bean Autowiring
- 11 - Understanding Bean Scopes
- 12 - Using ApplicationContextAware
- 13 - Bean Definition Inheritance
- 14 - Lifecycle Callbacks
- 15 - Writing a BeanPostProcessor
- 16 - Writing a BeanFactoryPostProcessor
- 17 - Coding To Interfaces
- 18 - Introduction to Annotations and the Required Annotation
- 19 - The Autowired Annotation
- 20 - Some JSR-250 Annotations
- 21 - Component and Stereotype Annotations
- 22 - Using MessageSource To Get Text From Property Files
- 23 - Event Handling in Spring
- 24 - Introduction to AOP
- 01 - Introduction to Spring Data and Setting Up
- 02 - Using JDBC without Spring
- 03 - Adding Spring and DataSource Configuration
- 04 - Using JdbcTemplate
- 05 - Returning Other Datatypes from JdbcTemplate
- 06 - Implementing RowMapper
- 07 - Performing Write Operations with JdbcTemplate
- 08 - Named Parameter JDBC Template
- 09 - DAO Support Classes
- 10 - Using Hibernate with Spring
- 01 - Introduction
- 02 - About The Course
- 03 - What is Spring Boot
- 04 - Spring and some of its problems
- 05 - What Spring Boot gives us
- 06 - Setting Up Development Environment
- 07 - Maven
- 08 - Creating a Spring Boot project
- 09 - Starting a Spring Boot application
- 10 - Spring Boot startup steps
- 11 - Adding a REST Controller
- 12 - Returning Objects From Controller
- 13 - What's Happening Here: Bill Of Materials
- 14 - What's Happening Here: Embedded Servlet Container
- 15 - How Spring MVC Works
- 16 - The REST API we'll build
- 17 - Creating a business service
- 18 - Getting a single resource
- 19 - Creating a new resource using POST
- 20 - Implementing Update and Delete
- 21 - Unit Overview
- 22 - Using Spring Initializr
- 23 - Using Spring Boot CLI
- 24 - Using the STS IDE
- 25 - Using application properties
- 26 - What is JPA
- 27 - Adding Spring Data JPA
- 28 - Creating a Spring Data JPA Repository
- 29 - Making Crud Operations with Repository
- 30 - Adding Course APIs
- 31 - Adding Entity Relationship and Extending Repository
- 32 - Packaging and running a Spring Boot app
- 33 - Spring Boot Actuator
- 34 - Wrap Up
- 01 - Introduction and agenda
- 02 - Why write tests
- 03 - Why do we need a testing framework
- 04 - Why JUnit 5
- 05 - JUnit 5 Architecture
- 06 - Creating a new JUnit 5 Maven project
- 07 - Creating a JUnit test
- 08 - Running a test
- 09 - The @Test annotation
- 10 - Using Assertions
- 11 - Assert methods
- 12 - Test driven development with JUnit
- 13 - Maven surefire plugin integration
- 14 - Asserting exceptions with assertThrows
- 15 - Life cycle and test antipatterns to avoid
- 16 - Using JUnit lifecycle hook annotations
- 17 - Examining BeforeAll and AfterAll
- 18 - Changing default TestInstance behavior
- 19 - Using DisplayName and Disabled annotations
- 20 - Conditional executions and assumptions
- 21 - Using AssertAll
- 22 - Writing nested test classes
- 23 - Using supplier for assert messages
- 24 - Using RepeatedTest
- 25 - Tagging tests with @Tag
- 26 - Using TestInfo and TestReporter
- 27 - Wrap Up