Mainly Devel Notes

Twitter, GitHub, StackOverflow: @ovrmrw (short hand of "overmorrow" that means the day after tomorrow)

「僕はどうしてAngular2をテーマに登壇することになってしまったのか」を振り返る

昨日(2016年9月9日)、品川のマイクロソフト社内で開催されたAngularミーティングで登壇させていただきました。

僕はどうしてAngular2をテーマに登壇することになってしまったのか

人生初登壇で120名を前にして、僕はところどころで声が震えたり、しゃべろうと思ってたことを飛ばしてしまったり、ウケを取りに行ってすべったり、色々とテンパることもありましたがなんとか30分しゃべりきって伝えたいことは大体伝えられたかなと思います。

ただ話したかったけど端折ったこともたくさんあったし、当日の雰囲気や僕が思っていたことなども伝えたいと思ったので、このエントリーで補足したいと思います。


スライドNo.2 自己紹介

赤字のところを重要なポイントとして説明したところで会場にざわめきが。
「マジか・・・」みたいな声がちらほら聞こえた気がします。
もはや緊張しかない。しかしここまで来たらやるしかない。

No.4~9 Angular2を始める前の僕のスキル

正直言うと少し盛ってます。 SPAのネタを最初に考え付いて、確実に笑いを取るためにどう構成したらいいか考えていたらこうなったという感じです。
後のスライドに出てきますがAureliaを事前に知っていたしチュートリアルとかもやっていたので、さすがにSingle Page Applicationを知らなかったというのはないですね。ごめんなさい。 SPAネタは実際にそこそこ笑いを取れたのでこの時点で僕の緊張度はかなりほぐれました。

No.10~12 なつかしのジオシティーズ

男の子がちょこっと顔を出してからのジオシティーズネタ。
会場には知ってる人が20~30人はいたようです。仲間がいてよかった。 ここも笑いを取りに行った場面でしたが、知ってる人がそもそも少なかったためにあまりウケず。

No.15 有名な本のタイトルパクり

一応笑いを狙ったけど会場は全くの無反応。ちょっと焦る。
もしかして元ネタがわからなかったかな。 この辺から会場を煽りに行くスタイルが始まります。

No.16~18 YUIねずっち

歌手のYUIとYahoo User Interfaceを掛けて笑いを取りに行く場面。 これはウケたかどうかちょっと掴みきれなかった。YUIを知ってる人があまりいなかったかも。 自分がおじさんなんだなとしみじみ感じます。

No.19 実はAurelia知ってました

Aureliaガチ勢のけんさんが会場に来ていることを知っていたので言及した。
けんさんとは僕がKnockout.jsを使っていたころからTwitterで繋がっています。

No.20~21 会場をdisりに行く

ドヤって笑いを取る予定だったけど大してウケず。

No.25~ 英語力大事

もはや何の勉強会かわからない。でも僕からすればAngular2の力と英語力は密接に結びついている。
これがどれくらいみんなに伝わるか正直わからなかったけど、終わってみればそんなに評判は悪くなかったよう。

No.32 覚えること羅列、でもみんななら簡単でしょ?

「会場に来てるような方なら100時間もあればこれらを網羅できると思います」みたいなことを言った覚えがありますが、これには『早い人なら』という注釈を付けざるを得ない。
僕はほぼ0からのスタートだったので網羅するのに大体1000時間くらいはかかっています。

No.33 現実を突きつける

これからのエンジニアはここから目を背けちゃいけない。
これに関しては確信を持っているけど、会場にどれくらい伝わっただろうか。

No.35~36 エラーは英語力で倒す

スライドには書いてないけど上から下まで目標は「1~2分でこなしたい」と話しました。
実際には沼に落ちたりして数時間嵌ることもあるけど、大体のことは1~2分程度で済ませることを目標にしたいですね。

No.37 Angular2の先を見据えよう

Angular2をやろうとやらなかろうと、何か新しいことをやるときには必ず英語力が自分を助けてくれる。
少なくとも僕は自分の英語力にたくさん助けられたから。

No.38 思い出がたくさん

ここで話したいことは実はたくさんあった。
何回もプレゼン練習してわかっていたことは、あまり話し過ぎると30分という枠に収まりきらないということだったので、数々のエピソードは会場では端折った。 とはいえここにそれを書こうかと思ったらかなり長くなりそうな気がしたのでここでも端折ることにした。

No.39~41 やらないか

最後の笑い取りポイント。思ったほどではなかったけど少しはウケていたようなのでほっとした。
このために2日前に金井さんに写真使用の許可をもらっていた。(こういう使い方をするとは言わなかったけど)
大人は根回しが大切です。若い人は覚えておいてください。

No.42 ハートフルストーリー

Angular2をやっていたおかげで、色々な人と話ができるようになってそれが純粋にうれしいし楽しい。
エンジニアはどうしても自分の技術のことだけを考えがちで、人のつながりとかを軽視する傾向にある。むしろそういう傾向こそが技術力を高めるのに寄与するという事実もきっとある。
でも僕なりに人のつながりを大切にしてきたおかげで登壇するに至った、ということを伝えたかった。

No.43~45 Qiita

Qiitaの記事の紹介。
僕の知見はここに全てあるので時間のあるときに是非読んでほしいと思います。
そしてもちろん一番重要なのは記事そのものではなくソースコードです。

No.46 みんな頑張れ

これらは本当に重要。rxjsとzone.jsは脇役だけど無視していると痛い目に遭うので注意。
そしてこれらと向き合うときに大事なことは、自分が思っている動きと違う動きをしている、と思ったのならまずソースコードを読むことです。
僕は最初ソースコードの読み方も全然わからなかったけど、Angular2のおかげで今ではソースコードを読むのにそんなに苦労しないというところまで鍛え上げられました。

No.47 TOEICはガチでやると自分のためになる

エンジニアはここから逃げている限り飛躍できない。
例えるならサイドブレーキを引きながらアクセルを踏んでいるようなものだと思います。
ちなみに僕はTOEIC770点なので偉そうなことを言える立場ではないけど、自分の英語力にはかなり助けられています。
TOEICなんかやったって英語力は伸びない」という人もきっといるだろうけど、それはスピーキングに関していえばそうかもしれない。
でもリーディングには相当寄与するはずで、TOEICで僕の点数を超えたとき、それでもTOEIC及び英語力がエンジニア人生には全く役に立たないと思えたのなら、そのときは文句を受け付けましょう。

No.48 人はやればやっただけできるようになる

これは学習塾とかでよく言われていることです。
僕が読んだ冊子に書いてあることをそのまま引用しましょう。

学力を高めるために必要なのは、時間。どれだけの時間を学習に割り振ったかが、学習能力を決める。運動に秀でた生徒は運動に時間を割き、学習に秀でた生徒は学習に時間を割いたのだ。学習に秀でようと思ったら、どうしても学習時間をつくらなければならない。(中略)
「心理学的な常識からすると、熟達に至るまでには500時間、1500時間、5000ないし10000時間といった3つの壁があるように思われる。最初の500時間は初心者の段階である。(中略)1500時間やると素人ではかなりうまいほうになる。(中略)しかし、本当の意味で熟達者になる、つまり、内的な評価の枠組みができあがるためには、少なくとも5000ないし10000時間が必要だと言われている。」

つまり何かが出来るようになるためにはどうしたって時間が必要だということなんです。
よく「学習コストが高い」などと言って何もやろうとしない人がいますが、それに対してそれなりの時間を割けるかどうかがそこで問われています。
ちなみに僕は通勤時間が1時間半くらいかかる毎日を送っていますが、34歳のときから往復3時間を2年間くらい英語学習にフルに使いました。2年間でトータル何時間になるかわかるでしょうか。ざっくりな計算をすると2000時間ぐらいです。
実際にはそれ以外の時間も結構英語に振ったので合計時間はそれなりに大きな数字になります。

それだけの時間を英語に費やした人の英語力を想像できますか?

できないのは、やらないからだ。
やってもできないのは、できるまでやらないからだ。

僕の教訓です。