Course Outline

This 70-Hour Part-Time Course covers a range of advanced topics in Java programming, including Concurrency, Garbage Collection, Test-Driven Development, Design Patterns, Message Queues, Distributed Systems, DevOps and more.


The course is designed for students and professionals with a basic understanding of Java who are interested in upskilling themselves and learning Advanced Software Engineering techniques.


Upon completion of the course, students will be equipped with the technical skills needed to build robust and scalable Java applications, and will have a solid understanding of Advanced Software Engineering concepts and methodologies.


Most importantly, students will have the ability to excel in Java interviews conducted by the top investment banks.

Test-Driven Development and Test Automation

Introduction to Test-Driven Development: Students will learn about the TDD methodology, the red-green-refactor cycle, and how to write tests that ensure code quality.

JUnit Framework: This section covers the JUnit framework, its syntax, and how to write unit tests with it.

Test Automation: Students will learn how to write automated tests for Java applications using frameworks such as Mockito.

Java Fundamentals and Advanced Programming

Advanced Concurrency: This section covers advanced concurrency topics such as locks, semaphores, and atomic variables. Students will learn how to write concurrent code that is efficient and safe.

Garbage Collection: Students will learn about the Java Garbage Collection algorithm, how it works, and how to optimize it for better performance.

JVM Tuning: This section covers JVM Tuning techniques to improve the performance of Java applications. Students will learn how to optimize the JVM for specific use cases.

Message Queues and Event-Driven Architecture

Introduction to Message Queues: Students will learn what message queues are and how they are used in distributed systems.

Working with Message Queues: This section covers the implementation of message queues using RabbitMQ and Kafka. Students will learn how to create producers and consumers, and how to handle common scenarios such as message ordering and message delivery guarantees.

Event-Driven Architecture: Students will learn how to design and implement event-driven systems using message queues.

DevOps and CI/CD Pipeline

Introduction to DevOps: Students will learn the fundamental principles of DevOps, its benefits, and its role in software development.

CI/CD Pipeline: Students will learn the concepts of Continuous Integration (CI) and Continuous Deployment (CD) pipelines, and how they can automate the software development process.

Docker: Students will learn how to use Docker to create, deploy, and manage applications in containers, and how it can be used to streamline the software development process.

Microservices and Distributed Systems in Cloud

Introduction to Distributed Systems: This section covers the fundamentals of distributed systems, including distributed architectures and distributed databases.

Microservices Architecture: Students will learn how to design and implement microservices architectures using Spring Boot and other frameworks.

Overview of common cloud platforms such as Google Cloud Platform (GCP), Amazon Web Services (AWS), and Microsoft Azure.

Deep Dive into AWS cloud services, including EC2, S3, RDS, and more.

Clean Code, Refactoring, and Design Patterns

Clean Code Principles: This section covers the principles of clean code and how to apply them in Java programming. Students will learn how to write code that is easy to read, test, and maintain.

Refactoring Techniques: Students will learn how to identify code smells and refactor code to improve its quality.

Introduction to Design Patterns: This section covers the most common design patterns used in Java programming. Students will learn how to use these patterns to write scalable and maintainable code.

ASD Instructor

R.S.

About the Instructor

Senior Software Engineer with 18 years of experience developing high-throughput, low-latency investment banking systems, helping you take your tech skills to the next level

  • Team Lead (Director) at Top-Tier Multinational Bank
  • 18+ years of Software Engineering experience in multiple top-tier investment banks
  • Masters of Financial Engineering, Stanford University
  • Expert in Java, Python, DevOps and Trading Systems

Pricing and Discounts

Sign up before May 31, 2023 to enjoy early bird discount (25% OFF)

Regular

HK$29,800

  • 70-Hour Course, once or twice per week
  • Lecture Notes, Exercises and Capstone Projects
  • Real interview questions from Investment banks and MNCs
  • Director-Grade Career Guidance and Support (Exclusive)

FAQ