Java Software Developer e-course
The goal of the retraining program is to provide participants with beginner-level skills in backend development. Learners who successfully complete the program will be capable of starting work in a software development company or organization on a junior backend developer position.
Curriculum group: Software and Application Development and Analysis(In accordance with the valid classification of curricula outlined in the continuing education standard and the list of curriculum groups established by the annex to the regulation, which is based on the International Standard Classification of Education Fields of Education and Training (ISCED-F 2013).
The basis of curriculum composition: Junior software developer level 4 professional standard (partly).
Learning outcomes:
- Designs and implements robust backend systems using Java and Spring Boot.
- Manages relational databases proficiently using SQL.
- Creates and manages RESTful APIs.
- Writes unit and integration tests to ensure software quality.
- Utilizes Git for version control.
- Utilizes development environments, database migration tools, and containerization platforms.
- Implements security best practices in backend development, including authentication, authorization, and adhering to secure coding guidelines.
- Produces comprehensive documentation for backend systems.
- Efficiently picks up and understands unfamiliar projects, identifies, and resolves bugs, and develops new features.
- Engages effectively in both individual and team-based software development projects.
The course is primarily aimed at individuals keen on launching a career in IT, particularly in the field of Software Developing, who:
- have elementary (basic) knowledge of computer operation and software usage
- have at least B2 level in English
- have time to commit to a 10-month course
- have serious interest in the IT field and wish to work in this field
The total amount of study: 533 academic hours (during 10 months or 41 weeks)
Learning enviroment and tools: The training program consists of four English e-learning modules that must be completed in the specified order. Learners are provided with 78 academic hours of group meetings with mentors. All learning takes place online (including meetings with mentors and students).
E-course and content
E-course module
1. module. Introduction of the Program (13 academic hours) and Java and Spring Boot fundamentals (214 academic hours)
- Introduction to the Program: Overview and fundamentals of Java and Spring Boot.
- Time Management Techniques: Essential skills for managing study and work time effectively.
- Introduction to Software Development: Basics of software development, roles, responsibilities, and job requirements.
- Learning Process Organization: How the learning process is structured and managed.
- Software Development Methodologies: Overview of methodologies, including Waterfall and Agile.
- Tools and Platforms: Using Confluence, JIRA, and GitHub.
- Development Environment Setup: Downloading, installing, and configuring IntelliJ IDEA, PostgreSQL, and setting up local projects.
- Version Control with Git: Commands and processes including clone, branch, commit, push, fetch, and merge.
- Java Programming Basics: Overview, naming conventions, data types, arrays, loops, and control statements.
- Advanced Java Concepts: Methods, exception handling, object-oriented principles, and Java best practices.
- RESTful Web Services: Creating and testing API endpoints, HTTP basics, and CRUD actions.
- Database Integration: Setting up databases, performing CRUD operations, and using JPA for data retrieval.
- Testing and Validation: Unit testing, integration testing, input validation, and custom error handling.
- Development Tools: Using IntelliJ features, Gradle, and plugins like JPA Buddy and MapStruct.
- Soft Skills and Teamwork: Problem-solving techniques, Agile teamwork, collaboration, and progress reassessment
2. module Advanced Development Tools and Database Design (113 academic hours)
- Introduction to Docker: What Docker is, its use cases, and setting up Docker on different operating systems.
- Using Docker Compose and Dockerfiles: Running services with Docker Compose and creating Docker images.
- Gitflow in Teams: Managing branches and pull requests in Gitflow.
- Database Design and Management: ACID properties, transaction management, ER diagrams, and database normalization.
- Caching and Annotations in Spring: Using @Cacheable and @Transactional annotations.
- Static Code Analysis with SonarLint: Installation, configuration, and resolving code issues.
- Communication and Soft Skills: Enhancing communication skills and delivering technical speeches.
3. module Spring Boot configuration, security, documentation, and logging (113 academic hours)
- Starting and Configuring a Spring Boot Application: Creating a new application from scratch and setting up basic configurations.
- Application Documentation: Writing essential documentation, including README, CHANGELOG, and installation guides.
- Spring Security Basics: Understanding authentication, authorization, JWT, and managing user roles.
- Secure Coding Practices: Implementing best practices and learning about the OWASP TOP 10.
- Database Versioning with Liquibase: Writing and managing database changelogs, resolving conflicts, and rolling back changes.
- Java Streams and Date/Time Handling: Utilizing streams, lambda expressions, and manipulating date/time objects.
- Logging Practices: Configuring log levels, using management tools, and understanding central logging systems like Elastic
4. module Graduation project (80 academic hours)
Each student will develop a basic API with full CRUD functionality (Create, Read, Update, Delete). This involves conceptualizing an application, designing a database, implementing API endpoints, writing unit tests, documenting their work, and participating in peer reviews.
Learning methods:
– Video lectures
– Practice exercises
– Meetings with mentors
– Group work
– peer to peer evaluation
Study materials: The main learning materials are videos and digital materials.
Evaluation, i.e. conditions for completing studies:
- Java and Spring Boot fundamentals -passed
- Advanced Development Tools and Database Design – passed
- Spring Boot configuration, security, documentation, and logging exam- passed
- Assignments – 80% completed.
- Workshops – 80% attended.
- Weekly reports – 80% submitted.
- Graduation project – passed
Documents to be issued
For learners who have achieved the learning outcomes and successfully completed the assessment, a certificate will be issued in accordance with the current continuing education standards in Estonia.
If participant fails to meet at least one of the following conditions a certificate of participation will be issued: completing less than 80% of assignments, participating in less than 80% of workshops, submitting less than 80% of weekly reports, not passing Module exams and not passing the Graduation project.
Qualification of trainers
At least 80% of the trainers have a minimum of applied higher education or a bachelor’s degree or equivalent education level, and they have work experience as software developers.
Language of study: Course is conducted in English.
Curriculum group: 0612 Database and network design and management