Pythonからはじめる
いろんなプログラミング言語があるけどPythonからはじめたらどうだろう。大学や専門学校ではC言語をメインにしているところが多い。ただ、ほとんどの仕事はPythonで出来るような時代になった。最近需要が増している機械学習やディープラーニングではほぼPythonで開発されている。ネット関連の開発もPythonが主流である。
C言語は原始的な言語で、ある意味なんでもできる。ただ、キチンと使うには相当に技量が必要で、プログラミングの入門段階では難しすぎる。もともとは、変数の型や演算子がCPUのレジスタや演算に関連しているし、ポインタやメモリの確保・開放もユーザに任されている。C言語の文法はアセンブラの時代からすると大きな進歩ではあった。特に制御分野の組み込み開発では今でも多用されている。しかし、余程コアな開発でなければ、相当に面倒な記述を要する言語は不要である。
Pythonを勧める理由は、必要な道具が揃っていることである。リストや辞書(ハッシュ)が組み込まれているし、メモリ管理が自動化されている。リストさえあれば速度の問題はあるが、どんなデータ構造でも簡単に実装できる。速度が必要なら辞書(ハッシュ)にすればいいだけ。
C言語では、プログラミングの最初のころに配列から始める。上達してくればリストやハッシュも実装するようになるが、大抵の人はここまで行き着かない。配列で終わってしまい、何でも配列で処理しようとする。独りよがりになりやすい。最初からリストやハッシュがあれば高いレベルのプログラミングにすぐ直結できる。できるだけ早く高度な道具に触れるべきである。
私はLisp愛好者なので、なんでもリストで始める癖がついているが、とりあえずリストで始めて、適当な段階で必要なデータ構造に改めることにしている。プログラミングがすぐ始められるからだ。同様のことはPythonでも言える。リストは要素に何でも突っ込める。要素のタイプに制限が無い。隣同士が異なるタイプでも問題ない。長さも可変なのでメモリのある限り大丈夫である。
同様なことをC言語でやろうとすると、初心者にはお手上げである。まして配列しか扱えないレベルではどうにもならない。配列は同じ型の要素で固定長なので、出来ることは数値計算や簡単な文字列処理ぐらいである。
よく数値計算の本にある、まるでFORTRANみたいなプログラムならC言語を使う必要がどこにあるのだろう。Pythonで利用できるnumpyというモジュールを使えば数値計算も簡単でスピードも十分に速い。いい道具は積極的に使うべきである。Pythonにいは、いろんなライブラリやモジュールが豊富にあるので、プログラミングの工数も相当少なくてすむことが多い。
プログラミングをC言語で始めて挫折した方は、再度Pythonから始めてみてはどうだろう。