あなたが安易にプログラミングを学んではいけない、たった1つの理由

  • LINEで送る

編集部注:本稿を執筆したBasel FaragはiOSのエンジニアです。GPUプロセッサー、ロボット、AI、コンピューター・サイエンス、天文学、哲学に興味を持つ人間。かつて「the Draft Punk of people」と称されました。

彼はこのフレーズの意味を理解していませんが、それがほめ言葉であるとは分かってているようです。

プログラミングのスキルは重要だが、それを学ぶことを「経済的な救済」に結びつけるのは問題だ
最近のテック業界では「皆がプログラミングを学ぶべきだ」という考え方が広まりつつある。でもその考え方には問題アリだ。プログラミングは、読み書き能力のような必須スキルじゃあない。

シリコンバレーにおける文化的なごまかしに常に注目している人であれば、「ラーン・トゥー・コード(Learn to Code)」というムーブメントを耳にしたことがあるだろう。

政治家やCode.orgのような団体やニューヨーク市の前市長マイケル・ブルームバーグまで、それを「明日の労働者が持つべきスキル」と喧伝してきた。

それはあながち間違いではないのだろう。

アメリカのエンジニアのエンジニア需要は減っているようには見えないし。

でもこれは、もっと複雑な問題だ。
人々が求められる人材に変わろうとする超競争化社会。そんな世界において、プログラミングを学ぶことを「経済的な救済」として売り込むのは誠意のないことだと思う。

たとえば、コーディング・ブートキャンプだ。多くがシリコンバレー・エンジニアの成功を知っているから、新たに起業したり、エンジニアにりたがったりする。

ケーブルテレビ局HBOのドラマ「シリコンバレー」では、20代の若者が大麻を吸いながら夜通しプログラミングをして何百万ドルものお金を稼ぐ、といった姿だ。

一夜にして何百万ドルもの資産を築いたようなイーロン・マスクやマーク・ザッカーバーグといった連中にアメリカ人は驚嘆している。

プログラミング熱はホワイトハウスにまで広まったようだ。オバマ大統領は、すべての公立学校のカリキュラムにコンピューター・サイエンスの授業を採用ようとしている。

わけの分からないことに、プログラミングを推奨しているのはブートキャンプだけじゃないんだ。政治家もまた。そしてハリウッドからテック業界の有名人にいたるまで、社会のあらゆる人々がプログラミングを学ぶことを熱心に奨励する。
流れに逆らうようだが、私はそのコーディング・ブートキャンプにたいして懐疑的な見方をしている。

シリコンバレーは魅力あるものとして仕立てあげられ、ブートキャンプのパンフレットには「修了後には給料の高い仕事を得られる」と書いている。

だが現実には、多くの訓練機関はなんの認定も受けておらず、修了後の就職に関する統計資料を公表していない。生徒が成功するかどうかは保証されたものではないのだ。

正当なプログラマーの養成機関もあり、本当に学ぶ者のことを考えた機関もある。だがそれ以上に多くの機関は、詐欺師の運営する、人々の必死な思いにつけ入るようなものなんだ。

勘違いしないでほしい。

私もエンジニアリングやプログラミングは重要なスキルであるとは思っている。しかし、それは「特定の状況下」だけで重要なのであるし、成功のために心血をそそぐ意思ある人にとってだけ重要なものなのだ。

これはどんなスキルにも当てはまる。私が測量技術を奨励するのと、プログラミングを奨励することとの間にはなんの違いもない。


プログラミングの入力が大切なんじゃない、重要なのは問題を「正しい方法で」解決することだ
MIYAKO92_beachdemba20140727_TP_V
プログラミングにおける問題に取り組むとき、まず私たちはその問題が何なのか、それは本当に問題なのかを見極めなければならない。その問題が本当にプログラミングで解決できる問題かどうかを考慮せず、プログラミングで解決することに固執し、「なぜ問題なのか」という視点を失ってしまっては、そこから何も得ることはできない。それがプログラミングで解決できる問題であろうと、なかろうとだ。
スタンフォード出身の私の親友は、Association for Computing Machinary International Collegiate Programming Contestの優勝者なのだが、ACMチャンピオンシップに関して「解決しようとする問題を理解することの重要性」を語る。
「本当に問題は存在するのか」そして「それにファインマンの原理を応用できるのか。それを他人が理解できるように説明ができるのか」ということを、あなたは自分自身に問わなければならない。
親友によると、エリート校の生徒でも問題要綱を一度だけ読んだだけで、すぐにコーディングを始める者がほとんどだという。
チャンピオンシップで優勝した年、彼はあることを学んだ。選りすぐりのエリートでさえ、「コード」という一つの武器だけで複雑な問題に突進していく、ということだ。
一方、私の親友は問題を徹底的に理解し、そして初めてコードを書き始めた。
与えられた時間のほとんどを、問題を理解することに割いたのだ。
彼がコード書き始めたのはコンテスト終了まであと数分というタイミングだった。
彼はチャンピオンになった。
親友はプログラムを打ち込むこと自体は問題解決の手段ではないことを知っていた。冷静沈着な問題解決能力こそが、文字通り問題を解決する手段なのだ。
見出し:プログラミングを過度に奨励することは、現存するディベロッパーの窮状を無視したものだ。
テクノロジーはもの凄いスピードで変化している。

ほんの数年前まで私はObjective-Cを使っていた。しかし、今では私のプログラムはほとんどSwiftで書かれたものだ。iOSディベロッパーへの応募者のなかには、これまでにObjective-Cによるコードを一行も書いたことがないものもいる。

Swiftは習得しやすく、安全で、モダンな開発パラダイムをもち、Objective-Cにはないエレガントさを持ち合わせている。新しいディベロッパーが、Objective-C独自の不完全さに対処する必要がないのは良いことだ。だが、それはプログラマーという職業がもつ現実を無視している。

ディベロッパーたちは、解雇通告されることへの恐怖から、ガイダンスが少なめでも、素早く学ぶことを求められる。それはこの職業で成功するための最低基準かもしれない。

でももし現存するディベロッパーたちが挫折し、取り残されているという現実があり、その動かぬ証拠があるのだとすれば、なぜ私たちは人々にその領域に踏み込むことを奨励するのだろうか。

昼夜Objective-Cを学び、WWDC 2014でSwiftの発表に愕然とした人は?
彼らはいまや傍流となった言語でのプログラミングを継続するか。それとも、またイチから勉強し直すのか。
20代の若いディベロッパーにとっては、それは大した問題ではないのかもしれない。しかし毎月の支払いを抱え、家族を養わなければならない者たちにとっては、そのやり直しは非常に困難である。
プログラミング言語は日々進化しているため、それ自体を理解することもできないまま、彼らはその問題に直面することになる。
プログラミングを学ぶことと、それを生業とすることの間には高い壁があるのだ。
本当に。
私がフリーランスとしての仕事を得るまでに、1年の独学期間が必要だった。その後も給料は微々たるものだった。コンピューター・サイエンスの学位を持っていないことを理由に、面接を受けることさえできなかったことが何度もある。

予算にあった住居を見つけられず、友人の親切心に頼らざるを得なかったこともある。何度も諦めようと考えながら夜を過ごした。しかし、進み続けるための能力を身につけた。

それは「粘り強さ」だ。その能力こそが私を今でもこの領域に踏みとどまらせている。

見習いになることすら難しいのが、この業界の現実だ。

職を得るためには人脈と長期間メンテナンスされたGitHubアカウントが必要だ。機会の平等が世に広まりつつあるけれど、この業界では(もしあなたが過小評価されたマイノリティに属していれば)人の2倍の能力を持たなければならない。単に能力を示すためだけのためにだ。

私の知る限り、彼らのやり方に従うしか道はない。たとえそれが不公平なゲームであったとしても。
誰にも夢の邪魔をさせるな。そして現実を直視せよ
もしあなたがエンジニアになりたいなら、誰にもその夢の邪魔をさせてはならない。そして、教育システムのような伝統的な制限を言い訳にして、夢に向かって突き進む速度を緩めてはならない。夢を叶えるための道のりに正解はないから。
しかし、シリコンバレーのロマンスに夢中になる間も、現実を直視することを忘れてはならない。この業界は借金をチャラにしてくれる魔法のカードではない。時間をかけてこの業界に対する理解を深めなければならない。
あなたは単なる「フレームワークを当てはめる」だけのディベロッパーなのではなく、問題解決者であるという現実を受け止めなければならない。
そのうちに新しいフレームワークや言語を学ばなければならなくなるかもしれない。公的な資格がなければ、職を得るために凄まじく闘わなければならないことを覚悟しなけりゃならない。
ソフトウェア・エンジニアリングは、儲かる仕事だ。だが「コーダー」から「エンジニア」に進化する、というのは簡単じゃない。

でも、もし頑張って踏みとどまることができれば、それはあなたの人生を変えるだけでなく、世界への考え方をも変えることになるだろう。

↓ 次ページに続く ↓



気になるカテゴリから人気記事をチェック!
[カメラ] [ガジェット] [キッチン] [スマホ] [パソコン] [映像・オーディオ] [生活家電] [美容・健康] [美容家電]  
  • LINEで送る