開発と違って、コレ作って!みたいな典型的な物が少ないのでなんとなく思いついた順に書いてみました。
よくある内容ばかりかつテクニカルな事は少ないです。
ほぼ毎年1,2人の新人を教育してきたので、初めて教育担当になる方の助けとなればと思います。
また、指摘や追加等あれば連絡ください。
はじめに
今回、新人のパターンを大きく次に分類します。
1.文系学校卒・他業種転向者(ITスキルゼロ)
2.理系学校卒でIT関係の勉強は学校以外でやっていない
3.趣味で自宅にサーバ数台運用している
4.開発系実務経験者
5.ネットワーク・サーバ系実務経験者
この中で3,5についてはタスクを与えていけば特に問題ないという経験から対象外とします。
2について、多くの場合は基本情報レベルの知識は学んでいると思います。が、基本情報レベルの話であってもついてこれる新人とそうでない新人が居ますので、1,4と同じレベルとみてください。
基本知識の習得
IPアドレスとは、Linuxとは、L2スイッチとは、といったレベルのこれから仕事をする上でベースとなる知識については、次の勉強をすれば多くの現場で基礎として事足りるかと思います。(書籍については個人的偏見によるものです)
1.基本知識
・基本(応用)情報技術者
2.実務レベル知識
・LPICレベル1
・Cisco CCNA
・マスタリングTCP/IP 入門編
・実践 パケット解析
現場固有(仕様・構成)の質問に対する回答
現場固有の話なので聞かれたことには根気良く回答してください。ただ、多くの場合は基本技術の積み重ねと思いますので、基本情報等の既に保有しているはずの知識と絡めてヒントを出していく形で回答しましょう。多くの新人は知識を仕事(タスクや問題等)と紐付けることが出来ないので、自分で考えて紐付け出来るように考えさせることが大切です。
また、新卒によくあることですが、説明後に「わかった?」「不明なところある?」と聞いても「大丈夫です」と元気良く返事する場合があります。9割以上の場合「わかったつもり」になっているだけなので、説明後は自身の言葉で説明してもらうようにしましょう。その際、言葉・文章的には問題無い場合でも説明した内容を復唱しただけがあるので、そこを見抜いてください。
とはいえ単純に嘘を見抜くのは難しいので、説明に対して改めて別の質問をしてください。たいていの場合は答えられなかったりとボロがでます。
タスク(仕事)の与え方
ネットワークやサーバの設定変更といった「定常的」「定型的」に行うタスクを実行してもらう際、次の事を理解して実行させるようにしましょう。
・タスクそのものの「目的」
・Linuxやスイッチ等で利用するコマンドの「動作」
・設定値の「意味」
最初の頃は仕方ないと思いますが、手順書やフロー等が定義されている場合、「理解せず」「何も考えず」にタスクがこなせる現場もあるかと思います。理解せずに「定常的」「定型的」なタスクを消化するのはエンジニアではなくオペレータの仕事ですので、簡単なタスクを与える場合は注意しましょう。
イレギュラー発生時の対応
私はテクニカル分野においてイレギュラー対応が成長する最も良い機会であると思っています。ただ、「対応出来る=仕様・構成を理解している」事も前提になるので、新人には荷が重いです。時間をかけられる問題であれば対応させることもできますが、1分1秒を争う場合は無理な話なので事後の情報共有はもちろん、画面を後ろから見させる等、イレギュラーに関係させていくことが大切です。
習うより慣れろ
Webに書いてある、仕様はこうだからこうだ、といった話をしてくるケースも多々あるかと思いますが、個人的には「実際はどうか」が全てだと思ってます。単体では正解であっても実際の環境では違う、なんてことは日常茶飯事で、世界で最初にバグを発見するといったことも幾度か経験しているので、調べたことに対して必ず試験させるようにしてください。試験環境が無い現場もあるかと思いますがLinux系であれば仮想技術である程度までは環境は構築できるかと思います。FWやSW等は実機が必要、という場合も多々あり限界もあるかと思いますが・・・。コアな部分であればあるほど、提案時や設計時に試験環境準備の必要性をお客や上長に説明して準備できるようにしましょう。(自分達の為でもある)
何事も英語を参考にする
製品付属のマニュアルからWebの情報まで、新しい情報はもちろん、日本語訳が間違っていたりするので、英語の文書を参考するようにしましょう。もちろん英語の情報であっても実践・試験・確認するということは忘れずに実施することが最も重要です。
サボりかたを教える
エンジニアのサボり方はとことん勉強して理解を深めていく以外に本当のサボりは出来ないと思ってます。
各種チェックコマンドからエクセル等、基本ではあるが的確・適切に利用していくことで最短で仕事が終わらせることが出来ると思ってます。。。
スクリプトを書けるようにする(サーバエンジニア向け)
サーバエンジニアはシェルスクリプトに加えて幾つか書けるようにしたほうが良いです。
第一に自動化することが出来るということもありますが、仮想化技術やハードウェアベンダ等が提供しているAPIを使う場合に必要になってくることもあります。どの言語がいいか、というところは各種特徴があるので割愛しますが、チームで利用する言語は統一することをお勧めします。
クライアントツールの紹介
既に利用されているメジャーなものばかりだと思います。こんなのもあるYOってのがあれば紹介してください!
なお、運用を行う端末がWindowsである前提です。
・Wireshark 言わずもがなのパケットキャプチャ・解析ツール。CLIで利用できるtsharkが利用できるようになると、ハイパワーなサーバマシンで同様な解析をすることも出来ます。
・BlackJumboDog 簡易的なサーバをサクっと立てられるソフト。WindowsでHTTPやSMTPを用意するのは面倒ですが、これならサクっと用意出来るのでちょっとした試験等で重宝したりします。
・exPing まあ、Ping打ちっぱなしはこれですかね。
・RLogin 高機能ターミナルソフト。タブ型で頻繁に更新されているものですが、この辺は好みの問題なので他でも問題無いかと。
・