Curriculum - Curs Java Complete online
Școala Informală de IT
Introduction
Programming basics in pseudocode
– Algorithms
– If-else statements
– Logical operators
– Case statements
– For loops
– While loops
– Repeat until loops
Intro to Java
– History of Java
– Why Java?
– How computers execute code
– How computers execute code
– Toolchain: JDK, JRE, java, javac, jar, etc.
– Application structure and elements
– Data types
– Java libraries
– Flow of Control
– Javadoc
Tools
Intro to IntelliJ IDEA
– Write, compile and execute a program
– Coding style
– Refactoring
– Debug
– Tests & Coverage
– Plugins
Object Oriented Programming
Functions
– solving problems with functions
– function call trace
– recursion – small introductions
– libraries and clients
Introduction into Object Oriented Programming
– OOP introduction
– Abstraction
– Encapsulation
– Composition
– Inheritance
– Polymorphism
– Dynamic dispatch
– Modularity (general topic)
Object Oriented Programming in Java
everything is an object
– Object class
– creating objects
– using objects
– This keyword
initialization and clean-up
– constructors
– member initialization
– clean-up: finalization and GC
– primitive types
– boxing / unboxing
– reusing classes
– access control
– super and final keywords
– interfaces
– abstract classes
– runtime polymorphism
– upcast and downcast
– static and dynamic binding
– inner, nested and anonymous classes
Build and versioning
Apache Maven
– what it does
– usage
– project structure
– repositories
– build lifecycles
Version control (GIT)
– what it does
– usage
– repositories
Object containers (Collections API)
– Arrays
– Collection vs collection
– Operations
– Types of collections
– Equals and hashCode
– Best practices
Testing
– Why testing?
– Unit testing
– JUnit and Mockito
– Functional testing
– Integration testing
– Pros and cons
– Comparison between them
– TDD (Test Driven Development)
Generics
– Generic Types
– Generics and Polymorphis
– Type Erasure
– Generic Methods
– Generics – restrictions
Enums and Annotations
Enums
– Why Enums?
– Enums in other languages
– Enums in Java
Annotations
– What are they?
– Usage
– Built-in annotations
– Custom annotations
Exceptions and logging
– Understanding exceptions
– Syntax
– how try / catch / throw works
– finally and try-with-resources
– types of exceptions
– effectively using exceptions
– best practices
– logging
– stacktraces (how to read them)
Java 8 and beyond
– lambda expressions
– functional interfaces
– method references
– Streams
– stream type
– stream operations
– default methods
Concurrency (Threads)
– Threads
– Process
– Call stack
– Daemon Threads
– Join
– Synchronization
– Share resources
– Tasks
Databases interaction
– Relational Databases
– JDBC
– SQL
– PostgreSQL
– Database normalization
– Transactions
– PreparedStatement
– CallableStatement
Web Introduction
– Internet and TCP/IP Protocol Suite
– Client-Server Architecture
– Protocols: DNS, HTTP
– Web Browsers
– Developer Tools
– World Wide Web (WWW)
– Uniform Resource Locator (URL)
Java web
– Web Server and Client
– HTML & HTTP
– Understanding URL(s)
– Why do we need Servlet & JSP(s)?
– First Web Application with Servlet & JSP
– Web Container
– Web Application Directory Structure
– Deployment Descriptor
Spring
– Introduction
– Benefits
– Latest version
– Sync with JDK
– Spring Framework
Spring Boot
– What is Spring Boot and why?
– Benefits
– Micro Service
– How does it work?
– Spring Boot Starters
– Auto Configuration
– Spring Boot Application
– Component Scan
– Spring Boot CLI
– Spring Initializr
Spring Web
– What is Spring MVC?
– Spring Web Annotations
– REST meaning & API best practices
– Postman / Insomnia
– Introduction to using Thymeleaf in Spring
– Model, ModelMap and ModelView
Interview preparation
– Interview Preparation File
– How to present oneself during an IT interview
– CV formatting tips