見出し画像

プログラマの文系と理系

◽️昔のプログラマの文系と理系

その昔、プログラミングはコンピュータを直接使用できる限られたエンジニアの技術でした。

私が社会に出る1980年時代では、コンピュータは汎用計算と呼ばれる大型計算機が主流でした。 それ以外に、ミニコンと呼ばれるものはありましたが、主にコンピュータの基礎技術を学ぶためのもので、アプリケーション・プログラムを使用する目的には利用されることはほとんどありませんでした。

アプリケーション・プログラムは、当時、応用プログラムと呼ばれており、実社会へのコンピュータ利用に使用するためのものでした。 メモリも少なく、CPUも遅い、非力なミニコンなどでは実用的な処理ができなかったのです。 最初に勤めた会社は、米国で科学技術計算でよく利用されていた、CDC(コントロール・データ・コーポレーション)のコンピュータをメインとして使用しており、私はその中で原子力関係のアプリケーションを使用する技術者として仕事をしていました

従いまして、プログラミグするのは、大型計算機が使えるエンジニアに限られていました。

しかし、このような古い時代でも、言葉は違えど、文系・理系に近い分類は古くからあり、社業の違いもありました。

理系プログラマ が主に務める分野…..科学技術計算、古くはFORTRANなどを使用
文系プログラマ が主に務める分野…..事務計算、古くはCOBOLなどを使用

ただ、事務計算の分野の方が、市場的にも圧倒的に規模が大きく、40年くらい前では事務計算が90%以上だったと記憶しています。 ですので、理系出身者でも、事務計算分野に配属されることは不思議ではありませんでした。

◽️昔の文系プログラマの地位

事務計算の顧客は大手銀行・商社・全国展開する店舗などの大企業が多く、人員も多数で電算システムを担う上での役割分担や分業はかなり進んでいました。 その中での、プログラマの地位はどちらかと言うとかなり低く、システム・エンジニアが作った詳細な設計書に従って、コーディングする、いわゆる、コーダーより少し上くらいの扱いでした。

今でも、この流れは引き継がれており、さらに階層化が進み、上級の情報処理資格として細分化も進んでいます。 昔と違い、一般の社会生活だけでなく、コンピュータやインターネットの利用技術は、個人の生存まで深く関わってきているので、この面のITの利用と言うのは、欠かせないものになっており、様々な職種・職業の人までがプログラミングに関わっています。 そのとき、役割分担と言うヒエラルキーがかつての、事務計算で培われた構造として残っています。 

ですから、(文系)プログラマは、将来、管理者になるか、システムエンジニア・アナリストとしてスペシャリストの道を進むのかと言う選択がありました。

(※)システムエンジニアとかアナリストまで進んだ、上級の文系プログラマの特徴としては、多数のプログラミング言語を扱えるというのがあります。 これも、時代の流れに沿って使える手段はドンドン取り込んでゆくという事情があるからでしょうね。 この意味で、多人数でプロジェクトを組んで大きなプロジェクトするのには向いているのだと思います。

(※)なお、自分の抱えるプロジェクト内のプログラミングをろくすっぽ出来ない似非システムエンジニアや似非アナリストは、「嘘つき」と呼ばれています。 理由は後日noteで紹介します。

◽️昔の理系プログラマの地位

以下は私の個人的な経験からくるものですが...

文系プログラマはチームで仕事をするのに対し、理系プログラマは、どちらかというと独立して仕事をすることが多いです。 科学や数学を理解しているが、いわゆる計算機に魅せられた科学者くずれに、理系プログラマが多かったです。 私もそのうちの一人です。

今でこそ、計算機科学・シミュレーションが当たり前になり、量子コンピュータ・AI・スーパーコンピュータの世間での認知がありますので、職業を説明するのに苦労はしませんが、一昔前まで、科学計算をしていて、どうやってお金儲けできるの? と問われたときに説明に困ったことがあります。

一般の方でも建築・土木・機械の分野では計算が必要であることが分かるのですが、アカデミックな科学の問題で、偏微分方程式を解く仕事などでは、核融合・原子力であっても理解してもらうのは一苦労しました。

ですから、私の場合、大学や国などの公的研究所・企業の研究所が顧客でした。 先生方は、プログラミングのプロではありませんので、論文を書くためのシミュレーションプログラムの手直し・整備・汎用化などをお手伝いすることになります。 特定の条件でしか使えないものを汎用化して、他の人も利用できるようにするとか、なかにはこんがらがってグチャグチャになったものを、オブジェクト指向的に作り直して、スクラッチアンドビルドするとか...

仕様書として、A4の紙一枚に、偏微分方程式が一つ書かれており、これを解きたいという、某国立研究所の仕事をしたこともあります。 他の仕事もしながらですが、一年がかりで仕事を仕上げ、納品しました。 報告書は300ページ越えで、プログラムは1万ステップほどでした。 もちろん、シミュレーションに必要な具体的なデータは提供されていました。 残念ながら、納品後、独立・起業しましたので、数学の得意な方に引き継ぎました。 この仕事は、その後、数年間続いたそうです。

スパコンなどでは、高速化のためのチューニング、並列化・ベクトル化など、パフャーマンスを上げる仕事もあります。 ほぼ、一人でしますので、結構な稼ぎになります。 チームを組んでしたこともありますが、私も含め、理系の人間は協調性に欠けるのであまり、効率の良いものではなかったです。 こういった場合、直接、作業はせず、教育・指導・アドバイスに徹した方がよい場合が多いみたいです。

以上のことから、理系プログラマというより、科学や高等数学を理解するプログラミングのプロは、頼られることが多く比較的快適な待遇であることが多いです。 ただし、すべては限られた期間での実績がものを言いますので、ある意味非常に厳しい世界でもあります。

理系プログラマには「アガリ」と言うものがなく、一生プログラマです。 もちろん、システムエンジニアやアナリスト、やチームリーダーの仕事も出来ますが好んでする仕事ではないです。 還暦を超えた私でも、C++17やAIのPythonをはじめ、15以上のプログラミング言語を扱っています。 C++がメインですけどね。 アマチュア無線(一級)もやってますのでたまに、ハードよりの電子回路制作でハンダゴテも握ります。 基本、もの造りが好きなのですよ。

◽️現代における、プログラマの文系と理系


いまでも、IT分野は大きく変わり、進化していますが、ルーツから判断するとその差は圧倒的に事務系が多いと思います。 金融機関、店舗の業務、WEBなど一般コンシューマを対象とするのは、事務系の考え方です。

連立一次方程式・偏微分方程式など科学技術系の知識が必要なのは、工学系(土木・建築・機械・電気・電子・化学・医療・生物・天文・気象・原子力)などのBtoBの範囲で、理系の知識を持ったプログラマでないと、基本的にやっていけません。 スーパーコンピュータなどの利用もある分野です。 プログラマといってもスペシャリストに近い人が多いです。

しかし、ここにきて、AI、ビックデータ、金融工学、クラウド、などの分野が重視されるに至り、従来事務系と言われていた分野でも、理系の知識を持ったプログラマの需要が急速に高まって来ています。

従いまして、プログラマーであれば、文系出身の方でも、理系出身者が持ち合わせている前提知識を、ある程度身に付けることが要求されます。

と言うことで、どのシーンで使い分けているか分かりませんが、今で言う文系プログラマは単純に文系出身者を指すか、若しくは、出身に関係なく、理系の知識を身に付けていないプログラマーを揶揄しているのかもしれません。

◽️まとめ

現代においては、文系出身、理系出身とか関係なく、コンピュータを利用して仕事をすることは日常茶飯事です。 その中でも、IT会社でプログラミングをするエンジニアでも、出身は必ずしも情報関係の学校や学部ではないことが多いのは、珍しくありません。 むしろ、所属する組織の業種や部門が扱っている特殊性・専門性を有した「業務知識」と呼ばれるものの取得が重要視されます。 もはや、プログラミングをも含めたIT技術は、さまざまな分野での基礎知識・基盤技術で必須条件であるのです。 たとえれば、国際取引をする企業の語学に相当するものです。

もちろん、上記は、いわゆるホワイトカラーと呼ばれる職業層での話しなのですが、生産を伴う現場のブルーカラーの職業層でも、IT機器等の業務使用ユーザとしてのスキルが必要になってきています。 主任とか管理者層レベルになってくると、直接コード書くプログラミングすることはなくても、システムエンジニアが設計したワークフローなど論理的なアルゴリズムをある程度理解することも必要でしょう。

コンシューマと製造者、生産者との違いはあっても論理の流れであるアルゴリズムを具現化したプログラミングは、快適に生活する上で必須のものになりつつあります。 ついていけないと情弱と言われてしまいます。

私が若い頃、一億総プログラマの時代がやってくると言われました。 現実に2020年政府は、プログラミング教育を必修化する方針を決めました。 しかし、プログラマを養成することが目的ではなく、「プログラミング的思考」を身につけることで、物事を順序立てて論理的に考える力や、アイデアを具体的に形にする創造力を養う狙いがあるということです。

この記事が気に入ったらサポートをしてみませんか?