メンターシップ - メンティー向け
応募プロセス
応募は、Google Summer of Code やLFXメンターシップ などの各プログラムのウェブサイトから提出されます。
提案書
Jaegerのメンターシッププロジェクトには多数の応募(1プロジェクトあたり最大150件)があるため、応募者にはプロジェクトの提案書を提出していただく必要があります。これにより、最適な候補者を見つけることができます。特定のプログラムのガイドラインで提案書の提出が義務付けられていない場合でも、カバーレターなどの他の応募書類に含めてください(ハイパーリンクよりもPDF文書が推奨されます)。
提案書では、以下のトピックをカバーすることを期待します。
- あなたについて
- なぜこの特定のプロジェクトに興味があるのですか?
- あなたが成功するために役立つどのような関連する経験やスキルを持っていますか?
- (オプション)どのようなオープンソースの経験がありますか?注目すべきプルリクエストへのリンクを教えてください。
- メンターシップ期間中のあなたの時間的なコミットメントは何ですか?
- プロジェクトについて
- このプロジェクトで何をすべきかをどのように理解していますか?
- どのような技術的な課題を予見し、それらにどのように対処することを提案しますか?
- どのようにプロジェクトに取り組む予定ですか(ロードマップ、マイルストーン、スケジュール)?
提案書が長ければ長いほど良いというわけではありません。重要なのは質であり、どの候補者が問題をより良く理解し、それを解決する方法を把握しているかを示すことです。Jaegerが何をするのか、どのように行うのかを説明する必要はありません。代わりに、プロジェクトの特定の問題に焦点を当て、課題と解決策について考えてください。
ブートキャンプ
プロジェクトをより良く理解し、合理的な解決策を思いつくためには、Jaegerとそのコードベースに慣れておくことが常に役立ちます。以下の手順を強くお勧めします。
- このブログ記事 やこのビデオ などのJaegerのチュートリアルをいくつか実行してください。
- HotRODデモを自分で実行してください 。ブログやビデオは古くなっている可能性があるため、実際に手を動かすのが良いでしょう。
- Jaegerアーキテクチャ を確認し、コンポーネントを理解してください。
- 各リポジトリをフォークしてクローンし、プロジェクトをローカルでビルドして実行できるようにしてください 。
- コードに署名して貢献する方法 など、ベストプラクティスに従って貢献する方法を学んでください。
- Jaegerリポジトリ全体で見つけることができる簡単な未解決の問題をいくつか解決してみてください。
評価基準
評価に使用する正確なチェックリストはありませんが、次の基準は大きな影響を与えます。
- 候補者は、JaegerにマージされたいくつかのPRを持っており、それらは以下を示しています。
- コードベースの理解、
- 開発ワークフローの理解、
- コーディングと問題解決のスキル。
- 以下を示す高品質の提案書
- 問題の十分な理解、
- 実施された技術的なデューデリジェンス、
- 問題を解決するための実行可能なアプローチ。
- 他のオープンソースプロジェクトなどで完了した以前の高品質な開発タスクの証拠。
メンターシップ
Jaegerメンティーとして選ばれたことおめでとうございます!プロジェクトを開始するときには、気が遠くなることもあるかもしれません。そこで、始めるにあたって役立ついくつかのガイドラインを以下に示します。
オンボーディングチェックリスト
- CNCF行動規範 を確認してください。これは、メンターとメンティーの両方が、安全なコミュニケーション環境を確保するために従うべきガイドラインを提供します。
- CNCF Slack でアカウントを作成し、写真や画像でパーソナライズして、目立つようにしましょう。
- メンターがあなたをプライベートチャンネルに追加できるように、あなたのSlackアカウントハンドルをメンターに送ってください。あなたとメンターだけのチャンネルと、過去と新規のメンティーとメンター全員が一緒の2つ目の永続的なプライベートチャンネルを作成します。
- #jaeger パブリックチャンネルに参加してください。ここではJaegerコミュニティから助けを得ることができます。
- メンター、他のメンティー、Jaegerコミュニティに「こんにちは」と挨拶し、もしよければ、自己紹介を数文でしてください。
- 開発ワークフローに関する指示が記載されている、貢献ガイド(#1 、#2 )を読んでください。
- Jaegerドキュメント に慣れてください。これには、Jaegerのアーキテクチャ概要、すべてのCLIフラグの包括的なリストなどが含まれています。
- 要件をしっかりと理解するために、GitHubのissueを注意深く読んでください。自分自身、メンター、コミュニティが後で参照できるように、そのissueに不明な点を質問してください。
進捗ログを記録してください。
メンターシップはリモートであるため、着実に進捗を遂げていることを確認し、メンターに最新情報を伝えるための最良の方法は、定期的に進捗ログを記録することです。
- 学期の開始時に、このGoogleドキュメントテンプレート をコピーして、メンターと共有してください(コメントを許可してください)。
- 毎週の初めに、達成したい目標のリストを記述した、その週のセクションを作成してください。
- 毎日の終わりに、対応する目標の下に、日付入りのログエントリを追加し、何をしたかの簡単な概要を記述してください。
- たとえば、「XYZドキュメント{link}を読んだ」という1文だけでも構いません。
- 理想的には、行った作業が今後の計画にどのように影響するかについて、いくつかの結論/決定を記録してください。
- 特定の日にプロジェクトに取り組むことができなかった場合は、透明性のために、それもログに記録してください。
ログが重要な理由
- ログによって、メンターはあなたの進捗状況を把握でき、進路修正を行うことができます。
- 1週間の目標を立てることができない場合は、誤解の兆候であり、メンターはあなたと協力して、要件とアプローチを明確にする必要があります。
- 多くのプロジェクトでは、特定の問題を解決するための最善の方法を調査/分析する必要があります。発見事項を書き留めることは、自分自身の理解を整理し、メンターからタイムリーなフィードバックを得るのに役立ちます。メンターもその特定の分野に詳しくない可能性があり、プロジェクトに影響を与える情報を調査、統合、提示することをあなたに依存していることを忘れないでください。
- 明確な文章を書くことは、ソフトウェアエンジニアにとって最も重要なスキルの1つです。コーディングスキルだと思うかもしれませんが、より上級になるにつれて、文章はあなたのアイデアを伝え、チーム/コミュニティとの連携を図るための方法になります。このメンターシップを利用して、文章作成スキルを磨いてください。
- メンターシッププロジェクトを、進捗を遂げ、目標を達成する責任を伴う仕事として捉えてください。
ヒント
- 質問をしてください!良い経験則は、ドキュメントやコードで答えを見つけられない時間が1時間以上続く場合は、遠慮せずにメンターにヒントを求めることです。#jaeger および#jaeger-mentorships Slackチャンネルで質問することもできます。
- 比較的大きな変更に着手する前に、何を、なぜ、どのような潜在的な課題や不明な点があるのかについての計画を立ててください。これをJaegerの新しいissue として文書化することを検討してください。
- 一度に小さな成果に取り組み、進捗に合わせて小さな機能強化を行ってください。大きなタスクを小さなピースに分解すると、一見すると手ごわいタスクを管理しやすくすることができます。また、レビュー担当者の認知負荷を軽減するのにも役立ちます!😀
- アプローチが最終的にうまくいくかどうか不確実な状況で、問題を分解することは非常に困難な場合があります。基本的な概念実証は、最終的な成果を保証し、個別に取り組むべきサブ問題を強調するのに役立つだけでなく、さまざまな代替ソリューションを調査し、最適なオプションを特定する機会も提供します。
- 月次のJaegerビデオ通話に参加することを歓迎します。
- ユニットテストを作成し、該当する場合は、ライブ統合テストをローカルで実行してください。テストは、書いたものが機能することを自分自身で保証し、コードの読者に期待される動作を文書化し、将来のコントリビューションによる回帰を防ぎます。
- (例えば、仲間のメンティーからの)他の人のPRを、親切で建設的なフィードバックでレビューすることをお勧めします。これは、優れたコーディングプラクティスについて学び、同時にコードベースに慣れるのに最適な方法です。
- 改善点を自由に提案してください!たとえば、開発ワークフローで多くの摩擦が発生している場合は、より良いドキュメントや自動化を通じて開発者エクスペリエンスを向上させるためにできることはありませんか?