강의

멘토링

커뮤니티

Programming

/

Programming Tool/Software

自分で作って学ぶGit Internals

バージョン管理ツールの事実上標準であるGitの動作を深く学び、自分で作ってみてください!

難易度 初級

受講期間 無制限

  • Jayce
Git
Git
internals
internals
Go
Go
system-programming
system-programming
Git
Git
internals
internals
Go
Go
system-programming
system-programming

受講後に得られること

  • Gitの内部動作

  • システムプログラミング

自分で作って学ぶGit Internals 📖

Build From Scratch ! Build Your Own Git !

git checkoutgit commitコマンドをGitに入力すると、Gitの内部でどのような動作をするのか説明できますか?


受講対象/講義目的 🙆‍♀️

知識共有者が考える受講生の種類

  • よく使う技術のUnder the hoodを探求したい人
  • 工学的に深い探求の経験を望む人
  • Gitの動作原理をより正確に理解したい人

受講生の悩み&解決方法

  • 🥲 面接で求める技術に対する深い探求はどうするのか?
  • 🧐Gitを書くだけで、どう動作するのか気になったこと?
  • 🤨システムプログラミングプロジェクトとして適切なものはありませんか?

講義を聞いた後、受講生の変化

  • 非常に有名なツールの深い工学的原理を探求した経験を持つ開発者
  • よく使う言語でシステムプログラミングプロジェクトを進めた開発者
  • Gitの動作を正確に知って使用できる開発者

講義の特徴✨

  • 講義はGitの内部動作を実装する実践を進めます。
  • 講義の練習はGo言語で行われますが、すべての言語で簡単に置き換えられる文法のみを使用します。
  • 使用されるGo文法の説明も含まれています。
  • システムプログラミング学習と重要なシステムプログラミングの練習を進めることができます。

学習内容📚

  • Intro:講義を聞きやすくするための基本的なGoの説明、システムプログラミングのための関数について簡単に説明し、授業の概要を盛り込んでいます。
  • Git Internals: Gitの内部コンポーネントを一つずつ開発し、具体的な動作を勉強します。
  • Git Overview: Git のコア動作であるバージョン管理とブランチング、リモートの動作が具体的にどのようなステップに沿って、どの内部コンポーネントを使用して動作するか探索します。

予想される質問 Q&A 💬

Q. 講義はGo言語で進行しますが、Goを知る必要がありますか?
A. 講義で他の言語とマッチングする基本的な制御や繰り返し構文、割り当て型などを説明します。文法が非常に単純な言語です。

Q. システムプログラミングを行うことを知っておくべきですか?
A. 講義で基本的なシステムプログラミングを教えてくれます。 講義の実習で使うシステムプログラミングは複雑ではありません。

Q. Git命令講義は含まれていますか?
A. レッスン中に Git 命令を説明しますが、Git を初めて見る人に説明するほど詳細ではありません。


受講前の注意事項📢

学習資料

  • 理論学習のための講義資料PDF
  • 結果コードを確認できるGithub Repository

選手の知識と注意事項

  • 自分の言語で500文字以上のプログラムを書く能力

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Gitの内部動作が気になる人

  • Deep Diveで魅力的な開発者になりたい人

  • 世界的なオープンソースを深く勉強したい人

前提知識、
必要でしょうか?

  • 独自のプログラミング言語

こんにちは
です。

406

受講生

17

受講レビュー

4

回答

4.8

講座評価

2

講座

こんにちは。Jayceです。現在、ユニコーンスタートアップでプラットフォームエンジニアとして働いています。

私は起業も経験し、大規模サービスのための開発や開発者のためのプラットフォーム構築も行いながら、短期間のうちにサービス開発者と呼ばれる役割とプラットフォームエンジニアと呼ばれる役割の両方を遂行してきました。その過程で、「優秀なソフトウェアエンジニアにはどのような特徴があり、どうすればそのような人材になれるのか」を自分なりに確立することができました。

一言で言えば、私はディープダイブ(Deep Dive)する人を、共に働くエンジニアとして魅力的だと感じます。単に与えられた仕事を機械的にこなすだけの人は、ある状況に対して最善の選択を下すまでに、比較的長い時間がかかるように思います。一方で、なぜこのような決定を下すべきなのか、技術の裏側にある工学的な理由を掘り下げて理解している人は、すぐに他の意思決定においても工学的に説得力のある主張ができる人になります。

私が作る講義は、新しい技術を浅く習得することを目標とはしていません。私はジュニア開発者が、素晴らしいチームメイト、魅力的な開発者、そして芯の強い技術者になれる方法を伝えたいと考えています。より魅力的なエンジニアになるために、もう少し深い内容を学んでみたいという方々に適した講義を、精一杯の努力を込めて作り上げます。 🙂

カリキュラム

全体

36件 ∙ (6時間 46分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

1件

4.0

1件の受講レビュー

  • devgmonk6353님의 프로필 이미지
    devgmonk6353

    受講レビュー 1

    平均評価 4.0

    修正済み

    4

    100% 受講後に作成

    9〜10講くらいまで受講しました。 9講の後半が途中で切れています。講義中に話が終わっていないのに、映像が止まります。 10講は前半が切れていると見ましたが、9講の内容の後半から始まっていました。一部編集されており、9講の最後の部分と一致する部分がないため、9講の終わりからすぐに始めるのは難しいです。 コード説明時、Go固有の文法やGoのテストフレームワークを使用していますが、該当文法やフレームワーク関数についての説明がありません。 講義紹介および講義序盤の説明では、他の言語の使用者も簡単に学べるとありますが、そうではないようです。(検索してみたところ、Pythonが似た文法を使うとのことです) 6講では実際の実行を見せなかったため、元々このように講義が終わるのかと思いましたが、9講と10講を見ると、もしかすると6講も実際にテスト実行した部分が切れているのではないかと思いました。 ---------------------------------------------------------- 以前の1点から修正しました。 迅速なフィードバックと修正が良かったです。 完講後の評価ですが、各機能のテストコード作成、機能実装の順で講義が進む点が残念でした。 テストコードを作成する映像の時間が実際の実装より長いのですが、この講義の核心はタイトルのように直接Gitの内部機能を実装することであるため、テストコードは事前に作成したものを機能実装講義の前か後に「この機能にはこのようなテストケースが必要です」と見せる方が、講義のテーマにより集中できると思います。実装の方がむしろ短いため、テストケースを作成する勉強をしている感じの方が強かったです。 講義はGitをこれから始める方や、少し知っているレベルであれば、もう少し勉強した後に聞くことをお勧めします。内部動作の基礎から教えてくれますが、適切な知識があった方が理解がより楽になると思います。 お疲れ様でした。

    • byjayce
      知識共有者

      こんにちは。ご不便をおかけしているとのこと、申し訳なく思います。言い訳がましくなってしまい、申し訳ございません。 1. Goの文法はレッスンの冒頭で簡単に説明しておりますが、おっしゃる通りフレームワークについて説明はしておりません。理由は、テストという方式は実はGoにおいて特別な方式ではないためです。むしろGoで特殊な方式のテスト方法より、一般的に知られているBDDフレームワークを使って作成いたしました。それでも、私の書いたコードに慣れていなかった可能性もあるかと思います。 2. 途中で途切れている部分があるとのこと、大変申し訳ございません。どうなっているのかと思います。過去にアップロードした時と少し変わっているように見えます。修正してプラットフォームに問い合わせてみます。

    • byjayce
      知識共有者

      確認してみました 승녕님。6講の後半部分はなぜか実装部分が消えていました。私がアップロードした形跡はあるのですが、講義からなくなっていて少し腑に落ちません。現在、再度アップロードしました。 9講と10講(現在の10、11講)は仰る通り急に終了していますが、10講の冒頭部分と9講の後半部分が繋がる講義で間違いありません。テストを先に作成し、具体的な実装を作成する部分を分けて作った箇所です。 いずれにせよ、不注意によりご迷惑をおかけして申し訳ありません。

¥12,205

Jayceの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!