現役エンジニアがしている再現可能な独学方法3つをまとめる【プログラミング】
- 2018.12.02
- プログラミング
この記事では現役のエンジニアが実際にしている独学方法についてまとめています。エンジニアは新しい技術を常に学んでいく必要があります。現役でエンジニアを続けている人はよく新しい技術を身につけるときの再現可能な自分なりの方法論を持っています。それらについてお話しします。
本記事の内容
本記事では以下についてお話しします。
- 現役エンジニアが新しい技術を身につける時にしていること
- 新しい技術との向き合い方
エンジニアがおかれている状況
エンジニアは常に新しい技術を身につける必要があります。2,3年前に身につけた技術が実務で使わなくなる、ということはざらに起こり得る業界です。以下プログラミング言語のトレンドに関するデータが非常にわかりやすいと思います(複数の検索エンジンでの検索結果を利用しての調査結果です)。
こちらをみてもわかるように技術のトレンドが短いスパンで変化していることがわかります。もちろんJava、Cのように長く注目されている技術もありますが突然新しい言語の注目度が上がっていたりという様子がよくわかりますね。
もちろんIT業界といっても細かく分類すれば様々です。一般消費者向けにサービスを作るような企業、例えばメルカリのような企業ですね、そういった企業が属するB to Cサービスを提供する企業などではIT業界の中でも一際技術の移り変わりが早い業界という印象があります。
そういった状況を楽しめることもエンジニアを長く続けられる人が持っている素養のように僕自身は思います。
さて、それでは現役でエンジニアを続けているような人はどういった方法でその業界の変化、技術の移り変わりに対応しているのでしょうか。以降は僕自身の方法についてお話しします。
学習方法1:書籍を読み、試す
僕自身は書籍で情報を得ることが好きです。手軽な方法ではありますが僕がよくする学習方法です。人によってはネット上でドキュメントを探して試すことを先にする方もいますが、僕は書籍でまとまった情報を用いてはじめに新しい技術に触れることが好きです。
時間があれば書籍内のサンプルまで試しますし、なければベースとなる技術の考え方、コンセプトなど背後にある考えを把握することに努めます。コンセプトなどを理解しておくと実際に業務で使うことになっても比較的スムーズに使えるようになります。
学習方法2:プログラミングスクール(オンライン含む)を受講する
最近はプログラミングスクールも非常に質が高く僕も受講することがあります。書籍で学ぶかスクールで学ぶかの判断軸は僕の場合はそのスクールがその受講料を払ってまで行く価値があるかどうかだけです。また、僕自身はお金を払うことで自分を追い込んで学習するペースメーカーにすることもあります。予算があるときだけの方法になりますがこれらは上手に使うことで学習のスピードをあげることもできます。
例えば僕が今まで参加したことのあるスクールは以下です。
TechAcademyではデザインの勉強をするためにUIデザイン、スマホアプリデザインのコースを受講しました。教材がしっかり用意されており、エンジニアの僕がデザインを学ぶには最速であり実際に使われているツールについても学べる素晴らしい講座でした。
キカガクではディープラーニングに関するセミナーを受講しました。こちらはたしか3日間のセミナーで比較的高額でしたが内容は非常に満足のいく内容でした。僕が受講した時とは少し違っているかもしれませんが以下内容が最新の内容のようです。
学習方法3:カンファレンスに参加する(そして可能であれば登壇する)
こちらはモチベーションアップのために参加することもあります。僕自身は名古屋に住んでいることもあり、あまり勉強会が少ないため参加するのは比較的大きなカンファレンスに絞っています。
また、これは僕自身が学ぶ上で意識しているのが可能であればカンファレンスに登壇するようトライする、ということです。情報は発信する人の元に集まってきます。そしてその結果、学びも多いです。
もちろん発表する準備をする過程で得られることも多いため、それらを繰り返すことで学習は進みます。オススメの学習方法の一つです、追い込まれると学習は進みます、テスト前のようなものですね。
例えば以下は登壇のチャンスが開かれていてかつ大きめのカンファレンスになります。proposalが必要なケースもありますが出すだけでも価値はありますのでぜひ積極的にいきましょう。
- iOSDC (iOSアプリ開発者向けイベント)
- REGIONAL SCRUM GATHERING (スクラム関連のイベント)
- DroidKaigi (Androidエンジニア向けイベント)
他にもカンファレンスは数多くあり登壇のチャンスがあるカンファレンスもいくつもあります。技術者向けカンファレンスについては下記記事でまとめていますのでぜひご確認ください。企業主催のカンファレンスでなければ多くは登壇の機会があるでしょう!
新しい技術との向き合い方
さて少し話は変わります。新しい技術、例えばプログラミング言語や考え方、フレームワークなどが続々と出てくるわけですがそれらとはどう向き合うといいのでしょうか。僕自身は例えば以下のように向き合っています。
- 気になった技術については時間があれば書籍を読み、サンプル程度は試す
- 新しい技術は大切だがベースになる技術を学ぶ時間も大事にする
- 新しい技術が業務で必要になったタイミングで全力で習得する
僕自身は業界で名前が知られているほど有名なエンジニアではありません。しかし、現在もエンジニアとして開発にあたっていますし、これからもエンジニアとして仕事をしていけると確信しています。そのためこれらは一般的なエンジニアの新しい技術との向き合い方としてはそんなに間違ってはいないでしょう。
一方で、30代に入り僕が気づいたのは新しい技術については若いメンバーの方が使いこなしているケースもよく見ます。最近では人工知能関連だったりですね。そういった分野では若いメンバーがどんどん活躍しているケースはよくあります。この辺りは僕自身がこれからどういったキャリアを歩んでいくべきか考えるポイントになってきます。
しかし、エンジニアとして仕事をしてきた経験値が若いメンバーよりあることもあって技術の習得に時間がかからないことも僕のようなエンジニアにとってはアドバンテージとなります。つまり基礎となる技術ですね。そのため、最近では以前よりも基本となる技術を何度も振り返ったりより深く理解することに時間を割くこともあります。
これらは結果的に新しい技術を習得する時間を短縮し、僕にとっての新しい技術との向き合い方のベースになっているように思います。
この辺りの話については例えばエンジニアのためのマネジメントキャリアパスが参考になるかもしれません。キャリアの話にも関連してきますが自身がこれからどういったエンジニアを目指していくか、技術とつきあっていくか考えるときの道標になるような書籍です。例えば僕はこの書籍のテックリードに関する章は何度か読み返し参考にさせてもらっています。
現に「テックリードには、誰よりも経験豊富なエンジニアを任命するべきだ。最高に複雑な機能でも難なくコード化できるエンジニア、誰よりも素晴らしいコードが書けるエンジニアを」という勘違いが、ベテラン管理者の間でさえ珍しくありません。テックリードがそういう作業に没頭しているとすれば、その人はテックリードの職務を果たしているとは言えないのです。
![]() |
エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド 新品価格 |
テックリード(プロジェクトの技術面のリーダー)に関する業界共通の定義はありませんが、僕自身はこの話を読んで自分の思い込みに気づくことができました。誰よりも新しい技術にも詳しくて最高にできるエンジニアである人がテックリードだ、と思い込んでいたわけですが冷静になって考えるとそういうわけでもないなと気づけました。
そこに気づくと改めて自分自身の技術とのつきあい方も変化してくるのではないでしょうか。キャリアとも合わせて考えると技術とのつきあい方もいい方向性が見つかると思いますのでお勧めです。
まとめ
僕自身が取り組んでいる3つの学習方法と新しい技術との向き合い方をまとめて見ました。
あまり驚くような方法はなかったかもしれません。逆にいえば、同じことをしている方にとってはそれらを継続して続けることでエンジニアとして活躍し続けることができる可能性はあるのではないかと思います。僕自身も常に学び続けることが大事なため必要があれば学習方法はアップデートしています。
それでは以上です。どなたかの参考になれば嬉しく思います。