エンジニアのスキルアップに対する考察

こんにちは。

今回は、エンジニアのスキルアップについて考察を書いていきたいと思っております。題材は「私のスキル」になりますので、新卒におけるスタート地点は「WEBプログラマー」です。

何故このような記事を書くかと申しますと、自分の考えを整理するためです。年をとるにつれ、キャリアやスキルアップについて迷う方は多いのではないでしょうか。私もその1人です(苦笑)。

新人エンジニアのスキルアップ

新人におけるスキルアップ戦略は、非常に分かりやすいものです。目の前の仕事に直結する技術を学んでいけば良いのです。

  • 仕事で使うプログラミング言語を、もっと深く学んでみよう
  • 効率的なSQLの書き方を学んでみよう
  • 拡張性や保守性の高いプログラミングの書き方を学んでみよう

プログラマーであれば、プログラミングおよび周辺技術を第一に学ぶ方が多いかと思います。目の前の仕事を確実に効率的に遂行することが先決ですからね。

エンジニアとしての幅を広げるためのスキルアップ

ある程度プログラミングができるようになってきたら、次は技術の幅を広げていきます。

  • (セキュリティ)サーバにアクセス制限をかけてみよう
  • (サーバ)マスタースレーブ構成のDBサーバを立ててみよう
  • (アーキテクチャ設計)マイクロサービスアーキテクチャについて学んでみよう

プログラマーであれば、インフラ、サーバ、セキュリティ方面などのスキルを高めていきます。特に中小企業の場合は、スキルの幅が広い人は重宝されますよね。

この段階のスキルアップでは、エンジニアとしての引き出しがどんどん増えていきます。成長を実感しますし、個人的には一番楽しいフェーズです。

ビジネスマンとしてのスキルアップ

エンジニアとしてのスキルレベルが一定水準まで到達すると、技術系よりもビジネス系スキルの比重が高まっていきます。会社からも、プロジェクトリーダー、もしくはそれに近い役割を求められるようになっていきます。

  • (プロジェクト運営)アジャイル開発について学ぼう
  • (リーダーシップ)「人を動かす」を読んでリーダーシップについて考えてみよう

ビジネススキルというのは非常に厄介で、例えば「プロジェクト運営」「リーダーシップ」ともに、人が関わってきます。コンピューターは言われた通りにしか動きませんが、人は一筋縄にはいきません。

本を読んで実践してみてからといって、その通りに成果が出るとは限りません。単純なスキルアップとして考えた場合、技術系スキルの方がスキルアップを実感しやすいと思います。しかし、ここは厄介なポイントでもあります。

私は「マネージメントやリーダーシップの本を読んで色々頑張ってみても、ちっとも上手くいかない。僕はマネージャには向いていない。やはり、技術者として突き詰めていくべきだ」という発想に、一時期陥りました。しかし、逃げのスタイルで目指すスペシャリストというのも、なんだか納得がいきません。

さらに言えば、スペシャリストであればマネージメントスキルが不要かと言うと、そんな単純な世界ではないわけです。

結局のところ、私は以下のような結論に至りました。

「技術系のスキルとビジネス系のスキルは別物であり、特にビジネス系のスキルには不確定要素が多い。人は流動性が高く、自分自身の性格やメンバーの性格を加味したオリジナル手法を作るしかない」

答えがないということは、色々と試行錯誤して探っていくしかないということです。ビジネス書を読むにしても、読んで要約するだけでは意味がありません。「自分の性格やメンバーの性格を加味した上で、どうすれば良いだろうか?」といったことを、常に探りを入りながら読み進めていく必要があります。

・・・というわけでして、現在進行形で頑張っている状態です。

新技術のキャッチアップ

エンジニアを始めてしばらく経つと、技術も進化して様変わりしていきます。私がエンジニアを始めた当初は、スマートフォンを使っている人なんていませんでした。

新技術のキャッチアップを行なう理由は以下の理由からです。

  • 新技術が純粋にワクワクする
  • キャッチアップしていってエンジニアとしての引き出しを増やしたい
  • 流れに取り残されると不安である

私の最近のスキルアップの取り組みで言えば「(自分流の)ビジネススキルを日々試行錯誤」「新技術のキャッチアップ」がメインです。

自らのスキルアップに対するアンチテーゼ

私のスキルアップ方針には「スキルアップしていかないと世の中に取り残されそう」といった、危機感からはじまるスキルアップが強いなと感じることがあります。

このやり方は、仕事上における役割も世の中も環境に依存すると捉えると「環境の影響が強い」です。「自分の人生なんだから、何のスキルを蓄えてどんな人になりたいかは自分で指し示せ」というセルフツッコミが入るわけです。

自分がどうありたいかを考えた上で、それに向かったスキルアップ戦略を立案する・・・というのは、言葉で言うのは簡単でも考えるのは凄く難しい。悩ましい問題です。

一方で「一度きりの人生なんだから、スキルアップに気を取られすぎずに素直に楽しく生きれば良いじゃない」と言えなくもないわけです。考えすぎるのもよくないですね。

好きこそものの上手なれ

私の趣味はゲームです。最近はゲーム好きの趣味が高じて、Unityでのゲーム開発を日曜大工でやっています。正直なところ「ゲームが作りたいという動機から始まって、結果的にゲーム開発スキルが向上している」という状態のほうが理想的な気がします。「好きこそものの上手なれ」ですね。

スキルアップしようと思ってスキルアップするよりも、自然な感じがします。その場合、技術は手段的な考え方で「ゲームを作ること」が目的となり「ゲーム開発のスキルアップ」が手段になるのですかね?

hrnabi.com

他には「独立して会社を設立した。税や経理の知識はおのずと身につく」といった、環境に左右されるのではなく、自らが環境を動かした結果のスキルアップというのも理想形な気がするなぁ。

・・・というわけで、あまり考えすぎずに楽しいエンジニアライフを過ごしましょう!

好きこそものの上手なれ路線で「楽しく生きる」「仕事を好きになる」ことこそがスキルアップの近道になるかもしれませんよ!