< 自己達成感 | ドキュメント is 説明の自動化 >

プログラマーは文系の仕事

一般的にプログラマー(エンジニア職)は理系の仕事とされています。

しかし、プログラミングの得意不得意と、理系や文系といった学歴とは因果関係も相関関係もないと思います。

しかし、ある職種に関しては「これは理系の仕事」というラベリングというか、世間一般的なイメージは出来上がっていると思います。

プログラマーという職種は完全に「理系」の仕事とされています。

こちらのブログを読んでも分かるように、そもそも文系の人であった場合、技術的なことが苦手だというイメージが勝手についてしまいます。

が、しかしです。

別に自分が文系だからといってプログラマーに向いていないわけではないと思うのです。

その理由をこれから述べていきます。

文系と理系のちがい

文系と理系を分ける要因は大きく二つあると思います。

まずは、大学で所属する学部の違いによる分別です。

文学部や法学部だと文系、工学部や医学部だと理系、といった具合です。

もう一つは、人の性格による分別です。

感情的な人は文系、論理的な人は理系、といった感じです。

…さて、ここで自分の近くにいるプログラマーの人を思い浮かべてください。

論理的というよりかは感情的(モニタを見ながら一喜一憂したり、キーボードの打鍵音を響かせたり)であったり、 科学的な難しい話よりも、特定のエディタや言語・フレームワークを崇拝する宗教的な言動のほうが多いと思いませんか。

さらに、わりと読書家が多い気がします。

そういった特徴は理系と表現するよりも文系と表現したほうが合っている気がします。

理系は文系の一部

そもそも論になってしまいますが、文系と理系は別物であるという認識が間違っている、と私は考えます。

「初めに言葉ありき」と古より伝えられている通り、まず言葉があり、そこから文章ができ、文章を扱うことでこの世の現象をある程度表現することができるようになりました。

さらに表現されたものの再現可能性を証明するために言葉を記号に置き換えて、定数を据えて公式を作り出しました。

ものすごく大ざっぱにいえば、この公式を考えたり、応用したりして物事を考えることが理系の学問です。

なので数式も文章から継承を重ねていったなれの姿なだけであって、もともとはただの文なのです。

X+Y=Zは「XとYを足すとZとなる」ですし、

if(A>B)は「もしAがBより大きいなら」と言葉で表現していたものをロジカルに考えやすいように記号にしただけで、もともとは文章なのです。

「文」から「理」が派生しただけで起源は同じです。

言葉によって森羅万象をいかに表現できるかを追求するのが文系。

言葉を物事の証明や、何かを創作するために取り扱うのが理系、といったように分けて考えることもできます。

具体的な例を挙げると、 文系は「僕の心は晴れわたった青い大空のように澄んで清らかだ」といった感じで、メタファーとして表現できる可能性の追求と、その表現の体系を扱います。

理系は、「(a+b)(a-b)=a2-b2」「E=mc^2」など普遍的な法則を取り扱います。

ただ、言葉の取り扱い方が違うだけで、使う道具(言葉)は同じですから、 文系だからといって理系のことは分からない、と諦める必要はありません。

むしろ、言葉を扱うという基礎が出来上がっているので、理系よりもフレキシブルに対応できる可能性を秘めている、と考えることもできます。

コードは数式ではなくただの規則体系

プログラムが書かれた文字列を我々は「コード」と呼んでいます。

一般的にコードというと、規定や慣例という意味になります。

ドレスコードというと、ある場において着用できる服に制限をかけることを意味します。

コードという言葉には数学のように問題を解いたり、複雑な方程式を組み上げるという役割はありません。

あくまでも、コードそのものはあらかじめ決められた制約(ルール)を規定しているだけのものです。

プログラミングと聞くと一般人には理解できない何かとても難しい数式を扱っているイメージですが、プログラムを書いているほとんどの人は連立方程式も微分積分も使いませんし(一部の人は使います)、四則演算+αぐらいしか使いません。

仮にそれ以上に難しい計算を扱う場合も、大抵ライブラリが用意されているので、実装者本人は公式や理屈を知る必要はありません。(一部の人には必要です)

なのでプログラマーの仕事とは、人々からの要望を、決められた規則体系におけるパーツ(言葉・記号)を組み合わせて記述し提示することです。

複雑な計算式を書き連ねて定理を証明することではないのです。


当エントリはこちらの記事を加筆・再編集したものです

Tag: プログラミング