見出し画像

【エンジニアの道は果てしない】エンジニアのスキルをどう広げていったら良いのか?

こんにちは。すうちです。

先日たまたま見かけたエンジニアのスキルアップに関する記事。

一流エンジニアにスキルアップしよう!おすすめの勉強方法まとめ

基本的には、Webエンジニア向けの職種を前提に書かれていて、記事を読んでて「なるほど」と思うこともあれば、自分と少し違う部分もありました。

私は主に組込の分野になるので少し系統が違う所もありますが、あくまで参考程度に、自分の例を書いてみたいと思います。

※タイトル画像は ちこり。さんですありがとうございます。


はじめに

自分の過去を振り返ると(これが良いかはわかりませんが)

その時の流れに任せたイベントドリブン的な学び方をしていた

と気づきました。

特に若い頃は意識的に勉強するのではなく、仕事で必要にせまられて学んでいた事が多かったです。

日々の業務で手一杯で仕事と関係ない分野まで手を広げることは個人的に興味ある分野を除いてほとんどなかったです。

正直自発的に勉強するようになったのは、30代後半になって転職を意識始めた頃だったように思います(気づくのが遅いですね…)。

その意味では、もっと若い頃から戦略的に自己研鑽に励んでいれば、もっと違う人生を歩んでいたかもしれないです…笑

以降、自己啓発の方法や個人的に思うスキルが広がったきっかけを挙げてみます。


自己啓発

書籍

やはり体系的に新しい技術や知らない分野を学びたい時は本が多いです。並行して数冊まとめて読むようにしています。1冊だけだと全て理解できないこともあるし、数冊並行で読むことで情報の補完ができるからです。また自分との相性で頭に入りやすい本もあれば逆もあるので、結果的にそうなっているとも言えます。

「書籍(技術書)を複数読むのはお金もかかるのでは?」という意見もあるかもしれませんが、Kindle Unlimited(月額980円)の本読み放題サービスで最近は技術書も結構多くあるので、まずはその範囲で探して読むようにしてます。

どうしてもそれで足らないと判断すれば、必要な書籍を別途購入して読んでいます。なので、いま自宅にある技術書は10冊もないです。


ネット検索

ピンポイントで知りたいことだけ調べる場合は、新しい技術の情報を検索したり、プログラムであればサンプルコードから学ぶことも多いです。

ただ、ネットの情報だけだと断片的な理解になりがちなので、必要に応じて読書と併用して知識を補っています。

余談ですが、デバッグして発生したエラーなども最近は検索すると似たような問題に遭遇した方々が情報を残してくれているので、それらをヒントに解決できる場合もあり、仕事でも知識の共有の恩恵をかなり感じます。


WEB講座、競技プログラム

かなり偏った範囲になりますが、主に転職前にCouseraAtCorderでいくつかのコースを集中的にやってました。

この時も必要にせまられて、AIの基礎を学んだり、アルゴリズムを勉強しなおそうと取り組んだのが経緯です。

こちらも体系的に段階的に学べて、基礎から積み上げたい方にはオススメです。


仕事(業務起因)

私の場合、大体3年単位で新しい開発に参加していました(業務が変わる)。ちょうど今もその時期です。

そうなるとそのタイミングで新しい事を始める事になるので、必然的にその技術を調べたり、実際開発することで学んでいく形でした。

20年以上のエンジニア人生を振り返ると、最初はデバイスドライバ周りからVideo系のミドルウェアLinuxやRTOS(ハードウェア寄り)、センサ系のAI開発に携わり。プログラム言語はC / C#FPGA(RTL)Pythonなど全て業務起因で広がっていきました。

ただ、冒頭の(転職需要が多いと言われる)WEBエンジニア系のスキルや経験はLinuxのサーバ周りが少しわかるくらいで、今の所ほぼ持ってません。。。


転職

以前、noteに書いた転職の話です。

前述の自己啓発ふくめ転職前も(必要にせまられて…笑)事前準備したり、入社後は今までと違う新しい開発分野に関わることで、結果的にスキルが広がったと思っています。

ちなみに、先に書いたセンサ系のAI開発や言語のFPGAPythonは転職後に新しく学んだことです。

転職前の会社は後半マネージメント業務しかやれてなかったので、転職で開発職に戻らなかったら上記を学ぶ機会は多分なかったです。

今得られたことを考えると、個人的には転職して正解だったと思っています。


趣味

本格的に個人開発されている方々の足元には及びませんが、私も趣味程度にプログラムを書いたり、たまにマイコン基板を買って遊んでいます。

頭で考えるのと実際にやってみるのは、個人的には得られる情報や経験値が変わると思っていて、特に新しい言語を習得したい時は、自分でモノを作ることが記憶の定着や結果習得を早める手段として有効と思っています。

少し脱線しますが、昨年noteに投稿したTkinterの画像編集ソフトの記事です。

仕様を考えてた時は見えてなかった問題が作る過程でわかって、解決まで時間かかった部分もありましたが、自身でアウトプットしたことで、結果PythonTkinterの学びが一段深まったと感じました。

読書などのインプットだけでなくて、実際に手を動かしてアウトプットすることがスキルを広げることに繋がる気がします。


最後に

最近の動向として、AIの進歩が目覚ましく、今後必要になるスキルや需要が高まる技術は大きく変わっていく気がします。

私の場合、イベントドリブンなスキルの広げ方でも今までは結果的になんとかなってたと言えるかもしれませんが、少し思うのは冒頭でも書いた通り、もっと若い頃から将来を見据えて勉強や転職を考えておけば良かったということです。

ただ、一方で矛盾するかもしれませんが、最近は情報が多すぎてどこから手をつけたら良いかわからないとか、将来的な優先度をどう考えたら良いか迷う方もいるかもしれませんが、その場合は、まずは目の前の業務で必要な技術をしっかり学ぶことではないかと個人的には思います。

ひとつでも自分に自信ある言語や分野があれば、たとえ新しい技術を学ぶことになっても今ある知識から比較して学べたり、応用効く部分もあるからです。

今の若い世代のエンジニアの方と比べると、私の世代とだいぶ環境が違ってたり、少し内容は偏りありますが、何か参考になることあれば幸いです。

最後まで読んで頂き、ありがとうございました。


この記事が気に入ったらサポートをしてみませんか?