プログラミング言語というスキルを手に入れる
プログラミングの学習は「仕事で使う」または「就職する」または「学校のカリキュラムにある」からという理由から始めることが多いのではないだろうか。
仕事で取り組む場合は、目的がはっきりしているので学習のルートは最短にしやすい。もちろん学習の具合は個人の能力に依存するところが多いのだが、だた漠然と学習するのに比べればモチベーションは高い。
プログラミングのスキルは対象のプログラミング言語を使い込んでいくことで向上させることができる。最近は開発環境そのものがコーディングのアシストを行ってくれることもあり、初期の段階からクオリティの高いコードを書くことも可能になってきている。恵まれた環境だ。
しかし、抜本的にスキルの向上を図りたい場合、日ごろ使っているのプログラミング言語とは別の言語を学ぶとよいという考え方がある。これはプログラミング言語のスキルというよりも、新しい体験や新しい概念を通じて、メインで使っているプログラミング言語スキルに新しいスキルを追加するような効果を狙っている。
例えば、普段はPythonを使っているとする。ここでC++やC#を学んでみると、アルゴリズムの整理やデータ構造の組み方にオブジェクト指向の概念を持ち込みやすくなる。コードを書く前の設計の段階でオブジェクト指向の視点からの分割や整理ができるようになる。
今度はC言語を学んでみる。より低レベルなコーディングや高速に動作するコード、オペレーティングシステムの能力を直接利用する感覚がわかるようになってくる。PythonからCで開発したコードをリンクして使ったり、一部の処理をC言語で書き換えたりするといったこともできるようになる。Pythonというスキルに対して、別のスキルを手に入れることができるのだ。
そんなわけでこれまで、まずはWindowsでC言語プログラミングに取り組んでみるという視点から、基本的な話題を取り上げてきた。抽象度の高いプログラミング言語や人気の高いスクリプト言語ではなく、環境も含めて自分でC言語の開発環境をセットアップするという方法は、最近の記事としては珍しかったのではないかと思う。C言語の学習というよりも、新しい経験として取り組んでみるという視点からまとめてきたつもりだ。