ティーンズに技術者として成長するためのポイントを話てきた。

今日バイト先で頼まれて、WEBアプリ勉強会に参加してた大学生向けに「技術者として成長するためのポイント」みたいな話題で、勉強の仕方や持っておいて欲しいマインドについて話してきました。自分自身のコンピュータのど素人からはじまって今まで4年間の間に経験してきたことを元に話をしたんですが、即興で10分でまとめて15分くらいで話したので、後になって実はあれを伝えたかったんだというのが出てきたのでこの場にまとめ。

アウトライン

  1. 成長の二次曲線
  2. 技術を学ぶときのポイント
  3. 早く成長するためのコツ

成長の二次曲線

横軸に時間、縦軸に成長の度合いを取ると、成長は二次曲線のような弧を描きます。なにか新しい技術を学びはじめたときは、できることも少なくつまらない、ゆるやかな状態が続きますが継続して学び続けているうちにだんだんと二次曲線の傾きが急になって力がついた実感が持てるようになります。重要なのは、

  1. 継続して勉強する(最初つまらなくとも投げ出さない!)
  2. 成長曲線の先にある未来を具体化して計画を立てる
  3. とにかく行動に移す、成長曲線を少しずつ登り続けること

の3点です。成長して自分はどうなりたいのかという将来のビジョンを持っている人は、同じことをやっても他の人より吸収力がまるで違います。それを持っている人にとっては、何をやっても学びの場になりますが、ない人にとっては作業でしかありません。まぁ自分も初めてプロジェクトについた時は 仕事 = 作業 だったのでこんなことが言えるんですが、言われたことを黙々とやっているだけの時間は今思うと本当に勿体ない。もうね、かんなぎのDVDを買ったのに見ないでそのまま売っちゃうくらい勿体ない。それでもう中古のシール貼られてねたミシュランのネタですよ。美味しいとこ全部持ってかれちゃってる!

…かえって分かりにくくなった気がするので話を戻すと、将来のために使える時間は限られているので、時間あたりの価値を高めるためには、目の前の仕事にどれだけ意味を持たせられるかにかかっている。将来ああなりたいから、今はこれをやるべきという計画を立てて目の前の仕事に取り組むと、積極的に学びにいけるし、チャンスを逃さない。

学生の場合だと、ビジョンを半強制的に出さざるをえなくなる就活というイベントがありますが、周りがはじめるのを待ってないで早い時期から考えていたらきっと成長は早くなるはずです。だって、自分も周りも就活後に目の色変わったやつ多いですもん。

最後に、かならず行動に移すこと。将来のビジョンがはっきりしないならしないでいいんです。大事なのは行動を起こしてその結果からまた将来を考えてみること。ちょうど登山のように成長曲線を少し上ると、そこからの新しい景色が見えてくるので、また次の地点を目指せばいい。しいて言えば、将来の見通しが立つようになることが一番の成長と言えるのではないでしょうか。

技術を学ぶときのポイント

ポイントとして、10年後も使え(そうな)る、他の技術のベースとなっているような技術や考え方と、最近の流行の技術や時代の流れ等のホットな話題の二つを抑えることです。それぞれの特徴と具体例(今回はWEBの勉強会で、SAStrutsを使ってたのでそこらへんで)をあげると、

10年後も使える技術

長く使われており他の技術のベースとなっているもの、例えばHTTPはおよそ20年前に出来た仕様が少しずつ改良されて今にいたります。現在では、フレームワークに隠蔽されて意識しなくともアプリケーションの開発が出来るようになってきましたが、サーバー・クライアントモデルやGETやPUTの概念等はもちろん、プレインテキストでの通信といった内容は、いざという時に解決の糸口を探ったり、セキュリティやパフォーマンス等の品質に直結するものです。あとは、オブジェクト指向とか。学んでもすぐにモノは作れないけれど、最終的なモノの品質をあげたり作れるものの幅を広げる技術です。

ホットな技術

Javaのような言語やSAStrutsのようなフレームワークはホットな技術であることが多いです。次々と新しいものが出てきて、今の流行が1年後には時代遅れということもざらにあります。言語は同じ名前を冠していてもバージョンが異なるとかなり違ったりするのでこちらよりでしょう。こういった技術は、モノを作ることに直結していて比較的すぐに動かすことができます。ですので、やっていて楽しいしモチベーションも上がりやすいと思います。



どちらも大事な理由は、これらが切り離せないもので、「速く」「高品質」なものを作ろうとしたときにどちらも必要になってきます。学ぶという視点で見ると、ホットな技術を使って動くものを作ってモチベーションをあげつつ、その基礎として使われている技術をしっかり抑えるのがいいんじゃないでしょうか。ベースとなる考え方を抑えておくと、同じ基礎の上に成り立っている技術を習得するときに格段に効率があがります。例えば、Javaオブジェクト指向を抑えていた人はRubyに移ってもすんなりとコードが書けるし(Java的なコードになりますがw)、HTTPの知識はWEBをやってれば使わないことはありません。

ベースとなる技術から順番にやっていくのが一番効率良さそうですが、自分の場合はモチベーションが続かないので、動かしてとりあえず経験してから本等をあたって情報を整理し、点と点を結ぶような勉強の仕方をしています。たまに、新しい言語は言語仕様を読むところから入るみたいな人がいますが、俺には絶対無理w

早く成長するためのコツ

端的に3つあげてきました。

必要になったら学ぶ(必要になるのを待つのではなく、必要な機会を自分から作る!)

目的がない状態でだらだら勉強するより、必要になったときに集中して勉強したほうが効率的だし身につく。遅延評価勉強法と呼ばれているあれです。

自分自身、昔バイト先がサーバーサイドの人ばっかりでJavascriptがニッチな領域だった頃があって、やってみようかなーと思って本を買って読んでみたけど、すぐに後輩に出来る人が現れてそれなりに時間かけたのに実を結ばなかったことがありました。その後間を明けて、あるサイトをカスタマイズするGreasemonkeyを書こうと思い立ち分からないながらもなんとかやってみて、めちゃくちゃで赤面しちゃいそうなコードだったんですがとりあえず動いて人に見せたら結構反響があったりして、楽しくなってもっと綺麗に書きたいと思ってMozillaJavascript入門とかを見てるうちにプロトタイプベースのオブジェクト指向も分かちゃったよ!的なことがあったんですが、これが今思うとまさに必要な状況を作って勉強してたなと。

これをやるときに、出来た!動いた!で終わりじゃなくベースになっている技術や考え方を抑えておくといいと思います。

どんどん人に聞いてみる

自分の先を行っている人は、まだ自分が知らない感覚や効率的な勉強の方法を知っています。どんどん利用させてもらって早く追いついちゃうのがいいかと。その代わり肩を並べるようになれたら、自分からもどんどん情報提供していきましょう。

特に、新しい分野にチャレンジするときに全体像や雰囲気を掴むには人に聞くのが一番です。

これについてはちょうど前に似たような話をエントリーしました→教えるとき・教えてもらうときに大事だなと思ったこと

アウトプット重要

アウトプット重要だよねって各所で言われつくしていて、理由は色々あるけどとりあえずやっとくべきことの代表的な存在だと思います。似たものに、なんでも書き出してみるというセオリーがいます。

自分なりには理由が二つあって、

  1. 分からないということが分かるようになる
  2. 自信をつけるキッカケが出来る


ひとつめはそのまんまで、誰かに伝えようとしたときにはじめて、自分自身も分かっていなかったことに気づくのでどんどんアウトプットしようよ!という話で、うまく説明できなかったら謝って次ちゃんと説明できればいいじゃないという感じです。

もうひとつの自信をつけるキッカケというのは、自分自身が何に対しても自信が持てないなーという状況で3年生の前半くらいまでを過ごした経験を元に最近重要だと感じている理由です。まず、なんで自信が持てなかったかというところなんですが、人から承認してもらう機会が少なかったからだと思うんです。やっぱりチームや組織の中で行動する人間がこれでいいんだと思えるときって人から認められたときなんですよね。それってつまりは、自分がアウトプットしたものに対して相手からの同意が貰えたときなので、アウトプットを増やすということは承認の機会を増やすということになるわけです。

理解の段階が大きく二段階あるとして、理解はしていて自分の中では分かってる状態と、それを人に説明できる状態って差があると思うんですが自分のケースだと、とりあえず分かっているだけで満足してたのが原因でした。


それが、どんな些細なことでも少しずつアウトプットしてみようと心がけてから状況が変わりました。一番大きな変化は、納得いくまでやったことをアウトプットして認められればそれは嬉しいし、そうじゃなくても、自分が気づけなかった部分や足りなかった部分を指摘してもらえるのだから、次はもっといいものが出せると前向きに捕らえられるようになったことです。

それに慣れてしまうとアウトプットすれば、相手の反応はどうあれ必ず前進すると思えるのでよりアウトプットを重視するようになりました。こういう風に書くとちょっとおおげさかもしれませんが、元々議論とかあんまり好きじゃない自分が最近は議論したいと思うことのほうが多くなったので実際結構な変化があったと思います。いやー人間変わるもんですねー。




最後のほう技術ってところから話がそれちゃったけど気にしない。全体的にだらだらな感じなので後で直すかも、いや直す。