in 140文字で入らない呟き, Think

Web系でエンジニアを11年やってきて今やってる自分的勉強法

すろっくさんです。

割と勉強しないエンジニアは〜みたいな流れが流れてちょっと怖いよねと思う今日のこのごろですがいかがお過ごしでそか。

僕もエンジニア人生十一年目なのでそろそろ自分なりにやってきたこと書いてみようと思います。

勉強にたいしての前提条件

こんな記事ありましたね。

個人的な感想ですけど”仕事のためだけにやる勉強”は罪悪感でるだけなのでやらない派です。というか、それって続くのかなって感じるところは多々あって、なんか将来のためにも繋がらなさそうってのが個人的な考えです。でも結構な人が”仕事以外で勉強しないとエンジニアはダメ”っていってるコンテクストはそういうところに落ち着くんじゃないかなあ、なんて思ったりしてます。

そして一方で、SIerとかに行っちゃって、こういう記事を書く人っていうのは、結構今まで勉強を自分がやりたくてやったっていう経験がない人なんじゃないかな。とも思います。短い人生なのに、仕事から帰ってきて次の仕事のために勉強するって地獄だと思うし、頭も切り替えられないと思いますわ。。

僕はやりたいことしかやりたくない人間だったので、それはそれで日本の義務教育から大学中退するまでずっとマイノリティでしたが、社会にでてからはそれがうまく生きて、なんとか勉強できるようになりました。そもそも勉強とか言ってるけど勉強って

自分のやりたいことを実現するため70:仕事でも役立つかもね30

くらいの比率じゃないと正直やってらんねーなーって僕は思うので、まあやってることもそんな感じです。ただ一方で今の知識を固めていかないとここから先のまだ続くエンジニア人生で足元すくわれるので、そういう地力をつける意味での勉強もいるな、と思ってます。

ただ基本的にはITの技術をとても好きなのでやりたいことやってるには変わりないんですけどね。

ここまで前置き。

勉強することまとめ

じゃあお前はどうやって勉強してるんだよ、ってなると思うんですけど、僕はやることを以下の三つに分けてます。ちなみに全部好きでやりたいことあることが最低条件です。好きじゃなかったら勉強しません。

  1. いま一番仕事として成り立ってること
  2. 仕事としてはちょっときてるし世の中的には必要とされていること
  3. 仕事にしてないけど個人的にめっちゃくちゃやりたくてやってること

現状の僕としては1がChefをやAnsibleつかった自動化、AWSなどのクラウドをつかったインフラなんかの開発効率アップも含めたインフラの仕事、2はRubyやPHPをつかったWebアプリケーションの構築、3が絵&デザインって感じですかね。

なのでこいつらで分けて勉強していきます。勉強っていっても趣味みたいにやってるところもあるので、いまいち境界線が微妙です。

次にそれぞれのやることを二つに分けます。

  1. そこで最先端の流行的なもの
  2. 今の地力を確認するもの

1が予習、2が復習です。中学生のころ、予習復習ちゃんとしろよって進研ゼミにかかれててあーあーってげんなりしたかと思うんですが、僕は30過ぎてようやく大事だなーってことに気づきました。もうね。何年かかってんだよって。

ここまで整理したら実際にやっていきます。

実際にやること

そしたら実際にやっていきます。大事なのは「アウトプットすること」「時間を決めてやること」「勢いを殺さないこと」の三つです。

アウトプットすること

僕は目立ちたがり屋でみんなに僕をわかってほしい自己主張の激しいダメな大人なので、なるべく勉強したらアウトプットしてます。ただ、アウトプットする先が大事で、今は怖い人がいっぱいいるので間違ったこと書くと炎上します。あとアウトプットするぜ!ってなると自然と正しい知識を身につけようとするし、深くやろうとするのでオススメです。

ちなみに僕は炎上が嫌なので、書く先は二つに分けます。

  1. 自分がどの仕事先にいっても参照できるツールボックス
  2. 正しい知識を正しく伝えるための場所

1はGithubのtoolboxっていうリポジトリです。僕流設定メモとか設定ファイルが置いてありますが、基本スタンスは「ここに書いてあることを信じるのはお前次第だ。使うのは自己責任で」っていう感じなんで、あまり気にしてないです。プルリクとかくるとうれしいですけど、基本僕が知識をためていくだけなので。

あそこに知見を書いておくと「すろっくさんなにができるの?」ってことを自分でも言えるし、見てもらえるし、あとなにより自分ができることが明確になるので今後なにをしていけばいいのかがわかります。みんなもつくればいいよ。

2はQiitaやSlideshareですね。登壇とかしたりもそうですけど、こういうところで間違ったことはうっかりいえないので、ちゃんと気をつけるようになりました。Railsとかだと僕はRails芸人名乗ってるのでノリで書いてもある程度許されるかもですがそれでも間違ったことは言わないようにしてます。怖いひと多いしマサカリは苦手です。楽しくやりたいです。

アウトプットを「好き勝手かける場所におく」「ちゃんといろんな人にみてもらう場所におく」これが今の実力の地力を貯めていく場所になるので、復習方法としてはオススメです。

時間を決めてやること

二つに分けたら、今度は時間です。

一日単位で考えるより、一週間単位で考えるほうが気が楽です。僕は現場で技術的なことの最先端やってるのであまり帰ってからやると死ぬみたいなところもあるんで、勉強は落ち着いて考えられる休日の午前中に集中してやってます。

僕は基本毎日の生活リズムは同じで、夜11時か12時に寝て、朝5時半に起きるって感じなので、休日は仕事がない午前中をびっちり入れます。6時間ぐらいですね。昼までやって、その後は上のやることリストの3をやるみたいな感じです、でもコードかいたり技術的なことも好きなので、結局続きやってたりもしますけど、そこは柔軟にやってます。

大体これで1週間あたり12時間くらい勉強時間とれるんですが、平日帰って無理やり2時間時間とろうとろうとして「今日もできなかったああああああ」って辛い思いするよりは、一週間で何時間やる、って決めたほうが気持ちも楽ですし、できた!って気が僕はしてます。もう平日はしゃーないっす。明日のために家では家族と過ごしたり好きなことするんだ!って割り切って早く寝たほうがいいです。僕はコード書くの好きなんで家帰ってきてもvagrantコマンドうったりもしますけどね!!!!!!

僕はまだ土日も働かないとしぬスタートアップのCTOとか経営者ではないからこういうことができるのかもしれないですけど、いまんとこワークしてるので、現場にいる限りは続けていこうと思います。

あと自分ができるくらいでやってくほうがいいです。他人の言葉に振り回されるより、自分にぴったりのやりかたがいいっす。

勢いを殺さないこと

時間の話してからこれ話するかよってなるとおもいますがふれときます。

やりたい気持ち超大事です。僕はいろんな人から「すろっくさんは行動力ぱないっすね」っていわれるんですけど(それで失敗することも多/げふんげふん)やりたいときがしたいときです。僕はこないだなんとなくPHPやりたかったのでやってみましたが、まあ変わらずだなあって感じでさくさくやってました。

やりたい気持ちがあると勢いが生まれるんで、その間にがつっとやっちゃうといいです。僕はなんかトレンドないい感じのやつあったらこれでやります。予習とかこれですね。今勉強会でIoTとかめっちゃ熱いですが、ああいう勢いはこれの延長戦にあるんだろーなーって思います。

まとめ

こんなとこですかね。

勉強できないって思ってる人の参考になれば嬉しいです。

そして、この世の技術者のみんなが、どうか技術をもっと愛してくれますように。

おしまい。