プログラマーは理系なのか文系なのかという論争が繰り広げられることが多々ありますが、果たしてどちらの能力が必要になるのでしょうか。

今回はシステムエンジニアやプログラマーといった職業が、文系と理系のどちらよりなのかを考えていきたいと思います。

大学の情報学部は理系? 文系?

まずIT企業に就職してプログラマーを目指すのであれば、大学では情報学部で情報処理について学ぶことが一般的。そこで情報学部が理系なのか文系なのかということだが、情報学部はどちらにも分類しがたい、逆に言えばどちらにも分類できるような学部でしょう。

白黒はっきりさせたい人についてはもどかしいかもしれないが、情報学は比較的新しくできた学問で、旧来の理系・文系というくくりでは、一概に分類できないのです。

そのため理系か文系かを決めるには、実際の業務を見ていきましょう。

アルゴリズムはロジカルな思考を求められるから理系

プログラムの基本となるアルゴリズムを考える上では、ロジカルな思考ができる能力が求められます。

例えば1から100までの数字を加算していく処理を実現するには、演算処理を100回ループさせながら、ループ中に数字を足しあげていく処理を考えます。簡潔に文字で表すなら以下のようになるでしょう。

1. 【変数宣言】 LOOPカウント用:cnt(初期値1)、加算の答え用:ans(初期値0)
2. 【条件】cnt > 100になればLOOPを抜けて(6)の処理へ
3. 【演算】数字を足しあげる(ans = ans + cnt)
4. 【カウントアップ】 cnt = cnt + 1
5. 【LOOP】(2)の処理へ戻る
6. 【終了】ansには1から100の数字を足した答えが入っている

こうしたアルゴリズムを考える力がなければ、プログラミングすることができません。コンピュータは所詮命令された通りにしか動かない代物ですので、このアルゴリズムが間違っていれば、意図しない結果を招いてしまいます。

計算式も交えながら、自分で公式をつくるように処理の流れを考えるのは、いかにも理系らしい作業ですね。世間一般でプログラマーは理系だと言われているのは、プログラムの基礎であるアルゴリズムを考える工程を指してのことでしょう。

プログラマーの作業は文系

多くの場合、上記のようなアルゴリズムを考えるのはプログラマーではなくシステムエンジニアの仕事になります。それではプログラマーは何をしているのかですが、こうしたアルゴリズムをプログラム言語に変換していく作業が主です。

上記で1から100まで加算する処理について、文字で説明しましたが、コンピュータは人間の言葉を理解することができません。そのためプログラマーがプログラム言語を使用して、コンピュータでも理解できる内容に置き換えてあげる必要があるのです。

Aの言語からBの言語に変換する作業は、どちらかと言うと文系の要素が強いのかもしれませんね。

設計書は分かりやすく書くことが基本だから文系

システムというのは質量として実態があるわけではなく、コンピュータ上で動作するバーチャルなものです。仕事となるとアマチュアプログラマーのようにいきなりプログラミングをするわけではなく、まずは設計書を用意して、お客様の要望を実現できるかの確認を取らなければなりません。

実体のないものを、コンピュータの知識のないお客様に対して説明するには「設計書をいかに分かりやすく書くのか」を意識しなければなりません。専門用語は別の言い回しに置き換えたり、ときには図を用意したりすることもあります。

自分だけ理解できていれば良いわけではなく、お客様はじめチームのメンバーにも理解のしやすい設計書を書けるのが有能なシステムエンジニアです。

こうした部分は文系の能力が求められる場面でしょう。

 

【結論】理系と文系の能力はどちらも兼ね備えていなければならない

結果としてITエンジニアは理系なのか文系なのかという問題に対しては「理系と文系のどちらの能力も兼ね備えていなければならない」が答えとなるでしょう。ロジカルにものごとを考えられる思考も大事ですし、言語理解能力も大事。どちらもおろそかにすることはできません。

どちらか一方にかたよるのではなく、理系と文系の考え方を、それぞれ吸収していくようにするのが良いでしょう。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @omusubi_bear