システムエンジニアがスキルアップのためにやるべきこと|8年間の自分の体験を踏まえてベスト3まとめました

はじめに

何年か現場で経験を積んで、ある程度余裕ができてくると

 

「さらにスキルを上げるために何をすれば良いか??」

 

という疑問が出てくることがあります。

(自分は2年目くらいで悩みました、、、遅いかな。。)


今回は、

自分の体験や、実践したことなどを踏まえながら、

駆け出しエンジニアから中級エンジニアにステップアップするための

僕のオススメ学習方法を若手エンジニア向けにまとめました。

 

この記事を書いている僕はシステムエンジニア8年目

職歴と取得した資格はざっくりこんな感じです

 

 

MEMO

【社会人1年目】

 仕事:設計、フロントエンド開発、パートナー1人面倒見る

 資格:Oracle Master Bronze 12c取得

 

【社会人3年目】

 仕事:設計、API開発、開発リーダー

 資格:応用情報技術者取得

 

【社会人4年目】

 仕事:設計、API開発、フロント開発、開発リーダー

 資格:データベーススペシャリスト、JDLA G検定

 

【社会人6年目(転職した)】

 仕事:開発リーダー、1プロダクトゼロから開発を任される

 

【社会人7年目】

 仕事:開発リーダー、1プロダクトリリースまで成功させる

 

【社会人8年目(鬼のように残業してた)】

 仕事:開発リーダー、プロダクトのアプリアーキテクチャ見直し

 

システムエンジニアがスキルアップのためにやるべきこととは??自分が実践したことやオススメなど

まずは今まで自分が実践してきたスキルアップのための取り組みの中からオススメを紹介します。

 

スキルアップしたい分野や技術に関する勉強会へ参加する

まずオススメなのは勉強会への参加です。

 

例えば僕の場合は設計に関して、

今までの現場で保守開発や新規開発した時の設計がイケてないせいでいろいろ辛い目にあったので、

良い設計とはなにか??を学習して現場に取り入れたいと考え、

>>現場から学ぶモデル駆動設計(compass)

このサイト経由でオンライン勉強会に参加したりしています。

 

勉強会への参加がオススメの理由は、

登壇する方は、その分野で経験を積んで、現場で実績を出されている方であるケースが多く、

信頼できて、考え方、現場での苦労・工夫・改善などの話が聞けたりします。

 

この辺りの情報はネットで調べてもなかなか見つからない事もあり、

どの現場でもハマるポイントだったりすることもあり、

なので貴重な情報だったりします。(ネットにあまりないけど重要な情報なので貴重)

 

また、

その分野やそのさらに周辺分野に興味を持つきっかけになったり、

登壇者がどうスキルを習得して実績を出せたのかが聞けたりする場合も多いです。

 

 

最近は、リモート開催される勉強会も多く、

勉強会参加のハードルも下がっているのでそういう点でもオススメです!!!

 

 

自分で1から独学で勉強して極めていくのも大事ですが、

その道で現場で実績を出されている人からいろいろ盗むのも大事で、近道だったりします。

(勉強会に参加する前にその分野についての基本的な部分は独学で抑えておくと

より勉強会の内容が自分の身になるレベルで吸収できることがあるかなとも思います)

 

 

スキルアップしたい分野や技術の学習をしたら即アウトプットする

本を読んだり、動画で学習した際、

インプットだけだと意外と理解していなかったり、手を動かそうとすると動かなかったりします。

 

インプットする際はアウトプットするつもりで聞く。

インプットし内容を誰かに説明するつもりで聞く。

実際に手を動かしてサンプルを作ってみたりする。

 

こういう学習をしていくと、

本当に現場で使える知識になります。

その場で理解して終わりではなく、

 

自分ならこう考えるけどそれよりなんで良いのか??とか

現場のあの課題これで解決できそう!!とか

試しにこの通りやってみて重要かどうか判断するか。とか

 

そういう学習をすると、

自分の中での引き出しにもなるし、

現場で困ったときに役に立ったりします。

 

アウトプットこそが究極のインプットなのかなと。

 

例えば、

僕は勉強会に参加したり、本を読んだら

こんな感じでアウトプットするようにしていたりしています。

 

命名と小さく分けることの関係と重要性〜ソフトウェア設計のきほん〜

初めてDDDを実践する方に向けて〜DDD実践のためのきほん〜

「祝完読! しょぼちむのエヴァンス本のススメ」(勉強会)に参加してみた感想や気づきなど

 

 

 

(ここからはおまけ)

恥ずかしながら、

実はこの大切さには自分は社会人6年目くらいで気づいたのですが。。。

 

5年目までは、

本を読んでインプットしたら引き出しが増える。だから本を読む。

資格勉強をしたらスキルアップできるし、評価も上がる。だから資格を取る。

くらいの考えで学習をしていたので、

学習に費やした時間に対して身についたスキルのコスパが悪すぎました。

目的はスキルアップであり、せっかく真面目に学習してたのに。。。。って感じです。

 

 

スキルアップしたい分野や技術の現場での成果物(ソースコードや設計書)を読んで分析する

システムエンジニアやプログラマーの方は、

現場で設計書やソースコードをみたり、作ったり、修正したりすると思います。

 

その際、

「この設計イケてないな」

「イケてないけどほっとくしかない(修正しようとしてバグ出すの怖いな)」

「今更設計変えれないから諦めよう」

で諦めて試合終了で終わらないことが大切だと思っています。

 

現状なにがどうイケてないのか??

なんでイケてない状態になってしまったのか??

どこを改善したらイケてる状態になるのか??

自分がこのシステムをゼロからもう一度作るなら何に注意するのか??

などなど試行錯誤することが重要です。

(なんならブランチ切って手を動かして作り直しても良いと思います)

 

この試行錯誤の過程こそ非常に重要で実践的な学習だと僕は考えています。

 

普段からここを考えている人が行う設計やプログラミングは全然

違いますし、きちんと意図が説明できます。

 

逆に諦めてしまった人は既存がそうなっているからという理由で

なんとなくイケてないのわかりつつも試行錯誤しないので、

成長しません。(多分同じようなイケてない設計を繰り返すことになります)

 

僕が3年目くらいからこういう考え方で普段から設計書やソースコードを読んでいたら、

今まで3回くらい炎上防げたかな・・・・って思います。

 

人のふり見て我がふり直すじゃないですが、

イケてないのは必ず原因があるのと、

それを分析できれば次は改善できると思います。

その積み重ねが成長につながると僕は考えています。

 

 

まとめ

今回は、

システムエンジニアがスキルアップのためにやるべきことについて

自分の体験を交えながらまとめてみました。

 

自分が大切だと思うのはこの3つです。

  • スキルアップしたい分野や技術に関する勉強会へ参加する
  • スキルアップしたい分野や技術の学習をしたら即アウトプットする
  • スキルアップしたい分野や技術の現場での成果物(ソースコードや設計書)を読んで分析する

 

今回紹介した内容は2〜3年目の自分に伝えたい内容です。

(当時の上司が教えてくれてたらなー、、、)

 

システムエンジニアとしての仕事に小慣れてきて、

とはいえ、まだまだ中級〜上級エンジニアとはいえない。

けどどうやって駆け出しエンジニアからステップアップしたらいいのか??

 

などなど悩んでいる方に参考になれば幸いです。

 

2022/3/21追記

SEやプログラマーのよくある悩みについて、

僕の8年間の経験から悩みと自分なりの解決策をまとめたので

こちらの記事も是非みてください!

プログラマーの悩みまとめ記事|10年の間に自分が悩んだり考えたこと

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください