見出し画像

勉強したことを仕事に活かせない君へ

新人エンジニアの抱えるストレス

新人エンジニアの中には、資格の学習や自主学習は頑張っているつもりでも、仕事となるとてんで役に立てていない自分に苛立っている人もいるのではないだろうか。

15年ほどインフラエンジニアをやってきた中で、そういう新人たちを数多くみてきた。

「学んだことを仕事に活かせない」というストレスがあるのだ。

このストレスが溜まったことが原因で、仕事を辞めて行ったり、プロジェクトを離れていくエンジニアは数多くいた。

もちろん、学んだことと仕事内容がリンクしていないならば当然だが、近しい分野を自主学習しても活かせていない、というのはどういうことだろうか。

とあるエンジニアのケース

「学んだことを仕事に活かせない」

という、この悩みは、彼らの仕事のモチベーションが上がらない理由の一つだ。

しかしこの悩みの答えは、意外とシンプルだ。

結論は、活かすつもりで勉強してないから活かせてないのだ。

そんなはずはない、いやいや仕事に活かす為に勉強してるに決まっている、と口々に言うのだが、やっている内容を聞けばその理由がわかる。

例えば、ネットワークの監視業務をやることになった新人がいたとする。

彼は、Ciscoなどの資格取得を目指し、教本でネットワークアドレスの計算方法を勉強してみたり、OSI参照モデルの階層を暗記してみたりする。

NAT、RIPなどのL2/L3スイッチやルーターの機能を幅広く勉強し、時にciscoのコマンドを覚えたり、時に過去問を一生懸命解いたりする。

こうやって記憶した知識を、さて現場でどのように「使う」のか。

ネットワークの監視業務の場合、おおよその場合は、運用・監視用ミドルウェアに頼ることになる。

管理画面を開き、各機器の状態に異常がないか、アラートが検知されていないかなどを確認し、異常がある際には手順に従って対処を行い、原因は何かと障害調査を行う。

障害調査の場合は、サポート契約に従いベンダーに調査問い合わせをし、機器の故障であればハードウェア交換を依頼する。監視担当者は交換作業の段取りを行い、利用者へのメンテナンス情報を告知する。

こういった監視業務には、勉強していたネットワーク技術の知識がどれほど活かせるだろうか。

そう。ほとんど事務処理のような手続き上の話とマニュアルに従った行動になるため、専門的な知識を使うケースというのは意外と少ないのだ。

なぜ自己学習を仕事に活かせないのか

「学習し、蓄積した知識を仕事で使う」というのは、案外意図せず行っているものである。

正直15年ほどエンジニアをやっていて「ああ、勉強した知識が活きているなぁ」なんて思うのは年に数回だ。

勉強した成果が明確に活きるケースというのはかなりレアで、普段ほとんどが人とのコミュニケーションや、すでに技術的に確立されたなんらかのツールを使って作業することがほとんどだ。

ネットマスクごとのアドレスの数も、Webでググればいくらでも計算ツールが出てくる。

ネットワーク図を書くケースなどでも、各クラウドサービスに構成ツールが提供されていてほとんど自動で構成図ができあがる。

新規にネットワークを設計し、新しいシステムを導入するプロジェクトのアーキテクトとして働くのならまだ違ってくるが、先に例で挙げた「ネットワーク監視」を行う新人エンジニアのような場合、ほとんど専門知識に頼らずとも仕事ができるようにデザインされた役割を与えられることが多い。

新人なので当然である。

ただ、新人エンジニアの悩みはそんなことはわかっていて、なお「それでも仕事に自分の力を活かしたい」が本当の心だと思う。

「活かすつもりで勉強していない」というのは、厳しい言い方だが、ほとんどの例では仕事に活かすためのイメージなく、勉強している新人たちがほとんどだった。

現場で最も使うものを徹底的に習得してこそ、「仕事に活かせる技術」になる。にもかかわらず、滅多にやらないアドレス計算を必死で覚えてみたり、二進数の計算がいくらできるようになっても、明日その知識が使われる確率は非常に少ない。

使われたとしても、「ネットワーク監視」の仕事であれば全体量の3%にも満たないのでは無いだろうか。しかもツールで代用が効く話でもある。

ではどういった学び方が仕事のやりがいにつながるのだろうか。

仕事に活かすための学習とは

仕事に行かせる自己学習のポイントは、現場で自分が接するツールを理解することだ。

よく、アプリ開発をしたいといってJavaなどの「重い」言語学習から始める人を見るが、聞いてみると基本的なツールさえ使いこなせていない様子をよく見る。

GitHubにアカウントを持っていなかったり、VScodeの使い方もイマイチだったりする。まずはそれらのツールを徹底的に使いこなす「練習」から始めるべきだ。

トライアンドエラーで各機能を使ってみて、ヘルプなどの操作方法を熟読し、あらゆる便利機能を抑えることだ。

また、Javaを使ったプログラム制作を請け負っている現場に配属されるなら良いが、そういった話なく開発系エンジニアを目指すならば、PythonならDjango、またはRuby on Railsなどフレームワークごと「(比較的)軽い」言語を学んで行かなければ、市場にミスマッチの人材になってしまい、多くの現場で「使える技術者」にはならない。

アセンブラよろしく機械語から学んでいただいても結構だが、現場で使う機会はゼロに等しい「重い」技術である。

今、主流の、市場に多く流通している技術から入ることが賢明だ。

また、先程のネットワーク監視のお仕事ならどうか。

ネットワーク監視担当者が普段使うツールは、JP1/CM2やzabbixなどの監視系・運用管理系ミドルウェアだ。

監視業務の「入口」として多く触れることになる、これらの使い方を学ぶことを優先したほうが良いだろう。

学び方としてはこうだ。
製品のマニュアルを見て、自分で評価版をダウンロードする。評価板をいじり倒し、障害発生させてどういったアラートが上がるか把握し、その調べ方をマニュアルや事例で押さえておく。

これを類似した製品含めて、実施することでその製品の特徴を抑え、かつデメリットとなるべき機能に関しては、対処を検討する。

その検討には、ネットワークの教本に載っているような基礎理論や機器特有のコマンドが使えるはずだ。行き着く先が、OSI参照モデルだったり、アドレス体系だったりの基礎知識になるだろうし、ciscoのコマンドで出力可能な情報表示や、構成変更方法などで駆使した対策がイメージできれば、いざトラブルが発生したときに「現場で活きる」技術になり得る。

現場で「知識を使う」ならば、「使う技術」から先に学んで、自分なりに仕事にどう応用するかを身につける努力ことが肝要だ。

多くの新人が陥る悪癖

私がインフラエンジニアとしての長いキャリアの中で見てきた新人達は、往々にして、繰り返しの検証作業や、ミドルウェアの使い方を学ばずに、資格の教本に書いてあるような汎用的なものを指して「現場で活かせない」と嘆いていた。

そういった基礎理論は、最低限の仕事ができた上で、仕事の正確性や速度を上げるためのものである。

「ネットワークの基礎知識が活かせて楽しい」なんていう状況は、新しいハードウェア開発者など、研究職でなければ、ほぼ発生しない。あって、年に数回の風景だ。


長年やっていた私が「Linuxの基礎知識」を活かせたのは、国家プロジェクトの世界初の規模で構成したDBサーバ群で起きた性能問題で、国内大手SIerとの連合対策チームのOS担当で動いていた時だ。

それまでは愚直にシステムを構成するHW、MWの理解、使い方の繰り返し学習に努めた。各製品の機能を把握することだけに真摯に向き合ってきた。

多くの場合、新人達が「勉強したことを仕事で活かせない」というストレスを抱える背景は、この発想がないことにある。

日々、愚直に現場で全員が使っているツールを理解する、といった当たり前の努力を自発的に行えないのだ。

わかりやすい教本を1ページ目からなぞったり、会社のいう通り資格勉強をしたり、勉強会に出席して話を聞いてみたりという、受動的な学習さえしていれば仕事ができるようになると信じ切っていることが原因だ。

背景にあるこの「悪癖」の部分は、効率の良いやり方で世渡りしたいという怠慢さが原因にあるだろうし、ググればなんでもわかるこの時代には納得の思考だ。

気づいて欲しい。
学校の教科書の内容が、社会でそのまま役に立った試しはないだろう。

義務教育の知識を、遊びや会話とかの生活に自分なりに工夫して取り入れて、小学校という社会生活に適応したのと一緒で、エンジニアとして仕事をするための専門技術の知識も、自分なりに実生活の中で工夫して取り入れて初めて活かせる。

そもそも新人が数ヶ月で活かせるような技術は専門技術とは言えないのだ。

専門技術とは、その道のプロが弛まぬ努力の結果身につけた「スキル」そのものであり、繰り返し繰り返し身体に染み込ませた熟練の技のことだ。

それでも、自分が仕事で役に立ちたい、日々の努力を現場で活かしたい、という欲求は当然発生するものである。「学んだ技術が現場で活かせない」と思ったならば、それは「現場で活かせない技術」だ

お勧めしたいのは「確実に現場で活きる技術を学ぶこと」である。

手始めに少し、普段使っているツールのヘルプページを見てみると良いだろう。沢山の知らなかったショートカットコマンドや機能の名前が列記されているはずだ。

それら一つ一つの使い方をまずは学び、仕事を速く、間違いなくこなせるように修行を積んでほしい。知らなかった機能を学び、実際に使い、現場で手作業でやっていたタスクに応用できないか、一つ一つ検証してみて欲しい。

その努力の蓄積は、いずれあなたを「現場の誰よりもそのツールに詳しいエンジニア」に至らしめる。

繰り返しの努力こそスキルである。

無駄なくスキルを身につけたいのであれば、まずは実際に使う・使っている技術を徹底的に把握するところから初めてほしい。

創作意欲の支えになります!