はじめに
プログラミングを始めたばかりの頃、何から手をつければいいのか分からず、難解なコードや読みづらいドキュメントに圧倒された経験を持っている方も多いと思います。
「毎日何時間も勉強しなきゃ」というプレッシャーから挫折してしまった方もいるでしょう。
GitHub Octoverse 2024レポートによると、GitHubの新規ユーザーの約30%がプログラミング初心者だそうです。さらに興味深いのは、AIツールの普及により、初心者がプロジェクトに実際に貢献できるようになるまでの時間が42%も短縮されているという事実です。
生成系AIが進化してきている今、プログラミングを始めるのは非常におすすめです。
私自身はエンジニアとしての意欲や向上心がそれほど高くないタイプです。技術好きで四六時中勉強しているわけではありません。でも開発自体は好きで続けたいと思っています。そんなモチベーションの低い自分のようなエンジニアにとってもAIはありがたい存在です。
今回は、AIを活用してゆとりを持ってプログラミングを学ぶ方法について考えます。AIをうまく活用すれば、独学でも無理なく成長できる時代になりました。AIは単なるコードの自動生成ツールではなく、あなたの「デジタルメンター」として24時間相談に乗ってくれる心強い味方です。
学習に必要な時間が短縮されるということは、無理なく続けられる可能性が高まるということです。プログラミングは本来、楽しみながら学べるクリエイティブな活動のはずです。「勉強しなきゃ」という義務感から解放されて、自分のペースで成長していきましょう。
この記事では、AIを活用した効率的な学習ステップ、ゆとりを持った学習計画の立て方、AIと相性の良い言語選び、そして実際のプロジェクト参加までのステップアップ方法をご紹介します。
「エンジニアになるなら、もっと頑張らないと」という思い込みから解放されて、自分らしいペースでプログラミングを楽しみましょう。AIという最強の味方を得た今こそ、エンジニアとして成長するチャンスです。
プログラミング学習におけるAIの役割
かつてプログラミング学習と言えば、分厚い参考書を読み込んだり、Stack Overflowで質問して回答を待ったり、先輩エンジニアに教えを請うたりする必要がありました。質問するにも「初歩的なことを聞いて迷惑をかけないか」と躊躇することも多かったはず。
しかし、AIの登場によってこの状況は劇的に変わりました。
AIがプログラミング初心者にもたらす大きなメリット
GitHub Octoverse 2024レポートによると、AIツールを活用する開発者は日々の開発タスクの55%でAIアシスタンスを利用しており、開発者の87%にとってAIが「デジタルメンター」として機能していると報告されています。これは初心者にとって特に大きな意味を持ちます。
- 24時間いつでも質問できる: 夜中に疑問が浮かんでも、すぐに回答が得られます
- 質問の質を気にしなくて良い: 「初歩的すぎる」「バカな質問」という概念がありません
- 何度でも繰り返し説明してもらえる: 理解できるまで何度でも異なる角度から説明してもらえます
- 自分のペースで進められる: 急かされることなく、自分の理解速度に合わせて学習できます
このようなプレッシャーのない学習環境は本当に素晴らしいものです。
AIツールの種類と基本機能
プログラミング学習に活用できる主なAIツールには以下のようなものがあります:
- GitHub Copilot: コードエディタに統合され、コーディング中にリアルタイムで提案してくれます。コメントを書くだけで、そのコメントに合わせたコードを生成してくれるため、実装方法がわからない時に特に便利です。
- Cursor: AIが組み込まれたコードエディタで、コードの説明やデバッグ、リファクタリングなどをAIに依頼できます。コード全体を一度に見せて質問できるため、大きなプロジェクトの理解に役立ちます。
- Cline: Visual Studio Code(VSCode)向けの拡張機能で、AIアシスタントとしてコードの作成や編集、コマンドの実行、ブラウザ操作など、複雑なソフトウェア開発タスクを支援します。
- ChatGPT / Claude: 汎用AIアシスタントですが、プログラミングの質問に対しても詳細な回答を提供します。概念の説明からコード例の提示まで幅広く対応し、プログラミングの概念を理解するのに最適です。
これらのツールは有料版もありますが、多くは無料プランでも十分に活用できます。まずは無料版から始めて、本当に必要と感じたら有料版を検討するのがおすすめです。
AIを「デジタルメンター」として活用する考え方
AIは単なる「答えを教えてくれるツール」ではなく、あなたの学習を支援する「メンター」として考えると効果的です。
例えば:
- 概念理解の手助け: 「オブジェクト指向プログラミングを初心者にもわかりやすく説明して」と尋ねれば、レベルに合わせた説明が得られます
- コードレビュー: 自分で書いたコードをAIに見せて「このコードをより良くする方法はある?」と聞けば、改善点を教えてくれます
- エラーの解決: エラーメッセージをコピペして「これはどういう意味?どう修正すればいい?」と聞けば、原因と解決策を教えてくれます
- 学習計画の提案: 「Pythonを週に5時間で3ヶ月かけて学びたい。どんな学習計画がいい?」と聞けば、段階的な計画を提案してくれます
重要なのは、ただ答えをもらうのではなく、「なぜそうなるのか」という理解を深めることです。AIに「なぜ」「どうして」と質問し、その説明から学ぶ姿勢が大切です。
自分のペースで質問できる気軽さ
AIの最大の利点は、「質問することへの心理的ハードルの低さ」かもしれません。人間のメンターに質問する場合、「忙しいところ申し訳ない」「こんな初歩的なことを聞いて恥ずかしい」といった心理的な壁があります。
AIには遠慮は不要です。何度同じことを聞いても、夜中に質問しても、初歩的なことを聞いても、AIは淡々と回答してくれます。この気軽さは学習を続けられる大きな要因になるでしょう。
AIを活用した効率的な学習ステップ
具体的にAIを活用してプログラミングを学ぶ方法について、段階的に見ていきましょう。
段階1:概念理解 – AIに基本概念を説明してもらう
プログラミングを学ぶ際、最初の壁は概念理解です。変数、関数、オブジェクト、クラス、メソッド…これらの概念を理解するのに、AIは非常に役立ちます。
例えば、「オブジェクト指向プログラミングとは何か、実生活の例で説明してください」とAIに尋ねると、教科書的な説明ではなく、実際の例を交えた分かりやすい説明が得られます。
また、「Pythonの関数とメソッドの違いをコード例を使って説明してください」と尋ねれば、抽象的な説明ではなく、実際のコードを見ながら違いを理解できます。
何か理解できない部分があれば、「もっと簡単に説明して」「別の例で説明して」と遠慮なく言えるのがAIの良いところです。
段階2:コード解説 – サンプルコードをAIに詳細解説してもらう
プログラミング学習では、実際のコードを読んで理解することが重要です。しかし、初心者にとってはコードを読むこと自体が難しい場合があります。
そんな時は、「このコードが何をしているのか、1行ずつ詳しく説明してください」とAIに依頼してみましょう。AIは各行の意味や、全体の構造、なぜそのコードが必要なのかなどを詳細に説明してくれます。
例えば、以下のようなPythonコードをAIに示して解説を求めると:
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib = [0, 1]
for i in range(2, n):
fib.append(fib[i-1] + fib[i-2])
return fib
AIは各行の意味、関数の目的、アルゴリズムの動作原理まで詳しく説明してくれます。これにより、コードの構造や書き方のパターンを学ぶことができます。
実際のAIの回答はこちら。理解できない箇所はさらにAIに深堀して質問できます。
このPythonコードはフィボナッチ数列を生成する関数です。1行ずつ説明します:
def fibonacci(n):
– フィボナッチ数列の最初のn項を返す関数を定義しています。if n <= 0:
– nが0以下の場合の条件分岐です。return []
– nが0以下なら空のリストを返します。elif n == 1:
– nが1の場合の条件分岐です。return [0]
– nが1なら、最初の項だけ(0)を含むリストを返します。elif n == 2:
– nが2の場合の条件分岐です。return [0, 1]
– nが2なら、最初の2項(0と1)を含むリストを返します。else:
– nが3以上の場合の処理です。fib = [0, 1]
– フィボナッチ数列の最初の2項(0と1)で初期化されたリストを作成します。for i in range(2, n):
– iが2からn-1までループします。fib.append(fib[i-1] + fib[i-2])
– 前の2項の和を計算し、リストに追加します。これがフィボナッチ数列の定義です。return fib
– 生成されたn項のフィボナッチ数列を含むリストを返します。このコードは、フィボナッチ数列の定義(各項が前の2項の和)に従って、指定された数(n)の項を計算して返します。例えば、fibonacci(6)は[0, 1, 1, 2, 3, 5]を返します。
段階3:エラー解決 – エラーメッセージをAIに投げて学びながら解決する
プログラミング学習において、エラーは避けられません。むしろ、エラーから学ぶことが多いです。
エラーが出たら、エラーメッセージをコピーして「このエラーはどういう意味で、どう解決すればいいですか?」とAIに尋ねてみましょう。AIはエラーの意味を説明し、解決策を提案してくれます。
例えば、「TypeError: ‘str’ object is not callable」というエラーが出たら、AIに尋ねることで、「文字列型のオブジェクトを関数のように呼び出そうとしている」という意味と、「どこかで変数名が関数名と同じになっている可能性がある」という解決策を教えてもらえます。
エラーの意味を理解することで、同じ間違いを繰り返さないようになります。無駄な時間をエラー解決に費やすことなく、効率的に学習を進められます。
GitHub Octoverse 2024レポートによると、AIツールを使用するチームはバグを50%以上素早く修正できるようになっています。これは個人の学習にも当てはまるでしょう。エラーに悩む時間が短縮されれば、その分学習に集中でき、挫折感も減ります。
段階4:コード改善 – 自分で書いたコードをAIに改善してもらい差分から学ぶ
自分でコードを書けるようになったら、次は改善方法を学びましょう。自分で書いたコードをAIに見せて「このコードをより効率的にする方法はありますか?」「このコードをより読みやすくするには?」と尋ねてみましょう。
AIは、より効率的なアルゴリズムや、より読みやすいコードの書き方、ベストプラクティスなどを提案してくれます。例えば、以下のような単純なコードでも改善点があります:
# 改善前
result = []
for i in range(10):
if i % 2 == 0:
result.append(i)
これをAIに改善してもらうと、リスト内包表記などを使った以下のようなコードが提案されるかもしれません:
# 改善後
result = [i for i in range(10) if i % 2 == 0]
このように、自分のコードと改善されたコードを比較することで、より良いコードの書き方を学べます。これはAIを使わずに学ぶのと比べて非常に効率的です。
ゆとりを持った学習計画の立て方
AIを活用しながら、どのようにゆとりを持って学習計画を立てればよいのでしょうか?
週に何時間くらい投資するか現実的に考える
多くの学習計画は失敗します。その理由の一つは、非現実的な時間配分にあります。「毎日3時間勉強する」といった計画は、一般的な社会人にとって続けるのは困難です。
週に何時間プログラミングに費やせるか、正直に考えてみましょう。たとえば、平日は1時間、週末は2時間、合計週7時間といった具合に。ただ最初は可能な限りハードルを下げることをおすすめします。最終的には1日1時間以上の勉強時間を目指すことは問題ないですが、勉強の習慣がない人がいきなり1時間の勉強をするのは難しいことが多いです。
無理のない時間からスタートして、習慣化されたら少しずつ時間をのばしていきましょう。最初は最低5分勉強することから始めるのがおすすめです。1か月程度続いたら、無理のない範囲で少しずつのばしていきます。
そして、その時間内でできることに集中します。GitHub Octoverse 2024レポートでは、AIを活用することでコード完成までの時間が46%短縮されると報告しています。限られた時間でも、AIのサポートがあれば着実に前進できるのです。
小さな目標設定と達成感の積み重ね
大きな目標(「Webアプリを作る」「Pythonをマスターする」など)は、とかく挫折の原因になりがちです。それよりも、小さな目標を設定して、一つ一つクリアしていく方が効果的です。
例えば:
- 「今週は変数と基本データ型を理解する」
- 「週末までに簡単な計算機プログラムを作る」
- 「今月は関数の概念を理解して5つの関数を書く」
こうした小さな目標なら、限られた時間でも達成でき、その積み重ねがモチベーションになります。AIに「初心者向けの小さな目標リストを提案して」と依頼すれば、レベルに合った目標設定のアドバイスも得られます。
学習疲れを防ぐためのバッファの取り方
学習計画を立てる際は、「バッファ」(余裕)を持たせることが重要です。例えば、週に8時間の学習時間を確保できるなら、実際には6時間分の計画を立て、2時間は「予備」として残しておきます。
これにより:
- 予定外の用事が入っても焦らない
- 理解に時間がかかるトピックがあっても調整できる
- 達成感を得やすくなる(計画以上に進められた時)
バッファがあれば、「遅れを取り戻さなきゃ」というプレッシャーが減り、ゆとりを持って学習を続けられます。
AIと相性の良いプログラミング言語選び
GitHub Octoverse 2024レポートによると、Pythonが初めてJavaScriptを抜いて最も使用される言語になりました。10年にわたるJavaScriptの首位が終わり、新時代の幕開けです。
初心者にとって、どの言語から始めるべきかは重要な選択です。特にAIと相性の良い言語を選ぶことで、学習効率が大きく変わります。
Pythonの首位と初心者向け言語としての魅力
Pythonが最も使用される言語になった理由は、その読みやすさと書きやすさにあります。特に初心者にとって、Pythonは以下の点で優れています:
- シンプルな文法: 中括弧やセミコロンの代わりにインデントを使うなど、読みやすいコードを書きやすい
- 豊富なライブラリ: データ分析、Web開発、機械学習など様々な分野のライブラリが揃っている
- 大きなコミュニティ: 困ったときに参考にできる情報が豊富
- AIとの相性: 特にAIツールはPythonのコード生成と説明が得意
GitHub Copilotなどのツールも、Pythonのコード提案が特に優れています。初めてのプログラミング言語としては、現在最もおすすめできる選択肢の一つです。
使用目的に合わせた言語選択のヒント
とはいえ、目的によって最適な言語は異なります:
- Web開発に興味がある: JavaScriptとHTMLは避けて通れません
- モバイルアプリ開発: SwiftやKotlinが人気です
- データ分析: PythonとRが定番
- ゲーム開発: C#やC++が役立ちます
大切なのは、「何を作りたいか」を先に決めること。目的があれば学習のモチベーションも維持しやすく、必要な言語も自ずと決まります。
AIに「〇〇を作りたいです。どの言語を学ぶべきですか?」と質問すれば、目的に合った言語の提案と、その言語を選ぶ理由を教えてくれます。
学習コストとキャリア展望のバランス
GitHub Octoverse 2024レポートでは、TypeScript、Go、HCL、Kotlinが急速に成長している言語として紹介されています。将来性を考えるなら、こうした言語も選択肢に入るでしょう。
学習コスト(難易度や学習時間)とキャリア展望のバランスを考えることが重要です。必ずしも「最新の言語」や「最も需要のある言語」を選ぶ必要はありません。
むしろ、自分が楽しく学べる言語、AIの支援を得やすい言語から始めて、徐々に視野を広げていくアプローチがおすすめです。
実践的なプロジェクト参加へのステップアップ
理論だけでなく実践的なプロジェクトに参加することで、プログラミングスキルは大きく向上します。GitHub Octoverse 2024レポートによると、オープンソースプロジェクトへのコントリビューターが25%増加しており、140万人の新しい開発者が初めてオープンソースに貢献しています。
AIの助けを借りて、あなたもその一人になることは十分可能です。
オープンソースプロジェクトにAIを使って参加する方法
オープンソースプロジェクトは敷居が高いと思われがちですが、AIを活用すれば初心者でも貢献しやすいです:
- プロジェクトの選定: 自分の興味がある分野や使っている言語のプロジェクトを探します
- プロジェクト理解: AIに「このプロジェクトの概要と構造を説明して」と依頼
- 貢献方法の確認: プロジェクトの「CONTRIBUTING.md」ファイルをAIに読ませて、貢献方法を理解する
- 課題の選択: 初心者向けの課題(「good first issue」などとラベル付けされたもの)を選ぶ
- 解決策の開発: AIに「この課題に対する解決策を考えて」と相談
- コードレビュー: 書いたコードをAIにレビューしてもらう
- プルリクエスト: 修正したコードを提出する
AIは各ステップでサポートしてくれますが、最終的に提出するのはあくまであなた自身のコードです。問題を理解し、解決策を考え、実装するプロセスを通じて確実にスキルアップできます。
初心者向けの「good first issue」の探し方
GitHub上で「good first issue」や「beginner friendly」とラベル付けされた課題は、初心者でも取り組みやすいよう配慮されています。
探し方:
- GitHubで「good first issue」と検索
- 自分の興味のある言語でフィルター(例:「good first issue language:python」)
- スターの多い人気プロジェクトから探す
または、「firstcontributions.github.io」のような初心者向けサイトを利用するのも良い方法です。
AIに「Pythonの初心者向けオープンソースプロジェクトを教えて」と尋ねれば、具体的なプロジェクト名や貢献方法を提案してくれます。
コントリビューションの流れとAIの活用ポイント
実際にオープンソースプロジェクトに貢献する流れは以下のようになります:
- リポジトリをフォーク: プロジェクトのコピーを自分のGitHubアカウントに作成
- ローカルにクローン: フォークしたリポジトリをローカル環境にダウンロード
- ブランチを作成: 作業用の新しいブランチを作成
- コードを修正: 課題を解決するコードを書く(ここでAIを活用)
- テストを実行: コードが問題なく動作するか確認
- 変更をコミット: 修正内容を保存
- 変更をプッシュ: 修正をGitHubにアップロード
- プルリクエストを作成: 元のプロジェクトへの変更提案を提出
各ステップでAIを活用できます:
- コード理解: 「このコードの役割を説明して」
- 修正案: 「この課題を解決するコードを書いて」
- テスト: 「このコードをテストする方法は?」
- コミットメッセージ: 「この変更内容を説明するコミットメッセージを書いて」
- プルリクエスト文: 「この変更のプルリクエスト説明文を書いて」
GitHub Octoverse 2024レポートによると、AIを活用したチームのプルリクエストのマージ率が24%向上しています。これは個人の貢献にも当てはまるでしょう。
実際の例:初めてのコントリビューターが多いプロジェクト
GitHub Octoverse 2024レポートでは、最も初めてのコントリビューターを集めているプロジェクトとして以下が挙げられています:
microsoft/vscode
(Visual Studio Code)home-assistant/core
(ホームオートメーションプラットフォーム)microsoft/PowerToys
(Windows向け生産性ツール)
これらのプロジェクトは、初心者向けの課題が多く用意されており、コミュニティのサポートも手厚いのが特徴です。
AIを使った学習の落とし穴と対策
AIを活用した学習には、いくつかの注意点もあります。AIを活用してゆとりを持ちながらも着実に成長していくためには、これらの落とし穴を避ける必要があります。
コピペ依存症にならないための工夫
AIが提供するコードをそのままコピー&ペーストして満足してしまうと、本当の理解には繋がりません。
これを避けるためのポイント:
- AIのコードを見たら、いったん画面から目を離し、自分の言葉で説明してみる
- AIのコードを参考にしつつ、自分で一から書き直してみる
- 「このコードがなぜ動くのか」をAIに説明してもらい、理解を深める
- コードの一部を変更して、どう動作が変わるか実験してみる
GitHub Octoverse 2024レポートでは、開発者の76%がAIツールにより「より良いコード」を書けると報告しています。しかし、これは「理解した上で」活用している場合の話です。
理解せずにAIのコードを使うリスク
AIが生成したコードをそのまま使用する危険性:
- トラブル発生時に対応できない
- コードのカスタマイズや拡張ができない
- セキュリティリスクの見落とし
- 根本的な原理の理解不足による学習の停滞
AIが提案するコードは必ずしも最適でない場合もあります。理解せずに使うと、長期的には成長の妨げになる可能性があります。
適切なタイミングでAIに頼る判断力
「すべてをAIに頼る」でも「AIに全く頼らない」でもなく、適切なバランスを見つけることが重要です:
- 最初は自分で考える: 問題に直面したら、まず自分で考える時間を取る
- 行き詰まったらAIに相談: 15〜30分考えても解決策が見つからない場合はAIに相談
- AIの回答を批判的に検討: AIの提案を鵜呑みにせず、なぜそれが正しいのか考える
- 学んだことを自分の言葉でまとめる: AIからの学びを自分のものにするため、ノート等に整理する
この「自分で考える→必要に応じてAIに相談→理解を深める」というサイクルが効果的です。
独力で解決する力も並行して育てる重要性
AIに頼りすぎると、独力で問題を解決する力が育ちません。以下のバランスを意識しましょう:
- 定期的に「AIなし日」を設定し、完全に自力でコーディングする日を作る
- エラーが出たら、まずエラーメッセージを自分で解読してみる
- デバッグのテクニックを意識的に学ぶ
- 問題を小さく分解し、一つずつ解決する思考法を身につける
AIを活用しつつも、自分自身の問題解決能力を育てることが長期的な成長につながります。
AIを使った継続的学習法
学習を継続していく部分でもAIにサポートしてもらいましょう。
AIが提案する関連トピックからの学習拡張
AIは「このトピックを学んだ後は、次に何を学ぶべきか」という質問に的確に答えてくれます。
学習の流れをAIに相談しながら進めると、無理なく知識を拡げられます:
- あるトピックを学ぶ
- AIに「これに関連して次に学ぶべきことは?」と尋ねる
- 提案されたトピックの中から興味あるものを選ぶ
- さらに理解を深める
この繰り返しで、楽しみながら知識を広げられます。
小さな成功体験の積み重ねによるモチベーション維持
学習を継続するには、定期的な成功体験が必要です。小さなプロジェクトを完成させる喜びが、次の学習へのモチベーションになります。
- 週末に完成できる小さなプロジェクトを設定する
- 学んだことを活かして、実用的なスクリプトやツールを作る
- 作ったものを友人や同僚にシェアし、フィードバックをもらう
- 成功体験を記録し、進歩を可視化する
AIに「学んだ〇〇を使って、週末で作れる小さなプロジェクトのアイデアは?」と尋ねれば、レベルに合ったプロジェクト案を提案してくれます。
まとめ
プログラミング学習は、AIという強力な味方を得て、より余裕を持って取り組めるものになりました。GitHub Octoverse 2024レポートが示すように、AIの活用によって学習時間は大幅に短縮され、初心者でもより早く実践的なスキルを身につけられるようになっています。
AIを味方につけることで、無理せず効率的に学べる時代
AIは単なるコード生成ツールではなく、24時間対応のメンターとして機能します。質問への回答、コードの説明、エラーの解決、学習計画の提案など、様々な場面でサポートしてくれます。これにより、「わからない」で挫折することなく、自分のペースで学習を進められます。
技術的なハードルが下がっても、「学ぶ姿勢」が重要
AIがサポートしてくれるとはいえ、学ぶのはあくまであなた自身です。AIを使いこなすための「学ぶ姿勢」が重要です:
- 単にコードをコピペするのではなく、理解しようとする姿勢
- 面白いと思ったことに積極的に取り組む好奇心
- 小さな一歩を積み重ねる忍耐力
- 自分のペースを尊重する自己理解
ゆとりを持ちながらコツコツ成長していくマインドセット
比較的モチベーションが低くても、なるべく楽しみながらコツコツ成長していくことは十分に可能です。AIという強力な味方を得た今こそ、無理をせず、自分のペースでエンジニアとしての道を歩んでいくチャンスです。
次のステップ
プログラミングに挫折した経験がある方、時間がなくて諦めていた方、モチベーションが続かなかった方、ぜひAIを活用した学習に再挑戦してみてください。技術的なハードルは確実に下がっています。
次のステップとして:
- 興味のある言語やトピックを選ぶ
- AIツール(GitHub Copilot、ChatGPT、Claudeなど)を一つ選んで使ってみる
- 小さな目標を設定して、AIのサポートを受けながら達成する
- 成功体験を積み重ねて、少しずつスキルを拡張していく
エンジニアリングの世界は常に変化していますが、AIという強力な学習支援ツールの登場で、その変化に対応しやすくなる時代になったと私は思います。自分のペースを大切に、楽しみながらプログラミングの世界を探検してください。
参考リソース
GitHub Octoverse 2024レポート
- https://github.blog/news-insights/octoverse/octoverse-2024/
おすすめのAI学習ツール
- GitHub Copilot: コードエディタ内でリアルタイムにコード提案
- Cursor: AIサポート機能が統合されたコードエディタ
- ChatGPT / Claude: 汎用AIアシスタントとしてプログラミング学習をサポート
- Cline: Visual Studio Code(VSCode)向けのAIアシスタント拡張機能
初心者向けオープンソースプロジェクト
- first-contributions: 初めてのコントリビューションを練習できるリポジトリ
- freeCodeCamp: オープンソースの学習プラットフォーム
- EbookFoundation/free-programming-books: 無料プログラミング教材のコレクション
- microsoft/vscode: Visual Studio Code(初心者向け課題あり)