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

編集部注:本稿を執筆した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

感動的映画「CODEGIRL」、YouTubeで11月5日まで無料公開

screen-shot-2015-11-01-at-1-36-06-pm

Alphabet、テクノロジーのあらゆる面で多様性を支持するこの会社が、あるプロジェクトに光を当てる力になろうとしている、それは映画 “CODEGIRL“だ。映画製作者、レスリー・チルコットの作品で、彼の名前は「不都合な真実」や「スーパーマンを待ちながら」で聞いたことがあるだろう。

Googleの “Made With Code” ブロジェクトの一環で作られたこの新しいドキュメンタリー映画は、YouTubeで11月5日まで無料公開される。映画館には数週間のうちに配給される。

Susan Wojcicki(YouTubeのCEO)が映画を次のように要約している:

“CODEGIRL” は、Technovation主催による世界規模の企業家精神とコーディングのコンテストで競う、60カ国5000人の少女たちを追跡した物語だ。少女らは自分たちの地域コミニュティーの問題を解決するためのアプリを3ヶ月かけて開発した。映画で彼女たちは、ライバルを評価し、先生や地元のメンターと交わり、コーディングを学び、1万ドルの資金と支援を勝ち取ることを目指して、アイデアを売り込む。

Wojcickiは、コードを書く女性が少ない理由の一つとして「露出」のなさを挙げ、Google自身の調査結果を引用した:

少女たちは、大衆文化の中で他の少女や女性のポジティブなロールモデルを見る機会がない。11カ国の人気映画を調べたところ、コンピューター科学やテクノロジーに関わる役どころの女性はわずか20%以下だった。

YouTubeはこの映画を封切るのに最適な場所と言える。AdAgeはつい最近、何人かの人気女性ユーチューバーが、一部の一流セレブ以上の影響力を与えていることを報告している。

あなたも、ハッシュタグ “#Rallyforcodegirl” を使ってこの映画を支援できる。

原文へ
 
(翻訳:Nob Takahashi / facebook

プログラミングを学校の必須科目にするためのキャンペーン”Hour of Code”と国の”コンピュータ科学教育週間”が同時期に

今年の1月にAli/Hade Partovi兄弟が立ち上げたCode.orgのミッションは、単純だった: プログラミングとコンピュータ科学を、アメリカ人がこれらに対してこれまで持っていたイメージを変えて、大衆化すること。

ほぼ1年たった今、Code.orgはどうなっているだろうか。そして多くのアメリカ人が、STEM*を国家的最優先事項にする必要があることを、認めるようになっているだろうか。その答えが、今週、ある程度分かるだろう。今週(12/9-15)行われるコンピュータ科学教育週間(Computer Science Education Week)の幕開けの祝辞としてオバマ大統領と共和党の下院院内総務Eric Cantorがそれぞれ、合衆国の児童生徒学生はプログラミングの学習を全員必須とすべし、とメッセージする、ビデオによる声名を発表した。〔*: STEM, science, technology, engineering, mathematics; 理数系~理工系教科。〕

一方Code.orgも今週、数か月かけて準備したキャンペーン”Hour of Code“(1時間のプログラミング)を立ち上げる。コンピュータ科学教育週間と同じ週にこのキャンペーンは、合衆国の教師たち全員に、児童生徒にコンピュータ科学とプログラミングを教える時間を1時間確保するよう、求める。全員だから、英語や歴史の先生も対象に含まれる。

Partovi兄弟がCode.orgを立ち上げた動機も、今のアメリカの学校におけるコンピュータ科学やプログラミング教育の乏しさにある。だいたい10校のうち9校は教科にコンピュータ科学が含まれない。今は少しずつ変わり始めてはいるが、それでもコンピュータ科学とプログラミングが選択科目である学校が多い。つまりそれらは、成績証明に含まれない。Partovi兄弟とCode.orgは、カリフォルニア州に対してはこれまで積極的にロビー活動を積み重ね、徐々に状況を変えつつある。

Hadi Partovi(元Microsoft、MySpace、iLikeなど)によると、Code.orgの最初のミッションは、各州がコンピュータ科学を必須学科にすることだ。官僚主義とのたたかいは容易ではなかったが、彼らの説得に耳を傾ける州も少しずつ増えつつある。“ロビイスト活動の中では、むしろ、それほど苦労しなかった方ではないか”、とHadiは言っている。

そして今度は、州に次いで国が腰をあげる。また、”Hour of Code”キャンペーンに参加するのは合衆国の学校だけでなく、世界167か国の33000のクラスの500万人あまりの児童生徒の参加が期待されている。Hadiの“500万人あまり”とは、1000万のことだ。

Code.orgのその目標達成を助けるために、AppleとMicrosoftは全世界の小売アウトレットで”Hour of Code”のクラスを行う。Appleは、各店で”Hour of Code”のクラスを展開することを、専用のWebサイトで公示している。同社によると、‘きわめて対話的な’状況および雰囲気の中でプログラミングの基礎を教えるそうだ。こうやって、自社の店舗などでこのキャンペーンを助けるという企業は、100社近くある。その中には、テクノロジ系でない企業もある。

Googleの検索ページは、右図のようなGoogle Doodleでコンピュータ科学教育週間を祝っている。この絵に登場する女性は、女性プログラマの元祖でCOBOLプログラミング言語を作ったGrace Hopperだ。絵の下には”Hour of Code”へのリンクもある。このほかCode.orgは、Yahoo、Youtube、Apple、MSN、Bing、Disney、 有力政治家たち、映画などのスターやアスリートたちにも、キャンペーンの宣伝への貢献を求めている。

現在協力を表明している俳優やミュージシャンはShakira、Ashton Kutcher、Angela Bassettら、アスリートはChris Bosh、Warren Sapp、Dwight Howardら、テクノロジ世界のリーダーの中からは生前のSteve Jobs、Bill Gates、Mark Zuckerberg、Susan Wojcickiらだ。全国レベルの政治家では、民主党、共和党の両派が協力を表明し、オバマ大統領と共和党下院院内総務Eric Cantorのほかに、上院議員Cory BookerNewt Gingrich、教育大臣Arnie Duncanらが、”Hour of Code”を支持するビデオを掲出している。

Code.orgは、”Hour of Code”キャンペーンに協賛してチュートリアルを提供する企業や大学、非営利団体などのリストと、 Mard Zuckerbeg、Chris Bosh、Bill Gatesらが登場するビデオチュートリアルを提供している。この前の”Learn to Code”キャンペーンのビデオは2週間で1200万回見られた。

また10月には、LinkedInのCEO Reid Hoffmanが、なぜ全アメリカ人がプログラミングを学ぶべきか、その実利的な理由を本誌の記事で語っている。

下のビデオは、オバマ大統領のメッセージと、Code.orgによる、多くの有名人が登場する”Hour of Code”の立ち上げビデオだ。

さて、これからのアメリカはどうなるか。全国民がプログラミングを学ぶだろうか? まずCode.orgのページを見ながら考えてみよう。〔*: 日本でも現安倍政権の構想では、“いずれ”義務教育からプログラミング教育が導入されるらしい。〕

〔訳注: Code.orgに関する過去記事: (1)(2)(3)。〕

〔Code.orgのビデオの大阪弁バージョン。〕

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


コンピュータ科学とプログラミングの全国民“一般教科化”を目指すCode.org

logo (1)

ハッカソンで何かを簡単に手早く作ってしまうプログラマたちを見ていると、世の中の一般人は、宅配ピザの空き箱とRed Bullの缶が散乱したHarvard(ハーバード大学)の学生寮の、薄暗い一室を想像するかもしれない。なぜなら、世界の、サンフランシスコとニューヨークを除くあらゆる部分で、人びとはプログラマという人種を映画“The Social Network”でしか見たことがないからだ。Hadi Partovi/Ali Partovi兄弟は、今日(米国時間1/22)非営利事業として立ち上げたCode.orgでもってこの状況を変え、コンピュータ科学とプログラミングを誰もがアクセスできるものにしたい、と考えている。誰もがとは、プログラミングをしたい人という意味ではなくて、文字どおり、誰でも、世の中の人すべて、という意味だ。

文章を書くことに比べてコンピュータのプログラムを書くことには、なぜ今のような大きな格差があるのか、昨日Hadiに会ったぼくは、まずそれを聞いてみた。彼は、“それは放っておいてよい格差ではなく、この国が解決しなければならない重要な問題だ”、と言った。格差の原因の一部は、本当なら今や誰もが学ぶべきコンピュータ科学を、学校が教科として教えないことだ。また教師をはじめ今の世の中の一般人は、プログラミングが読み書きと同格の必須スキルであることを、理解していない。Partoviは、この大きな問題に挑戦することを自分のライフワークとし、そのための行動の一環として Code.orgを立ち上げた。

Partoviはこれまでの経歴がすばらしくて、iLikeやTellmeのファウンダの一員だったし、FacebookやDropboxやAirbnbなどにも投資やアドバイスを提供している。

私はこの業界で過ごした経験から貴重なものを多く学び、そして、ソフトウェアというもののおかげで世界が完全に変わってしまったことも知った。そこでは、新しい仕事が増えているだけでなく、産業の形も大きく変わっている。にもかかわらず、学校は逆の方向を向いている。しかし、世界でもっとも高い給与をもらっている人に、世界でもっとも低い給与の仕事をやってもらうことは、困難である*。

〔*: もっとも高い給与をもらっている人==プログラマ(など)、もっとも低い給与の仕事==学校の先生。〕

スタートアップという仕事は、必ずしも収入の良い仕事ではないが、そのことも学生たちのあいだでコンピュータに人気がない理由かもしれない。でも、誰もがある程度コードを書けるようになったら、これまでアイデア倒れに終わっていたような発想にも、実現に向かう道が開けるはずだ。コンピュータプログラミングは、ふつうの仕事に就いた若者にも、そのための道具や武器を与える。

実はPartoviのこのCode.orgプロジェクトを紹介する短編ビデオには、自分のアイデアをプログラミングを通じて大きく実現した人物像のモデルとしてMark Zuckerberg(Facebook CEO)が、出演する可能性もある。Zuckerbergと並んで、Bill Gatesも出演するらしい。このビデオの目的は子どもたちに、コンピュータのプログラミングは勉強する意義のあるすばらしいものであり、しかも、考えていたよりも楽しいことを、伝えることにある。楽しみとしてのプログラミングはそろそろ、親の家の地下室に住む“スーパースマートキッズ”たちの独占を脱し、広く一般に開放される必要がある。

なお、この短編ビデオを作ったLesley Chilcottは、Code.orgのチームの一員であると同時に、映画“An Inconvenient Truth”や“Waiting For Superman”のプロデューサーでもあった人だ。

そのビデオは、制作時の契約に基づいて、全米で50万以上のクラスに寄贈される。先生たちは、それを教室で再生するだろうか? それはまだ未知数だが、ビデオには先生たちに対する啓蒙の意味もある。Code.orgがやっていることに関心のある先生や親たちは、寄贈対象になってなくても、ぜひそのビデオをもらうべきだ。

数字が語る真実

hadi-partovi

Partoviによると、コンピュータ業界にはおよそ140万の仕事があるが、これまでコンピュータ科学を専攻して大学を卒業した者の合計はわずか40万だ。その差は、小学生にも分かる、約100万だ。コンピュータを仕事とする人材が、絶対的に不足している。だからこそ、これからは、プログラミングを義務教育の必須教科にしていくことが重要なのだ。Partoviは次のように言う:

オバマ大統領は、税金を上げる必要も、歳出をカットする必要もない。子どもたちをしっかり教育して、それらの仕事が海外に逃げて行かないようにすればよいのだ。

code-infographic
[インフォグラフィック訳:
2020年にはコンピュータ関連の仕事の数がコンピュータ科学専攻学生の数より100万多い。

コンピュータ科学は大卒の中で二番目に高収入の学位、コンピュータプログラミングの仕事は全国平均の倍以上の成長率。

仕事はコンピュータ科学に多く、しかし専攻学科はコンピュータ科学がとても少ない。

大卒でコンピュータ科学の学位取得者は全学卒の2.4%以下、しかも10年前よりも減少。

高校教師でコンピュータ科学専任は1000人中6人。

あなたの学校をcode.orgに登録しよう。
]

数字の話の続きとしてPartoviとぼくは、スタートアップとテクノロジ企業を全部合わせると今後の雇用機会はどれぐらいになるのか、という話をした。関連してレストランやバーといったサービス業の開業や雇用機会も増えることを、忘れてはならない。Justin KanのExecのようなサービスは、各種サービス業のプロたちと、彼らへのニーズを結びつける。

平等公平なアクセス

photo 20

重要なのはアクセス性だ。Code.orgも、そこから始める。Partoviは次のように説明する:

だから、本当は100万以上もの新しい雇用機会がある。それによって、この国の最大の問題が解決できる。しかしその機会に実効性があるためには、すべての子どもや児童生徒学生たちが、全員、簡単にプログラミングを学べるのでなくてはだめだ。

もちろん、プログラミングができることイコール、プロのプログラマになることではない。どんな仕事でも、今および将来は、コンピュータとネットワークと日常使うアプリケーションを正しく理解して、数行のスクリプトぐらい自分で書けることが重要なのだ。医師も弁護士も、クラウドについて、あるいはドキュメントがどこに保存されているかについて、基本的なことを知っているべきだ。Partoviの説では、農家の人たちでさえ、農業は今やテクノロジと無縁ではないから、コンピュータ科学の基礎を理解していないと次世代のイノベーションについて行けなくなるだろう。

Partoviの話は、だんだん熱を帯びてくる:

これは、一業界の問題ではなく、国家の問題だ。宇宙開発に着手したときと同じぐらい、あるいはそれ以上に重要な、全国民の抜本的な能力開発だ。やるかやらないか。今やらなければ、アメリカはずっと後方に置き去りになる。これからの子どもたちには、何を備えさせてやるべきか、真剣に考えよう。わが国の教育システムは150年間変わっていない。その間、新しいものは何一つ加わっていない。だから、今加えるべきものが、ものすごく重要なのだ。

Code.orgが今やろうとしているのは、何らかの形でプログラミングを教えているクラスのデータベースを作ることだ。高校、大学、子どもたちの週末行事、などなど。このデータベースの作成には、誰もが参加できる。うまくいけばそれは、この種のデータベースとしては世界最大のものになるはずだ。今は、まだ始まったばかりだが。

Screenshot_1_22_13_7_54_AM

学ぼうと思えば、公立校の11歳のヒスパニックの少女でも学べるのに、今はまだ、たとえば2〜3人の少女たちがコンピュータを囲んでプログラミングをしている、なんて、ありそうな画像が実はまったくない。この状況をこそ、変える必要がある。

Codecademyなどのサービスも、この問題の克服に取り組んでいる。それは、浅瀬で足を濡らしてみるのに適したサービスだし、また友だちを誘うのにも適している。

テクノロジは多くのドアを多くの人びとに開放しているし、個人にとっての参入障害はほとんどまったくない。コンピュータとインターネットへの接続があれば、今すぐにでも勉強を開始できる。次の”Mark Zuckerberg”は、Zuckが思わず感心してしまうような子どもたちの中から、出現するだろう。

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