プログラミング学習を始めるにあたって – 20250407

ブログ コンピュータ
ブログ

プログラミングを学習する方法としてプログラミング言語の書籍を購入し、それを教科書としてサンプルプログラムを実行したりしながら学習を進める方法があります。今の時代であれば書籍の代わりに配信されている動画で学習する方法もありますし、リモートで受講できるプログラミングスクールも良いでしょう。

始めてみると、プログラミングは文字と数字ばかりで、今時のGUIベースのアプリやゲームとのギャップで、挫折しまいがちです。
1冊読み終わる程度に学習を進めると何かが変わるのかというと、そのようなことも無く文字と数値ばかり終始することが多いと思います。

プログラミングがアプリやゲームなどソフトウェアを作ることは間違いではないのですが、プログラミング言語だけを学習しても実用的なソフトウェアが開発出来るようになるわけではございません。

例えば日本語が母国語の建築家が海外で建物立てるとして、建物立てる作業は現地の英語が母国語の作業員がおこなうとします。そうなりますと建築家が英語を学習することで現地作業員に指示を行うことが出来るようになります。

これをプログラミング学習に当てはめると、英語がプログラミング言語に相当します。ソフトウェアが建物だとすると、建築家がプログラマ、現地作業員がコンピュータに相当します。建築家(プログラマ)は既に建物(ソフトウェア)に対する知識を有しているので、英語(プログラミング言語)を学習することで、海外で建物をつくることが出来るようになります。
もし、建築家ではない人間が英語を勉強したとして、海外で建物を建てることが出来るでしょうか?

最新のAIに問いかけたところ、答えは「非常に難しい」でした。

作成したいと思うソフトウェアが決まっているのであれば、プログラミング言語学習も楽しいと思うのですが、そうで無い場合、目的もなく外国語を習得するようなもので、モチベーションの維持が困難です。

また、プログラミング言語をマスターしたとして、次に各分野ごとのソフトウェア開発の知識を習得する必要があるので、その道のりの遠さも挫折する要因の一つだと思います。

物事は学習するには基礎が大事ではあり、基礎が無い状態で物事を行うと無知からくる過失や事故などの可能性が高く、自動車運転免許など許可制としている場合もあります。しかしながらソフトウェア開発を個人が学習目的である場合、無知からくる事故が発生したとしても被害は限定的です。現代のパソコンの安全装置がある為、ソフトウェアの暴走等の被害は最小限に収めることが出来ると考えます。

まず、作るソフトウェアを決め、そのソフトウェア開発に向いたプログラミング言語を選定、開発ソフトの使い方の習得及びチュートリアルを実行。次にソフトウェア開発を初めてしまします。開発ソフトのチュートリアルで、「多分」プロジェクト作成を行うと思うので、そちらでスケルトンコードが生成されており、そのソースコードの解析からプログラミング言語の学習を始めると良いと思います。

少し乱暴ではありますが、最初にプログラミング言語を学習するのではなく、初めからソフトウェア開発をしてしまう方が、プログラミング学習の近道だと考えます。

次のステップとして生成AIをつかい、状況と知りたいことを伝えてコードを作ってもらいます。現状のAIによるコード生成は完璧ではないので、そのコードの問題点を探し、修正するとこでソフトウェア開発を進めながら、プログラミング学習を行うことが出来る良い教材になると思います。(生成AIの進化し完璧なコードが生成されるように成ったり、AIに対する質問の仕方が上手になり過ぎると、この方法は破綻して強います。)

生成してもらったコードの検証に単体テストの仕方を学ぶと良いでしょう。また、単体テストを行いやすい設計方法にも興味が湧いてくると考えられます。

以上が記事の内容になります。いかGeminiによる記事のまとめ文章に成ります。

まとめ:AI時代のプログラミング学習法 – 生成AIとテストで未来を切り拓く

プログラミング学習の道は、決して一本道ではありません。従来のように基礎文法から体系的に学ぶ方法も重要ですが、AI技術が急速に進化する現代においては、新たな学習アプローチが注目されています。

本記事では、まず「作りたいものを作る」という強い動機を起点とし、開発環境に触れ、生成されたスケルトンコードを解析しながら言語の学習を始めるという実践的な方法を提案しました。このアプローチは、早期の達成感と必要に応じた知識習得により、学習意欲を持続させる効果が期待できます。

さらに、生成AIの登場はプログラミング学習に革新をもたらします。AIにコード生成を依頼し、そのコードの問題点を探し、修正するというプロセスは、まるで「間違い探し」のような感覚で、実践的なデバッグスキルや問題解決能力を養う絶好の機会となります。

そして、生成されたコードの品質を保証し、より深く理解するために不可欠なのが「単体テスト」の導入です。個々のコードの振る舞いを検証する単体テストを学ぶことで、より信頼性の高いソフトウェア開発へと繋がります。また、テストを意識した開発を進める中で、自然と保守性や可読性の高い設計、つまり「テストしやすい設計」への興味が湧いてくるでしょう。

AIは強力な学習のパートナーとなり得ますが、決して万能ではありません。生成されたコードを鵜呑みにするのではなく、批判的な視点を持って検証し、基礎知識の習得も怠らないバランスの取れた学習が重要です。

「AI時代のプログラミング学習法」は、従来の学習方法に捉われず、最新技術を積極的に活用し、実践を通して深く理解していくための新しい道筋を示すものです。この変化の波を乗りこなし、生成AIとテストという強力なツールを手に、未来のソフトウェア開発を切り拓いていきましょう。

コメント