こんにちは、Webエンジニア7年目のrevenue-hackです。
なんでもそうですが勉強をしようと思った時、いかにして効率的に勉強するのが良いのか気になりますよね。
実際その勉強方法が効率良ければ成長率が他の人よりも良いということなので、かなり重要な内容だったりします。
例えば僕は昔Androidアプリ開発をしていた頃、SDKのシグネチャ全部覚えないといけないと思いこんでいて、ノートに関数名書いて暗記とかしてましたw
そんな失敗も多い僕が、社会人になってずっとWebエンジニアをやってきた僕が考える良い勉強法をご紹介します。
まずはひたすら復習
会社で教わったことをひたすら復習します。
例えば環境構築です。これは多くのエンジニアの人が一度はつまづいたことあるでしょう。
インターン生の頃、当時でVagrant, VirtualBoxでlocal環境構築をしていて、
それらのツールの役割も全くわからずgitもわからず状態でした。
教わりながらググりながらなんとか構築しましたが、結局なにがどうなってるのかよくわからない。。。READMEに書いてあるコマンド打ったりして、なんとか一応動くところまで出来たという感じでした。
そこで家に帰って自分用のlocal環境を構築するべく、macにVagrant, VirtualBoxをインストールして、Vagrantのboxを作成して、、、と苦戦しながらも家で同じように環境構築しました。
そうするとかなり理解が深まったり、READMEにあるコマンドの意味とかもわかってきました。
なので会社でやったことを復習していくのおすすめです。
コードの書き方だけじゃなくプロジェクトの基盤に注目しよう!
多くの人はコードの書き方や、RoRだったら便利なgemとかを知りたいなどでコードを書くというところに着目しますが、
それよりはどのようにプロジェクトがリリースされているのかに着目するのが良いと思います。
例えば僕は入社当社stagingという言葉がよくわからなかったです。
stagingってブランチにgit pushをすると勝手にサブドメインstgのサイトに反映されているわけです。
なんで?誰がやったの?
全然わからなかったので、色々教えてもらい、その背景にはJenkins(CI/CD)があって、シェルコマンドがあって、staging用のサーバがあってなど、会社にいかないとわからないようなことを学びました。
なぜコードよりもプロジェクトの基盤となっている技術に着目するかと言うと、会社でしか教われないからです。
コードの書き方は、初心者でもググればエラー文などからたどり着けたりすると思います。
ただプロジェクトの基盤はある程度知識と経験がないと、自分だけで学ぶというのはまず難しい分野になります。
なのでコードは家でいくらでも勉強できるので、そのプロジェクトの基盤となる技術をいっぱい盗んだほうが良いよということです。
ついでにいうと僕はJenkinsとかも家で構築して勉強していました。
まずは作ってみる!
なにか新しい言語を覚える時に、文法をドキュメントから追って、なんとなく理解して、次は本読んで、、、とやっていると遅いです!!
圧倒的に覚えが早いのは新しいツールで作ってみること!それに限ります。
新しい言語を覚えたかったらそれで作りたいなと思っていたサービスなり、CLIなりを作れば良いです。なんだかんだ一番それが速いと経験上思っています。
とりあえずアウトプットしろ!
なんなんだこのタイトルは?当たり前だろ?ふざけるな!
と思う方もいると思いますが、初心べからずということで、なんでもトライしよう!と言うことです。
僕の場合は、1年半くらい立つと幸いにも周りに恵まえれて色々とシステム構築が出来るようになり、一人でもWebサイトをリリースすることが出来るようになりました。
そうすると次はその技術を使って場数を踏むことです!
とにかく色々な副業をやりました。
インターンの頃の役員の人が独立したので、その社内システム構築や、
Wantedlyでひたすら探して参画したり、紹介から請け負ったりとほんと色々と(今では経歴書かっこいいですねって言われますw)。
もちろんあまり役に立てずにすぐに終わってしまったものもあります。
忙しい中で更に副業を増やすとかしてたので、流石にもうちょいセーブしても良いかもしれないなと思いましたが、まー失敗よりも経験を取りに行きましょう!
あとまず間違いなく、金よりも経験を取りに行くべきです!!
まとめ
僕なりの色々な勉強方法をご紹介させていただきました。
今のご時世から考えるとちょっとこんなことする必要ある?というようなものまでありますが、是非一度試してみてください。
多分大変だとは思いますが、経験することが何よりも近道なので!!