エンジニアは学習し続けなければならない?
これについては、確実にYesです。
これだけ技術の移り変わりが早いので、学習し続けなければついていけません。
では、なぜQiitaのような技術記事のサイトを駆使してまで、学習し続ける必要があるのか?
- 現場の指示で新しい技術を使うようになったから
- 新しい技術を使うことで話題性を持たせたいから
- なんとなく使ってみたかったから
このような理由もあると思います。しかし、それは学習理由としては弱すぎます。
技術が相当好きでなければ、モチベーションを保ちつつ効率の良い学習を続ける事は大変です。
どのように学習モチベーションを維持すれば良いか?を紹介したいと思います。
(おまけで見積もり、技術選定の力もついてくると思います。)
本記事について
読み方
重要なことだけ教えろって方は、大項目と強調文字だけ読んでください。
対象者
- 学習のモチベが低下気味(上がらない)方
- 駆け出しエンジニア、2-3年目でこの先に不安を感じている方
目的
- エンジニアのモチベーションと学習意義について理解し、向き合うことで効率の良い学習を進める
エンジニアの学習目的
モチベーションとは?
まず、学習にあたって大事なモチベーション。
そもそもモチベーションとは何か?
1. 動機を与えること。動機づけ
2. 物事を行うにあたっての、意欲・やる気。または、動因・刺激
つまり、動機づけ=目的。
「モチベ低下で、新しい技術の学習進まない…」という話を耳にする事が多々ありますが、そもそも目的を理解していないのにモチベーションが上がるわけがないんです。
学習の目的とは?
では、エンジニアの学習目的はなんでしょうか?
「新しい技術を学ぶ事で、作業効率を上げる」
正しそうですが、動機づけとしてはまだ弱く、直感的じゃない気がしますので言い直します。
「徹底的に楽するために、今学習する」
これがエンジニアとしての最大の学習目的です。
新しい技術を学ぶということ
新しい技術は目的があって、次々に生み出されています。
そのため、新しい技術は基本的には今以上に楽できるように出来ています。
例をあげるならば…
バグを生み出しにくいコーディングスタイルだったり
特定の書き方をするだけで自動的にコードが生成されたり
ファイルに環境構築の情報を書き込むだけで、自動的に環境構築ができるようになったり
つまり、「あー、もっと楽したい。俺はもっと楽して開発したい。テストしたい。環境構築したい。」
この想いが強ければ強いほど、学習後にどれだけ楽できるかを想像でき、学習に対するモチベーションが高まります。
技術がそこまで好きじゃないのに、めちゃくちゃつよつよエンジニアじゃん…って方はこのパターンが多いと感じています。
学習に対するモチベーションが上がらない方は
「楽できる事を考えずに、学習を進めている」
「知識が少なく、経験が浅いために 楽をした経験がない or 楽できた時を想像できない」
このどちらかだと思います。心当たりはないでしょうか?
「俺は絶対楽してやるんだ」法の提案
ここが本題です。
では、どういう学習方法を進めるんだよ?と思われると思います。答えは簡単です。
「この技術を学ぶ事でどれだけ楽できるのか?どのよう部分を楽できるのか?」
「この技術を学ばなかった時にどれだけ楽できないのか?」
これを徹底的に調べ上げる事です。この行為は時間の無駄ではなく、プロジェクトの技術選定時にもよく行われます。
そうすることでこの技術を学ばない事はデメリットでしかない。時間が惜しい。と感じるようになります。
逆を言えば、楽できると感じない技術は今はまだ学ぶべきでないという事です。
理由は様々ですが、その技術がまだ新しいもので色々問題があったり、無理やりその技術を使おうとしてるパターンで見受けられます。
調べ上げ方は、Qiitaで技術比較してる方の記事を読むのもいいでしょうし、あえて1つ前の技術だとどれだけ大変かを知っておくのもいいでしょう。
これでどれだけ楽できるかを知ったからには、必ずその技術を学習しきることになります。
(この技術を学習した方が楽できるのに、わざわざ学習せずに苦労して時間を浪費しようなんて思いませんよね?)
時間は有限ですし、タイミングも大事なので、学習する時期さえも慎重に選択していきましょう!
悩むくらいなら、学習するにあたっての動機づけを徹底的にしてしまえ!というわけです。
楽して空いた時間を有意義に使えたら最高ですね!
それでも学習が進まない方へ
(コメント頂いた方が悩まれていらっしゃったので追記します)
何度やっても上手くいかない。理解が進まなくて萎えてしまう。
そういう場合はモチベーションではなく、学習の仕方を変えてみてはどうでしょうか??
学習を進める方法はたくさんあります。
その技術の勉強会に参加する / その技術のカンファレンス等の動画を見る / 有識者のブログや書籍(技術書典)を読む / Udemy等の講座を見る / 市販の書籍を読む / 公式ドキュメント
技術によっては良い情報の集まってる場所が異なってる事があるので、幅広く探してみるのも良いと思います。
私は下記のような方法で学習しました。(一例)
技術 | 学習方法 |
---|---|
C# | 有識者のブログ |
AWS資格 | Udemyの動画 市販の書籍 |
Android(Kotlin) | Youtubeのdroidkaigi 市販の書籍 有識者の書籍(技術書典) |
おすすめの学習ロードマップ
https://github.com/kamranahmedse/developer-roadmap
ご存じの方も多いと思いますが、Web Developer Roadmapです。
Web Developerになるためのロードマップ(front, back, devops)が書かれています。
この技術を学習することで「何をどれだけ楽できるようになるのか?」を事前に考えて取り組むことをおすすめします。
普段余裕がある方は、まだ触ったことのない技術をQiitaで検索かけて、「どれだけ楽できるようになるのか?」を見てみるのも面白いかもしれません。
後書き
プログラミングを学習する上で目的がすり替わってしまう事が多々あり、目的を見失う事がモチベーション低下に繋がるは良くあります。
周囲でもポテンシャルの高い方がモチベーション低下により、悩み苦しむ姿を見ることがあり、少しでもその解決の手助けをできないか?という気持ちを込め、個人的なメモとして書きました。
そこまで学習に時間をかけられない場合も多々あると思いますので、全部に当てはまるとは思いませんが、参考になれば幸いです。
月曜日の仕事への萎えを考慮して、ぶれていたり固まりきってない形で投稿してる部分があるので随時修正していきます。