アメリカ

潜入!アメリカ『SFプログラミング ブートキャンプ』日本人女子が参加してみた。

8月 18, 2014

みなさま、こんにちは!Maiです。今回のアメリカのプログラミングキャンプに参加した時のことを書きたいと思います。

私の人生は、この2ヶ月間、このサンフランシスコ、シリコンバレーでの生活を『プログラミング ブートキャンプ』を通して、本当に大きく変わりました。そのことを一生忘れないために、そして私のように『プログラミングを学びたいけどどうしたらいいかわからない』そんな人のために少しでも役立てたらいいなと思って書いています

カナダでWEBデザイナーの見習いとして働き始め。

私はもともとシリコンバレーに来る前は、東京の大手広告代理店の子会社で、営業兼ディレクター担当として入社しました。入社後は1つのサービスの「立ち上げと運営アシスタント」、そして複数あった自社広告の「営業」の両方という普通の企業では絶対に経験出来ないとても貴重な経験をたくさんさせてもらいました。

私は経済学部出身だったのでまるでプログラミングの経験がなく習う機会すらまったくありませんでしたが、広告媒体を売りながら将来は作る側として活躍したいという強い思いがあり、2014年の4月、独学をしながら、また会社の上司や同僚、知人に色々と教えてもらいながら、カナダにある小さな街でWEBデザイナーの見習いとして働き始めました。

プログラミング経験が全くないなりに需要性を感じ独学で勉強。

そんなカナダの生活の中、私が日常的に使ってきたモノやサービスのほとんどはWEBに移行し、更に世界中でモバイル保有者が増えたことで、モバイル版アプリを持たないサービスはあり得ないといっても過言ではないほどに、その重要度が高まってきていることをひしひし感じ、プログラミング経験が全くないなりにiPhoneのUIデザインやUXについての勉強をしながら、いつかiOSのプロダクトを作れたらいいなぁ、なんてことを漠然と考えていました。

シリコンバレーで人気だった『プログラミングのブートキャンプ』に行くきっかけ。

そんなある日、Facebookメッセージにある一つのメッセージが届いていました。

エンジニアの友人
『今年の夏は何する予定なの?』

そのメッセージは、私が学生時代からずーっと憧れていたFacebook、Appleでのインターンを経て、現在シリコンバレーの教育系スタートアップでエンジニアをしている知人からでした。私はてっきりバカンスのお誘いかと思い、

『カナダに来たばっかりで友達もいないし、得に何もないよ。』

と返信すると、すかさず彼はあるURLを送ってきました。

そのURLをクリックするとそれは「MakeGamesWithUs(今はMakeSchoolに改名)」、シリコンバレーで今人気のiOSプログラミングブートキャンプのホームページでした。詳しく聞いてみるとそれは、「日本人を3人集め、Skype面接とプログラミング試験にパスすれば、2ヶ月間でiOSゲーム作りを学べる素晴らしいスクールにスカラシップ付きで入学させてあげよう」といった内容でした。

面接と試験に受かり、サンフランシスコの『プログラミングブートキャンプ』に参加することに。

日本にはほとんどないブートキャンプが、今シリコンバレーでは大流行していて、そのプログラムがどれだけ価値のある素晴らしいものか、またそのキャンプへの入学がどれだけ制限された厳しいものであるかを知っていた私は、仕事の合間をぬってひたすらKindleで勉強をし、なんとか面接と試験をパスし、気付くとAirCanadaのオンラインサイトでサンフランシスコ行きのフライトを買っていました。

早速、サンフランシスコに到着したのも束の間、『Objective-C』のプログラミングブートキャンプにすぐ参加することになりました。今回のキャンプには世界中から1,000人が応募し、合格した200人がニューヨーク、パロアルト、サンフランシスコのの3箇所で一斉に合宿を開始します。その中で日本人として参加するのは私を含め3人です。

『プログラミングブートキャンプ』の初日。

キャンプのオープンデー(初日)に早速行ってみると、サンフランシスコのショッピング通り(SOMAソーマ)という場所のBryant通りにある貸しオフィスの二階に、なんと世界各国(計17の国)から参加者が集りました。びっくりです。午前中は本カリキュラムとOverviewについてざっと説明が行われました。

初日からゲームを作る内容で、ゲーム開発未経験の私は不安が。。正直なところ、ゲームについては全く知識も関心もなく、ゲーム好きの父親にファミコンのマリオブラザーズの相手をさせられたことがあったくらいですので不安9割の初日です。こんなことで大丈夫かと頭の片隅で自身に問いかけながらゲームの本質に関するプレゼンを聞いている自分がいました。(笑)

Githubのアカウントを作り、Xcodeをダウンロードするところから始まるかと思えばすぐにコーディングが始まりました。ゲーム好きな人が多く集まって来ているので、ゲームについて興味を深める良い機会になりそうでワクワクしましたが、同時に配布されたURLを元に各々のペースでプロジェクト開発のスピードは言うまでもなく速くて、初日から圧倒されました。汗。

『プログラミングブートキャンプ』の作業内容は、ひたすらゲームを作る

今回のプログラミングブートキャンプの最終目的はiOSのゲームひとつをリリースすることで、ざっくりいうと最初の方は、すでにある人気ゲームアプリひたすら開発していき、最後に自分のオリジナルのゲームアプリを公開するというのが流れになります。初日から私たちが開発していたゲーム内容は以下になります。


人気ゲームアプリ『フラッピーバード』のパクリを作る

初日から、コーディングが始まりましたが、次の日にはすぐにゲームの開発の勉強に入りました。生徒は、Appleアプリ開発ツール『X-code』を使って人生初、人気ゲームアプリ『フラッピーバード(Flappy Bird)のパクリ』を作りました。

人気ライフシミュレーションゲーム『Conway's Game of Life(ライフゲーム)』の作成。

正直に言うと、ライフゲームは少しばかりアルゴリズムを考える必要があるのでプログラミング初心者が最初に作るには難しくて意地悪だなぁと知人と話していましたが、 セル配列の練習やゲームのシュミレーションにとても良いテーマだと言われたので最後まで諦めずに頑張りました。

人気ゲーム『Angry Bird(アングリーバード)』コピーに挑戦!

そして、キャンプの第一関門「Angry Bird(アングリーバード)」開発づくりに入りました。『SpriteBuilder』を使ってアニメーションの制作やキーフレームの追加、カメラのスクロールやゲームには欠かせない「リセット」ボタンの固定を行いました。

『Angry Bird(アングリーバード)』のコピー『Peeved Penguin(イライラしているペンギン)』に挑戦!

人気気ゲームの『Angry Bird (怒りんぼうの鳥)』のコピーした『Peeved Penguin(イライラしているペンギン)』ってキャンプの中では呼ばれているいる物を作りました。

2ヶ月間の『シリコンバレープログラミング』で学んだ5つのこと


内容的には、色々書きましたが、無事になんとか2ヶ月間のプログラムを卒業することが出来ましたが、初日から最終日まで本当にバタバタでしたが、この2ヶ月間学んだことは5つあります。

1.英語情報の多さとスピードの速さ。

今回のキャンプは、サンフランシスコ以外にパロアルトとニューヨークでも同時に行われていてSFは社会人やプログラミング経験者が圧倒的に多いようです。英語にも格闘しながら、テクニカルで専門的な言葉にも苦戦し、頭の中は常に花火が打ち上がっている状態ですがその中で学んだのは、『あらゆる情報に対して恐れず常にフットワークを軽くすること』と『これは今は知らなくていい、かな?(^^)(笑)」』いう諦めの塩梅です。英語に苦戦しても、テクニカルな単語がわからなくても躊躇しない。スピードが何よりも大切なことを学びました。

そして英語と日本語では、技術の情報の差が明らかでした。英語もプログラミングもどちらもツールですが、順番としては「プログラミングを学ぶために英語を学ぶ。」が一番しっくりくると感じました。

2.海外で売れるゲームの価値観の違い。

今回、日本でさえゲームを全くしない私にとって、アメリカでゲームのアイディアを考えるというのはぶっちゃけ至難の業でした。アップルストアの日本のランキングとアメリカのランキング、カナダのランキングを見比べると出てくるタイトルがまるで違います。

アメリカ人はシンプルでわかりやすいゲームを好むので、そう言った観点からゲームをデザインする癖をつけるのが良いのだそうです。仲良くなったアメリカ人の知人は、日本のRPGゲームはたまにするけど長くて飽きてしまうと言っていました。

そういった海外の嗜好の違いから、ゲームデザイナーのアンドリュー先生に、ゲームのアイディアの出し方、アイデアのどこにゲーミフィケーション(『Gamificaiton)』が含まれているのか。そのアイデアを誰が面白いというのか。何故、他にはない新しいアイデアを盛り込まないのか。など、ゲームの開発だけでなく、マネタイズ視点、マーケティング視点、Player視点と言った多岐に渡った視点など、本当に良いアドバイスをもらいたくさん学びました。

ちなみにこのアンドリュー先生、このあまりにダイレクトなその表現と鋭い指摘に「ちょっと苦手。。」と言っている生徒が男人かいるようです。確かにアンドリュー先生は少し厳しい印象ですが、私は彼が言っていることは正しいと思うし、恐らく最終日のデモ(自身の開発したtゲームのプレゼン)に来るVC(投資会社)の方がもっと厳しいです。(笑)

3.集中と選択

今回私が6月後半から参加したサンフランシスコのプログラミングブートキャンプでは、毎日朝の9時から夜の5時までとにかく膨大なカリキュラムと膨大な課題が課せられました。

最初の4週間で使用する言語の基礎、プログラマーに求められる性質、ゲームデザインからゲームメカニクスの構築、マネタイズまでみっちりとつめ込めさせられました。そしてその後4週間をかけてひとつのゲームを作り上げるのですが、その途中でやはり様々なtipsや当日のピッチの方法などを鍛えあげられます。

アプリのレビューにも似たようなことが言えますが、言われたアドバイスを全て鵜呑みにすると自分が一体どんなゲームを作りたかったのかわからなくなってくる瞬間があります。また覚えておくように!と出された課題を全て慎重にこなしていては、特に私のようにプログラミング初心者で開発未経験のような人にはこの短期間でゲームを完成させることは不可能でした。

今回のキャンプでは、プログラミング言語の習得ももちろんのこと、とにかく短期間でインプットしなくてはならないたくさんの情報の中で、自分が一体何に集中してコミットしていくのかという、自らの情報の選択とワークの集中力がひたすら鍛えられました。

4.自己管理の出来るマルチタスクプレイヤーでセルフスターター

プログラマーは、クリエイターとして毎日常に何かを作り続けています。自ら自発的にアイデアを作り、機能を追加し、トラブルシューティングするその一連のワークの中では、次にどんな作業をするのか、優先事項はなにかといった自らタスク管理をする力が必要だと感じました。キャンプ中ではインストラクターから学ぶこともありましたが、それがすごく自然に出来ている優秀な生徒ばがりだったのでそのことが何よりも良い勉強となりました。

5.教えてくれる人、助けてくれる人を作っておくこと

キャンプ中には色んな問題が起こったり、プログラミングについてわからないことがたくさん出てきました。自分で調べる力も必要ですが、私のような初心者にはどうやったって解決しないことに何時間も時間を費やすのは少しナンセンスでした。そんな時にそっと聞ける相手を作っておくことはとってもとっても重要です。私はキャンプ中に何度も何度も、色んな人から救われて最後までサバイブすることが出来ました。

6.適度な気分転換をし、ストレス発散方法を知っておくこと

体は動かしていなくても脳内は常にマラソン状態だったキャンプ。マラソンをする時には必ず水分補給地点というものがあります。それと同様に、自分の息抜き方法をちゃんと知っておくことが大切です☆開発に煮詰まったら少し休む、そしてまたキーボードを叩く!そうやって少しずつコンピューターの前にカムバックしてくるまでのタームを減らしていきたいものですね!(自分に言い聞かせる。)

7.あきめない強い心を持つこと、考えることを辞めないこと、そして常に楽しむこと

プログラマーに求められるのは長距離マラソンのような強い忍耐力と、コツコツと頑張れる努力だと、現地スタートアップで働くプログラマーの友人に言われたことを今でも覚えています。昔高校の時、クラスの女子長距離マラソンで2位を取ったことがあって自分は目標を決めてコツコツと努力するのが向いているんだなって感じたことがありました。

シリコンバレーでもサニーベールのHollenbeckにある山の16キロハイキングに初心者ながらに完走をして、その友人に驚かれました。直ぐに結果を求めずにコツコツとひたむきに頑張れることはこのキャンプだけでなく、今後のプログラミングに重要なポイントの一つだと感じました。とにかく早く作ったプロダクトを人に見せて、よりたくさんのフィードバックをもらい、すぐに改善をするというサイクルを回すこと。そして自らがそれを作ることを楽しむこと☆とにかくこれに尽きるのではないでしょうか!


どうでしたでしょうか?これが私がサンフランシスコの『プログラミングブートキャンプ』に行って学んだことです。アメリカのサンフランシスコの土地は、世界中から技術者が集まっていて日本で凄い・・・!と思ったような人の集まりでした。その反面、それから触れる最新の情報すごくが日本にいた時と違って、なんだかポツンと置いていかれているような感覚さえ味わされましたが無事『プログラミングブートキャンプ』を卒業できたのが幸いです。(T_T)

卒業した私がこれからやらなくてはならないことは、毎日必ず何かしらのコミットをする。これは当たり前のことですが、毎日必ず何かしらのコーディングを続けキーボードから手を離さないということです。そしてこうやって記事に書くことで自分への誓いの示しになるのです!ゲームを作り終えて早速ですが、今は新しいプロジェクトに取りかかっています。プログラミングを通して、世界中の人と繋がって、いつも何かを作り続けていけたらなぁと思います。

エリアで記事を探す