頼むからプログラミングを学ばないでくれ

編集部注:本稿を執筆したBasel FaragはiOS Engineerだ。(そう彼は思っている)。GPUプロセッサー、ロボット、AIなどへの興味の他にも、Baselはコンピューター・サイエンス、天文学、哲学に興味を持つ。かつて彼は、「the Draft Punk of people」と称された。彼はこのフレーズの意味を理解していないが、それはほめ言葉だとは理解している。

 

最近のテック業界で広まりつつある考え方がある。皆がプログラミングを学ぶべきだという考え方だ。しかし、その考え方には問題がある。プログラミングは、読み書きする能力のような必須のスキルではないのだ。

シリコンバレーにおける文化的なごまかしに常に注目している人であれば、「Learn to Code」というムーブメントを耳にしたことがあるだろう。政治家、Code.orgのような非営利団体、そしてニューヨーク市の前市長であるMichael Bloombergにいたるまで、彼らはそれを明日の労働者が持つべきスキルであると伝導してきた。

米国におけるエンジニアの需要に陰りが見えないことを踏まえれば、それはあながち間違いではないのかもしれない。

しかし、これはもっと複雑な問題だ。

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

コーディング・ブートキャンプを例にしてみよう。大勢の人々がシリコンバレーのエンジニアの成功を目の当たりにしていることから、皆が起業したり、エンジニアになることを望んでいる。HBOのドラマ「Silicon Valley」で描かれているのは、20代の若者がプログラミングをして大麻を吸いながら夜を過ごし、同時に何百万ドルものお金を稼ぐという姿だ。一夜にして何百万ドルもの資産を築いたように見える、Elon MuskやMark Zuckerbergといった人々にアメリカ人は驚嘆している。プログラミングに対する熱はホワイトハウスにまで広まったようだ。オバマ大統領は、すべての公立学校のカリキュラムにコンピューター・サイエンスの授業を取り入れようとしている。

不可解なことではあるが、プログラミングを推奨しているのはブートキャンプだけでなく、政治家が人々に奨励するものでもあるのだ。

ハリウッドからテック業界の有名人にいたるまで、社会のあらゆる人々がプログラミングを学ぶことを熱心に奨励している。その流れに逆らうようだが、私はそのコーディング・ブートキャンプにたいして懐疑的な見方をしている。私たちの社会がシリコンバレーをセクシーなものとして仕立てあげ、ブートキャンプのつやつやのパンフレットでは卒業後には給料の高い仕事を得られると謳ってある。だが現実には、多くの訓練機関はなんの認定も受けておらず、卒業後の就職に関する統計資料を公表していない。生徒が卒業後に成功するかどうかは、保証されたものではないのだ。正当なプログラマーの養成機関もあり、本当に生徒のことを想う機関も多い。だがそれ以上に多くの数の機関は、インチキ者に運営された、人々の必死な心につけ入るようなものなのだ。

誤解はしないでほしい。私もエンジニアリングやプログラミングは重要なスキルであるとは思っている。しかし、それは特定の状況下のみにおいて重要なのであるし、成功のために心血をそそぐ意思のある人のみにこそ重要なものなのだ。これは他のスキルにも言えることだ。私が人々に測量技術を奨励する度合いと、プログラミングを奨励する度合いは、なんら変わらない。

プログラミングが注目されたことにより、問題を理解することよりも、それを「正しい方法で」解決することに重きが置かれるようになった。

私が人々に測量技術を奨励する度合いと、プログラミングを奨励する度合いは、なんら変わらない。

プログラミングにおける何らかの問題に取り組むとき、まず私たちはその問題が何であるのか、そしてそれは本当に問題であるのかを見極めなければならない。その問題が本当にプログラミングで解決できる問題かどうかを考慮せず、プログラミングで解決することに固執し、「なぜ問題なのか」という視点を失ってしまっては、そこから何も得ることはできない。それがプログラミングで解決できる問題であろうと、なかろうとだ。

スタンフォード出身の私の親しい友人は、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倍の能力を持たなければならない。単に能力を示すためだけのためにだ。

門番はいたるところに存在する。彼らはアイビーリーグの卒業生であり、「どのようにバイナリーツリーを反転させますか?」という質問が人の技術的能力を計る物差しになると信じる人々だ。彼らはホワイトボード・テストに取り憑かれたプロジェクト・マネージャーたちであり(告白:私も複数のホワイトボードを所有している)、募集要項に「5年間のSwiftプログラミング経験が必須」と書くような無知な人事マネージャーたちである。(ヒント:Swiftがリリースされたのは2014年)。良くも悪くも、まともな職とあなたの間にはこのような人々が立ちふさがるのだ。

私の知る限り、彼らのやり方に従うしか道はない。それがアンフェアなゲームであったとしても。

終わりに

もしエンジニアになりたいのであれば、誰にも(そして、その意味では私にも)その夢の邪魔をさせてはならない。そして、教育システムのような伝統的な制限を理由に夢に向かって突き進む速度を緩めてはならない。夢を叶えるための道のりに、正しい道も間違いの道もない。

しかし、シリコンバレーのロマンスに夢中になる間も、現実を直視することを忘れてはならない。この業界は借金をチャラにしてくれる魔法のカードではないのだ。時間をかけてこの業界の理解を深めなければならない。あなたは単なる「フレームワークを当てはめる」だけのディベロッパーなのではなく、問題解決者であるという事実を受け止めなければならない。新しいフレームワークや言語を学ばなければならない時が来るかもしれないということ、正式な資格をもたなければ職を得るために闘わなければならないことを覚悟しなければならない。

ソフトウェア・エンジニアリングは儲かる仕事だ。だが「コーダー」から「エンジニア」に進化するのは簡単な話ではない。

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

[原文]

(翻訳: 木村 拓哉 /website /Twitter /Facebook

コーディングブートキャンプが大学の(誰もが受講する)標準課程になる三つの理由

16029420669_5991f63908_k

[筆者: Drew Sing](エドテック(edtech,テクノロジー応用教育)分野のコンサルタント)

それは最初、それまでの大学教育に代わるもの(オルタナティブ)として始まった。それが今や、全国の大学の注目を集めている。

コーディングブートキャンプ(coding bootcamp, プログラミング特訓コース)は、終了者が企業ですぐに実践的な戦力になり(==job readiness, ジョブレディネス)、しかも比較的高給であることが関心を招(よ)んで、学生たちと中途転職者たちのトレンディな話題になっている。しかしコーディングブートキャンプに関心を示しているのは、これら就活者たちだけでなない。

大学もコーディングブートキャンプの成功に目をつけ、テクノロジー方面における、学生たちの効果的なスキルアップの方法として、その利用を検討し始めている。

今コーディングブートキャンプはとくに、Webデベロッパーになりたい人たちのための、教育の高速車線になっている。最初それは、今日のテクノロジー経済において、有能なWebデベロッパーの需要を満たすために作られたが、そういう一種のニッチ産業が今では、一般的全般的な高等教育の分野で増殖し、今や大学のコンペティタとも見なされている。コーディングブートキャンプは今では、プログラマーばかりでなく、データサイエンスやアナリティクスなど、そのほかの需要の多い技術分野の人材も、育てている。

Course Reportによると、2015年にはコーディングブートキャンプの市場が前年の2.4倍に成長し、推定卒業者数は16056名となった。対して2014年のコンピュータサイエンスの学部学生数は推定48700名だった。

学位を与えることを目的とする従来型の大学が、経済が求めるスキルの教育に特化したコーディングブートキャンプの価値を今や理解し始めているから、2016年の教育には大きな変化が訪れるだろう。

今大学は、コーディングブートキャンプに関して、主に次の三つのことをやっている:

ブートキャンプと大学のパートナーシップ

大学は今、コーディングブートキャンプ(の専業企業)とパートナーして学生たちに、これまでよりも多い技術教育を与えようとしている。

フロリダ州ボカラトンのリベラル・アーツ校Lynn Universityは、General Assemblyの大学が認めたコースの習得を、正規の履修証明(単位取得科目)に含めている。たとえばLynn Universityは、昨年9月に7000万ドルの資金を調達した技能ブートキャンプGeneral Assemblyの、16週のコースを終了した者に、一学期ぶんの履修証明を与えている。今現在はその制度を利用する最初の学生たちが、General Assemblyのコースを受講しているところだ。

雇用者が肯定的に認める大学とブートキャンプ的な教育訓練のセットが、一部の学生たちにアピールしている。

Lynn Universityの副理事長Gregg Coxはこう述べる: “学生たちが、労働市場が求めているスキルをすでに持っていることが重要だ。学生たちの全員が将来プログラマーになるわけではないが、今日の世界では、その技術を有することはどんなキャリア(職業的進路)にとっても有益である”。

Lynn Universityは、コーディングブートキャンプとパートナーした初めての大学ではない。昨年はミネソタ州セントポールのConcordia Universityが、コーディングブートキャンプThe Software Craftsmanship Guildとパートナーした。2013年には、合衆国の8つの都市でWeb開発とデータサイエンスをブートキャンプしているGalvanizeが、University of New Havenとパートナーしてデータサイエンスの修士課程を提供した。

大学が自力でコーディングブートキャンプをローンチしている

至近の3か月で、Northeastern, RutgersおよびUniversity of Central Floridaなどの大学が、ブートキャンプ屋さんとパートナーしないことを決定した。その代わりに彼らは、大学自身が作った独自のブートキャンプをローンチすることにした。

たとえばNortheasternのLevelプログラムは、学生たちにデータ分析の基礎を教える8週間のブートキャンプだ。今同大学は、この事業の第二期生をボストン校で教えており、最近はシアトル、シャーロット、シリコンバレーの3地区でもローンチした。

Level事業の創立ディレクターNick Ducoffによると、“Northeasternは全米のトップ50の大学の中で、初めてこのような没入的な学習事業を導入した。学生たちは、われわれのブートキャンプにはNortheasternの高い教育的クォリティがある、と感じて安心している”のだそうだ。

Rutgers Universityも昨年の10月に、独自のコーディングブートキャンプを発表した。それは今年の4月25日に開講する。University of Central Floridaは、3月の終わりに24週のコーディングブートキャンプをスタートする。

大学はブートキャンプとパートナーするのか、それとも独自の事業を開発するのか、あるいはブートキャンプではない別のやり方を見つけるのか?

Whartonを卒業したEdward LandoとAbhi Rameshは、在学中に、学部学生とMBAの学生たちにはプログラミングのスキルを提供する必要がある、と痛感したため、自分たちの母校である大学のためにブートキャンプ的なコースを開発した。そのコーディングブートキャンプは、University of Pennsylvaniaの夏休みを利用して、従来の夏季インターンシップと等価なオルタナティブを提供する。今後学生たちはプログラマーになり、テクノロジーのキャリア獲得に必要なスキルを、さらに深く幅広く理解していくだろう。

このような、最近の大学のブートキャンプは、正規の履修証明を与えるものと、そうでないものとの違いがある点が興味深い。

しかし履修証明(単位付与)のあるなしに関わらず、雇用者が肯定的に認める(ブランドイメージの高い)大学とブートキャンプ的な教育訓練のセットが、一部の学生たちにアピールしている。コーディングブートキャンプによる教育を提供するために必要なリソースは大学にすでにあるが、学生たちに要求しているものの内容やレベルは大学によってまちまちだ。それら大学独自のブートキャンプは、コーディングブートキャンプ専業企業のHack ReactorDev BootcampBlocなどと競合することになるので、大学ごとの方針ややり方の違いを見定めることが今後は重要だ。

合衆国教育省からの支援

2015年10月14日にオバマ政権は、EQUIP(Educational Quality through Innovative Partnerships, 革新的なパートナーシップによる教育のクォリティの向上と確保)と名づけたパイロット事業を発表した。

大学がこの事業への参加を申し込み、EQUIPのパートナーシップを認められると、コーディングブートキャンプ(専門企業)やMOOC(Massively Open Online Course, CourseraUdacityなど)とのパートナーシップを助成され、また参加する学生への学費援助と履修証明が与えられる。この2つのレベルの支援は、これまでのコーディングブートキャンプ(専業企業と大学自身どちらも)が提供できなかったものだ。

このパイロット事業は、ブートキャンプ教育に大きな変革をもたらすかもしれない。これまでのブートキャンプ専業企業は、政府からの財政的援助や大学の正規の課程としての認可を、得られなかったのだ。援助があれば企業や大学が奨学金制度を設けたり、単なる課程終了証明だけでなく、より具体的な就活に結びつける事業展開も可能になる。

大学は2015年10月14日以、EQUIPに申し込めるが、認可された大学が今度は、いくつかの高等教育機関に対する、彼らに合った独自の教育訓練計画を提供していくこともできる。

まだEQUIP認定の大学や学校は発表されていないが、中学は申し込みの締め切りが2015年12月14日とされている。教育省が申し込みを審査するのに時間がかかるだろうから、発表は年内のいつか、となるのかもしれない。

大学がコーディングブートキャンプに関心を持ってくると、今度は各大学の教え方の違い、そして学生に現れる成果の違いが出てくるので、どうやればうまくいくか、という研究が重要になる。

大学はブートキャンプとパートナーするのか、それとも独自のブートキャンプ事業を開発するのか、あるいはもっと幅広いSTEM職業と技能を目指す学生たちのために、ブートキャンプではない別のやり方を見つけるのか?

独自方式にせよ、ブートキャンプ企業とのパートナーシップにせよ、まだやってる大学はそんなに多くないから、学生と大学の管理者の双方が、今やっている彼らをよく見て学ぶことが重要だ。

ブートキャンプの導入に、大学によってスピードの差が生じるのには、いくつかの原因がある。学部の積極性や認可の手続きなど。最初の手始めは、履修証明とは関係のない、気軽な形でやるのが良いかもしれない。大学は今でも高等教育の黄金律だが、学生たちの卒業後の進路をより安定的なものにするためには、今、優れたコーディングブートキャンプが実現/実証していることを、大学は真摯に受け止めるべきである。

もうすぐコーディングブートキャンプは、“出るべきか出らざるべきか?”の域を後にするだろう。大学がそれに積極的に関与していくことにより、未来の学生たちは、“どの大学のブートキャンプが自分の高等教育のニーズにいちばんフィットしているか”、と問うようになるだろう。言い換えるとブートキャンプと呼ばれる実学を学生が履修することは、どの大学でも標準の課程になると思われる。

※参考写真: DEV BOOTCAMP/FLICKER(CC 2.0のライセンスによる)

[原文へ]
(翻訳:iwatani(a.k.a. hiwa