第6回 HTML5ビギナーズ トークセッション・ビギナーの勉強方法を考えよう!で話してきた
html5jの部活、HTML5ビギナーズのイベントをお手伝いしたり、登壇してきた。
今回のHTML5ビギナーズのイベントは、htmldayに合わせたイベント。
htmldayにHTML5ビギナーズもイベントやりたいねーという話しがMLで上がって、スタッフの尾崎さんがやります!と言ってくれたから開催できた。
普段の勉強会よりも小規模にして、内容もトークセッションと、これまでの勉強会とはちょっと違ったスタイルのイベントになった。最初にアイスブレイクとして、登壇者も参加者も自己紹介をした。少人数だとこういうことができていいね。
セッションの最中、blogとか書くといいよーって話をしたら、ちゃんと書いてくれた方がいた。
勉強会終了後も質問してくれる方がいて、終了後に30分くらいは参加してくださった方々とお話できた。セッションで話したことが、ある程度届いて、しかもblogを書くとか、質問するって行動に移してくれたってこと。こういうの、すごくうれしい。
JavaScriptを書き始めたころ
JavaScriptを書き始めたころ、最初に作ったのは、開いてるページのリンクを作るブックマークレットだったと思う。
javascript:window.prompt('','<a href="'+location.href+'" target="_blank">'+document.title+'</a>');void(0);
こんな感じ。調べればコードはたくさんでてきて、コピペすれば動く。意味はさっぱりわからなかったけど、ちょっとずつ調べた。
これはblogを書く時にリンクをつくるのが面倒で作った。そういうことを繰り返していくうちに、いろいろ覚えていった。調べながらその過程をBlogに書いたりすると、親切な人が教えてくれたりした。嬉しかったし、楽しかった。
やりたいことに必要な知識だけ勉強していった。でも、ある程度までいくと、ちゃんと勉強する必要がでてくる。そこで本を買ったりして勉強する。遅延評価的勉強法。
なにからはじめればいいのか、なにを作ったらいいのかわからない。ってのもあるけど、まずは身近な面倒なことを、プログラミングや技術で解決していくといいと思う。怠惰はプログラマの美徳。
モチベーションとか、続けるということについて
いろいろ勉強してみたり、本を読んでみたりしても、あまり続かない。やっぱり好きなことしか、やりたくないし、続かなかった。でも、大したことないものばかりだけど、いろいろなことを試してきた。HelloWorldレベルだけど、こんなAPIのサンプルは書いたことある。もうちょっとありそうだけど、思い出せない。
WebStorage, SVG, WebFonts, WebWorker, IndexedDB, MediaQueries, WebSocket, WebRTC, GeoLocation API, Page Visibility API, etc ...
これが何かに役に立ったかというと、あんまり役に立ってない。それでも、実際に使う時に、ちょっとでも使ったことがある、というのはとても役に立つ。
秋葉さんの話していた「トライ・アンド・エラーが大事なんだよ」ってことに共感する。すぐに役立つものもあるし、そうじゃないものもある。どちらにせよ、自分が試して失敗して、そのものを知るって経験は大事だと思う。
いろいろ試してみる、というのを考えると、スティーブ・ジョブズの connecting the dots の話を思い出す。
読むならこっちがいいかな。
繰り返しですが、将来をあらかじめ見据えて、点と点をつなぎあわせることなどできません。できるのは、後からつなぎ合わせることだけです。だから、我々はいまやっていることがいずれ人生のどこかでつながって実を結ぶだろうと信じるしかない。運命、カルマ…、何にせよ我々は何かを信じないとやっていけないのです。私はこのやり方で後悔したことはありません。むしろ、今になって大きな差をもたらしてくれたと思います。
なにかを続けるのはひとつの才能で、その続けられるようなものを見つけるには、いろいろなものに触れてみるしかないんだよね、と思う。何が、何に、役立つのかはわからないけど、それが繋がることを信じながらやっていく。
僕の場合、WebFonts好きであれこれ調べていたら、WebFontsの記事を書く機会をもらった。記事を書こうと思って調べていたわけではなかった。そんなもんだと思う。
まだ、仕事でWebFontsを使ったことはない。でも使う可能性は十分にあると思う。もし使うことがあれば、点が繋がったってことになる。
自分が印象に残っている文章について
本を読むのがわりと好きで、いくつか覚えている文章がある。ちょっと抽象的だけど、エンジニアというか仕事をしていく上で、この2つを意識する。
「でもそのときはそんなこと思いつかなかったんだ。僕の家は君のところと違ってとても平凡であたり前の家庭だったし、自分に何かの面で一流になれるかもしれないなんて考えもしなかったしさ」
「それは間違っているわよ」と娘は言った。「人間は誰でも何かひとつくらいは一流になれる素質があるの。それをうまく引き出すことができないだけの話。引き出し方のわからない人間が寄ってたかってそれをつぶしてしまうから、多くの人々は一流になれないのよ。そしてそのまま擦り減ってしまうの」
世界の終りとハードボイルドワンダーランド : 村上春樹
なんかあってほしい。一流というのをどれくらいのレベルとするかによるけど、僕は自分自身について、単一のスキルで一流になるのは難しいと思ってる。RubyやRailsのコミッタになれるほど、Web標準のSpec書けるほど、の情熱はない。なにか技術書を執筆する、くらいならなれるかもしれないけど、本書きたいという気持ちもない。
ただ、興味を持つ分野は、そこそこ広い気がする。
- RubyやRailsのコードを毎日書いてる。コード書くのは飽きない。
- JavaScriptをたまに書いてる。
- HTMLやCSSはそんなに書かないけど、読めるし、ちょっとしたものは書ける。
- セキュリティはWebアプリケーションを作る上での基本的なことは抑えてる。
- ネットワークやプロトコルは、専門家と話をするための基礎知識はある。
- UIとかIAとか、けっこう好き。
- 知識はそんなにないけど、フォントが大好き。
そんな二流くらいの知識も種類が多ければ、なんとかなってる。ディレクターや企画の人、デザイナー、インフラエンジニア、どんな人とも、それなりにコミュニケーションがとれる。気がする。たぶん。
足りてないと思うのは、いまどきのインフラとフロントエンドの知識。AWS使ったことないし、DockerとかVagrantも使ったことない。Gruntもあんまり使ったことない。足りないものを、ちょっとずつ勉強する。
ただ、もし、次のプロジェクトでそれらの技術を使うんだけどやってみる?って言われたら、やりたいです!と言うと思う。
「やるんだけど、心の準備がまだできない」
言い訳ともつかず茉莉がつぶやくと、惣一郎はひっそりと笑った。
「でもね、物事には準備する時間は与えられてないんだ」
それだけ言って、茉莉をそこに残し、一人で土手を滑り降りてしまった。
左岸 : 江國 香織
できないのにできるって言うのは、まあ、駄目だよね。でもそれなら、経験はないけど前から興味があって、ちゃんと勉強するからやらせてほしい、って言えばいい。ちゃんとリスクを提示して、その対策を考えて伝えればいいと思う。
みんな、それぞれ環境は違うけど、新しい技術だったら経験者がいないことが多い。そんなときにやりたいです、って手を挙げれば、やらせてもらえる可能性は高いんじゃないかな。
実際に使ったことなくても、本やWebではよく見かける。ざっとした概要はわかっているし、その技術そのものを使ったことはなくても、それに似た技術や関連する技術を使ったことはある。そういうことが、心の準備に繋がるんだと思う。
何かを始めるのに遅いことはないと思っている。そもそもWebの歴史なんて、20年ちょっとだし。
ただ、必要なときに準備ができていないことはある。そういうことは、できれば避けたい。楽しそうなことがあったら、取り組む準備ができているといいな、と。
まとめ
増子さんの「永遠のビギナー」っていう言葉がすごく印象に残ってる。
Webに関わっていれば、どんどん新しい技術がでてくる。新しい技術に対しては、みんなビギナーだよねって感じ。だから、そこからどうやっていくのかが、ほんとうに大切だと思う。