DN4.0 Deepskilling Handbook Java FSE
DN4.0 Deepskilling Handbook Java FSE
0
Deep Skilling Handbook - Java FSE
1
Program Highlights
• The Deep Skilling learning program runs for a period of 8 weeks. Go through the recommended self-
learning resources and practice the exercises to excel in the recommended Java FSE modules.
Program
• Highlights
Deep Skilling covers the below mentioned skills.
• Design Patterns and Principles | Data Structures and Algorithms | Spring Core and Maven |
PL/SQL Programming | Spring Data JPA with Spring Boot | Hibernate | Spring REST using Spring
BootHighlights
Program | Microservices and Frameworks | Test driven design | Logging framework | Version control |
DevOps concepts | Front-end JS Framework | Cloud fundamentals | GenAI fundamentals
•
1. Engineering Concepts
The core concepts for any engineering landscape. This is the foundation on which all programming
languages and frameworks are built.
Program Highlights
Relevant skills:
• Design Patterns and Principles
• Data Structures and Algorithms
2. Programming
Program Languages
Highlights
The languages are used to implement the necessary logic for the requirements.
Relevant skills:
• Java - Covered in upskilling
Program
• SQLHighlights
– Basic (covered in upskilling) and Advanced (covered in deep skilling)
• TDD using JUnit5 and Mockito
• SLF4J logging framework
3. Products and Frameworks
There are numerous frameworks in the programming family to build applications. These enable the
programmers to develop different types of applications by providing a gamut of features provided
over a single integrated environment.
Relevant skills:
• Spring Core and Maven
2
• Spring Data JPA with Spring Boot, Hibernate
4. Platforms
These are the enablers as a base to host the application developed using the Engineering concepts,
programming languages, product and frameworks to make it accessible by all users, reliable and
scalable.
Relevant skills:
• GIT
• CI/CD
• Containerization using Docker
• Cloud Fundamentals
Apart from all the mentioned skills, the very widely emerging concentration that any industry is looking
into is the ‘Generative Artificial Intelligence’ or the ‘GenAI’.
Let us get an introduction to it. You can go through it in the module ‘Gen AI Fundamentals and Tools’.
To successfully complete this learning program, candidates must meet the following criteria:
Hands-on Exercises:
• Candidates must complete hands-on exercises mapped against every skill. These exercises are
designed to reinforce learning objectives and ensure a practical understanding of the material.
Learning Approach
DN 4.0 Deep Skilling Program adopts a comprehensive and blended learning approach to ensure an
engaging and effective educational experience.
The program comprises two essential learning components:
• Self-paced learning through open-source learning reference links.
• Weekly SME connect sessions conducted by experts.
3
SME Connect Session
• We have scheduled sessions with Subject Matter Experts (SMEs) that are designed to deepen your
understanding of complex topics.
• 100% attendance is mandatory for SME Connect sessions.
• Engage actively in doubt clarification sessions, asking questions and seeking clarification on
challenging topics.
• Benefit from the experts’ experience and insights to gain a deeper understanding of the subject matter.
Disclaimer: Cognizant does not claim ownership or responsibility for the content or any issues with the links
provided, as they are merely references available on the internet. Candidates are free to leverage additional
Effective
sources beyondLearning
what hasStrategies
been provided to enhance their skill capabilities for Deep Skilling.
Duration Recommendation
Where to Practice?
Exercise Instructions
In this learning program, you will be required to complete exercises designed to reinforce the concepts
learned during the week. These exercises are hosted on a public GitHub repository and must be
downloaded and solved along with the learning. Follow the instructions below to ensure a smooth and
productive exercise workflow:
4
1. Accessing Exercises:
• Each week, exercises will be made available in our public GitHub repository.
• The repository URL is this
2. Downloading Exercises:
• You’ll see the options ‘Java FSE’ as shown in the screenshot below. Click the ‘Code’ button as
shown in the screenshot and choose the option ‘Download zip’. This will download all the
required Hands-on content for your practice.
4. Self-Evaluation:
• After completing the exercises, evaluate your solutions based on the problem criteria.
• Compare your approach with any hints or solutions provided if available.
• Reflect on any mistakes or areas where you can improve.
5. Submitting Solutions:
• Firstly, organize your solutions week-wise and keep them in a folder.
• Create a public repository in your personal GitHub account, upload your solution folder, and
share the URL with the POC on demand.
6. Additional Support:
• If you encounter difficulties or have questions about the exercises, seek help from your peers.
• Utilize the resources and links provided in this handbook for further assistance.
5
Hi Champ – Welcome to the Deep skilling of Digital Nurture 4.0 program. Before you delve deep into the
skills into this, with utmost sincerity, please do go through the upskilling handbook and refresh the basic
programming skills to keep yourself abridged.
Always remember – The Object-Oriented Programming concepts are the core for any
Programming language or frameworks.
Correlate the concepts you learn with real-life to understand and relate better for better
understanding and life-long knowledge retention.
Overview:
This module introduces learners to essential design principles and patterns that are crucial for creating
robust and maintainable software. Learners will delve into the SOLID principles, which include SRP, OCP,
LSP, ISP, and DIP. They will also explore common design patterns, such as Creational, Structural, and
Behavioral patterns, which provide reusable solutions to common design challenges. The module
combines theoretical insights with practical exercises, helping learners understand and apply these
concepts in their projects, ultimately enhancing their ability to write clean, efficient, and scalable code.
Learning Objectives:
6
• Solve common software design problems using appropriate design patterns.
• Evaluate and choose the right design pattern for a given problem context.
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
Overview:
This module focuses on core data structures and algorithms, foundational for writing efficient and scalable
code. Learners will explore key data structures such as arrays, linked lists, and understand their
implementation and application scenarios. Additionally, they will delve into fundamental algorithms
including searching (linear search, binary search) and sorting (bubble sort, quick sort, merge sort). The
7
module emphasizes practical implementation through coding exercises, enabling learners to apply these
concepts effectively in real-world programming challenges.
Learning Objectives:
8
Check Your Understanding:
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
The languages are used to implement the necessary logic for the requirements.
Relevant skills:
• Java - Covered in upskilling
• SQL – Basic (covered in upskilling) and Advanced (covered in deep skilling)
• TDD using JUnit5 and Mockito
• SLF4J logging framework
This module introduces learners to the fundamental concepts of PL/SQL, a procedural extension of SQL
used for developing efficient database applications. Learners will explore PL/SQL's syntax, structure, and
essential constructs such as variables, control structures, exception handling, cursors, stored procedures,
functions, packages, and triggers. By understanding these concepts, learners will gain proficiency in
leveraging PL/SQL to enhance database management, automate tasks, and enforce business rules
effectively.
Learning Objectives:
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
10
Module 4 – Test driven development and Logging framework
Overview:
This module focuses on the concepts of Test-driven development and tools used for it. The features of
tools like Junit and Mockito for unit testing, mock the dependencies to complete the unit testing. Basics of
automation testing tools and logging framework.
Learning Objectives:
https://developer.ibm.com/articles/5-steps-of-test-
driven-development/
https://www.geeksforgeeks.org/introduction-to-
junit-5/
Advanced JUnit Parameterized tests, Test https://www.geeksforgeeks.org/junit-5-how-to-
Features suites and categories, Test write-parameterized-tests/
execution order, Exception
testing, Timeout and https://www.geeksforgeeks.org/junit-5-
performance testing parameterizedtest/
11
https://www.geeksforgeeks.org/junit-5-test-suites-
with-example/
https://www.geeksforgeeks.org/junit-5-test-
execution-order/
https://www.geeksforgeeks.org/test-execution-
for-software-testing/
https://www.javacodegeeks.com/2017/06/testing-
exceptions-junit-5.html
https://www.geeksforgeeks.org/junit-5-timeout/
https://www.geeksforgeeks.org/performance-
testing-software-testing/
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise Instructions
section above to access the practice content.
This module covers essential topics in Spring Core and Maven for Java application development. It starts
with an introduction to the Spring Framework, emphasizing its benefits in Java programming. Learners
will set up projects using Maven for efficient dependency management and build automation. Key
concepts include the Spring IoC container for managing application components, configuring Spring
beans with XML and annotations, and implementing dependency injection for flexible and maintainable
code. Additionally, the module covers Aspect-Oriented Programming (AOP) in Spring, Spring MVC for
web development, Object-Relational Mapping (ORM) for database interactions, and introduces Spring
Boot for rapid application deployment. Through practical exercises, learners will gain hands-on experience
to apply these skills effectively in real-world Java projects.
Learning Objectives:
• Understand the core principles and advantages of using Spring in Java applications.
• Explain IoC and DI concepts and their benefits in loosely coupled systems.
• Identify and describe key modules of the Spring Framework and their purposes.
13
• List and discuss the advantages Spring offers over traditional Java development.
• Explain the role of Maven in Java projects and its benefits in dependency management.
• Create a new Maven project and understand its directory structure.
• Configure Maven to include necessary Spring dependencies for a project.
• Customize Maven settings.xml and pom.xml files for efficient project builds and dependency
management.
• Differentiate between BeanFactory and ApplicationContext in managing Spring beans.
• Define beans and their dependencies using XML-based configuration in Spring.
14
Spring MVC and Overview of MVC and ORM, https://www.geeksforgeeks.org/spring-
ORM Configuration, Controller Layer, mvc-framework/
Model Layer, View Layer, Form
Handling, Querying, Validation,
Exception Handling
Spring Boot Overview of Spring Boot, https://www.geeksforgeeks.org/spring-
(Introduction) Simplifying Spring configuration boot/
with Boot, Creating a Spring Boot
application, Auto-configuration and
convention over configuration
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
Overview:
This module focuses on integrating Spring Data JPA with Spring Boot, leveraging Hibernate for optimized
database interactions. Learners will gain practical skills in project setup, entity mapping, repository
management, query optimization, CRUD operations, pagination, sorting, entity auditing, data projections,
and customization of data sources. The module equips learners to develop efficient and scalable
applications using widely adopted frameworks and tools.
Learning Objectives:
• Understand the integration of Spring Data JPA with Spring Boot for effective database
management.
• Develop skills in setting up projects and configuring database connectivity using Spring Data
JPA.
• Gain proficiency in defining and mapping JPA entities within Spring applications.
• Implement repositories and utilize query methods for data access and manipulation.
• Perform CRUD operations and optimize queries for efficient data retrieval.
• Utilize pagination and sorting techniques to manage large datasets effectively.
15
• Implement entity auditing to track changes in database records.
• Create data projections to retrieve specific data subsets efficiently.
• Customize data source configurations and manage multiple databases in Spring Boot.
• Explore Hibernate-specific features and optimizations for database interactions.
16
@LastModifiedDate,
Configuring auditing properties
Spring Data Creating projections for https://docs.spring.io/spring-
JPA specific data subsets, data/jpa/reference/repositories/projections.html
Projections Interface-based and class-
based projections, Using
@Value and constructor
expressions, Controlling the
fetched data with projections
Spring Data Leveraging Spring Boot auto- https://www.geeksforgeeks.org/spring-boot-
JPA and configuration, Customizing spring-data-jpa/
Spring Boot data source configuration,
Integration Externalizing configuration
with application properties,
Managing multiple data
sources
Spring Data Introduction to Spring Data https://medium.com/@burakkocakeu/jpa-
JPA and JPA and Hibernate, hibernate-and-spring-data-jpa-efa71feb82ac
Hibernate Hibernate-specific Features
- Leveraging Hibernate-
specific annotations,
Configuring Hibernate dialect
and properties, Batch
processing with Hibernate;
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
Overview:
This module focuses on building RESTful services with Spring Boot, covering essential concepts from
REST architecture to advanced features like security, testing, and API documentation. Learners will gain
hands-on experience in setting up projects, creating REST controllers, handling HTTP methods,
managing data transfer objects (DTOs), implementing CRUD operations, supporting content negotiation,
integrating Spring Boot Actuator for monitoring, securing endpoints with Spring Security, and testing
REST services effectively.
17
Learning Objectives:
18
methods for CRUD
operations, Validating input
data with annotations,
Optimistic locking for
concurrent updates
RESTful HATEOAS Understanding HATEOAS https://www.geeksforgeeks.org/hateoas-and-
(Hypermedia as the Engine of why-its-needed-in-restful-api/
Application State), Adding
links to resources, Building
and consuming hypermedia-
driven APIs
Content Configuring content https://maheshbonagiri.medium.com/spring-
Negotiation and negotiation, boot-and-content-negotiation-
Media Types Supporting different media 183b20eaa425
types (JSON, XML), Using the
Accept header for content
negotiation, Producing and
consuming custom media
types
Hands-On:
19
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise Instructions
section above to access the practice content.
Overview:
This module focuses on Microservices with Spring Boot 3 and Spring Cloud.
Learning Objectives:
20
Event Streaming),
Handling Failures and
Retries
Data Management Database per Service, https://www.geeksforgeeks.org/cqrs-design-pattern-
Event Sourcing, CQRS in-microservices/
(Command Query
Responsibility
Segregation)
Security Authentication and https://www.geeksforgeeks.org/authentication-and-
Authorization, Secure authorization-in-microservices/
Communication (HTTPS,
OAuth2), Security Best
Practices
Spring Cloud for Introduction to Spring https://www.geeksforgeeks.org/what-is-spring-
Microservices Cloud, Features and cloud/
components of Spring
Cloud, Configuring https://howtodoinjava.com/spring-cloud/spring-
microservices with cloud-components/
Spring Cloud, Service
discovery and https://www.geeksforgeeks.org/managing-
registration with Spring configuration-for-microservices-with-spring-cloud-
Cloud Netflix Eureka config/
https://www.geeksforgeeks.org/spring-cloud-how-
to-register-microservices-using-netflix-eureka/
https://www.geeksforgeeks.org/securing-rest-apis-
with-spring-security/
https://www.geeksforgeeks.org/edge-pattern-in-
microservices/
https://umatechnology.org/edge-routing-techniques-
for-stateless-microservices-supported-by-modern-
rum-tools/
https://www.geeksforgeeks.org/microservices-
resilience-patterns/
https://www.geeksforgeeks.org/load-balancing-in-
spring-boot-microservices/
https://www.geeksforgeeks.org/resilient-
microservices-design/
https://www.geeksforgeeks.org/dynamic-
configuration-updates-with-spring-cloud-config/
https://www.geeksforgeeks.org/spring-boot-
managing-application-properties-with-profiles/
https://www.geeksforgeeks.org/efficient-load-
balancing-and-metrics-monitoring-in-spring-cloud-
microservices/
Hands-On:
Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise Instructions
section above to access the practice content.
Overview:
Learning Objectives:
23
After completing this module, learners will be able to:
Learning Objectives:
After completing this module, learners will be able to:
• Define SPA and its benefits
• Define React and identify its working
• Demonstrate on create-react-app
• Explain React components
• Demonstrate the various components of a React app
24
https://www.geeksforgeeks.org/reactjs-virtual-dom/
25
interacting with an API
from React App(Fetch
Api, Axios, Jquery and
XmlHttpRequest),
Implementation of API
interaction from React
App using Fetch Api and
Axios
Hands-On:
• Complete the respective skill’s hands-on exercises to reinforce your learning. Please use Visual
Studio Code for the Hands-on. Refer to the Exercise Instructions section above to access the
practice content.
Learning Objectives:
After completing this module, learners will be able to:
• Explain the basic components of an Angular application.
https://www.geeksforgeeks.org/angular-components-
overview/
https://www.geeksforgeeks.org/angular-2/
26
FSE construct – Platforms & GenAI
These are the enablers as a base to host the application developed using the Engineering concepts,
programming languages, product and frameworks to make it accessible by all users, reliable and
scalable.
Relevant skills:
• GIT
• CI/CD
• Containerization using Docker
• Cloud Fundamentals
Please plan to complete this in 1 week.
This module focuses on the most widely used code repository tool, GIT.
Learning Objectives:
Hands-On:
• Complete the skills’ hands-on exercises to reinforce your learning. Refer to the Exercise
Instructions section above to access the practice content.
This module focuses on an awareness of the concept of Development and Operations done together in
the current business development model.
Learning Objectives:
29
Module 13 - Cloud fundamentals
Overview:
Learning Objectives:
https://www.geeksforgeeks.org/google-cloud-platform-
gcp/
30
Module 14 – Containerization using Docker
Overview:
This module focuses on an awareness of the most widely used application containerization tool, Docker.
Learning Objectives:
Gen AI Fundamentals
Overview:
This module focuses on the very famous concepts of Generative Artificial Intelligence, different tools and
their features, and the application of GenAI tools for real-time problems.
32
Learning Objectives:
https://www.geeksforgeeks.org/explanation-of-bert-
model-nlp/
What’s Next?
Congratulations on successfully completing the 8-week DN 4.0 Deep Skilling learning program!
As you have now finished this important phase of your learning, you will be taking a Knowledge-Based
Assessment (KBA) to certify your skills. This assessment will cover all the skills and topics you
have learned during the past five weeks, ensuring you have a comprehensive understanding of the
material.
We wish you the best of luck with your assessment and look forward to seeing you apply your newly
acquired knowledge and skills. Good luck!
33