← All courses

Training

Course Outline - [Intermediate] Java for Web Development

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

  1. Revision of OOP
  2. Loops
  3. Conditions
  4. Recursion
  5. Data Conversion
  6. Data Manipulation
  7. Data Cleaning

Day 2

  1. Collections
  2. Lists and Arrays - in-depth
  3. Generics
  4. Functional Programming
  5. Streams
  6. Threads
  7. Multi-threaded programming
  8. Synchronization
  9. Exception Handling
  10. Error Handling
  11. Exceptions and error in a multi-threaded environment
  12. Java File system in depth
  13. Project
  14. Utility Execution
  15. Java for the web (overview)
  16. Web app project

Day 3

  1. Intro with Spring Framework
  2. Understanding the project and scope
  3. Setting up New Spring Project with Spring Initializr
  4. Hands on Building
  5. Spring Framework coupling
  6. Background processing
  7. Terminology
  8. Implementing a Flow across Layers
  9. Spring Framework - Maven
  10. Dependency Injection Types
  11. Getting Started with Spring Boot
  12. Setting up New Spring Boot Project
  13. Hello World API with Spring Boot
  14. Conversion
  15. Configuration
  16. Embedded Servers
  17. Spring Boot Actuator
  18. Spring Boot DevTools

Day 4

  1. Simple REST API with Spring Boot and Spring Data JPA
  2. JPA and in memory database H2
  3. Additional Configuration for Spring Data JPA
  4. SQL
  5. Entity and integrating with GET REST API
  6. Understanding REST API
  7. Building REST API (GET)
  8. Building REST API (POST)
  9. Building REST API (PUT)
  10. Building REST API (DELETE)
  11. Assessment

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.