fossunited / monschool-website

Repository of all courses on mon.school
24 stars 10 forks source link

New Course: Git & GitHub for beginners #36

Open HarshCasper opened 2 years ago

HarshCasper commented 2 years ago

About the course

Title

Git & GitHub for beginners

Subtitle

Get started with learning how to version control and collaborate on your projects with Git & GitHub.

Description

As a developer, writer, or creator, you all deal with files every day. At some point, you are dealing with making new files or changing the old files and then saving it all over again. But how do you track the file changes that are being made over time? It was this simple question that prompted the development of version control systems.

Linus Torvalds, the creator of the Linux kernel, was prompted to develop a distributed version control system when the license for BitKeeper, an existing version control system, was revoked, which is today known as Git. Today, Git is universally used worldwide for version controlling the files and is now integrated into various popular services to manage applications and data.

However, the technical jargon around Git is quite challenging to understand. You might know how to make a commit to save your changes, but how do you squash your commits? How do you resolve a merge conflict and collaborate with other developers?

These are some of the questions that leave developers prowling across Stack Overflow threads looking for answers. This course aims to get you started with Git from a completely non-technical perspective and help you upskill yourself in Git with real-world examples.

You don’t need to prowl for commands any longer, and you will understand how you can develop mental models around Git and its practical usage. With interactive lessons, real-world analogies, and scenario-based exercises, you will learn how to use Git with GitHub, a Git hosting service, while employing a host of services.

Course outcomes

Course Outline

1. Chapter 1: Version Control System & Git

Objective: Develop an understanding of version control systems and Git.

Task: Develop an understanding of why teams use Git and what are difficulties they would face if no version control system is used.

2. Chapter 2: Getting started with Git

Objective: Version-controlling your project using Git!

Task: Make a static website using HTML, CSS, JavaScript while making proper commits for your changes. Push the website to a GitHub repository and deploy on GitHub pages.

3. Chapter 3: Git & GitHub

Objective: Learn to collaborate using Git and GitHub!

Task: Quiz

4. Chapter 4: Contributing using Git & GitHub

Objective: Understanding the GitHub Flow of contribution

Task: Fork a repository and make a pull request to the student repository of this class. Resolve the suggestions made by a review bot and squash commits at the end. Send a PR after it has been merged.

5. Chapter 5: Open-Source

Objective: Contributing to Open-source projects

Task: Find an issue on any significant open-source project and propose an interest to work on it. Follow a fork-clone workflow in line with the project’s contributing guide and raise a pull request. Make sure all automated checks pass and is reviewed by a maintainer for correctness.

anandology commented 2 years ago

Thanks for submitting a new course @HarshCasper. Here are a couple of suggestions:

Please send a PR with a course.yml file. You can look at existing course.yml files in the repo for reference.

aryasoni98 commented 2 years ago

I would like to work on this PR.

anandology commented 2 years ago

@aryasoni98 thanks for your interest. @HarshCasper is already working on this course. You are welcome to review it and provide feedback.

anandology commented 2 years ago

@de-sh @nikochiko could you please review this course proposal?