はじめに
勉強会でnode.jsについて発表した。スライドはslideshareにあげた。
www.slideshare.net
タイトルはnode.jsについてがっつり解説すると思いきや、話の主眼は「新たな言語をどう身につけるか」です。というかそう倒しました。(笑)
元々node.jsをはじめたきっかけが以下の記事で書いてあるように、今の自分が単一のフレームワークしか触れていないことに危機を感じていて、物事のコアを押さえて効率よく新しいことを吸収する術を身につけないとな、と思ってはじめました。
ただどうも作りたいものが見つかるわけでもなく、本の半分ほど読んで動かしたところで何ともしっくりこなかったので、学ぶにあたって新たに知った概念やソフトの紹介をしつつ、議論する方向にしよう、と前日にスライドを作り始めました。結果、うまくいった、かな。
新しい言語の学び方
本から学ぶ
本を読む→軽く動かす→わかったつもり
なんですね。本のうまい使い方がよくわかってなくて、とりあえず買っちゃう。で買っただけで満足するとは言わずちゃんと読むしちゃんと動かすんです。ただそれだけだと「わかって」ないんですね。腑に落ちてないというか。
本は最初の第一歩、全体像を軽く理解するのに役に立つ、という意見と、自分で学んだあとに本を読むと理解できて良い、という2つの意見が出ました。いや最初に読むんか後に読むんかどっちやねんって話ですけど。(笑)
作りたいものを作る
チュートリアル読んで作る→作りたいものを調べながら作る→わかる!
なのかなと想像して、みんなに意見を聞いてみました。
まずは「作りたいものがある」ことが1番かと。作りたいものが想像できた上で、それを実現する手段として言語・フレームワークを学ぶ。めっちゃ当たり前のこと言ってますねなんだこれ。
今回アプリコンテストに出た話を発表してくれた同期はRubyとPythonという武器が2つあるので、作りたいサービスやアプリが先にあって、それを実装して身に着けていくというスタイル。いや、理にかなってるよな。
となると今私がやってる「javascriptさすがに書けないのまずいし、Ruby on Railsだけってのも問題だし、node.jsやるかー(作りたいものは特にない)」はマズいってのはよくわかる。モチベーションが実際続かない。
かといって、作りたいものがなければ学べないのか、って話になるし、作りたいものがあったとしてもベースの知識がないと実現できるかどうかの判断ってできないから、これもやっぱり車の両輪のような話なんでしょうね。
聞けるひとを作る
コミュニティに質問した体験から、とても捗ったという話。webや本で調べていても、適切な解決法が探せないことも多い。経験者に聞く、聞けるというのが1番っていうのは何を学ぶにもそうですね。
関連して、チームで開発するってのはこの点がいいんでしょうね。実際、Ruby on Railsがようやく身になってきたのもチームで作ったからだと思うし。
おわりに
こうやって同期で議論できる、いい場でした。(勉強会、終わっちゃったけど)
まとめると、「実現したいもの」が先にあった上で、それを実現するに最適な言語・フレームワークを探し(有識者に聞く、もしくは得意なものを使う)実現しながら学ぶ、というのが近道なようです。
逆に言えば、作りたいものがなく、新しい言語を学ぶ場合でも、作りたいものを決めたほうが良いってことですね。
世に出せるものを誰かと作りたいな。
あ、しばらくはjavascript、node.jsをやる予定。。。