SWE Interview - Set 2 Flashcards

1
Q

Pros of Statically Typed Languages:

A

Type Safety: Errors related to incompatible types are caught during compilation, reducing the chances of runtime errors.Performance: The compiler can optimize the code more effectively since it has complete information about types.Documentation: Type information provides a form of documentation for the code, making it easier to understand.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cons of Statically Typed Languages:

A

Verbose: Writing type declarations can make the code more verbose and potentially harder to read.Less Flexibility: Some flexibility in type conversions might be lost, as type conversions need to be explicitly handled.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pros of Dynamically Typed Languages:

A

Flexibility: Variables can change types on the fly, providing more flexibility in coding.Conciseness: Code can be more concise since type declarations are not required.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cons of Dynamically Typed Languages:

A

Runtime Errors: Type-related errors might only appear during runtime, making debugging potentially more challenging.Performance Overhead: Without type information available at compile-time, runtime type checks can introduce a performance overhead.Readability: The lack of explicit type information can make code harder to understand, especially in larger projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Examples of Statically Typed Languages:

A

C, C++, Java, and Swift.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Examples of Dynamically Typed Languages:

A

Python, JavaScript, Ruby, and PHP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

DevOps

A

A set of practices and cultural philosophies that merges software development and IT operations to enhance software delivery’s speed, quality, and reliability. By fostering collaboration, automation, and a culture of improvement, it streamlines development and promotes shared responsibility for high-quality software.It integrates developers and operations teams in order to improve collaboration and productivity by automating infrastructure, automating workflows and continuously measuring application performance.DevOps is the combination of culture philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

List the main stages of the DevOps application pipeline and provide a brief description of each.

A
  • Planning: Setting project requirements, goals, and tasks in alignment with business needs.- Coding: Writing code based on the set requirements and using version control.- Building: Compiling code to produce an executable artifact or software package.- Testing: Ensuring the software meets quality standards and functions as intended.- Deployment: Manually or automatically deploy code to production environment servers for end-user accessibility..- Operations: Monitoring software performance and functionality in production.- Continuous Feedback & Iteration: Collecting and acting on feedback to continuously improve the software.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the core principles of DevOps as represented by the acronym “CALMS”?

A

“CALMS” represents the core principles of DevOps:Culture: Promoting collaboration and eliminating silos between teams.Automation: Using tools to automate repetitive tasks for consistency and speed.Lean: Focuses on optimizing workflows, reducing inefficiencies, and accelerating software production and delivery (through CI/CD & IaC) for agile responses.Measurement: Collecting and analyzing data to measure performance and other metrics to identify opportunity for software improvement.Sharing: Encouraging open communication, transparency, and shared best practices across teams.https://www.atlassian.com/devops/frameworks/calms-framework#:~:text=CALMS%20is%20a%20framework%20that,Lean%2C%20Measurement%2C%20and%20Sharing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Culture (C)

A

Collaboration: A cultural shift where development and operations teams work together, eliminating traditional silos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Automation (A)

A
  • Continuous Integration and Continuous Deployment (CI/CD)- Infrastructure as Code (IaC)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Lean (L)

A

The principles of Lean emphasize eliminating waste, improving flow, and optimizing the delivery of value. Practices like CI/CD and IaC can be seen as manifestations of lean thinking because they aim to streamline processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Measurement (M)

A

Monitoring and Feedback: By actively monitoring systems and applications, teams can measure performance, availability, and other important metrics. This allows for timely response to issues and aids in continuous improvement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sharing (S)

A

Feedback Loop: This ensures that information from monitoring and other sources is continually fed back into the system for improvement. Effective feedback loops are crucial for measuring the impact of changes and driving optimizations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Continuous Integration - CI

A

It is a development practice involving frequent integration of code changes from multiple developers into a shared repository. It automates building and testing upon each change, detecting bugs and conflicts in the early stages of development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Continuous Deployment - CD

A

It extends CI by automating code deployment to production after integration and testing. Successfully integrated and tested changes are automatically deployed to production servers, ensuring continuous updates and frequent value delivery to users.

17
Q

Infrastructure as Code (IaC)

A

This is about automating the provisioning and management of infrastructure using code and software development techniques.Involves defining and managing infrastructure elements like servers, networks, and storage using code, allowing for automation and version control.

18
Q

What is Configuration as Code (CaC)?

A

Configuration as Code (CaC) focuses on defining and managing application configurations within the code, including settings, parameters, and environment variables. Replacing manual configurations with code. Popular tools include Ansible, Puppet, and Chef.While IaC deals with infrastructure provisioning, CaC deals with fine-grained application configuration management.

19
Q

What is DevSecOps and how does it differ from traditional DevOps?

A

DevSecOps integrates security practices within the DevOps process, promoting collaboration among development, operations, and security teams, ensuring faster, safer software delivery throughout the application lifecycle.

20
Q

Cloud Computing

A

It delivers computing services like storage, processing power, networking, and software over the internet. Instead of owning and maintaining physical hardware and infrastructure, users access resources on-demand, paying only for what they use, ensuring scalability, flexibility, cost-efficiency, and rapid deployment, benefiting modern businesses.