Digital

Download as pdf or txt
Download as pdf or txt
You are on page 1of 96

TCS Digital Interview Questions

To view the live version of the


page, click here.

© Copyright by Interviewbit
Contents

TCS Digital Recruitment Process


1. Eligibility Criteria
2. Interview Process
3. Interview Rounds

TCS Digital Technical Interview Questions:


Freshers and Experienced
4. What is the difference between a programming language and a scripting
language?
5. What is an algorithm? Can you give an example of a simple algorithm?
6. What is a data type and how is it used in programming?
7. What is a programming paradigm and can you name some examples?
8. What is a computer program, and how does it work?
9. What is a function in programming and how do you define and call it?
10. What is a loop in programming and can you give an example of how it is used?
11. What is the Difference between call by value and call by reference?
12. Why do we use R?
13. What is a stack, and how does it work?
14. What is an array in programming, and how is it used?
15. What is a data structure and can you name some examples?
16. What is Dynamic programming?
17. Write a program to count the number of vowels in a given string?
18. What is a database and how does it store and retrieve data?

Page 1 © Copyright by Interviewbit


TCS Digital Interview Questions

TCS Digital Technical Interview


Questions: Freshers and Experienced (.....Continued)

19. How do you design and implement database?


20. Explain the difference between Drop, Truncate and Delete?
21. What is Normalization?
22. What is the Difference between Having and Where Clause?
23. Write a query to get the 3rd largest salary from a table?
24. Write queries to declare the primary key and foreign key for some table?
25. What is object-oriented programming? Can you explain the concept of
encapsulation, inheritance and polymorphism in OOP?
26. What is a class in object-oriented programming and how is it used?
27. What are pure virtual functions?
28. What are the limitations of inheritance?
29. What is a so ware development life cycle and what are the different phases it
consists of?
30. What is a bug in the so ware and how do you go about fixing it?
31. What is a so ware development methodology and can you name some
examples?
32. What is a so ware testing technique and how do you go about testing so ware?
33. What are some common security vulnerabilities in so ware and how do you
prevent them?
34. What is a so ware design pattern and can you name some examples?
35. What is so ware architecture and how do you design and implement one?
36. How do you optimize the performance of a database?
37. How do you approach solving a complex programming problem?
38. Can you explain the difference between a client-server architecture and a peer-
to-peer architecture?

Page 2 © Copyright by Interviewbit


TCS Digital Interview Questions

TCS Digital Technical Interview


Questions: Freshers and Experienced (.....Continued)

39. Can you explain the concept of microservices and how it differs from a
monolithic architecture?
40. How do you design and implement a scalable system?
41. What is cloud computing and how does it differ from traditional IT
infrastructure?
42. What happens a er you enter the URL of a website?
43. What is a version control system and how do you use it in so ware
development?
44. How can we use R to predict something?
45. What is a continuous integration and delivery pipeline and how do you
implement it?
46. Can you explain the concept of machine learning and give an example of a real-
world application?
47. How do you stay up-to-date with the latest technologies and trends in the
industry?
48. What Is a Linear Regression Model? How Do You Go About Building It?

TCS Digital Interview Preparation


49. Interview Preparation Tips

Frequently Asked Questions


50. Does TCS Digital have a Negative Marking?
51. Is the TCS Digital interview tough?
52. How to apply for TCS Digital?
53. What is the cutoff of TCS Digital?
54. What is the salary of TCS Digital?
55. How long is the TCS Digital Interview?
Page 3 © Copyright by Interviewbit

Let's get Started


TCS Digital is a digital business unit of Tata Consultancy Services (TCS), a global IT
services and consulting company. TCS Digital is focused on helping organizations
transform and thrive in a digital world through the use of innovative technologies
and digital solutions.
As an IT professional, joining TCS Digital can provide you with the opportunity to
work on exciting and challenging projects for leading organizations around the
world. TCS Digital offers a range of digital services, including digital strategy, digital
experience, digital engineering, and digital operations, providing you with a diverse
range of opportunities to develop your skills and advance your career.
In addition to the opportunity to work on cutting-edge projects, TCS Digital also
offers a range of benefits and support for its employees. This includes training and
development programs, flexible work arrangements, and a supportive and inclusive
culture.
Overall, TCS Digital is a dynamic and innovative company that offers a range of
opportunities for IT professionals looking to advance their careers in the digital
space. In this article, we will explore the recruitment process, interview questions,
and tips for preparing for a TCS Digital interview.

TCS Digital Recruitment Process


1. Eligibility Criteria
The eligibility criteria for so ware engineer positions at TCS Digital can vary
depending on the specific requirements of the role and the needs of the company.
However, there are a few general criteria that candidates are typically expected to
meet in order to be considered for a so ware engineer position at TCS Digital:

Page 4 © Copyright by Interviewbit


TCS Digital Interview Questions

Criteria Requirement

Percentage Minimum aggregate of 70% or 7 CGPA in the


highest qualification and 60% or 6 CGPA in
each of Class Xth, Class XIIth, Diploma (if
applicable), Graduation, and Post-
Graduation examination.

Highest Completed course in the stipulated course


Qualification duration (i.e., no extended education)

Backlogs/
Arrears/ No backlogs
ATKT

Gap/ Break- Overall academic gap should not exceed 24


in Education months until the highest qualification.
Relevant document proof will be checked
for gaps in education

Course Types Only Full-Time courses will be considered


(Part-Time / Correspondence courses will
not be considered). Candidates who have
completed their Secondary and/or Senior
Secondary course from NIOS (National
Institute of Open Schooling) are also eligible
to apply if the other courses are Full-Time.

Work Candidates with prior work experience of up


Experience to 2 years are eligible to apply

Age Candidates should be of 18 to 28 years of


age to participate

Page 5 © Copyright by Interviewbit


TCS Digital Interview Questions

2. Interview Process
The TCS Digital recruitment process is designed to identify and select the best
candidates for the company's various digital positions. The candidates are mainly
freshers with less than 2 years of work experience. The process typically includes a
written test and multiple rounds of interviews, which may include technical and
behavioral questions.
We will provide an overview of the TCS Digital recruitment process, including the
different stages of the process and what to expect at each stage. We will also provide
tips and advice on how to prepare for the TCS Digital recruitment process, including
how to prepare for the written test and the interviews.
Interview Process: The TCS Digital recruitment process typically involves a number
of steps and may vary depending on the role and location. Generally, the process
includes the following steps:
1. Online application
2. Online Test(Aptitude and Technical Tests)
3. Technical Interview
4. HR Interview
5. Managerial Interview
Overall, the TCS Digital recruitment process is designed to assess a candidate's skills,
knowledge, and fit for the role and the organization. It is important for candidates to
be well-prepared and to demonstrate their skills and potential during the
recruitment process.

3. Interview Rounds
The TCS Digital interview process typically includes multiple rounds of interviews,
which may include both technical and behavioural questions.

Page 6 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Online application: This is the first step in the TCS Digital recruitment process.
Candidates must submit an online application, which includes their resume and
other relevant information, such as their educational qualifications, work
experience, and any relevant skills or certifications.
2. Aptitude and technical tests: These tests are designed to assess a candidate's
aptitude and technical skills. Aptitude tests may include questions on logical
reasoning, mathematics, and verbal ability, while technical tests may include
questions on computer science, programming, and other technical subjects.
These tests are usually conducted online and may be followed by a short
assessment of the candidate's written or oral communication skills.
3. Technical Interview: If a candidate is shortlisted based on their performance in
the aptitude and technical tests, they may be invited to participate in one or
more technical interviews. These may include a TCS Digital round, which is a
specialized interview focused on digital technologies and trends, as well as other
interviews that may be more general or focused on specific skills or experiences.
Interviews may be conducted in various formats, such as face-to-face,
telephone, or online video.
4. HR Interview: The Human Resources (HR) interview is typically the third step in
the TCS Digital recruitment process. During this interview, the HR representative
will ask a series of questions to assess the candidate's qualifications, work
experience, and overall suitability for the role. These questions may include
inquiries about the candidate's past work experience, their motivations for
applying for the role, and their goals for the future. The HR interviewer will also
evaluate the candidate's communication skills, work ethic, and overall fit with
the company culture.
5. Managerial Interview: The Managerial Interview is typically the final step in the
TCS Digital recruitment process. During this interview, the candidate will meet
with the hiring manager or a senior member of the team to discuss the role in
more detail and assess the candidate's fit for the position. The interviewer will
ask a series of questions about the candidate's qualifications, work experience,
and technical skills. They will also ask about the candidate's ability to work in a
team, their leadership skills, and their approach to problem-solving. This
interview is also used to evaluate the candidate's ability to adapt to the
company culture, work ethic, and overall suitability for the role.

Page 7 © Copyright by Interviewbit


TCS Digital Interview Questions

If a candidate is successful in all the above stages, they may be offered a job at TCS
Digital. TCS will let you know the result of your interview within a period of one to
three weeks. The offer may include details such as the job role, location, salary, and
benefits. Candidates should carefully review the offer and ask any questions they may
have before accepting it.

TCS Digital Technical Interview Questions:


Freshers and Experienced
4. What is the difference between a programming language and
a scripting language?
The table below provides a comprehensive overview of the differences between
Programming languages and Scripting languages.

Page 8 © Copyright by Interviewbit


TCS Digital Interview Questions

Category Programming Languages Scripting Languages

Definition A scripting language


is a type of
programming
language that is used
A programming language
to write scripts,
is a formal language that
which are sets of
is used to write
instructions that are
instructions that can be
executed by an
executed by a computer.
interpreter rather
than being compiled
into an executable
program.

Compilation Code is interpreted


Source code is compiled
at runtime without a
into machine code before
separate compilation
execution.
step.

Type System Usually have a more


Typically have a stricter,
flexible, dynamic
static type system.
type of system.

Control Tend to have more Usually have simpler


Structures complex control control structures
structures, like loops and that are optimized
conditionals. for ease of use.

Execution Generally faster, as they Typically slower, as


Speed are compiled and they are interpreted
optimized ahead of time. at runtime.

Development Typically used for


O en used for developing
smaller, simpler
large, complex
tasks or automating
applications.
system tasks
Page 9 © Copyright by Interviewbit
TCS Digital Interview Questions

5. What is an algorithm? Can you give an example of a simple


algorithm?
An algorithm is a set of well-defined steps or instructions that can be followed to
solve a problem or accomplish a task. Algorithms are an essential part of computer
science and are used in a wide range of applications, including data processing,
machine learning, and artificial intelligence.
An algorithm should have the following properties:
Input: An algorithm should take one or more inputs as input.
Output: An algorithm should produce one or more outputs as a result of the
input.
Definiteness: An algorithm should have a clear and precise set of steps that can
be followed in a specific order.
Finiteness: An algorithm should have a finite number of steps and should
terminate a er a certain point.
Effectiveness: An algorithm should be able to solve a problem or accomplish a
task in a reasonable amount of time.
Here is an example of a simple algorithm for finding the maximum value in a list of
numbers:
1. Set a variable called "max" to the first number in the list.
2. For each number in the list, starting with the second number:
If the current number is greater than "max", set "max" to the current
number.
3. Return "max" as the output.
This algorithm takes a list of numbers as input and returns the maximum value in the
list as output. It follows a clear and precise set of steps and terminates a er a finite
number of iterations. It is also effective, as it can find the maximum value in the list in
a reasonable amount of time.

6. What is a data type and how is it used in programming?

Page 10 © Copyright by Interviewbit


TCS Digital Interview Questions

In programming, a data type is a classification of data that defines the type of value
that a variable can hold. Different programming languages have different data types,
and the choice of data type affects how the data is stored, processed, and
manipulated by the program.
Some common data types include:
Integer: An integer is a whole number without a decimal point. It can be
positive, negative, or zero.
Floating point: A floating point number is a number with a decimal point. It can
be positive, negative, or zero.
Boolean: A boolean value is a binary value that can be either true or false.
String: A string is a sequence of characters, such as a word or phrase.
Array: An array is a data type that stores a collection of values of the same data
type.
Struct: A struct is a data type that consists of a collection of related values.
Enum: An enum is a data type that defines a set of related values.
Data types are used to ensure that a program uses data in a consistent and
predictable way. They also help to prevent errors and ensure that the program is
efficient and optimized for the specific needs of the application.

7. What is a programming paradigm and can you name some


examples?
A programming paradigm is a style or approach to programming that is based on a
specific set of principles and concepts. It defines how a program should be structured
and how different elements of the program should interact with each other.
There are several programming paradigms, including:

Page 11 © Copyright by Interviewbit


TCS Digital Interview Questions

Imperative programming: This paradigm is based on the idea of using


statements to change the state of a program. It focuses on modifying variables
and data structures and is based on the idea of a step-by-step set of instructions.
Examples of imperative languages include C, C++, and Java.
Declarative programming: This paradigm is based on the idea of specifying the
desired result of a program rather than the steps required to achieve it. It
focuses on describing the problem to be solved rather than the solution itself.
Examples of declarative languages include SQL, HTML, and XML.
Functional programming: This paradigm is based on the idea of treating
computation as the evaluation of mathematical functions. It emphasizes the use
of functions and immutable data, and is based on the idea of avoiding side
effects and mutable states. Examples of functional languages include Haskell,
Lisp, and ML.
Object-oriented programming: This paradigm is based on the idea of
organizing code into objects that represent real-world entities and the actions
that can be performed on them. It emphasizes the use of encapsulation,
inheritance, and polymorphism. Examples of object-oriented languages include
Java, Python, and C#.
Each programming paradigm has its own set of characteristics and principles, and
different languages are designed to support different paradigms. Many modern
programming languages support multiple paradigms, allowing developers to choose
the approach that best fits the problem at hand.

8. What is a computer program, and how does it work?


A computer program is a set of instructions that a computer can execute to perform
a specific task or solve a problem. A computer program is also referred to as so ware,
and it is a key component of a computer system.
Computer programs are written in programming languages, which are used to write
instructions in a way that the computer can understand. There are many
programming languages, each with its own syntax and rules for writing code.

Page 12 © Copyright by Interviewbit


TCS Digital Interview Questions

To write a computer program, a developer writes a series of instructions in a text file


using a text editor or Integrated Development Environment (IDE). The instructions
are then saved as a file with a specific extension, such as .py for Python or .java for
Java.
To run a computer program, the developer must first compile the code, which
translates the instructions into a form that the computer can execute. The compiled
code is then loaded into the computer's memory and executed by the central
processing unit (CPU).
As the program is executed, the computer follows the instructions in the program,
performing tasks such as performing calculations, displaying output, and interacting
with other systems or devices. The program continues to run until it reaches the end
of the instructions or encounters an error or exception.
Computer programs are an essential part of modern computing and are used in a
wide range of applications, including data processing, web development, mobile
apps, and artificial intelligence.

9. What is a function in programming and how do you define and


call it?
In programming, a function is a block of code that performs a specific task and
returns a result. Functions are a way to organize and reuse code, and they allow a
program to be divided into smaller, modular units that can be tested and debugged
independently.
To define a function in most programming languages, you need to specify the name
of the function, the list of parameters it takes (if any), and the block of code that
makes up the function body.
Here is an example of how to define a function in Python:

def greet(name):
print("Hello, " + name)

Page 13 © Copyright by Interviewbit


TCS Digital Interview Questions

This function takes a single parameter called "name" and prints a greeting to the
screen.
To call a function, you simply use its name followed by a set of parentheses. For
example:

greet("John")

This will call the "greet" function and pass the string "John" as an argument to the
function. The function will then execute the code in the function body, in this case,
printing "Hello, John" to the screen.
Functions can also return a result by using the "return" statement. For example:

def add(x, y):


return x + y

This function takes two parameters, "x" and "y", and returns their sum. To call this
function and get the result, you can use it in an expression:

sum = add(2, 3)
print(sum) # Output: 5

Functions are an important concept in programming and are used to modularize


code and make it easier to write, test, and maintain.

10. What is a loop in programming and can you give an example


of how it is used?
In programming, a loop is a control structure that allows a block of code to be
executed repeatedly. Loops are a way to iterate over a sequence of values or perform
a task multiple times.
There are three types of loops - for loops, while loops, and do-while loops.

Page 14 © Copyright by Interviewbit


TCS Digital Interview Questions

A for loop is used to iterate over a sequence of values, such as a list or an array.
The loop variable takes on each value in the sequence, one at a time, and the
loop body is executed for each value. This has been represented in the flowchart
below:

Here is an example of a for loop in Python:

for i in range(5):
print(i)

This for loop will iterate over the values 0, 1, 2, 3, and 4 and print each value to the
screen.
A while loop is used to execute a block of code repeatedly as long as a certain
condition is true. The loop body is executed until the condition becomes false.
This has been represented in the flowchart below:

Page 15 © Copyright by Interviewbit


TCS Digital Interview Questions

Here is an example of a while loop in Python:

x = 0 while x < 5:
print(x) x += 1

This while loop will print the values 0, 1, 2, 3, and 4 to the screen, as the value of "x" is
less than 5 and is being incremented by 1 each time the loop body is executed.
A do-while loop is similar to a while loop, but the loop body is executed at least
once before the condition is checked as shown in the flowchart below:

Page 16 © Copyright by Interviewbit


TCS Digital Interview Questions

Here is an example of a do-while loop in Java:

int x = 0;

do {
System.out.println(x);

x++;
}while(x < 5);

This do-while loop will print the values 0, 1, 2, 3, and 4 to the screen, as the value of
"x" is incremented by 1 each time the loop body is executed.
Loops are an important concept in programming and are used to perform tasks
repeatedly or iterate over a sequence of values. They are a useful way to simplify
code and avoid the need to write repetitive code blocks.

11. What is the Difference between call by value and call by


reference?
Call by value and call by reference are two ways in which a function can be passed
arguments in some programming languages.

Page 17 © Copyright by Interviewbit


TCS Digital Interview Questions

Call by value is a method of passing arguments to a function in programming, where


the value of the argument is copied and passed to the function, rather than the
actual variable or object being passed.
When a function is called with Call by value, a new memory location is created
to store the copied value, which is then used by the function for its
computations.
Any changes made to the copied value within the function will not affect the
original variable or object in the calling code, as they are separate entities.
This approach is commonly used in C/C++, Java, and Python programming
languages. Let's see it with an example code in C++ -
Call by value:

void increment(int num) {


num++; // increment num by 1
printf("Inside increment function: %d\n", num);
}

int main() {
int x = 5;
printf("Before calling increment function: %d\n", x);
increment(x);
printf("After calling increment function: %d\n", x);
return 0;
}

In this example, we define a function called increment that takes an integer


parameter num and increments it by 1. In the main function, we declare an integer
variable x and initialize it to 5. We then call the increment function with x as the
argument. When the increment function is called, a copy of the value of x is passed to
the function, and the function modifies the copy. The original value of x is not
affected by the function call.
The output of the program is:

Page 18 © Copyright by Interviewbit


TCS Digital Interview Questions

Before calling increment function: 5


Inside increment function: 6
After calling increment function: 5

As you can see, the value of x in the main function is not changed by the call to the
increment function.
Call by reference is a method of passing arguments to a function in programming,
where the actual memory location of the variable or object is passed to the function,
rather than a copy of its value.
When a function is called with the call by reference, any changes made to the
passed variable or object within the function will affect the original variable or
object in the calling code, as they refer to the same memory location.
This approach can be useful when working with large objects or when we want
to modify the original value in the calling code. However, it requires careful
management of memory and can be more error-prone than (Call by Value).
This approach is commonly used in programming languages like C++, and
Python by using pointers or references to achieve Call by reference. Let's take
an example code in c++.
Call by reference:

void increment(int* num) {


(*num)++; // increment num by 1
printf("Inside increment function: %d\n", *num);
}

int main() {
int x = 5;
printf("Before calling increment function: %d\n", x);
increment(&x);
printf("After calling increment function: %d\n", x);
return 0;
}

Page 19 © Copyright by Interviewbit


TCS Digital Interview Questions

In this example, we define a function called increment that takes a pointer to an


integer parameter num. The function dereferences the pointer using the * operator
and increments the value pointed to by num by 1. In the main function, we declare an
integer variable x and initialize it to 5. We then call the increment function with the
address of x as the argument using the & operator. This means that the address of x is
passed to the function, and the function can modify the value of x directly.
The output of the program is:

Before calling increment function: 5


Inside increment function: 6
After calling increment function: 6

As you can see, the value of x in the main function is changed by the call to the
increment function, as we passed a pointer to the variable rather than a copy of its
value.

In the above image, the flow chart represents that if we want to go for the
modification of the original value, then we can use Call by Reference otherwise, we
can go for Call by Value approach.

Page 20 © Copyright by Interviewbit


TCS Digital Interview Questions

12. Why do we use R?


R is a programming language and so ware environment for statistical computing
and data analysis. It is widely used in various fields, including finance, healthcare,
marketing, and social sciences, and it is particularly popular among data scientists
and statisticians.
There are several reasons why R is used:
1. R has a large and active community of users and developers, who contribute a
wide range of packages and tools to the R ecosystem. This makes it easy to find
resources and support for using R.
2. R has a rich set of statistical and data analysis tools, including functions for
statistical modeling, data visualization, and machine learning. This makes it a
powerful tool for data analysis and statistical modeling.
3. R has a flexible and extensible architecture, which allows users to write their
own functions and packages and to integrate with other tools and platforms.
This makes it easy to customize and extend R to meet specific needs.
4. R is open-source and free to use, which makes it accessible to a wide range of
users and organizations.
To learn more about the R project refer here.

13. What is a stack, and how does it work?


A stack is a linear data structure that follows the last-in, first-out (LIFO) principle. This
means that the last element added to the stack is the first one to be removed.

Page 21 © Copyright by Interviewbit


TCS Digital Interview Questions

A stack representation is a way of visualizing how data is stored and retrieved in a


Last-In-First-Out (LIFO) data structure. In a stack, data is added and removed from the
top of the stack, and a stack representation shows how the elements are stacked on
top of each other as shown in the above image. This is commonly used in computer
science and programming to help understand how data is organized and accessed in
memory.
A stack has the following operations:
Push: This operation adds an element to the top of the stack.
Pop: This operation removes the top element from the stack and returns it.
Peek: This operation returns the top element of the stack without removing it.
isEmpty: This operation returns true if the stack is empty, and false otherwise.
The time and space complexity of the stack operations are:
Time Complexity: O(1) - Constant time, which means it takes constant time to
execute push, pop, peek, and check if the stack is empty.
Space Complexity: O(1) - Constant space, as the above-listed operations require
only a fixed amount of memory.

Page 22 © Copyright by Interviewbit


TCS Digital Interview Questions

A stack is usually implemented using an array or a linked list. Here is an example of a


stack implemented using an array in Python (you can also find sample inputs and
corresponding outputs in the code comments):

class Stack:
def __init__(self):
self.stack = [] # initialize an empty list to represent the stack

def push(self, item):


self.stack.append(item) # add the item to the top of the stack

def pop(self):
if self.is_empty():
return None # if the stack is empty, return None
return self.stack.pop() # remove and return the top item from the stack

def peek(self):
if self.is_empty():
return None # if the stack is empty, return None
return self.stack[-1] # return the top item from the stack without removin

def is_empty(self):
return len(self.stack) == 0 # return True if the stack is empty, False oth

# Example usage
stack = Stack() # create an empty stack

stack.push(1) # add 1 to the top of the stack


stack.push(2) # add 2 to the top of the stack
stack.push(3) # add 3 to the top of the stack

print(stack.stack) # output: [1, 2, 3] (the current state of the stack)

print(stack.pop()) # output: 3 (remove and return the top item from the stack)
print(stack.peek()) # output: 2 (return the top item from the stack without removi

stack.push(4) # add 4 to the top of the stack

print(stack.stack) # output: [1, 2, 4] (the current state of the stack)

print(stack.is_empty()) # output: False (the stack is not empty)

Page 23 © Copyright by Interviewbit


TCS Digital Interview Questions

Stacks are used in various applications, such as evaluating expressions, reversing a


string, and implementing undo/redo functions. They are also commonly used in
programming languages as a means of storing and accessing local variables during
function calls.

14. What is an array in programming, and how is it used?


An array is a data structure in programming that stores a collection of values of the
same data type. An array is an ordered sequence of elements that can be accessed by
their index, which is the position of the element in the array.
Arrays are useful for storing and manipulating large sets of data, as they allow you to
store multiple values in a single data structure and access them efficiently. They are
also useful for storing data that needs to be processed in a specific order.

In the above image, we can see that instead of creating multiple variables for integer
data type, we have created the integer array that contains multiple values of integer
type. Adding multiple variables creates confusion and also it’s hard to maintain when
we have so many variables. So, an array can be the best choice for that case.

Page 24 © Copyright by Interviewbit


TCS Digital Interview Questions

Using arrays can prevent confusion when dealing with large sets of data by storing
them under a single variable name. Additionally, array algorithms such as bubble
sort, selection sort, and insertion sort can assist in organizing data elements in a clear
and efficient manner.
To access the elements in the array we can use indexing.
For Example -
To access the 1st element of the array arr, we can use -> arr[0].
To access the 2nd element, we can use -> arr[1], and similarly to access the nth
element of the array, we can use -> arr[n-1].
Here is an example of how to define and use an array in Python:

# Define an array of integers


numbers = [10, 20, 30, 40, 50]

# Access an element in the array


print(numbers[2]) # Output: 30

# Update an element in the array


numbers[4] = 60

# Iterate over the array


for number in numbers:
print(number)

# Output

# 10

# 20

# 30

# 40

# 60

Page 25 © Copyright by Interviewbit


TCS Digital Interview Questions

This code defines an array called "numbers" that contains the elements 10, 20, 30,
40, and 50. It then accesses the element at index 2 (which is 30) and prints it. Then it
updates the element at index 4 (which is 50) to be 60. Finally, it iterates over the array
and prints each element to the screen.

15. What is a data structure and can you name some examples?
A data structure is a way of organizing and storing data in a computer so that it can
be accessed and modified efficiently. Different data structures are suited to different
kinds of applications, and choosing an appropriate data structure can have a
significant impact on the performance and efficiency of a program.
There are 2 main types of Data Structures as shown in the image below-

Page 26 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Linear Data Structures: A linear data structure is a type of data structure in


which data elements are arranged sequentially or linearly. Each element is
attached to its previous and next adjacent elements. With only one level
involved, all elements in a linear data structure can be traversed in a single run.
Implementing linear data structures is relatively easy since computer memory is
arranged linearly. Examples of linear data structures include arrays, linked lists,
stacks, and queues.
1. Array: An array is a linear data structure that stores a fixed-size sequential
collection of elements of the same type. Arrays are indexed, meaning that
each element can be accessed directly by its position in the array.
2. Linked list: A linked list is a linear data structure that consists of a sequence
of nodes, where each node stores a reference to the next node in the list.
Linked lists do not have a fixed size and can grow or shrink as needed.
3. Stack: A stack is a linear data structure that follows the last-in, first-out
(LIFO) principle. It has two main operations: push, which adds an element
to the top of the stack, and pop, which removes the top element from the
stack.
4. Queue: A queue is a linear data structure that follows the first-in, first-out
(FIFO) principle. It has two main operations: enqueue, which adds an
element to the end of the queue, and dequeue, which removes the element
from the front of the queue.
2. Non-Linear Data Structures: A non-linear data structure is a type of data
structure in which data elements are not arranged sequentially or linearly.
Unlike linear data structures, a single level is not involved in non-linear data
structures, so it is impossible to traverse all the elements in a single run.
Implementing non-linear data structures is more difficult than implementing
linear data structures. However, non-linear data structures use computer
memory more efficiently than linear data structures. Examples of non-linear
data structures include trees and graphs.
3. Tree: A tree is a non-linear data structure that consists of a set of nodes
organized in a hierarchical structure. Each node has one or more child nodes,
and the top node is called the root. Trees are o en used to represent
hierarchical relationships, such as the structure of a file system.
4. Graph: A graph is a non-linear data structure that consists of a set of vertices
(nodes) and edges that connect them. Graphs are o en used to represent
complex relationships and networks, such as social networks or transportation
networks.

Page 27 © Copyright by Interviewbit


TCS Digital Interview Questions

The choice of data structure depends on the specific needs of the application and the
trade-offs between different factors, such as space complexity, time complexity, and
ease of implementation.

16. What is Dynamic programming?


Dynamic programming is a method of solving problems by breaking them down into
smaller subproblems, solving the subproblems, and combining the solutions to the
subproblems to solve the original problem. It is particularly useful for solving
problems that can be divided into overlapping subproblems, such as optimization
problems, recursive problems, and decision problems.
Top-down and bottom-up are two common approaches to problem-solving and
programming. Here is an explanation of both approaches, as well as examples of
implementing the Fibonacci series using both methods:
1. Top-down approach: The top-down approach is also known as the "divide and
conquer" approach. It involves breaking a problem down into smaller sub-problems,
solving each sub-problem, and then combining the results to solve the original
problem.
This approach is also called memoization. This approach is o en used when the
problem is complex and difficult to solve in one step. It provides a high-level
view of the problem and helps to identify the key sub-problems that need to be
solved.
Example: To find the nth number in the Fibonacci series using the top-down
approach, we would start by defining a function that takes an integer n as an
argument. The function would first check if n is less than or equal to 1, in which
case it would return n. Otherwise, it would recursively call itself to calculate the
two previous numbers in the series and add them together to get the nth
number. This has been illustrated in the diagram below for the example of
getting the 5th number in the Fibonacci series:

Page 28 © Copyright by Interviewbit


TCS Digital Interview Questions

Here is the code example:

int fibonacci_top_down(int n) {
if (n <= 1) {
return n;
}
return fibonacci_top_down(n-1) + fibonacci_top_down(n-2);
}

// Get 5th fibonacci number

fibonacci_top_down(5);

// Output = 5

In the above code, we have to find the 5th Fibonacci number. To do this, we have to
find the 4th Fibonacci number and the 3rd Fibonacci number. And this goes on until
it reaches the base problem. The values are then summed up to get the actual 5th
Fibonacci number. So this is nothing but the top-down approach.

Page 29 © Copyright by Interviewbit


TCS Digital Interview Questions

2. Bottom-up approach: The bottom-up approach is also known as the "iterative" or


“tabulation” approach. It involves solving the smaller subproblems first and using
those solutions to solve the larger problem. This approach is o en used when the
problem can be solved by a series of simple steps, and when it is easy to identify the
order in which the steps should be performed.
Example: To find the nth number in the Fibonacci series using the bottom-up
approach, we would start by defining an array to store the results of the previous two
numbers in the series. We would then use a loop to iterate through the numbers from
2 to n, calculating each number in turn by adding the previous two numbers in the
array together. This has been illustrated in the diagram below for the example of
getting the 5th number in the Fibonacci series:

Code example:

Page 30 © Copyright by Interviewbit


TCS Digital Interview Questions

int fibonacci_bottom_up(int n) {
if (n <= 1) {
return n;
}
int fib[n+1];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i <= n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
return fib[n];
}

// Get 5th fibonacci number

fibonacci_bottom_up(5);

// Output = 5

In the above image, we have to find the 5th Fibonacci number, so to do this, we have
to know about the 3rd and 4th Fibonacci Numbers and so on till the base problem.
So instead of solving from the 5th, we can start from the lower and move towards the
Upwards. This is nothing but Bottom-Up Approach
In summary. both top-down and bottom-up approaches have their own pros and
cons, and the choice of which approach to use depends on the problem being solved.
The Fibonacci series is just one example of how these approaches can be applied in
practice.

17. Write a program to count the number of vowels in a given


string?
Here is a simple program that counts the number of vowels in a given string in Java:

Page 31 © Copyright by Interviewbit


TCS Digital Interview Questions

public class CountVowels {


public static void main(String[] args) {
// Prompt the user to enter a string
System.out.print("Enter a string: ");
Scanner input = new Scanner(System.in);
String str = input.nextLine();

// Initialize a counter variable to 0


int vowelCount = 0;

// Convert the string to lower case


str = str.toLowerCase();

// Iterate through each character in the string


for (int i = 0; i < str.length(); i++) {
// Check if the current character is a vowel
if (str.charAt(i) == 'a' || str.charAt(i) == 'e' || str.charAt(i) == 'i' || s
// If it is a vowel, increment the counter
vowelCount++;
}
}

// Print the result


System.out.println("Number of vowels: " + vowelCount);
}
}

Explanation:
The program begins by prompting the user to enter a string.
The Scanner class is used to read the user's input.
The input string is converted to lowercase using the toLowerCase() method. This
is done to ensure that the program can count the vowels regardless of whether
they are in upper or lower case.
A for loop iterates through each character in the string.
Inside the loop, an if statement checks whether the current character is a vowel
(i.e., a, e, i, o, or u). If it is a vowel, the vowel count is incremented.
A er the loop has completed, the program prints the number of vowels in the
string.

Page 32 © Copyright by Interviewbit


TCS Digital Interview Questions

The time complexity of this program is O(n), where n is the length of the input string.
This is because the program iterates through each character in the string once, and
the time required to check whether each character is a vowel is constant.
The space complexity of the program is also O(n), where n is the length of the input
string. This is because the program stores the input string and the counter variable in
memory, and the amount of memory required is proportional to the length of the
string.

18. What is a database and how does it store and retrieve data?
A database is a collection of structured data that is stored and accessed
electronically. Databases are used to store, organize, and retrieve data efficiently, and
are an essential part of many computer systems and applications.

Page 33 © Copyright by Interviewbit


TCS Digital Interview Questions

Relational Databases: These databases organize data into one or more tables
with a predefined schema. They use SQL to query and manipulate data, and
enforce ACID properties to ensure data consistency.
NoSQL databases: NoSQL databases are non-relational databases that store
and retrieve data differently than traditional relational databases. Unlike
relational databases, which use tables with rows and columns to organize and
store data, NoSQL databases use different data models, such as document-
based, key-value, column-family, and graph models, to store data in flexible,
scalable, and distributed ways.
NoSQL databases are designed to handle large amounts of unstructured, semi-
structured, and even structured data that cannot be easily managed by
traditional relational databases. They offer high availability, scalability, and
performance, making them suitable for modern web applications and big data
analytics.
Document Databases: Document databases are a type of NoSQL database that
stores data in the form of semi-structured documents, typically in JSON or
BSON format. Each document can have its own unique structure and can
include fields with varying data types.
Document databases are flexible and scalable, allowing for easy data modelling
and schema changes. They are well-suited for applications that require complex
data structures, such as social media platforms, content management systems,
and e-commerce websites.
MongoDB is one of the most popular document databases, widely used in web
applications for its ease of use, scalability, and high performance.
Key-value stores: Key-value stores are a type of NoSQL database that stores
data as a collection of key-value pairs, where each key is a unique identifier for a
particular value. Key-value stores are typically used for caching and session
management, as they can store large amounts of data in memory and retrieve it
quickly.
Key-value stores are simple and scalable, making them ideal for high-traffic web
applications that require fast data access. They are also well-suited for
distributed systems, as they can be easily partitioned and replicated across
multiple nodes.
Redis is a popular open-source key-value store, known for its high performance,
support for multiple data types, and advanced features such as pub/sub
messaging, Lua scripting, and transactions.

Page 34 © Copyright by Interviewbit


TCS Digital Interview Questions

19. How do you design and implement database?


Databases are an essential part of many applications and are used to store and
manage large amounts of data efficiently and effectively.
To design a database, you need to determine the data that needs to be stored and
the relationships between the data. This involves creating a schema, which is a
blueprint for the structure of the database. The schema defines the tables, fields, and
relationships in the database.
Once the database design is complete, the next step is to implement the database.
This involves creating the tables and fields in the database and populating the tables
with data.
To implement a database, you can use a database management system (DBMS) such
as MySQL, Oracle, or MongoDB. A DBMS is a so ware program that allows you to
create and manage a database. It provides a set of tools and interfaces for creating,
querying, and updating the database.

20. Explain the difference between Drop, Truncate and Delete?


In database management, DROP, TRUNCATE, and DELETE are three different
operations that can be used to remove data from a table.
DROP: The DROP statement is used to delete a table or other database object from
the database. When a table is dropped, all the data, indexes, and structure of the
table are permanently deleted and cannot be recovered. The DROP statement is
typically used to remove unnecessary or obsolete tables from the database. The
syntax for DROP is:

DROP DATABASE mydatabase;

TRUNCATE: The TRUNCATE statement is used to delete all the data from a table, but
it does not delete the table structure or indexes. This means that the table remains in
the database, but it is empty. The TRUNCATE statement is typically used to remove
all the data from a table in a single operation, and it is faster than deleting the rows
one by one using the DELETE statement. The syntax for TRUNCATE is:

Page 35 © Copyright by Interviewbit


TCS Digital Interview Questions

TRUNCATE TABLE mytable;

DELETE: The DELETE statement is used to delete specific rows from a table. It allows
you to specify a WHERE clause to delete only the rows that meet certain conditions.
The DELETE statement does not delete the table structure or indexes, and it does not
reset the auto-increment value of the primary key. The DELETE statement is typically
used to remove individual rows from a table. The syntax example for DELETE is:

DELETE FROM mytable WHERE id=1;

This would delete the row from mytable where id is equal to 1.

21. What is Normalization?


Normalization is the process of organizing a database in a way that minimizes
redundancy and dependency, and that allows data to be stored and accessed
efficiently. It is a design technique that is used to ensure that a database is structured
in a way that reduces the risk of data inconsistencies and ensures the integrity of the
data.
There are several normal forms that can be used to normalize a database, ranging
from the first normal form (1NF) to the fi h normal form (5NF). Each normal form
has a set of rules that must be followed to ensure that the database is properly
normalized.
The most common normal form is the third normal form (3NF), which is defined as
follows:
A database is in 3NF if it is in the second normal form (2NF) and all the attributes
in the database are dependent on the primary key (i.e., there are no transitive
dependencies).
A database is in 2NF if it is in first normal form (1NF) and all the non-key
attributes in the database are fully dependent on the primary key.
A database is in 1NF if all the attributes in the database are atomic (i.e., they
cannot be further divided into smaller pieces of data).

Page 36 © Copyright by Interviewbit


TCS Digital Interview Questions

Example table and its normalization up to 3NF:


Original table:

Order_ID Customer_ID Customer_Name Product_ID

1 1001 John Smith 001

1 1001 John Smith 002

2 1002 Jane Doe 001

3 1003 Bob Johnson 002

First normal form (1NF): The table is already in 1NF as all attributes are atomic
because it doesn’t have any repeated rows. So we can use Order_id and
Product_id to uniquely define rows / make it the primary key.
Second Normal Form (2NF): The Order Details table is not in 2NF because the
Product Name is dependent on the Product ID, and not on the Order ID. To bring
it to 2NF, we can create a separate Products table. We will also have a new
Customer table just for storing customer details.
Orders table:

Order_ID Customer_ID

1 1001

2 1002

3 1003

Page 37 © Copyright by Interviewbit


TCS Digital Interview Questions

Customer table:

Customer_ID Customer_Name

1001 John Smith

1002 Jane Doe

1003 Bob Johnson

Order Details table:

Order_ID Product_ID Quantity Price

1 001 2 $300

1 002 1 $1200

2 001 1 $300

3 002 3 $1200

Products table:

Product_ID Product_Name

001 Phone

002 Laptop

Page 38 © Copyright by Interviewbit


TCS Digital Interview Questions

Third Normal Form (3NF): The Order Details table is not in 3NF because the
Price is dependent on the Product ID, and not on the Order ID. To bring it to 3NF,
we can create a separate Product Prices table:
Orders table:

Order_ID Customer_ID

1 1001

2 1002

3 1003

Order Details table:

Order_ID Product_ID Quantity

1 001 2

1 002 1

2 001 1

3 002 3

Products table:

Page 39 © Copyright by Interviewbit


TCS Digital Interview Questions

Product_ID Product_Name

001 Phone

002 Laptop

Product Prices table:

Product_ID Price

001 $300

002 $1200

Now the table is in 3NF, and all the attributes are dependent on the primary key. For
every table, the primary key can be -

Table Name Primary Key

Orders Table Order_ID

Customer Table Customer_ID

Order Details Table (Order_ID, Product_ID)

Products Table Product_ID

Products Prices Table Product_ID

Page 40 © Copyright by Interviewbit


TCS Digital Interview Questions

This means that the table is now properly normalized, which will help to prevent data
redundancy and inconsistencies.
In conclusion, by breaking down the original table into three separate tables and
following the normalization process, we have achieved 3NF.

22. What is the Difference between Having and Where Clause?


In SQL, the HAVING and WHERE clauses are used to filter rows from a SELECT
statement based on specific conditions. However, there are some key differences
between the two clauses:
1. The WHERE clause is used to filter rows before the GROUP BY clause is applied,
while the HAVING clause is used to filter rows a er the GROUP BY clause is
applied. This means that the WHERE clause can only be used with columns from
the SELECT list or columns that are part of the table being queried, while the
HAVING clause can be used with columns from the SELECT list or columns that
are part of an aggregate function.
2. The WHERE clause can be used with any SELECT, UPDATE, or DELETE statement,
while the HAVING clause can only be used with a SELECT statement with the
GROUP BY clause to group the result set based on one or more columns. The
GROUP BY clause is used in conjunction with aggregate functions (such as SUM,
COUNT, AVG, MAX, MIN) to group the result set based on one or more columns.
For example, consider the following table "sales" with columns "product", "region",
and "sales_amount":

Page 41 © Copyright by Interviewbit


TCS Digital Interview Questions

product region sales_amount

ProductA North 1000

ProductA South 2000

ProductB North 1500

ProductB South 2500

ProductC North 1200

ProductC South 1800

GROUP BY:
If you want to know the total sales amount for each product, you can use the
following query:

SELECT product, SUM(sales_amount) as total_sales FROM sales GROUP BY product;

This will give you the following result set:

product total_sales

ProductA 3000

ProductB 4000

ProductC 3000

Page 42 © Copyright by Interviewbit


TCS Digital Interview Questions

HAVING:
If you want to know the total sales amount for each product where the sales amount
is more than 3000 then the following query can be used -

SELECT product, SUM(sales_amount) as total_sales FROM sales GROUP BY product HAVING

This will give you the following result set:

product total_sales

ProductB 4000

Note that the result set is grouped by the "product" column, and the total sales
amount is calculated using the SUM function.
WHERE:
Suppose we want to find the products which are located in North Region and their
sales amount >= 1200, then the following query can be used -

SELECT product, sales_amount FROM sales WHERE region = "North" AND sales_amount >=

This will give you the following result set:

product sales_amount

ProductB 1500

ProductC 1200

23. Write a query to get the 3rd largest salary from a table?

Page 43 © Copyright by Interviewbit


TCS Digital Interview Questions

Here is an example of a query that can be used to get the 3rd largest salary from a
table in SQL:

SELECT salary FROM employees WHERE salary IN (SELECT DISTINCT salary FROM employees

This query first selects the distinct salaries from the employee's table and orders
them in descending order. It then selects the top 3 salaries using the LIMIT clause.
Finally, it selects the third salary from the list using the LIMIT 1 clause and orders the
salary in ascending order.
Note that this query assumes that the salary column is of a numerical data type
and that the table has at least 3 rows. If the table has fewer than 3 rows, the
query will return an empty result set.

24. Write queries to declare the primary key and foreign key for
some table?
A primary key is a column or set of columns (combined primary key) in a database
table that uniquely identifies each record in the table. The primary key must be
unique and not null, meaning it cannot have duplicate or null values. It is used to
enforce data integrity and to establish relationships between tables. A table can have
only one primary key.
A foreign key is a column or set of columns in a database table that refers to the
primary key of another table. It establishes a link or relationship between two tables,
allowing you to retrieve related data from multiple tables. The foreign key ensures
referential integrity, which means that the data in the related tables are consistent
and accurate. A table can have one or more foreign keys.
To declare a primary key for a table in SQL, we should use the PRIMARY KEY keyword
against the column you want to make as the primary key as shown in the syntax
below:

Page 44 © Copyright by Interviewbit


TCS Digital Interview Questions

CREATE TABLE table_name (

column1 datatype PRIMARY KEY,

column2 datatype,

column3 datatype,

...

);

For example, to declare a primary key on the "id" column of the "employees" table,
you can use the following query:

CREATE TABLE employees (

id INT PRIMARY KEY,

name VARCHAR(50),

salary DECIMAL(10,2) );

To declare a foreign key for a table in SQL, you can use the following syntax using the
REFERENCES keyword:

CREATE TABLE table_name (

column_name1 data_type REFERENCES parent_table (parent_column),

column_name2 data_type,

...

);

For example, to declare a foreign key on the "department_id" column of the


"employees" table that references the "id" column of the "departments" table, you
can use the following query:

Page 45 © Copyright by Interviewbit


TCS Digital Interview Questions

CREATE TABLE employees (

id INT PRIMARY KEY,

name VARCHAR(50),

salary DECIMAL(10,2),

department_id INT REFERENCES departments (id) );

In summary, to declare a primary key for a table, you can use the PRIMARY KEY
keyword, and to declare a foreign key for a table, you can use the REFERENCES
keyword.

25. What is object-oriented programming? Can you explain the


concept of encapsulation, inheritance and polymorphism in
OOP?
Object-oriented programming (OOP) is a programming paradigm that is based on the
idea of organizing code into objects that represent real-world entities and the actions
that can be performed on them. In OOP, objects are created from classes, which
define the characteristics and behavior of the objects.
OOP has several key concepts, including encapsulation, inheritance, and
polymorphism.
Encapsulation is the idea of bundling data and methods that operate on that
data within a single unit, or object. This is meant to reduce complexity and
increase modularity by allowing the developer to think about each object as a
self-contained entity with a specific role and responsibilities.
Consider the below image of the car having certain features and methods to operate
-

Page 46 © Copyright by Interviewbit


TCS Digital Interview Questions

In the case of the car object described, encapsulation would mean that the
attributes (model, speed, engine, speedLimit) and methods (drive(), stop(),
setSpeed()) would be defined within a class that represents a car.
Using encapsulation, we can ensure that the internal state of the car object is
not accessible or modifiable from outside the class unless explicitly exposed
through public methods. This helps to prevent unintended changes to the state
of the car object and ensures that the behavior of the car object is consistent
and reliable. For example, the setSpeed() method would be the only way for a
user to modify the speed attribute of the car object. Similarly, the drive() and
stop() methods would be responsible for changing the speed of the car object in
a controlled and safe manner.
Inheritance is the ability of a class to inherit characteristics and behavior from a
parent class. This allows a subclass to reuse the code and functionality of the
parent class, and to extend or modify it as needed. Inheritance is a way to create
a hierarchy of classes, with more specialized subclasses inheriting from more
general parent classes.

Page 47 © Copyright by Interviewbit


TCS Digital Interview Questions

Consider an example, creating a Parrot object is as simple as defining its attributes


and actions as methods. A parrot can talk. By extending the properties of the Birds
class, which includes a color variable and a fly() method, our parrot color can be
defined and can take flight at any time.
But what if we want to add another bird object, like a Sparrow? Though they share
certain attributes, like their ability to fly, they also have unique features like sparrow
chirps. To indicate this relationship, we use inheritance.
Using the “extends” keyword in Java, we can indicate that the objects from Parrot
and Sparrow classes inherit traits from the Bird class as follows:

public class Bird {


String color;
public void fly() {
System.out.println("Fly");
}
}

public class Parrot extends Bird{


public void talk() {
System.out.println("Talk");
}
}

public class Sparrow extends Bird{


public void chirp() {
System.out.println("chirp");
}

This has been represented in the class diagram below:


Our computer understands that Parrots and Sparrows are a type of bird and share
common behaviors and attributes. Additionally, Parrots can talk, which is added to
the Parrot Class. This simplifies the coding process and allows us to easily create and
modify new bird objects with shared characteristics and also add extra features in the
sub-classes.

Page 48 © Copyright by Interviewbit


TCS Digital Interview Questions

Polymorphism is a fundamental concept in object-oriented programming that allows


data to take on multiple forms. This is used to extend or override the behavior of a
parent class through inheritance or interfaces. In real-life, polymorphism can be
observed in people who have different roles to play simultaneously, like a woman
who is a mother, a wife, an employee, and a daughter all at once. Polymorphism is a
crucial feature of object-oriented programming, and languages that do not support it
cannot be classified as true object-oriented languages. There are 2 types of
polymorphism as shown in the image below- Compile time and run time. The
compile time polymorphism can be achieved by function overloading or operator
overloading whereas the run time polymorphism is achieved by function overriding.

26. What is a class in object-oriented programming and how is it


used?
In object-oriented programming (OOP), a class is a blueprint or template for creating
objects. A class defines the attributes and behaviors of an object, and it specifies
what the object can do and what it can store by providing a way to encapsulate data
and functionality and thereby create a clear separation of concerns in a program.

Page 49 © Copyright by Interviewbit


TCS Digital Interview Questions

A class is defined by its name, its attributes (also known as properties or fields), and
its methods (also known as functions). An object is an instance of a class, and it is
created by calling the class's constructor method.
Here is an example of a class in Python:

class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed

def bark(self):
print("Woof!")

# Create an object of the Dog class


dog1 = Dog("Fido", "Labrador")

# Access the object's attributes


print(dog1.name) # Output: "Fido"
print(dog1.breed) # Output: "Labrador"

# Call the object's method


dog1.bark() # Output: "Woof!"

#Create a second object of the Dog class

dog2 = Dog("Buddy", "Golden Retriever")

# Access the object's attributes

print(dog2.name) # Output: "Buddy"

print(dog2.breed) # Output: "Golden Retriever"

# Call the object's method

dog2.bark() # Output: "Woof!"

This code defines a class called "Dog" with two attributes: "name" and "breed". It
also has a method called "bark" that prints "Woof!" to the screen. An object of the
Dog class is then created and its attributes and method are accessed and called.

Page 50 © Copyright by Interviewbit


TCS Digital Interview Questions

One of the main benefits of using a class to create multiple dogs is that it allows you
to define the attributes and behaviors of a dog in a structured and organized way.
Instead of creating separate variables for each dog's name and breed, and separate
functions for each dog's behavior, you can define a single class with attributes and
methods that can be applied to any dog object you create. This can make your code
easier to read, write, and maintain, especially if you need to create many different
dog objects with different attributes and behaviors.

27. What are pure virtual functions?


In C++, a pure virtual function is a virtual function that is declared in a base class but
has no implementation provided in that class. This means that a subclass that
inherits from the base class must provide an implementation for the pure virtual
function, or the subclass will also become an abstract class. An abstract class is a class
that cannot be instantiated on its own but must be subclassed to create an object.
To declare a pure virtual function in C++, you can add the = 0 syntax to the end of the
function declaration in the base class. For example:

class Base {
public:
virtual void foo() = 0;
};

In this example, the foo() function is declared as a pure virtual function. Any subclass
that inherits from Base must provide an implementation for foo() to be considered a
concrete class.
Pure virtual functions are used to define an interface that a set of related classes
must implement. This is o en used in object-oriented programming to achieve
polymorphism, where a single function can be called on different objects of different
classes, as long as they implement the same interface.
It is important to note that a class that contains at least one pure virtual function is
an abstract class, and cannot be instantiated on its own. Instead, it must be
subclassed to create a concrete class that provides an implementation for all pure
virtual functions.

Page 51 © Copyright by Interviewbit


TCS Digital Interview Questions

28. What are the limitations of inheritance?


Inheritance can be a powerful tool in object-oriented programming, but it also has
some limitations. Some of the limitations of inheritance are:
1. Tight Coupling: Inheritance can lead to tight coupling between the base class
and the derived class, which means that changes made in the base class can
have unintended effects on the derived class.
2. Inflexibility: Inheritance can be inflexible because once a subclass is created, it
cannot be easily modified or extended.
3. Increased Complexity: Inheritance can make code more complex and harder to
understand, especially if there are multiple levels of inheritance or if the
inheritance is used excessively.
4. Fragility: Changes to the base class can break the derived classes, and it can be
difficult to predict the impact of those changes.
5. Overuse: Inheritance can be overused, leading to complex and hard-to-maintain
code. It is important to use inheritance judiciously and only when it is
appropriate and necessary.
6. Inefficient Memory Usage: In some cases, inheritance can lead to inefficient
memory usage, as objects may have redundant data or functionality.
It is important to consider these limitations when using inheritance in object-
oriented programming and to balance the benefits of inheritance against its
potential drawbacks.

29. What is a so ware development life cycle and what are the
different phases it consists of?
The so ware development life cycle (SDLC) is the process of developing a so ware
system, from conception to maintenance. It consists of a series of steps or phases
that are followed to ensure that the so ware is developed in a systematic and
structured manner.
The different phases of the SDLC may vary depending on the specific methodology
being used, but most SDLC models include the following phases:

Page 52 © Copyright by Interviewbit


TCS Digital Interview Questions

Page 53 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Planning: In this phase, the goals and objectives of the so ware are defined,
and a high-level plan is developed for how to achieve them. This may include
identifying the target audience, determining the scope of the project, and
establishing timelines and budgets.
2. Analysis: In this phase, the requirements for the so ware are gathered and
analyzed. This may include conducting user interviews and focus groups,
creating user stories and use cases, and defining the functional and non-
functional requirements of the system.
3. Design: In this phase, the overall architecture and design of the so ware are
developed. This may include creating a detailed design document, developing
wireframes and prototypes, and deciding on the technologies and frameworks
to be used.
4. Implementation: In this phase, the code for the so ware is written and tested.
This may include writing and debugging code, integrating different modules and
components, and performing unit and integration testing.
5. Testing: In this phase, the so ware is thoroughly tested to ensure that it meets
the requirements and works as expected. This may include creating test plans,
executing different types of testing (e.g. unit testing, integration testing, system
testing), and identifying and fixing any issues that are discovered.
6. Deployment: In this phase, the so ware is deployed to a production
environment and made available to users. This may include installing and
configuring the so ware, performing final testing, and releasing updates and
patches as needed.
7. Maintenance: In this phase, the so ware is monitored and maintained over time
to ensure that it continues to function as expected. This may include fixing bugs,
adding new features, and updating the so ware to meet changing user needs.

30. What is a bug in the so ware and how do you go about fixing
it?
A bug is an error, flaw, or failure in the so ware that causes it to behave in
unexpected or unintended ways. Bugs can be caused by a variety of factors, including
coding errors, design mistakes, and hardware or so ware incompatibilities.

Page 54 © Copyright by Interviewbit


TCS Digital Interview Questions

To fix a bug, the following steps are typically followed:


1. Identify the bug: The first step in fixing a bug is to identify the cause of the
issue. This may involve reviewing error messages and logs, analyzing the code,
and reproducing the problem.
2. Debug the code: Once the cause of the bug has been identified, the next step is
to debug the code to understand how the bug is occurring and how it can be
fixed. This may involve using debugging tools and techniques, such as setting
breakpoints and stepping through the code line by line.
3. Fix the bug: A er the cause of the bug has been identified and understood, the
next step is to make changes to the code to fix the issue. This may involve
modifying existing code, adding new code, or deleting code that is no longer
needed.
4. Test the fix: Once the bug has been fixed, it is important to test the code to
ensure that the fix is effective and that the issue has been resolved. This may
involve running unit tests or manually testing the so ware to ensure that it is
functioning as expected. It is equally important to ensure that the changes made
to fix the bug do not break other parts of the working code. This means that the
fix should be thoroughly tested, not just in isolation but in the context of the
overall system. By thoroughly testing the fix, developers can be confident that
the issue has been resolved and that the code remains stable and functioning
correctly. This reduces the risk of introducing new bugs or issues and helps
maintain the overall quality of the so ware.
5. Deploy the fix: A er the bug has been fixed and tested, the next step is to
deploy the fix to the production environment. This may involve releasing a new
version of the so ware or applying a patch to the existing version.
Fixing a bug can be a time-consuming process, and it is important to follow a
systematic and structured approach to ensure that the issue is resolved in a reliable
and efficient manner.

31. What is a so ware development methodology and can you


name some examples?

Page 55 © Copyright by Interviewbit


TCS Digital Interview Questions

A so ware development methodology is a framework that defines how so ware is


developed, tested, and deployed. It is a set of practices, processes, and tools that are
used to guide the development of so ware.
There are many different so ware development methodologies, and the choice of
methodology depends on the specific needs of the project and the preferences of the
development team. Some common so ware development methodologies include:
Waterfall: The Waterfall methodology is a linear approach to so ware
development that follows a set of sequential steps. It is a traditional
methodology that is o en used for large, well-defined projects.

The above image states the So ware development life cycle phases. In this, every
phase is executed only once the previous phase is completed. So for large projects in
which it's very clear about no changes can be made a er every phase is executed, the
Waterfall model is the best choice.
Agile: The Agile methodology is a flexible, iterative approach to so ware
development that emphasizes rapid prototyping and continuous delivery. It is
based on the Agile Manifesto, which values individuals and interactions, working
solutions, and customer collaboration.

Page 56 © Copyright by Interviewbit


TCS Digital Interview Questions

The above image explains about Agile Methodology of So ware Development. In this,
we have several phases that are introduced for rapid development. We can see that in
the Quality Assurance, feedback is recorded and this will be referenced for the next
cycle to be addressed.
Scrum: Scrum is a framework for Agile so ware development that is based on
the principles of transparency, inspection, and adaptation. It is a popular
methodology for Agile teams and is based on the concept of a "sprint," which is
a time-boxed iteration of work.

Page 57 © Copyright by Interviewbit


TCS Digital Interview Questions

In the above image, we can see that there is a scrum cycle that helps to address the
execution of the so ware development in a sprint.
Scrum is a short period of time (usually 1-4 weeks) during which a team works on a
specific set of tasks or goals. Activities like sprint planning, daily scrum, sprint review
and sprint retro will be performed in a scrum cycle to evaluate and help us reach
those set goals.
Lean: The Lean methodology is a framework for continuous improvement that
is based on the principles of the Toyota Production System. It emphasizes
minimizing waste (For example - Adapting Agile Methodology focuses on
delivering only the features that are essential to the project, Test-Driven
Development ensures that code is written to meet specific requirements and
prevents rework due to defects, etc), maximizing value, and continuously
improving processes.

Page 58 © Copyright by Interviewbit


TCS Digital Interview Questions

The above image explains the LEAN Methodology that states the role of this
framework.
DevOps: DevOps is a set of practices that aims to bring development and
operations teams together to improve the collaboration and efficiency of
so ware development. It emphasizes automation, continuous integration and
delivery, and monitoring.

Page 59 © Copyright by Interviewbit


TCS Digital Interview Questions

The above image explains the coordination of the Development and Operational
team. The development team completes its Development process and releases it for
the user, and now the Operational team deploys it to the system and observes for
user enhancement and also some so ware defects. Now the operational team gives
the feedback to the Development Team and the cycle goes on.
These are just a few examples of so ware development methodologies, and there
are many others as well. The choice of methodology depends on the specific needs of
the project and the preferences of the development team.

32. What is a so ware testing technique and how do you go


about testing so ware?
So ware testing is the process of evaluating a so ware system or component to
determine whether it meets the specified requirements and works as intended.
Testing is an important step in the so ware development process, as it helps to
ensure the quality and reliability of the so ware.
There are many different so ware testing techniques, and the choice of technique
depends on the specific needs of the project and the type of so ware being tested.
Some common testing techniques include:

Page 60 © Copyright by Interviewbit


TCS Digital Interview Questions

Unit testing: Unit testing is a technique that involves testing individual units or
components of a so ware system. It is typically done by the development team
as part of the coding process.
Integration testing: Integration testing is a technique that involves testing the
integration of different components or modules of a so ware system. It is
typically done a er unit testing to ensure that the components work together as
intended.
System testing: System testing is a technique that involves testing the entire
so ware system as a whole. It is typically done a er integration testing to ensure
that the system meets the specified requirements and works as intended.
Acceptance testing: Acceptance testing is a technique that involves testing the
so ware from the perspective of the end user. It is typically done by the
development team or by a separate testing team to ensure that the so ware is
user-friendly and meets the needs of the users.
To test so ware, you need to plan the testing process, design test cases, execute the
tests, and analyze the results. Testing involves both manual testing (where a tester
manually performs test cases) and automated testing (where test cases are executed
automatically using tools and scripts).

33. What are some common security vulnerabilities in so ware


and how do you prevent them?
Vulnerabilities are weaknesses or flaws in so ware systems, networks, or devices that
can be exploited by attackers to gain unauthorized access, steal sensitive data,
disrupt operations, or cause other types of harm. They can occur due to design flaws,
programming errors, configuration mistakes, or other factors, and can be exploited
by cybercriminals using a variety of techniques, such as malware, social engineering,
or brute force attacks. The consequences of vulnerabilities can range from minor
disruptions to severe data breaches, financial losses, or even physical damage in
some cases.
There are many common security vulnerabilities in so ware, and some of the most
common ones are:

Page 61 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Input validation: Input validation vulnerabilities occur when the so ware does
not properly validate user input, allowing attackers to inject malicious code or
data into the system.
2. SQL injection: SQL injection vulnerabilities occur when the so ware does not
properly sanitize user input in SQL queries, allowing attackers to inject
malicious SQL code into the database. To prevent SQL injection vulnerabilities,
you should use parameterized queries and prepared statements, and you should
also use robust SQL injection prevention libraries.
3. Cross-site scripting (XSS): XSS vulnerabilities occur when the so ware does
not properly sanitize user input in HTML or JavaScript, allowing attackers to
inject malicious code into the web page. To prevent XSS vulnerabilities, you
should use input validation techniques, such as sanitizing, filtering, and
validating input, and you should also use robust XSS prevention libraries.
4. Cross-site request forgery (CSRF): CSRF vulnerabilities occur when the
so ware does not properly verify the authenticity of web requests, allowing
attackers to forge requests and perform actions on behalf of the user. To prevent
CSRF vulnerabilities, you should use CSRF prevention techniques, such as using
tokens or cookies, and you should also use robust CSRF prevention libraries.
5. Insecure communications: Insecure communication vulnerabilities occur when
the so ware does not use secure communication protocols, such as HTTPS,
allowing attackers to intercept and manipulate data transmitted between the
client and the server. To prevent insecure communication vulnerabilities, you
should use secure communication protocols and technologies, such as HTTPS,
SSL, and TLS.
To prevent these vulnerabilities, you should use input validation techniques,
parameterized queries and prepared statements, XSS prevention libraries, CSRF
prevention techniques and libraries, and secure communication protocols and
technologies.

34. What is a so ware design pattern and can you name some
examples?

Page 62 © Copyright by Interviewbit


TCS Digital Interview Questions

A so ware design pattern is a general, reusable solution to a common so ware


design problem. Design patterns are not specific to any programming language and
can be implemented in any language. They are meant to be a high-level guide to help
solve design problems and are not a specific set of instructions for how to implement
a solution.
There are three types of design patterns - creational, structural, and behavioral
patterns.
Creational patterns deal with object creation mechanisms and aim to create
objects in a manner suitable to the situation. Examples of creational patterns
include the factory pattern and the builder pattern.
Structural patterns deal with object composition, creating relationships
between objects to form larger structures. Examples of structural patterns
include the adapter pattern and the decorator pattern.
Behavioral patterns focus on communication between objects, what goes on
between objects, and the flow of control of an application. Examples of
behavioral patterns include the observer pattern and the template method
pattern.
Design patterns are useful for helping developers to solve common design problems
in a consistent and efficient manner. They provide a common vocabulary and set of
best practices that can be applied to a wide range of design situations.
Here are a few examples of common design patterns:

Page 63 © Copyright by Interviewbit


TCS Digital Interview Questions

Singleton pattern: This pattern ensures that a class has only one instance and
provides a global access point to it.
Factory pattern: This pattern defines an interface for creating an object, but
lets subclasses decide which class to instantiate.
Observer pattern: This pattern defines a one-to-many dependency between
objects so that when one object changes state, all of its dependents are notified
and updated automatically.
Decorator pattern: This pattern dynamically adds behavior to an object by
wrapping it in an object of a decorator class.
Command pattern: This pattern encapsulates a request as an object, allowing
for the parameterization of clients with different requests, and the separation of
the request from the object that handles it.
When working with common design patterns in so ware development, it is
important for developers to not only understand the concepts behind the patterns
but also be able to implement them effectively. One way to do this is by studying
examples with sample code.
To fully grasp a design pattern, developers should take the time to study a concrete
example that demonstrates how the pattern works in practice. This means reading
through the code, understanding how the different components of the pattern fit
together and experimenting with the example to see how it behaves in different
scenarios.
By doing this, developers can build a deeper understanding of the pattern and its
practical applications, which will help them implement it more effectively in their
own code. They can also identify potential pitfalls or edge cases that may not be
immediately apparent from just reading about the pattern in theory.

35. What is so ware architecture and how do you design and


implement one?

Page 64 © Copyright by Interviewbit


TCS Digital Interview Questions

So ware architecture is the high-level structure of a so ware system, and it defines


the overall design and organization of the system. It specifies the components and
their relationships, the patterns and styles that are used to connect the components,
and the constraints and considerations that guide the design.
So ware architecture is an important part of the so ware development process, as it
provides a blueprint for the system and helps to ensure that the system is scalable,
maintainable, and flexible.
To design a so ware architecture, you need to understand the requirements of the
system and the constraints and considerations that apply to the design. You also
need to consider the trade-offs and trade-ins that are involved in the design, as well
as the patterns and styles that are appropriate for the system.
Once the so ware architecture is designed, the next step is to implement it. This
involves implementing the components and their relationships and testing the
system to ensure that it meets the specified requirements and works as intended.
To implement a so ware architecture, you need to use a programming language and
a set of tools and frameworks that are appropriate for the system. You also need to
consider the deployment and operational requirements of the system, such as
scalability, reliability, and security.

36. How do you optimize the performance of a database?


There are several techniques that you can use to optimize the performance of a
database:

Page 65 © Copyright by Interviewbit


TCS Digital Interview Questions

Indexing: Indexing is the process of creating a data structure that allows the
database to access and retrieve data quickly thereby avoiding the need for
searching and matching every row in the database. Indexes can be created on
specific columns in a table to improve the performance of queries that filter or
sort data based on those columns.
Partitioning: Partitioning is the process of dividing a table into smaller, more
manageable pieces, called partitions. Partitioning can improve the performance
of queries that access large amounts of data, as it allows the database to access
the data in smaller, more efficient chunks.
Partitioning can be done in two ways - vertical and horizontal. Vertical
partitioning involves splitting a table into smaller parts based on columns, while
horizontal partitioning involves splitting a table into smaller parts based on
rows. Vertical partitioning can be useful for tables with many columns that are
rarely accessed together, while horizontal partitioning can be useful for tables
with a large number of rows that can be grouped based on specific criteria, such
as date ranges or geographic regions.

Page 66 © Copyright by Interviewbit


TCS Digital Interview Questions

In the above image, we see Vertical and Horizontal Partitioning. In Vertical


Partitioning, we are distributing the table columns that separate the Customer
Details with their favorite color.
And, in Horizontal Partitioning, we are minimizing the table size by removing entries
from the table and creating a new table with that entry.
Caching: Caching is a technique used to improve the performance of accessing
data by storing frequently accessed data in a cache. When a request is made for
the data, the system first checks the cache to see if the data is already available.
If it is, the system retrieves the data from the cache, rather than from the
original source, which can be slower to access.

In the above image, we can see that the application is using the database to fetch
some data. The application first searches the data into the cache, if the data is not
present then it will request the database to provide the data. Once the data is
returned by the database, the data is stored in the cache so that in the future, if the
data is required, then it can be fetched directly from here.

Page 67 © Copyright by Interviewbit


TCS Digital Interview Questions

By using caching, the system can access frequently used data more quickly, reducing
the overall time it takes to retrieve and process the data. Caching can be particularly
useful for large or complex data sets, as well as for systems that require frequent
access to the same data. However, it's important to keep in mind that caching can
also consume system resources and that the cache must be managed to ensure that
it remains accurate and up-to-date.
1. Normalization: Normalization is the process of organizing data in a database in
a way that minimizes redundancy and dependency. Normalization can improve
the performance of the database by reducing the size of the data and improving
the efficiency of queries.
2. Optimizing queries: Optimizing queries is the process of improving the
performance of SQL statements by minimizing the amount of data that is
accessed and processed. This can be done by writing efficient queries, using
appropriate indexes, and minimizing the use of expensive operations such as
sorts and joins.
3. Monitoring and tuning: Monitoring and tuning is the process of continuously
monitoring the performance of the database and making adjustments to
improve it. This can involve identifying and addressing bottlenecks, adjusting
the configuration of the database, and optimizing the schema and queries.
There are several tools available to monitor and tune the performance of a database.
Here are a few examples:

Page 68 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Profiling Tools: These tools can help identify performance bottlenecks by


analyzing query execution times and resource usage. Examples include
pgBadger, Query Profiler, and pgFouine.
2. Resource Monitoring Tools: These tools can help track resource usages, such as
CPU, memory, and disk I/O, to identify performance issues. Examples include
top, htop, and sar.
3. Database Administration Tools: These help monitor and tune database
performance, including configuration management, query analysis, and schema
optimization. Examples include pgAdmin, Oracle Enterprise Manager, and SQL
Server Management Studio.
4. Load Testing Tools: These tools can simulate heavy loads on the database to
measure its performance and identify bottlenecks. Examples include Apache
JMeter, LoadRunner, and Gatling.
By using these techniques, database administrators can identify performance issues
and make informed decisions on how to optimize the database to ensure it runs
smoothly and efficiently.

37. How do you approach solving a complex programming


problem?
Solving a complex programming problem can be a challenging and time-consuming
task, but there are a few steps you can take to approach the problem in a systematic
and organized way:

Page 69 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Understand the problem: The first step in solving a complex programming


problem is to understand the problem. This involves reading the problem
statement carefully and clarifying any ambiguities or uncertainties. You should
also understand the inputs, outputs, and any constraints or assumptions that
apply to the problem.
2. Break down the problem: Once you understand the problem, the next step is to
break it down into smaller, more manageable pieces. This involves identifying
the subproblems or subgoals that need to be solved in order to solve the main
problem. Breaking down the problem can help you to understand the problem
better and make it easier to solve.
3. Develop a plan: A er breaking down the problem, the next step is to develop a
plan for solving the problem. This involves identifying the steps or actions that
you need to take to solve the problem and organizing them in a logical
sequence. Having a clear plan can help you to stay focused and make progress
on the problem.
4. Implement the plan: With a clear plan in place, the next step is to implement
the plan. This involves writing the code that solves the problem and testing it to
ensure that it works as intended.
5. Refine the solution: A er implementing the initial solution, you may need to
refine it to make it more efficient, robust, or scalable. This involves optimizing
the code, testing it, and making any necessary improvements.
In summary, solving a complex programming problem involves understanding the
problem, breaking it down into smaller pieces, developing a plan, implementing the
plan, and refining the solution. It can be a challenging and time-consuming task, but
following a systematic and organized approach can help you to solve the problem
effectively.

38. Can you explain the difference between a client-server


architecture and a peer-to-peer architecture?

Page 70 © Copyright by Interviewbit


TCS Digital Interview Questions

Client-server architecture: In a client-server architecture, a central server provides


services to multiple clients over a network. The clients send requests to the server,
and the server processes the requests and sends back the results. The clients do not
communicate directly with each other, and all communication goes through the
server.

In the above image, we can see that there is a server and multiple clients connected
with it. These clients and servers are connected through a network and can
communicate with each other with requests and responses. The request is made by
the client to the server and the server send the response to the request.

Page 71 © Copyright by Interviewbit


TCS Digital Interview Questions

A client-server architecture is a centralized architecture, and it has several


advantages, such as:
Scalability: The server can be scaled up or down as needed to handle more or
fewer clients.
Security: The server can be secured to protect against unauthorized access and
ensure data integrity.
Maintenance: The server can be maintained and updated centrally, which
makes it easier to manage.
However, a client-server architecture also has some disadvantages, such as:
Dependence on the server: If the server goes down or becomes unavailable, the
clients cannot communicate or access the services.
Performance: The performance of the system may be limited by the capacity of
the server.
In a peer-to-peer (P2P) architecture, there is no central server, and the nodes in the
network communicate and share resources directly with each other. Each node in a
P2P network acts as both a client and a server, and it can request and provide services
to other nodes.

Page 72 © Copyright by Interviewbit


TCS Digital Interview Questions

Peer-to-Peer architecture: Peer-to-peer architecture is a network model in which


devices or nodes communicate with each other directly without the need for a
centralized server. In this model, each node can act as both a client and a server,
allowing data and resources to be shared directly between nodes as shown in the
image below:
Peer-to-peer architecture is commonly used in applications such as file sharing,
messaging, and online gaming. Unlike the client-server architecture, peer-to-peer
networks can be more decentralized and less vulnerable to server failures or attacks.
A P2P architecture is a decentralized architecture, and it has several advantages, such
as:
Decentralization: The lack of a central server makes the system more resilient
and less vulnerable to failure.
Resource sharing: The nodes in the network can share resources and distribute
the workload among themselves.
Privacy: The nodes in the network can communicate directly with each other,
which can enhance privacy and security.
However, a P2P architecture also has some disadvantages, such as:
Complexity: The complexity of the system may be increased due to the lack of a
central authority or server.
Performance: The performance of the system may be limited by the capacity of
the individual nodes in the network.
Security: The security of the system may be compromised due to the lack of a
central authority or server.

39. Can you explain the concept of microservices and how it


differs from a monolithic architecture?

Page 73 © Copyright by Interviewbit


TCS Digital Interview Questions

Microservices is an architectural style that involves building a so ware system as a


collection of small, independent services that communicate with each other over a
network. Each service is responsible for a specific function or capability, and it is
designed to be scalable, maintainable, and resilient.
In the above image, we can see that there are multiple systems connected with the
interface, this individual system can perform some individual and independent tasks.
The Interface is responsible to handle that type of task/request and route it to the
specific system for the response.
A microservices architecture has several advantages, such as:

Page 74 © Copyright by Interviewbit


TCS Digital Interview Questions

Decoupling: The separation of services allows for greater decoupling of the


system, which makes it easier to modify, test, and deploy individual services
without affecting the rest of the system.
Scalability: The independent nature of the services allows for greater
scalability, as each service can be scaled up or down independently.
Resilience: The independent nature of the services allows for greater resilience,
as the failure of one service does not affect the rest of the system.
Flexibility: The use of small, independent services allows for greater flexibility,
as the system can be modified and enhanced by adding or modifying individual
services.
A monolithic architecture, on the other hand, involves building the so ware system
as a single, large, cohesive unit. A monolithic architecture has several disadvantages,
such as:
Coupling: The lack of separation between the components of the system leads
to greater coupling, which makes it harder to modify, test, and deploy individual
components without affecting the rest of the system.
Scalability: The single, large nature of the system limits scalability, as the entire
system needs to be scaled up or down as a whole.
Resilience: The single, large nature of the system limits resilience, as the failure
of one component can affect the entire system.
Flexibility: The single, large nature of the system limits flexibility, as it is harder
to add or modify individual components without affecting the rest of the
system.
In the above image, we can see that the entire application is clubbed into a single
differed by the User Interface, Business logic, and Data Access Layer.

40. How do you design and implement a scalable system?


Designing and implementing a scalable system involves considering several factors
that affect the system's ability to handle increasing workloads and user demands.
Here are some steps you can follow to design and implement a scalable system:

Page 75 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Define the requirements: The first step is to define the requirements of the
system. This involves identifying the expected workloads, user demands, and
performance goals of the system. Defining the requirements allows you to
understand the specific scalability needs of the system and design the system
accordingly.
2. Identify bottlenecks: The next step is to identify the potential bottlenecks in
the system that could limit its scalability. Bottlenecks can occur at various points
in the system, such as the database, the network, or the server. Identifying
bottlenecks allows you to design the system to eliminate or mitigate these
bottlenecks and improve its scalability.
3. Design for horizontal scalability: One way to improve the scalability of a
system is to design it for horizontal scalability. This involves designing the
system to be able to handle increasing workloads by adding more resources,
such as servers, rather than upgrading a single resource, such as a powerful
server. Horizontal scalability allows the system to scale out and handle
increasing workloads more easily.
4. Use load balancing: Another way to improve the scalability of a system is to use
load balancing to distribute the workload among multiple resources. This can be
done using load balancers that distribute incoming requests among a pool of
servers, database shards that divide the data among multiple database servers,
or content delivery networks (CDNs) that distribute static content among
multiple servers.
5. Use caching: Caching is the process of storing frequently accessed data in
memory or on disk to improve the performance of the system. Using caching
can help to reduce the load on the database and other resources, improving the
scalability and performance of the system.
6. Monitor and optimize: Finally, it is important to continuously monitor and
optimize the scalability of the system. This involves monitoring the performance
and resource usage of the system and identifying potential bottlenecks or
issues. It also involves using optimization techniques, such as load testing,
performance tuning, and capacity planning, to improve the scalability of the
system.

Page 76 © Copyright by Interviewbit


TCS Digital Interview Questions

Example: To design a system that can scale to your first 100 million users, you need
to focus on several key areas, including:
1. Architecture: Use a distributed system architecture that can handle high
volumes of traffic and user requests, and can scale horizontally by adding more
servers or nodes as needed. For example, Netflix uses a microservices
architecture to enable rapid development and deployment of new features and
to handle millions of users streaming video content simultaneously.
2. Database: Choose a database system that can handle large amounts of data
and high levels of concurrency, such as a NoSQL database like Cassandra or
MongoDB. These databases can distribute data across multiple nodes and can
scale horizontally to handle increasing loads. For example, Twitter uses a
sharded MySQL database to store and manage billions of tweets and user data.
3. Caching: Implement caching strategies to reduce the load on your database and
improve application performance. This can include using in-memory caches like
Redis or Memcached, or content delivery networks (CDNs) to cache static
content like images or videos. For example, Airbnb uses a combination of Redis
caching and CDNs to improve the performance of its website and mobile app.
4. Load balancing: Use load balancing techniques to distribute traffic across
multiple servers or nodes, and to ensure high availability and reliability. This can
include using load balancers like NGINX or HAProxy or using auto-scaling groups
on cloud platforms like AWS or Azure. For example, Uber uses a combination of
load balancing, auto-scaling, and microservices architecture to handle millions
of ride requests per day.
By focusing on these key areas, you can design a system that can scale to handle your
first 100 million users and beyond, while maintaining high levels of performance,
reliability, and security.

Page 77 © Copyright by Interviewbit


TCS Digital Interview Questions

We can define the scalability of the system with a small example by using the above
image. In the above image, we have 2 different servers that are independent of
handling their operations. Now if any user visits the server then the request goes to
the load balancer, and the load balancer will route the request to the server based on
the availability.
Suppose any one of the servers goes down then there is another server is running up
to handle the requests.

41. What is cloud computing and how does it differ from


traditional IT infrastructure?
Cloud computing is a model of delivering computing resources and services over the
internet, rather than using local servers or personal devices. Cloud computing allows
users to access and use computing resources on demand, without the need to
purchase and maintain expensive hardware and so ware.

Page 78 © Copyright by Interviewbit


TCS Digital Interview Questions

In the above image, you can see the high-level structure of cloud computing. You can
see that we have different platforms installed and ready to serve via the network
(INTERNET).
Cloud computing architecture refers to the design of the various components and
layers that make up a cloud computing system. It typically includes several layers
such as the physical layer, infrastructure layer, platform layer, and application layer,
each of which provides a different set of services to users.
At the physical layer, cloud computing architecture includes the data centers, servers,
storage devices, and networking equipment that form the backbone of the cloud
infrastructure. The infrastructure layer provides the virtualization, automation, and
orchestration capabilities that enable resources to be provisioned and managed
efficiently.
The platform layer includes the so ware and tools that developers use to build and
deploy applications on the cloud infrastructure. This layer provides a range of
services, such as application hosting, database management, and messaging
services.

Page 79 © Copyright by Interviewbit


TCS Digital Interview Questions

Finally, the application layer represents the cloud-based applications that end-users
interact with. These applications can be web-based, mobile, or desktop applications
that run on the cloud infrastructure and provide users with a range of services, such
as file storage, communication, and collaboration tools.
Overall, cloud computing architecture is designed to provide a scalable, flexible, and
cost-effective platform for delivering IT services and applications to users, with the
ability to rapidly provision and scale resources as needed.
Cloud computing has several advantages over traditional IT infrastructure, such as:
Cost: Cloud computing can be more cost-effective than traditional IT
infrastructure, as it allows users to pay only for the resources they use and avoid
the upfront costs of purchasing and maintaining hardware and so ware.
Scalability: Cloud computing allows users to scale up or down their resources as
needed, without the need to purchase additional hardware or so ware. This
allows users to meet changing demands and workloads more easily.
Flexibility: Cloud computing allows users to access and use a wide range of
resources and services, including storage, computing, networking, and so ware,
from multiple providers. This allows users to choose the resources and services
that best meet their needs and to easily switch between providers if needed.
Reliability: Cloud computing provides users with high availability and reliability,
as the resources and services are managed by the provider and are typically
redundant and backed up. This reduces the risk of downtime and data loss.
Some examples of cloud providers are Amazon Web Services (AWS), Microso Azure,
Google Cloud Platform, IBM Cloud, Oracle Cloud, Alibaba Cloud, Heroku, Digital
Ocean, etc. Each of these providers offers its own set of services, pricing models, and
benefits.

42. What happens a er you enter the URL of a website?

Page 80 © Copyright by Interviewbit


TCS Digital Interview Questions

In the above image, you can see the flow mentioned in numbering. This is how the
flow goes when you enter the URL of the website. Let’s understand the process -
When you enter the URL of a website into your web browser, the following sequence
of events occurs:

Page 81 © Copyright by Interviewbit


TCS Digital Interview Questions

1. The web browser sends a request to the domain name system (DNS) server to
resolve the domain name to an IP address. The DNS server is a network service
that translates domain names into IP addresses, which are used to locate and
communicate with servers on the internet.
2. The web browser sends an HTTP request to the web server associated with the IP
address of the domain name. The HTTP request includes the URL of the
webpage, as well as other information such as the type of request (e.g., GET,
POST), the browser being used, and any cookies that may be associated with the
request.
3. The web server processes the HTTP request and sends an HTTP response back to
the web browser. The HTTP response includes the requested webpage, as well as
other information such as the status of the request, the type and size of the
content, and any cookies that may be associated with the response.
4. The web browser receives the HTTP response and processes the content of the
response, which may include rendering HTML, CSS, and JavaScript code,
downloading images and making additional requests for resources such as fonts
and scripts.
5. The web browser displays the webpage to the user.

43. What is a version control system and how do you use it in


so ware development?
A version control system (VCS) is a tool that allows you to track changes to a set of
files over time and manage different versions of the files. It is an essential part of the
so ware development process, as it allows you to track the evolution of the
codebase and collaborate with other developers.
A VCS stores a history of changes to the files and allows you to view, compare, and
revert to previous versions. It also allows you to work on the same codebase
concurrently, without conflicts, and merge changes from multiple developers.
There are many different version control systems, and the choice of system depends
on the specific needs of the project and the preferences of the development team.
Some popular version control systems include Git, Mercurial, and Subversion.

Page 82 © Copyright by Interviewbit


TCS Digital Interview Questions

To use a version control system like git in so ware development, you need to create a
repository for your codebase and check the code into the repository. A repository is a
central location where the code is stored and managed by the VCS.
To make changes to the code, you need to create a new branch, which is a separate
copy of the codebase that you can work on without affecting the main codebase.
When you are ready to merge your changes back into the main codebase, you need
to create a pull request, which is a request to merge the changes from the branch
into the main codebase.

In the above image, we can see that several branches are created (colored purple and
green). These branches can be merged into the main branch. Like, the Blue Node
(main/master branch) has versions and the purple node is the child branch, and the
green node is the sub-child branch of the master branch in which the
enhancements/changes are done and can be merged with the main branch later.
These branches state the changes made in the repository.

44. How can we use R to predict something?

Page 83 © Copyright by Interviewbit


TCS Digital Interview Questions

There are several ways to use R to predict something, depending on the type of
prediction you want to make and the data you have available. Here are some
common approaches:
1. Statistical modeling: R has a wide range of functions for statistical modeling,
including linear regression, logistic regression, and generalized linear models.
You can use these functions to fit a model to your data and use the model to
make predictions about future outcomes.
2. Machine learning: R also has a wide range of functions and packages for
machine learning, including decision trees, random forests, support vector
machines, and neural networks. You can use these algorithms to train a model
on your data and use the model to make predictions about future outcomes.
3. Data visualization: R has a wide range of functions and packages for data
visualization, including scatter plots, line plots, bar plots, and heat maps. You
can use these tools to visualize your data and identify trends or patterns that
may help you make predictions about future outcomes.
4. Data preprocessing: Before you can use R to make predictions, you may need
to preprocess your data to prepare it for analysis. This may involve cleaning the
data, handling missing values, transforming the data, and selecting relevant
features. R has a wide range of functions and packages for data preprocessing,
including tools for data cleaning, imputation, scaling, and feature selection.

45. What is a continuous integration and delivery pipeline and


how do you implement it?
Continuous integration and continuous delivery (CI/CD) is a so ware development
practice that involves integrating code changes frequently, building and testing the
code automatically, and deploying the code to production as soon as it is ready. The
goal of CI/CD is to reduce the time and effort required to develop and deploy
so ware, and to improve the quality and reliability of the so ware.
In the above image, we can see how continuous delivery and continuous integration
communicate for better delivery of so ware. It typically consists of the following
steps:

Page 84 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Plan: This stage involves defining the requirements and goals for the so ware
project.
2. Code: The code stage involves writing the so ware code to meet the
requirements and goals defined in the planning stage.
3. Build: The build step involves compiling the code and creating an executable
version of the so ware, which can be done automatically using a build tool like
Make or Gradle.
4. Continuous Testing: This stage involves running a set of automated tests to
ensure that the code is correct and meets the specified requirements. This can
include unit tests, integration tests, and functional tests.
5. Release: The release stage involves finalizing the code for a specific release,
which can include bug fixes, new features, and other changes.
6. Deploy: The deploy step involves deploying the code to a production
environment, such as a staging or production server, which can be done
automatically using a deployment tool like Ansible or Jenkins.
7. Operate: The operating stage involves managing the so ware and infrastructure
in a production environment, which can include monitoring performance,
managing resources, and addressing any issues that arise.
8. Monitor: The monitor stage involves monitoring the so ware and infrastructure
to identify issues or opportunities for improvement, which can inform future
updates or releases.
To implement a CI/CD pipeline, you need to choose the tools and processes that are
appropriate for your project and set up the pipeline accordingly. This typically
involves configuring the code repository, setting up the build and test tools, and
configuring the deployment process. Some of the tools available in the market are:

Page 85 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Jenkins: Jenkins is a popular open-source automation server that is widely used


for continuous integration and continuous delivery. It allows for the automation
of building, testing, and deploying so ware applications, and provides a wide
range of plugins and integrations for different development environments and
tools.
2. GitLab: GitLab is a web-based Git repository manager that provides integrated
support for continuous integration and delivery. It offers features such as code
review, issue tracking, and wiki documentation, as well as built-in continuous
integration and delivery pipelines that can be configured to automatically test
and deploy code changes.
3. Travis CI: Travis CI is a cloud-based continuous integration service that is widely
used by open-source so ware projects. It provides a range of features for
building and testing so ware applications, including support for multiple
programming languages and frameworks, and integration with popular code
hosting platforms such as GitHub and Bitbucket.

46. Can you explain the concept of machine learning and give an
example of a real-world application?
Machine learning is a field of artificial intelligence that involves the use of algorithms
and statistical models to enable computers to learn from data and make predictions
or decisions without being explicitly programmed to do so. Machine learning
algorithms can learn from a wide range of data, including text, images, audio, and
video, and can be used to perform a variety of tasks, such as classification, regression,
clustering, and optimization.
One example of a real-world application of machine learning is spam filtering. Spam
filters use machine learning algorithms to analyze the content and characteristics of
emails and determine whether they are spam or not. The algorithms are trained on a
dataset of spam and non-spam emails, and they learn to recognize patterns and
features that are commonly associated with spam emails as shown in the image
below:

Page 86 © Copyright by Interviewbit


TCS Digital Interview Questions

The algorithms can then be used to classify new emails as spam or non-spam, and
they can also be updated as the patterns and features of spam emails evolve.

47. How do you stay up-to-date with the latest technologies and
trends in the industry?
There are several ways to stay up-to-date with the latest technologies and trends in
the industry:

Page 87 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Subscribe to newsletters and industry publications: One way to stay up-to-


date is to subscribe to newsletters and industry publications that cover the
latest technologies and trends in the field. This can include newsletters from
tech companies, trade magazines, and online blogs.
2. Attend conferences and workshops: Attending conferences and workshops is a
great way to learn about the latest technologies and trends, as well as network
with other professionals in the field. Many conferences and workshops offer
presentations and demos from experts in the industry, as well as opportunities
for hands-on learning.
3. Take online courses and tutorials: Online courses and tutorials are a
convenient way to learn about new technologies and trends from the comfort of
your own home. Many online platforms, such as Coursera, Udemy, and edX, offer
a wide range of courses and tutorials on various topics in the field.
4. Join online communities: Online communities, such as forums, groups, and
social media platforms, are a great way to connect with other professionals in
the field and stay up-to-date on the latest technologies and trends. You can
participate in discussions, ask questions, and share resources with others in the
community.
5. Experiment with new technologies: Finally, one of the best ways to stay up-to-
date is to experiment with new technologies and trends on your own. This can
involve setting up a lab or a development environment and trying out new tools
and technologies. This hands-on approach can help you learn more about the
technologies and how they work, and it can also help you stay up-to-date with
the latest trends in the field.
In summary, there are several ways to stay up-to-date with the latest technologies
and trends in the industry. The candidate should answer honestly on what they
follow to stay up-to-date. This is important as they might be asked follow-up
questions on what they say. It is essential for the candidates to be truthful and
transparent about their sources of information and how they keep themselves
informed. This will demonstrate their reliability and commitment to staying
knowledgeable and relevant in their field. It will also enable the interviewer to assess
their potential for learning and adapting to new trends and developments.

Page 88 © Copyright by Interviewbit


TCS Digital Interview Questions

48. What Is a Linear Regression Model? How Do You Go About


Building It?
A linear regression model is a statistical method that is used to model the
relationship between two continuous variables. It is a commonly used model in
machine learning and statistics to predict a continuous output variable based on one
or more input variables.
The basic idea behind linear regression is to fit a straight line to a set of data points,
which allows us to make predictions about the relationship between the variables.
The line is defined by an equation of the form:

y = b0 + b1 * x

where y is the output variable, x is the input variable, b0 is the intercept, and b1 is the
slope of the line.
Building a linear regression model typically involves the following steps:
1. Data collection: Collect the data on the input and output variables that you
want to model.
2. Data preparation: Clean the data, remove missing values, and perform any
necessary transformations.
3. Model selection: Choose the appropriate type of linear regression model
(simple or multiple) based on the number of input variables.
4. Model training: Split the data into a training set and a testing set, and use the
training set to fit the model to the data.
5. Model evaluation: Evaluate the model on the testing set to determine how well
it generalizes to new data.
6. Model improvement: Use techniques such as regularization, feature selection,
or parameter tuning to improve the performance of the model.

Page 89 © Copyright by Interviewbit


TCS Digital Interview Questions

The performance of a linear regression model can be evaluated using metrics such as
the mean squared error (MSE), which measures the average squared difference
between the predicted values and the actual values. The goal is to minimize the MSE
and improve the accuracy of the model.
Overall, a linear regression model can be a powerful tool for predicting the
relationship between two continuous variables, but it requires careful data
preparation, model selection, and evaluation to build an effective and accurate
model.

Interview Preparation Resources

https://www.interviewbit.com/tcs-nqt-interview-questions/
https://www.interviewbit.com/tcs-ninja-interview-questions/
https://www.interviewbit.com/technical-interview-questions/

TCS Digital Interview Preparation


49. Interview Preparation Tips
Here are some tips for preparing for the TCS Digital interview process:

Page 90 © Copyright by Interviewbit


TCS Digital Interview Questions

1. Brush up on your technical skills: Make sure you are familiar with the
programming languages and tools that are relevant to the position you are
applying for. This will help you answer technical questions more confidently
during the interview.
2. Research the company: Learn about TCS Digital's products, services, and
mission. This will help you understand the company's values and goals and will
give you a better sense of how you might fit in.
3. Review common interview questions: There are many common interview
questions that are asked during technical interviews. Reviewing these questions
in advance can help you prepare your answers and be more confident during the
interview.
4. Practice your communication skills: Be prepared to explain your thought
process, your technical skills, and your experience clearly. The interviewer will be
looking for your ability to communicate effectively.
5. Be prepared to answer behavioral questions: Many interviews include
behavioral questions that ask you to provide examples of how you have handled
certain situations in the past. Think of some relevant examples ahead of time so
you can answer these questions confidently during the interview.
6. STAR Method: When answering questions in an organized format like STAR, you
can provide a clear and concise response that demonstrates your skills and
experiences effectively. Here's a tip to help you answer questions in STAR
format:
S - Situation: Start by describing the situation or context in which the
experience or situation occurred. What was the problem or challenge that
you were faced with?
T - Task: Next, describe the specific task or goal that you were trying to
accomplish in the given situation. What was your objective or desired
outcome?
A - Action: Describe the specific actions that you took to address the
situation or achieve the task. What steps did you take, and what strategies
did you use?
R - Result: Finally, describe the outcome of your actions. What was the
result of your efforts, and how did it help to resolve the situation or achieve
the goal?

Page 91 © Copyright by Interviewbit


TCS Digital Interview Questions

By using these pointers, you can provide a structured and organized response that
highlights your relevant skills and experiences in a clear and concise manner. This
approach also helps you to stay focused and on track when answering questions and
ensures that you are providing complete and thorough responses to the interviewer's
questions.

Frequently Asked Questions


50. Does TCS Digital have a Negative Marking?
It is not uncommon for companies to include negative markings in their recruitment
process, including TCS Digital. Negative marking means that incorrect answers on a
test or exam will result in a deduction of points. The purpose of negative marking is
to encourage accuracy and discourage guessing.
However, it is important to note that the specific recruitment process and policies of
TCS Digital may vary, and it is always a good idea to confirm the details of the
recruitment process with the company directly.

51. Is the TCS Digital interview tough?


The difficulty level of an interview can vary depending on a variety of factors, such as
the role you are applying for, your level of experience, and the specific skills and
knowledge required for the position.
In general, TCS Digital is known for its rigorous recruitment process, which typically
includes a written test and multiple rounds of interviews. The interviews may include
both technical and behavioral questions and may be conducted by a panel of
interviewers.
Overall, it is likely that the TCS Digital interview process will be challenging, but with
proper preparation and a strong understanding of the skills and knowledge required
for the role, it is possible to succeed. It is always a good idea to do your research on
the company and the specific role you are applying for and to practice answering
common interview questions to increase your chances of success.

52. How to apply for TCS Digital?

Page 92 © Copyright by Interviewbit


TCS Digital Interview Questions

To apply for a job at TCS Digital, you can visit the TCS Digital career page
(https://www.tcs.com/careers) and browse the available job openings. You can filter
the job openings by location, job category, and other criteria to find positions that
match your interests and qualifications.
To apply for a specific job, click on the job title and read the job description and
requirements carefully. If you meet the requirements and are interested in the
position, click on the "Apply" button and follow the prompts to create a profile and
submit your application.
You will be required to upload your resume and cover letter as part of the application
process. Make sure that your resume and cover letter are well-written and highlight
your relevant skills and experience. You may also be asked to provide additional
information or documents, such as references or transcripts.
A er you have submitted your application, you may be invited to complete a written
test or participate in an interview as part of the recruitment process. If you are
selected for the next stage of the process, you will be contacted by a TCS Digital
representative.
Overall, the application process for TCS Digital is fairly straightforward. By taking the
time to carefully review the job description and requirements, and preparing a strong
application, you can increase your chances of success.

53. What is the cutoff of TCS Digital?


The cutoff for the TCS Digital recruitment process is 90%. Candidates who score 90%
or above on the written test will qualify for the TCS Digital Technical Interview Round.
Those who score below 90% will qualify for the TCS Ninja Technical Interview Round.

54. What is the salary of TCS Digital?


The salary at TCS Digital can vary depending on a variety of factors, such as the role
you are hired for, your level of experience, your location, and the specific needs and
requirements of the company.

Page 93 © Copyright by Interviewbit


TCS Digital Interview Questions

In India, the average salary for a so ware engineer at TCS Digital is INR 650,000 per
year, according to data from Glassdoor. This is based on data from 8,913 salaries
submitted anonymously to Glassdoor by TCS Digital employees.
It is important to note that these figures are just estimates, and the actual salary you
receive at TCS Digital may be higher or lower depending on your specific role and
qualifications. It is always a good idea to confirm the salary and benefits offered by
the company directly before accepting a job offer.

55. How long is the TCS Digital Interview?


The length of the interview process at TCS Digital can vary depending on the specific
role you are applying for and the needs of the company. The interview process for
so ware engineers at TCS Digital typically includes a written test and multiple rounds
of interviews, which may include technical and behavioral questions.
It is not uncommon for the TCS Digital interview process to take several weeks or
even months to complete. The specific length of the interview process will depend on
the availability of the candidates and the interviewers, as well as the specific needs of
the company.
It is always a good idea to confirm the details of the interview process with the
company directly or to ask about the estimated length of the process during the
interview. This will help you better plan your schedule and prepare for the interview
process.

Page 94 © Copyright by Interviewbit


Links to More Interview
Questions

C Interview Questions Php Interview Questions C Sharp Interview Questions

Web Api Interview Hibernate Interview Node Js Interview Questions


Questions Questions

Cpp Interview Questions Oops Interview Questions Devops Interview Questions

Machine Learning Interview Docker Interview Questions Mysql Interview Questions


Questions

Css Interview Questions Laravel Interview Questions Asp Net Interview Questions

Django Interview Questions Dot Net Interview Questions Kubernetes Interview


Questions

Operating System Interview React Native Interview Aws Interview Questions


Questions Questions

Git Interview Questions Java 8 Interview Questions Mongodb Interview


Questions

Dbms Interview Questions Spring Boot Interview Power Bi Interview Questions


Questions

Pl Sql Interview Questions Tableau Interview Linux Interview Questions


Questions

Ansible Interview Questions Java Interview Questions Jenkins Interview Questions

Page 95 © Copyright by Interviewbit

You might also like