Back to all AlgoDaily courses

    DevOps and SDLC

    Software engineering is the use of engineering fundamentals within the field of software development. The primary goal is the creation, improvement, and maintenance of software. Software engineering takes into account engineering concepts, such as rigorous testing, the hardware and software environment, and systematic discovery.

    Section Menu

    How do I use this section?

    1. LESSON

    What is DevOps?

    Back in the day, to craft a robust software application, developers dove deep into the heart of the problem the software aimed to solve. They would often start with something like a pseudo-code or flowchart: START INPUT: User requirements PROCESS: Analyze and design solution OUTPUT: Software application END This demanded an in...

    2. LESSON

    Waterfall vs. Agile Software Development

    When it comes to software development, there are always crucial decisions the development team has to make in the beginning of the development process, regarding the principles and technologies that they will use. Everyone has different opinions, and often come to disagreements, especially when having to choose a project management methodology. T...

    3. LESSON

    What is Github? A Git Tutorial

    In this lesson, we will learn about managing source code, with a focus on following key points: What are version control systems? Understanding git workflow using examples. Understanding remote code hosting provided by GitHub. Often while working with code, you encounter a situation when you wa...

    4. LESSON

    Git Commands Cheat Sheet

    What is Git? In the past decades, software engineering started to become more complex than ever, requiring larger project structures, and more collaborators on the same project. These advancements in technology and software development showed an increased need of a version control system. This type of system is responsible for changes track...

    5. LESSON

    Introduction to CI/CD and Pipelines

    CI/CD pipelines-- where CI stands for Continuous Integration and CD stands Continuous Delivery-- is a software development practice through which all developers make code changes to a central depository multiple times a day. It automates the entire software release process. The pipeline builds code, runs test cases (continuous **inte...

    6. LESSON

    Configuration as Code: Why and How?

    Managing the configuration settings of an application is an increasingly important aspect of modern software development. These configurations used to be stored with their associated application code repositories and any changes required a new version of the code to be deployed, even if a single configuration needed to be changed. As teams nowada...

    7. LESSON

    Understanding Jenkins and Its Pipelines

    Unveiling the Magic of Jenkins: Mastering CI/CD Pipelines The world of Continuous Integration and Continuous Deployment (CI/CD) is a realm where code changes transform into features, almost like spells turning frogs into princes. But, how does one master this arcane art? Enter Jenkins, your wand for automating, building, testing, and deploying...

    8. LESSON

    What is a Container? A Docker Tutorial

    Embarking on a Journey with Docker: Understanding Its Essence Why Docker? The Fundamental Question Before we dive into the nuts and bolts of Docker, let's first examine the "why" behind it. Understanding the problem that Docker solves will give you a much deeper comprehension of its significance in software development, far beyond the sup...

    9. LESSON

    Building and Using Docker Containers and Images

    Setting the Stage: A Refresher on Docker and Its Ecosystem Docker Unpacked: More Than Just a Definition Before we delve into the art of building containers and images with Docker, let's take a moment to revisit what Docker actually is and what it brings to the table. Docker is an open-source tool designed to facilitate the building, d...

    10. LESSON

    Docker Interview Questions

    Introduction As Docker continues to gain popularity as a containerization tool for developing, deploying, and managing applications, it's no surprise that it has become a hot topic in the tech...

    11. LESSON

    Debugging and Profiling 101

    One of the most important steps in the software development process is to detect and identify the origin of errors, so that they can be eliminated. These errors can include memory leaks, different kinds of exceptions, or even just business logic mistakes, and can be identified during the debugging process, using the proper debugging tools - de...

    12. LESSON

    Linux Interview Questions

    Introduction Linux is an open-source, Unix-like, freely-distributable computer operating system (OS) built around the Linux Kernel. This operating system is responsible for managing the system’s hardware and resources, such as its CPU, memory, and storage, _as well as managing the communication betwe...

    13. LESSON

    Linux Bash Commands Cheat Sheet

    In this lesson, we will learn about bash and its basic commands, with a focus on the following key points: Getting an introduction to bash and its commands. Understanding how to perform operations using the command line. Computers provide two kinds of interfaces to the user: Graphical User Inter...

    14. LESSON

    Introduction to Security in Software Development

    Security risks in software applications are all around. Especially in these times of constant cyberattacks happening every minute, they can affect everyone — including individuals, businesses, and governments. For that reason, ensuring security in software development is essential. Cybercriminals are constantly looking for ways to use the vulnera...

    15. LESSON

    Web Application Security Principles

    We use web applications for so many things in everyday life. Thus, several times a day, we find ourselves inputting sensitive information into many different types of online channels. As developers, we face a lot of challenges, of which security is both important and often underrated. Because of that, we should be dedicated to making more of an e...

    16. LESSON

    Introduction to Network Topologies

    Network topology is the way a network is arranged, including the > physical or logical description of how links and nodes are set up to > relate to each other. The configuration or topology of a network plays an important role in its performance. There are many possible ways for arranging a network, and all come with different advantages and di...

    17. LESSON

    Introduction to Kubernetes

    What is an orchestration system? Kubernetes, in its most common usage, is a container orchestration system. Of course, we need to define what that means! Look no further: > An orchestration system provides automated configuration, > coordination and management of complex computing networks, systems and > services. So these systems a...

    18. LESSON

    Introduction to Data Cleaning and Wrangling

    The Importance of High-Quality Data In the modern business landscape, data is often considered the lifeblood of an organization. Industries like banking, insurance, retail, and telecommunications heavily rely on data to drive performance and gain a competitive edge. The Cost of Poor Data Imagine you're an archer, and your data is the bo...

    19. LESSON

    Hands-On With Terraform Tutorial

    Introduction to Terraform What is Terraform? Terraform is an open-source infrastructure as code (IaC) tool that automates the provisioning, management, and destruction of infrastructure across a variety of cloud providers and on-premises environments. Terraform uses a declarative language to define the desired state of your infrastructure...

    20. LESSON

    What is DNS and How Does It Work?

    The Domain Name System (DNS) is a critical component of the internet, allowing users to access websites and other online resources by using simple names rather than long strings of numbers. Let's go deeper and learn more about DNS. What is DNS? The Domain Name System (DNS) is a server-based network that converts human-readable domain names...

    21. LESSON

    Logging with the ELK Stack

    A Comprehensive Guide to Centralized Logging with the ELK Stack Why Logging Matters The Vital Role of Logging Logging serves as the central nervous system of modern software applications. Think of it as th...

    22. LESSON

    Monorepo vs Polyrepo: A Comparison

    Introduction: Navigating the Monorepo vs. Polyrepo Maze Welcome to the world of code repositories! Imagine your codebase as a library: would you prefer one massive room containing all books and resources or multiple specialized rooms? This question brings us to the crossroads between Monorepo and Polyrepo architectures. What is a...

    23. LESSON

    Azure Interview Questions

    Introduction Azure is a cloud computing platform headed by Microsoft that offers a large spectrum of services ranging from storage to analytics and networking. But, what is cloud computing first of all? Well, to put it simply, _cloud computing is the use of technological resources to store, retrieve, and pr...