강의

멘토링

로드맵

Programming

/

Programming Tool/Software

Learn Git Internals by Building It Yourself

Learn and create Git actions yourself, the de facto standard for version control tools!

(4.0) 1 reviews

62 learners

  • Jayce
git
internals
Git
Go
system-programming

What you will learn!

  • Git Internals

  • System Programming

Learn Git Internals by Building Your Own 📖

Build From Scratch! Build Your Own Git!

Can you explain what happens internally in Git when you type git checkout and git commit " commands? This lecture will explore the internal algorithms and file system operations behind Git's core operations, and teach you how to create "Tig," a Git-like implementation, in a language you're familiar with.


Course Target Audience/Course Purpose 🙆‍♀️

Types of students considered by knowledge sharers

  • Anyone who wants to explore the under the hood of frequently used technologies
  • People who want to experience deep exploration in engineering
  • Anyone who wants to understand more precisely how Git works

Students' Concerns & Solutions

  • 🥲 How do you delve deeper into the skills required in an interview?
  • 🧐 I've only used Git, but I'm curious about how it works?
  • 🤨 Is there anything suitable for a system programming project?

Changes in students after attending the lecture

  • A developer with experience exploring the deep engineering principles of very popular tools.
  • Developers who have worked on system programming projects in frequently used languages
  • A developer who knows exactly how Git works and can use it

Lecture Features ✨

  • The course will provide hands-on exercises that demonstrate the inner workings of Git.
  • The lecture exercises are conducted in the Go language, but only use syntax that can be easily replaced in any language.
  • It also includes an explanation of the Go syntax used.
  • You can learn system programming and gain meaningful system programming practice.

What you'll learn 📚

  • Intro: This course provides a brief explanation of basic Go, functions for system programming, and an overview of the course to make it easier to follow along.
  • Git Internals: Develop Git's internal components one by one and study their specific operations.
  • Git Overview: We'll explore the specific steps and internal components used to implement Git's core operations of version control, branching, and remote operations.

Expected Questions Q&A 💬

Q. The course is taught in Go. Do I need to know Go?
A. The lecture covers basic control and looping constructs, assignment, data types, and more, all of which are comparable to those in other languages. Go has a very simple syntax. Its packages for systems programming are also very intuitive. Therefore, you should have no trouble following the lectures in your own language.

Q. Do I need to know system programming?
A. We teach basic system programming in this course. The system programming used in the lecture exercises isn't complicated. It's basic system programming, covering creating, writing, and reading files. However, you'll need to research how to do this in your own practice language.

Q. Is there a Git command tutorial included?
A. While Git commands are explained during the course, they aren't as detailed as those used by beginners. This course requires some prior experience with Git.


Things to note before taking the course 📢

Learning Materials

  • Lecture materials PDF for theoretical study
  • Github Repository where you can check the result code

Player Knowledge and Precautions

  • Ability to write programs of more than 500 characters in a language of your choice

Recommended for
these people

Who is this course right for?

  • Anyone curious about the inner workings of Git

  • Anyone who wants to become an attractive developer through Deep Dive

  • Anyone who wants to study one of the world's open sources in depth

Need to know before starting?

  • One programming language you are confident in

Hello
This is

393

Learners

14

Reviews

4

Answers

4.8

Rating

2

Courses

안녕하세요. 저는 Jayce입니다. 현재 유니콘 스타트업의 플랫폼 엔지니어로 일하고 있습니다.

저는 창업도 하고 대규모 서비스를 위한 개발도 하고 개발자를 위한 플랫폼을 만들기도 하면서 짧은 시간 동안 서비스 개발자라고 불리는 역할도 수행해보고 플랫폼 엔지니어라고 불리는 역할도 수행했습니다. 그 과정에서 "잘하는 Software Engineer는 어떤 특징이 있고 어떻게 해야 그런 사람이 될 수 있구나"를 나름대로 정립할 수 있었습니다.

저는 짧게 말해서 Deep Dive 하는 사람들을 함께 일하는 엔지니어로서 매력적이라고 느낍니다. 단순히 주어진 일을 기계처럼 쳐내는 사람은 어떤 상황에 대한 최선의 선택을 내리기까지 비교적 오랜 시간이 걸리는 것 같아요. 반면 왜 이런 결정을 해야하는지 기술 내면의 공학적인 이유를 파고들며 이해하는 사람들은 금방 다른 의사 결정에서도 공학적으로 설득력 강한 주장을 할 수 있는 사람이 됩니다.

제가 만드는 강의는 새로운 기술을 얕게 익히는 것을 목표로 하지 않습니다. 저는 주니어 개발자들이 훌륭한 팀 동료, 매력적인 개발자, 단단한 기술자가 될 수 있는 방법을 알려주고 싶습니다. 더욱 매력있는 엔지니어가 되기 위해 조금 더 깊은 내용을 공부해보고 싶은 사람들에게 적합한 강의를 제 최선의 노력으로 만들어보겠습니다. 🙂

Curriculum

All

36 lectures ∙ (6hr 46min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1 reviews

4.0

1 reviews

  • devgmonk6353님의 프로필 이미지
    devgmonk6353

    Reviews 1

    Average Rating 4.0

    Edited

    4

    100% enrolled

    I listened up to about lecture 9-10. The end of lecture 9 is cut off. The video stops while the speaker hasn't finished talking. I thought the beginning of lecture 10 was cut off, but it started from the latter part of the content from lecture 9. Some parts were edited, so there's no overlap with the end of lecture 9, making it difficult to start right from the end of lecture 9. When explaining code, Go's unique syntax or Go's testing framework is used, but there is no explanation of that syntax or framework functions. The lecture introduction and early explanation say that users of other languages can also learn easily, but it doesn't seem that way. (I searched and found that Python uses similar syntax.) In lecture 6, actual execution was not shown, so I wondered if the lecture ended like that, but looking at lectures 9 and 10, it seems possible that the part where the test was actually run in lecture 6 was also cut off. ---------------------------------------------------------- Edited from the previous 1 star. The quick feedback and revisions were good. If I evaluate after completing the course, it was disappointing that the lecture proceeded in the order of writing test code for each function, then implementing the function. The video time for writing test code is longer than the actual implementation, but since the core of this lecture, as the title suggests, is to implement Git's internal functions directly, it would be more focused on the lecture's topic to show the pre-written test code before or after the function implementation lecture, indicating that this function requires these test cases. Because the implementation was relatively short, it felt more like studying how to write test cases. If you are just starting Git or know a little about it, I recommend taking this course after studying more. Although it teaches the basics of internal operations, it seems that a certain level of knowledge is needed for easier understanding. Thank you for your hard work.

    • byjayce
      Instructor

      Hello. I'm sorry to hear you are experiencing inconvenience. I apologize for having to make excuses. 1. While Go's grammar is briefly explained at the beginning of the lesson, as you mentioned, I am not explaining frameworks. The reason is that the method called testing is not actually a special method in Go. Rather than Go's specific testing methods, I wrote it using a commonly known BDD framework. Nevertheless, I think it's possible that the way I wrote the code was unfamiliar. 2. I'm truly sorry about the parts you mentioned being cut off. I'm not sure how that happened. It seems to have changed slightly from when it was uploaded in the past. I will revise it and inquire with the platform.

    • byjayce
      Instructor

      I checked, Seungnyeong-nim. For some reason, the latter part of lecture 6 was missing the implementation section. I have a record of uploading it, so its absence from the lecture is a bit puzzling. It has now been re-uploaded. As you mentioned, lectures 9 and 10 (now 10, 11) did end abruptly, but lecture 10 is intended to continue from the end of lecture 9. This part was created by dividing the section where the test is written first and then the specific implementation. Regardless, I apologize for the inconvenience caused by this oversight.

$77.00

Jayce's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!