Delving into Git, Networking & Open Source

Delving into Git, Networking & Open Source

Second Week in DevOps: Git, Networking, and Open Source Contributions

Introduction

Hello there! 👋 Last week marked Week 2 of my DevOps journey. Due to my sports commitments, I had limited time, but I still managed to learn and explore several key topics. This week, I completed advanced Linux commands, Git + GitHub, Computer Network fundamentals, and a bit about Open Source contributions. Though progress was a bit slow, learning something new always counts!


Wrapping Up Linux: Advanced Commands

In my previous week, I covered basic Linux commands, but a few advanced commands were still left. I focused on find, grep, awk, and sed:

➡️ grep - Used to search for a particular pattern in a file.
➡️ find → Searches for files and directories based on name, size, type, etc.
➡️ awk → A scripting language mainly used for text processing, filtering, and formatting structured data.
➡️ sed → A stream editor that works on character streams for pattern matching and replacements.

Now that I have a solid grasp of Linux basics, I plan to deepen my understanding by practising more with real-world assignments and tasks.


Deep Dive into Git and GitHub

As a web developer, I had experience using Git and GitHub, but for DevOps, I needed to expand my knowledge. I revised Git basics and moved to advanced topics like branches, pull requests, and resolving merge conflicts. Learning best practices for branch creation and conflict resolution helped me understand how teams collaborate efficiently in a DevOps environment.

While learning GitHub, I stumbled upon Open Source Contributions and decided to explore how Open Source projects work and how to contribute.


Getting Started with Open Source Contributions

I watched several videos and read about how to contribute to Open Source projects. Here’s the step-by-step process I learned:

1. What is Open Source?

Open source refers to any program whose source code is publicly available for modification, contribution, and improvement.

2. Finding a Repository to Contribute

Use GitHub/GitLab search to find a project related to your preferred tech stack.

3. Finding the Right Issue

Start with "good first issues" in the issues tab of a repository. These are beginner-friendly and help you get started.

4. Understand and Validate the Issue

Before contributing, ensure you understand the issue and check the discussion to validate its relevance.

5. Fork and Start Contributing

Since you don’t have access to the original repository, fork (copy) the repo to your account and start working on your own copy.

6. Create Relevant Branches

Never work in the main or master branch. Follow branch naming conventions:

  • Bug fixesfix/<bug_name>

  • New Featuresfeat/<feature_name>

7. Test Before Creating a Pull Request (PR)

Before submitting a PR, ensure the changes work correctly and pass all required tests.

Mention the issue number in your PR description:

  • fixes: #issue_number

  • resolves: #issue_number

9. Wait for the Maintainer’s Review

Be patient while the project maintainer reviews your PR. Engage in discussions if needed.

10. Repeat

Find another issue and continue contributing!

This was the step-by-step guide provided in the YouTube video.
I plan to find a suitable repository and make my first Open Source contribution in the coming days.

Resources I Used:


Learning Computer Networking Fundamentals

After exploring Open Source, I returned to my roadmap and focused on Computer Networking. I started with:

1. History of the Internet

Understanding why and how the internet was created helped me appreciate its evolution and role in modern computing.

2. Network Protocols

I explored different protocols, including HTTP, its methods, and status codes.

3. Network Architectures

I studied two primary architectures:

  • Client-Server Architecture

  • Peer-to-Peer Architecture

4. Network Topologies & Types

I learned about LAN, MAN, WAN and different network topologies used in enterprise environments.

5. OSI Model

One of the major topics I explored was the OSI (Open Systems Interconnection) Model, which consists of 7 layers:

  • Application Layer

  • Presentation Layer

  • Session Layer

  • Transport Layer

  • Network Layer

  • Data Link Layer

  • Physical Layer

    OSI-Model-.webp

Each layer has specific responsibilities and protocols that ensure seamless data transfer over networks. I also studied how emails work and the different protocols used in email communication.

Resources I Used:


Challenges I Faced & How I Overcame Them

  1. Understanding Differences Between grep, awk, and sed

    🔹 Problem: I was confused about when to use each command.

    🔹 Solution: I searched for real-world examples and experimented with them.

    🔹 Resources: Baeldung - grep, sed, awk differences, Linode - awk, grep, sed differences

  2. Getting Started with Open Source Contributions

    🔹 Problem: I can't determine a starting point for Open Source Contribution.


What’s Next?

For next week, my goals are:
Understanding how DNS works
Deep dive into each OSI model layer
Getting started with Bash Scripting


Let’s Connect!

If you have any recommended resources, some better approaches to challenges I faced, insights, or tips, I’d love to hear from you! Drop them in the comments. Thank you for reading till the end!

Have a wonderful day.