Learning Path Java
Java Core
- Data types
- Loops and conditions
- Methods and functions
Build a Java CLI
- Command line interface basics
- Parsing command line arguments
Make a CRUD with Java
- Connect with a database
- Creating, reading, updating and deleting data from a database
- Mapping database tables to Java objects with ORMs, use Hibernate or Spring Data
Build a Java package
- Organizing code into packages
- Creating and using your own custom packages
How to consume Java package
How to set up and update packages
- Upgrading and downgrading dependencies
- Dealing with conflicts and versioning issues
How to deploy Java
- Introduction to web servers and servlet containers
- Packaging a Java application for deployment
- Deploying a Java application to a web server or a cloud provider
How to consume requests using Java
- Making HTTP requests
- Handling exceptions and errors
How to use databases in Java
- Connecting to databases using JDBC or JPA
- Using ORMs like Hibernate or Spring Data to simplify database interactions
How to deal with files in Java
- Reading and writing files
- Creating, deleting and renaming files and directories
How to do async in Java
- Introduction to concurrency and parallelism in Java
- Working with asynchronous I/O
Websockets in Java
- Introduction to WebSockets and real-time communication
- Handling WebSocket events and messages
Threads
- Introduction to concurrency in Java
- Creating and managing threads
- Synchronization and locks
- Dealing with thread safety issues
Java Concurrency
- Advanced concurrency concepts like Executors, Futures and Promises
- Concurrent collections and data structures
Techniques to improve performance
- Using caching and in-memory databases
- Designing for scalability and performance
JSON in Java
- Introduction to JSON format and parsing
- Serializing Java objects to JSON and vice versa
Java applets
- Overview of Java applets and their uses
- Building, deploying and running Java applets
Security
- Introduction to security concerns in Java
- Best practices for authentication and authorization
- Secure coding practices to prevent common vulnerabilities
Java in Docker
- Introduction to Docker containers and their advantages
- Building and deploying Java applications in Docker containers
Java serverless
- Introduction to serverless computing and its benefits
- Building and deploying Java applications on serverless platforms