100日チャレンジ – 毎日プログラミングするとどのくらい上達するのか?

ICT・AI関連

「プログラミングスキルを磨きたい、自分だけのゲームを創造したい」という思いは多くの人に共通している。書籍やオンラインリソースを駆使しても、理想の作品を作り上げるのは容易ではない。そこで、私は一つの壮大な挑戦を開始した:100日間、毎日異なるゲームやツールを、ChatGPTなどの生成AIツールを利用してプログラミングすることで、どれだけプログラミング能力が向上するのかを探る「100日チャレンジ」である。この記事では、このチャレンジの目的、進行中の成果、そして今後の見通しについて紹介する。

100日チャレンジの目的

この100日チャレンジは、一般的なプログラミング学習法とは異なる、実験的なアプローチを採用している。目標は、毎日連続してプログラミングを行うことで、技術的なスキルや問題解決能力がどのように変化するかを探求することである。このプロセスを通じて、以下の疑問に答えることを目指している:

  • 毎日プログラミングを行うことで、技術的な能力はどのように進化するのか?
  • 連続した実践を通じて、新しいプログラミング概念や技術の理解がどのように深まるのか?
  • 時間管理や学習計画の調整など、持続可能な学習方法はどのように確立されるのか?

また、このチャレンジを通じて得られた知見や成果は、単に個人的なスキル向上に留まらず、将来的には広くコミュニティに還元されることを目標としている。具体的には:

  • 開発されたプログラムのソースコードは、書籍やウェブサイトを通じて他の開発者に提供する。これにより、同じようなプロジェクトに取り組む他の学習者が、実際のコードを参照し、自身の勉強に役立てることができる。
  • 学習過程で得られた教訓やヒントは、ブログ記事やチュートリアルなど、プログラミング入門として公開され、プログラミングを学ぶ他の人々の助けとなることを期待している。
  • このチャレンジの経験を基に、効率的な学習方法やプログラミング技術の向上戦略に関するガイドラインを提供することも考えている。

100日チャレンジの概要

目的:

この100日チャレンジは、個人でソフトウェアの設計技術及びPythonプログラミングスキルの向上を目指すために勉強する試みである。特に、ゲーム開発やツールの制作を通じて、実践的なプログラミング能力と問題解決スキルの向上を目標としている。

方法:

  • 100日チャレンジは、毎日プログラムを書き、そのプログラムの動作を一般に公開する。毎日約10時間をプログラミングに費やし、様々なプログラムを開発していく。このチャレンジではChat GPT(チャットGPT、GPT 4.0)など、あらゆるツールや知識を使って行う。
  • Python(パイソン)を用いて様々なゲームやツールを開発する。開発の過程はVisual Studio Codeを利用し、Gitを用いてソースコードのバージョン管理を行う。
  • 完成したゲームやツールはTwitterで動画形式で公開し、学習過程をTwitterやブログで定期的に共有する。これにより、進捗の透明性を保ちつつ、コミュニティとの相互作用を図る。

プロジェクトの種類:

  • 開発するプログラムは多岐にわたり、オセロ、マインスイーパー等のゲームや、discordbot等のツールなど、様々なジャンルと難易度のプロジェクトに挑戦する。これらのプロジェクトは、プログラミングのみならず、ソフトウェアの設計も自ら行うことで、ソフトウェア開発全般を学ぶことを目指す。

進捗のモニタリングと調整:

  • プロジェクトの進捗状況に応じて、計画を柔軟に調整する。例えば、特定の設計思想における深い探求や、新たなライブラリの採用など、学習の焦点をシフトする可能性がある。
  • 定期的な自己評価と反省を行い、必要に応じて学習方法やプロジェクトの方向性を変更する。このプロセスは、実験的なアプローチを取り、進行中の学習に対する適応能力を強化する。

コミュニティとの連携:

  • このチャレンジは、プログラミングコミュニティとの積極的な交流を促進する。Twitterやブログを通じて、学習のヒント、コードのスニペット、プロジェクトのアイデアを共有し、フィードバックを求める。
  • 著者の個人的な人脈(大学教授やソフトウェア業界など)に積極的に意見やアドバイスを求め、フィードバックを得る
  • コミュニティからのフィードバックや提案を当企画に取り入れることで、学習機会を確保し、主要な論点を整理することができ、学習過程をより価値のあるものにする。

この100日チャレンジは、単にプログラミングスキルを向上させるだけでなく、自己主導学習のプロセスを通じて、より効果的な学習方法とコミュニケーションスキルを習得することを目指している。

なぜこの企画を始めたのか?

大学生活は、新しいことに挑戦し、自分の限界を試す絶好の機会である。そんな中で、私は「通常では考えられないような、ユニークで創造的なプロジェクトに取り組みたい」と強く感じた。ソフトウェア開発は、その可能性を秘めた分野の一つである。特に、ChatGPTのような先進的なAI技術への興味がこの企画の原動力となった。AIとの対話を通じて新たなアイデアを得たり、コーディングの問題を解決する手助けを受けたりすることで、プログラミングのスキルを向上させることができると考えた。(100日チャレンジを始める前の著者は、プログラミングの学習は100時間未満であり、python初心者であった。)

私は過去に何度かプログラミングに挑戦し、挫折を経験したことがある。それらの経験から学んだ教訓は、今回の100日チャレンジを通じての学習に大きく役立っている。特に、ChatGPTを活用することで、過去にはなかった新しい学習のアプローチを取ることができるようになった。具体的には以下の通りである。

  • わからないことはChatGPTに疑問点を聞くことで、基本的な内容については解決すること。
  • バグが発生した際に、ChatGPTに聞くだけで、それが容易に修正される。
  • 単純なプログラムはChatGPTが書くことができ、それを模倣した学習が可能
  • 入門的なプログラムから、プロが書くようなプログラムまで作成することができる

Twitterコミュニティに参加することも、この挑戦における重要な要素である。まだ社会に出ていない初心者SEである私が、世界中のプログラマーや開発者との交流を通じて、新しいインスピレーションを得ることができる。また、他人に自らの成果を見てもらうことで、自己効力感を得ることができる。彼らの支援と励ましが、この挑戦を続けるための大きな原動力となっている。

社会人になる前に、このような意義深い挑戦に取り組むことは、私にとって非常に価値のある経験である。ソフトウェア設計能力やプログラミングスキルの向上だけでなく、創造的な思考や問題解決能力を高めるこの経験は、将来にわたって役立つと考えている。

おわりに

この100日チャレンジは、プログラミングスキルの向上という目標のもと、実験的なアプローチで進められている。現在進行中のこの企画は、私に重要な学びを提供しており、それらの経験は今後のプログラミングキャリアにおいて非常に価値あるものとなるだろう。最終的に、この100日チャレンジは単なる短期的なプロジェクトではなく、プログラミングスキルの成長と継続的な学びの序章となることを目指している。

100日が終了した後、私はこれらの経験をもとに、具体的かつ実現可能な目標を設定し、ソフトウェア開発に関する継続的な学びを追求する予定である。計画には、新しい技術の探求、独自のゲームやアプリの開発、コミュニティへの貢献などが含まれている。100日終了後、当プロジェクトに関する結果について報告するため、読者の方々には応援の程お願いしたい。

コメント

タイトルとURLをコピーしました