「ITは文系領域も多いからコンピュータサイエンスなんて知らなくていいんだよ」的な言説が蔓延ることが業界の現状を招いているのだが

今年最後の殴り書き。
ITに向いている人材が文系か理系かなんていう議論にはまったく意味がない。ものづくりには沢山のステップがあり、また各ステップの仕事には様々なタスクがあり、それぞれがいわゆる文系的タスクであったり理系的タスクであったりする。ITという名のつく職業における仕事は多くの部分で事務作業化が目指され、また、実現されてきているけれども、設計は決して事務作業ではない。設計がいらない建物はプレハブくらいだろう。プレハブを売るのがITの仕事の全てである、という話であれば、あるいは正しいのかもしれないが。

私がここで主に想定し、前提にしていた「ITのスキル」は、SEやプロジェクト・マネージャーのように対人スキルを要求される職務ではなく、純粋に「プログラミング」や「設計」のスキルだった。

ITエンジニアにコンピュータ・サイエンスは必須か - モジログ

コンピュータ・サイエンスの知識は、もちろんあったほうがいい。しかし、ないとダメということもないと思う。
その理由は、プログラミングや設計の能力は、コンピュータ・サイエンス的な「科学の能力」というよりも、むしろ文章を書くような言語運用力、つまり「文芸の能力」に似ていると思うからだ。

ITエンジニアにコンピュータ・サイエンスは必須か - モジログ

確かにそういう捉え方もあるとは思うので、全面的に否定はしづらい。けれども、このような考え方が特にSIer系の経営者のコンピュータサイエンスソフトウェア工学の軽視に繋がっている現状を鑑みると、賛同することはできない。
というか、コンピューターサイエンス以前の問題で、アルゴリズムを学ぼうともしないし、考えることもしない。ただベタベタと順を追って書くだけのプログラマーを量産してきたのは文系でもできるよ的な発想の経営陣たちがやってきたことなんじゃないか。そして、ちょっと「文芸センス」のあるプログラマーは独自の美学に基づいた車輪の再発明を行うのだ。処理のオーダーを考えもしない。
むろん、ロジカルであることは理系の特権ではない。数学的センスも理系の特権ではない。そういう意味で、ITが理系の職業かどうかと問われたら僕はそうではないというけれども、それはITが文芸を必要としているからでは決してない。ITに必要なのはコンピュータサイエンスソフトウェア工学である。誰にでもできるようにする、というのはそこから派生した応用問題に過ぎないし、結果だ。結果の果実のみを収穫しようとする経営者は、次の年に自分の木に実がならないかもしれないことをあまりに軽視している。
100人いたら100人がコンピュータサイエンスを意識しなさいというわけではない。じゃあアルゴリズムを学ばなくても良いかというとそういうものでもない。100回ですむループを一万回しているコードを見ることなんて日常茶飯事だ。それを現状として肯定するわけには行かない。
ITという仕事からコンピュータサイエンスを奪ってしまえばそれは単なる自己満足や道路の再舗装工事であって、何の発展にも寄与しない。コンピューターの仕事からアートを奪うことがコンピュータサイエンスの目的であると言い換えれば、少なくとも一般化された領域(つまり、応用の場)では余計にコンピュータサイエンスが重要なんだ。
そして、アーティスティックな領域はその上にある。工学的な機能美が文芸なのか。そうではあるまい。「文芸」には表現における無駄の美学またはそぎ落としの美学があるけれど、コンピュータの設計はその表現ではなく目的を向いている。結果としてできたものが文芸的な香りを放つことこそあれ、それを目的として作られるものはないと僕は思う。
ハッカーと画家」にこうある。

でも、私は間違っていたんだ。ハッカーは、画家が絵の具に関する化学を理解するのと同程度に計算理論を理解していればいい。時間的、および空間的な複雑度の計算法と、チューリング完全の概念については知る必要があるだろう。それから、パーザや正規表現ライブラリを書くことになった時のために、状態機械の概念は少なくとも覚えておいた方がいいかもしれない。実は、画家はそんなことよりもっとずっとたくさんのことを、絵の具に関する化学で覚えなければならないんだ。

Hackers and Painters

ポール・グラハムコンピュータサイエンスというものを好きではないと述べている。けれども、ここに書かれている「程度」のことを知っている職業プログラマがどれほどいるのか。「文芸」的な仕事をするハッカーですら知らなければならないことが沢山ある。いわんや文芸では仕事にならない職業プログラマをや。
今まで述べてきたことと若干矛盾するけれども、ハッカーであればあるいはポール・グラハムの感覚どおり、コンピュータサイエンスに深くコミットすることは不要ではないかとは思う。しかし、IT業界の大半を占める職業プログラマに文芸センスはあるのか?それを求めるのは役所の公文書書きに文芸センスを求めるのとどう違うのか。そして、その芸術的なものを読み解かなければならないのは誰か。あるいは求めている成果物はなんなのか。文芸センスなくして仕事をしなければならないプログラマを助けるのはコンピュータサイエンスである。初歩の初歩でかまわない。まったく無視するようなことはあってはならない。
ITの仕事をしていると、ひらめきが問題を解決してくれるように感じることは多々ある。しかし、その大半は、すでに先人が通ってきた道であることがほとんどなのではないかと思う。そして、問題が起きていること自体がセオリーを無視した設計をやっていたことに起因していることに気づくこともある。道を切り開く側の人間はごく一部であり、ITエンジニアの大半はそうではない。
それなのに、プログラムはとにかく書けば何とかなるんだといってろくに教育もせず、糞コードを量産するようなプログラマを量産しているような会社は沢山ある。そんなところで量産された(そして自ら学ぶ気のない)プログラマはITエンジニアとは到底呼ぶことはできない。
文芸センスに頼らなければならないのがIT業界なのだとしたら、IT業界は永遠にこのまま人海戦術の方法論で仕事をしていくしかないだろう。ITとは芸術品を創出するのではなく、実用されるものを作っていく仕事なのだから。芸術家が必要でないところに数の限られた芸術家はやってこない。そして、芸術家がいない現場は文芸センスもコンピュータサイエンスの知識もないものたちが集まっているのであれば。

自分が芸術家でないと思うITエンジニアはつべこべ言わず勉強しろ!IT系企業の経営者はエンジニアに勉強させろ!
文芸センスで仕事ができるなんて思い上がりも甚だしい。そんな人は1000人に1人もいればよいほうである。