Course Plan
..
1. Git
- Introduction to version control systems
- Basic Git commands (clone, commit, push, pull, branch, merge)
- Branching strategies and workflow
- Conflict resolution
- Best practices for using Git
2. SOLID
- Introduction to SOLID principles
- Detailed discussion of each principle:
- Single Responsibility
- Open/Closed
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
- Examples of violating and adhering to SOLID principles
- Practical tasks for applying SOLID principles
3. Algorithms and Data Structures
- Introduction to algorithmic complexity
- Fundamental data structures (arrays, lists, stacks, queues, hash tables, trees, graphs)
- Basic algorithms (sorting, search, graph traversal)
- Algorithmic problem solving and solutions
4. Collections
- Overview of collections in Java
- Differences between main interfaces and classes (List, Set, Map)
- Working with collections: iteration, filtering, transformation
- Best practices for using collections
5. Exceptions
- Types of exceptions in Java
- Exception handling: try, catch, finally
- Creating custom exceptions
- Best practices for exception handling
6. JUnit
- Introduction to testing
- Basics of JUnit: annotations, asserts
- Writing unit tests for classes and methods
- Using mocks and stubs
7. Mockito
- Introduction to Mockito
- Mocking objects and methods
- Verifying method calls
- Advanced features of Mockito
8. CI/CD
- Fundamentals of continuous integration and continuous delivery
- CI/CD tools (Jenkins, GitLab CI, GitHub Actions)
- Setting up CI/CD pipelines
- Automating testing and deployment
- Introduction to serialization and deserialization
- Data formats: JSON, XML, YAML
- Libraries for working with formats (Jackson, Gson)
- Examples of serialization/deserialization in Java
10. Lambdas
- Introduction to lambda expressions in Java
- Syntax and core principles
- Functional interfaces
- Practical application of lambda expressions
11. Stream API
- Basics of Stream API in Java
- Creating streams of data
- Operations on streams: filtering, transformation, sorting, aggregation
- Examples of using Stream API
12. Optional
- Introduction to the Optional class
- Using Optional to prevent NullPointerException
- Methods of the Optional class
- Practical examples of using Optional
13. HTTP/HTTPS
- Fundamentals of HTTP and HTTPS protocols
- Request methods and response statuses
- Working with headers and cookies
- Basics of web application security
14. ReST
- Basics of RESTful architecture
- Creating RESTful services in Java
- Testing RESTful API
- Best practices and standards
15. SOAP
- Introduction to the SOAP protocol
- Differences between SOAP and REST
- Creating and consuming SOAP services
- Validation and security of SOAP services
16. Relational Databases
- Basics of relational databases
- Data modeling and normalization
- SQL basics
- Working with transactions and indexes
17. JDBC
- Introduction to JDBC
- Establishing database connections
- Executing SQL queries through JDBC
- Handling query results
18. JPA
- Fundamentals of Java Persistence API
- Entities and their relationships
- JPQL and Criteria API
- Caching and query optimization
19. Hibernate
- Introduction to Hibernate
- Configuration and sessions in Hibernate
- Working with objects and transactions
- Inheritance and complex relationships
20. Spring Boot
- Basics of Spring Boot
- Creating and configuring web applications
- Working with databases through Spring Data
- Testing applications with Spring Boot
21. Spring Data
- Basics of Spring Data
- Spring Data repositories and their methods
- Working with various databases
- Pagination and sorting of data
22. Spring Security
- Fundamentals of web application security
- Configuring Spring Security
- Authentication and authorization
- Working with roles and access rights