2022年1月2日日曜日

理系プログラミングと文系プログラミング

受験生はやむなく理系か文系かを選択しているが、理系と文系の区分は本来あいまいなもので、あまり決めつけは良くないと思っている。プログラミングを理系と文系に分類するのも不本意ではあるが、他に適切な呼び名を思いつかなかった。

プログラミングに2つの流れを感じる。理系プログラミングと文系プログラミングだ。いずれも、ここで名付けたものなので一般的な概念ではない。

理系プログラミングは、競技プログラミングに代表される問題解決のためのプログラミングだ。ここでの問題解決は、社会的な問題の解決ではなく、出題された問題を解くことだ。しかし、正しい答えを出すだけでなく、計算時間等様々な制約を満たす必要がある。そのためにはプログラミングの技法を極める必要がある。

文系プログラミングは、実際に役立つアプリケーションを開発するためのプログラミングだ。アルゴリズムよりライブラリやAPIなどの知識が重要である。

どちらも重要であるが、1つの科目で両方を目指すのは難しい。理系プログラミングはアルゴリズムなどのCS系科目で学ぶことができる。しかし文系プログラミングは応用分野により異なる。それぞれの専門科目(必ずしも文系科目ではない。むしろ理系科目)で学ぶ必要がある。

理系・文系の命名は不適切かとも思う。理系は深さ、基礎などを意味し、文系は広さ、応用などを意味する。適切な語を思いついたら、紹介したい。