Course Outline - [Intermediate] Java for Web Development
This course is for those who already know Java as a programming language and would like to further enhance their skills in Java programming for the web. This is NOT a course for someone who has never done Java programming. In the event the learner is not a Java programmer or not in practice of programming currently, please check out the Course Outline - Java for Beginners.
The primary goal of this course is to enable the programmer to use his / her Java programming skills for web development.
Learning Outcome
By the end of this course, the learner shall have:
- Deep understanding on Java’s memory management.
- Determine how to manipulate primitive data types to suit the needs of the project.
- Solid grasp in loops and methods including recursion.
- Use recursion for nested data type conversion (Primarily JSON and XML).
- Have a better skill with Java’s I/O capabilities.
- The ability to use advanced OOP concepts in Java.
- Perform advanced file operations.
- Create Database operations for practical deployment.
- Perform Server Side Scripting using Java
- Develop rest APIs using Java.
Please Note: The outcome listed above is a guideline and not a guarantee. Every learner is unique and so is their learning ability. Variations in the ability to comprehend and utilize shall differ from pupil to pupil.
Prerequisites
As mentioned previously, this course is not intended for learners who are not Java programmers. In order to be able to participate in this course, the learner needs to fulfil the following prerequisites:
- Access to PC [either one of these OS: MS Windows / Mac / Linux (ubuntu)]
- The ability to remote into a server via SSH
- Programming experience with Java
- Understanding of how OOP works
- Ability to use IDE for Java
- Compile and Deploy software in Java
- Understand the entire development lifecycle in Java
- Experience and understanding of filing system
- Internet connection
- Webcam
- Microphone
- Dual screens
- Very basic understanding of server architecture
- Ability to comprehend the English language
- Minimum 99% attendance
- Basic education in mathematics (understanding of linear and non-linear mathematics at high-school level)
Outline
The exact outline with respect to the days are as follows:
Day 1
- Revision of OOP
- Loops
- Conditions
- Recursion
- Data Conversion
- Data Manipulation
- Data Cleaning
Day 2
- Collections
- Lists and Arrays - in-depth
- Generics
- Functional Programming
- Streams
- Threads
- Multi-threaded programming
- Synchronization
- Exception Handling
- Error Handling
- Exceptions and error in a multi-threaded environment
- Java File system in depth
- Project
- Utility Execution
- Java for the web (overview)
- Web app project
Day 3
- Intro with Spring Framework
- Understanding the project and scope
- Setting up New Spring Project with Spring Initializr
- Hands on Building
- Spring Framework coupling
- Background processing
- Terminology
- Implementing a Flow across Layers
- Spring Framework - Maven
- Dependency Injection Types
- Getting Started with Spring Boot
- Setting up New Spring Boot Project
- Hello World API with Spring Boot
- Conversion
- Configuration
- Embedded Servers
- Spring Boot Actuator
- Spring Boot DevTools
Day 4
- Simple REST API with Spring Boot and Spring Data JPA
- JPA and in memory database H2
- Additional Configuration for Spring Data JPA
- SQL
- Entity and integrating with GET REST API
- Understanding REST API
- Building REST API (GET)
- Building REST API (POST)
- Building REST API (PUT)
- Building REST API (DELETE)
- Assessment
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.