目次
ご挨拶
「ゲームで見るITの世界」の名義でQiitaアカウントを開設しました。
他人から超絶呼ばれづらい名前にしたのを後悔しているので、discordでは「moto」名義にしてますが正直、呼び方はなんでもいいです。
このアカウントではいわゆる中華ゲーム機について発信しています。
plumOSブランドのLinux distributionの開発をはじめ、pyxelを中華ゲーム機のLinuxで動かすための活動を細々としております。
今年で44歳になるITエンジニアです。 ITエンジニア歴は24年。
プロとして活動しているのが24年であって、初めてコンピュータ(MSX)を触り始めた時期を含めていいならば、小学3年生の頃から計算すると・・・34年ということになるかな。
どうぞ皆様よろしくお願いいたします。
下記には経歴などを記してますが、ITエンジニア以外の方にとってはクソほどどうでもいい内容であることと、長すぎる文章を読んだ末に何も得られない時間を浪費させるのが心苦しいので、ここらでブラウザバックしてページを離れた方がよろしいかと思います。
読者がITエンジニアだとして、何かを得たい場合は「ITエンジニアへの転機」ぐらいから読んでもらえれば。
長文なのでくれぐれも覚悟がある人がお読みください。
経歴
幼少期〜成人まで音楽人生
父の影響で12歳からエレキギターを買ってもらい、程なくして当時住んでいた隣駅の「溝の口 川上楽器」の上階にあった「ヤマハポピュラーミュージックスクール(PMS)」に通い始める。
初めてのPMSの講師、伝説のバンド「OK's」のギタリスト越谷浩成氏に師事し、ジャズ・フュージョンの路線でギターを極めていこうと決意。
次の講師は鈴木蘭々や椎名へきるなど数々のアーティストの楽曲に参加されていたスタジオミュージシャンの竹森久晃氏に師事し、将来はPMSの講師になりたいと決意。
高校卒業後はフュージョンバンドのT-SQUAREのメンバーが講師を務めた「アーティストヴィレッジ」に入学して安藤まさひろ氏、御厨裕二氏に師事。
その後、Lainなどで声優を務められた清水香里さんのファーストCD「バニラ」の発売記念ライブでバックバンドを務めたり、2chでは「( ´ω`)ノ異様!◆yP3t36u2」という名義で活動。
https://x.com/0_game_it/status/1816509771866145108
そして ラウンジあいのうた への参画を最後に音楽人生を締めくくる。
(以下から長文注意)
ITエンジニアへの転機
前述した通り音楽路線な人生でしたが、ゲームやDTMをするために培ってきたコンピュータの知識・技術が、いい意味で自分の人生を狂わせることになった。
2000年 セガのゲーム機「ドリームキャスト」で発売された「ファンタシースターオンライン」と、PCゲームの「SWAT3」をプレイしていた時にふと「ゲームをしながらネットワークで人と繋がれる仕組みって凄い!」と思ってしまったことをきっかけに、8年間の音楽人生の全てを捨ててITエンジニアを目指すことになる。
初めてのお仕事
20歳になった頃、とりあえずコンピュータに携わる仕事をしようと考え、初めて入社した会社ではPCの配達をしつつお客様先でセットアップをする仕事をしながら、ネットカフェの構築なども手がけていた。
が、労働時間と対価が見合わず2年ぐらいで退職。
(歩合制だったので200時間以上働いても手取り月8万とか・・思い出すだけで吐き気が)
2つ目のお仕事
次は某企業の情報システム部のアルバイトに応募し、windowsサーバやLinuxサーバの運用を経験。
その会社の飲み会で直属の上司がセガの元社員さんで、なんとドリキャスのPSOのネットワーク担当だったことを知る。根掘り葉掘りとその当時の話を聞くうちに、自分もネットワークエンジニアとして働きたい思いが爆発。
そろそろ正社員にならないか?という打診を3年ぐらい断った結果、某企業へ転職することとなる。まさに恩を仇で返すとはこのこと。ごめんなさい。でもネットワークで人と人を繋げる仕事がしたかったんです。
3つ目のお仕事
2006年の当時はSESという言葉はなかった気がしますが、お客様先に常駐してミッションをこなす仕事をしていくことになる。
日本人なら誰でも知っている売上高6兆円の大企業で、Cisco、solaris、oracleをメインとするシステムに参画し、別の部署などに異動しながら主にAWS,Linuxサーバやwindowsサーバ、BIG-IP、などなどの運用・構築・設計に携わり、なんやかんやで10年以上お世話になりました。
2010年ぐらいの当時はまだAWSの環境が整っていなくて、何か問題が生じたときにAWSエンジニアから電話がかかってくることもあった。 電話の奥から聞こえる空調の「ゴー〜!」という音から察するに、AWSのサーバルームから急いで電話してきている状況もあって「わかる、こっちも頑張るからキミも頑張って」と、同業者として相手を責める気持ちにはなれなかったのを覚えている(笑)
(設計・構築・運用ではない。個人的な考えでは運用ができないと構築できないし、運用と構築ができないと設計ができないので 運用->構築->設計 という書き方がしっくりくる。)
エンジニアを経て研修の講師時代
講師としての心構え
その後、自社に戻り3年半ほど未経験入社を育てるために講師として従事。
SESとして送り出したエンジニアは200名以上、間接的に関わったエンジニアは述べ550名ぐらいである。
「研修で教えて現場に出しておしまい」ではない。
重要なのはエンジニアたちがお客様先に参画してから業務で生じた疑問や質問に答えるために、帰社する時間を設けて自社のオフィスが閉まる23時ぐらいまでサポートをすることだ。
未経験を現場に出すのだから、むしろ研修の内容よりも研修後のサポートを手厚くしなければならないと思っている。 せっかく希望を持って入社してきた新卒や中途の子達が、初めての現場で潰されては誰もが不幸になる。
だから時間の許す限りヒヨ子たちが頑張れる状況を作ってあげて、成鳥して自由に羽ばたけるまでサポートしてあげる必要がある。
数ヶ月後、わざわざ帰社してきて「自分、今こんな業務やっていてめっちゃムズイけど、めっちゃ面白いっス!」と目を輝かせて報告してくれるのは、講師としてやりがいを感じた経験の一つでした。
カリキュラムについて
私が考えたカリキュラムによって約2ヶ月間の研修が終わった未経験エンジニアにどのような能力が備わっているかというと、下記動画の最後に記してある課題において「誰の指示なく自分で考えて構築が可能・課題に対して自分の考えを説明できる」という状態になっている。
https://www.youtube.com/watch?v=7ZUT56KJemw
このシステム構成はネットワークを利用したほぼ全システムに共通した構成であり、この構成に対して足し算・引き算をして、それぞれのシステムが出来上がっている。
カリキュラムの内容を暴露することはできないが、この課題を逆算して生成したカリキュラムになっていることだけはお伝えします。
なおこの課題は情報が空白だらけに作ってあるが故に、答えは一つにならない仕組みになっており、エンジニア自身の知識と経験によって答えが変化する。
時間をおいてこの課題を見た時、その答えの内容によって自分がどれだけレベルアップしているのかを客観的にみることも可能だ。
例えばこのシステムは「社内」から限定して使われるシステムなのか? 「社外」からのみ使われるのか? もしくはその両方なのか? 予算規模はどれぐらいなのか? など様々な条件によって何が足りないのか、何を減らせばいいのかなど、経験によって考え方は変化していく。
提示された情報だけで答えを導くのではなく「例えば〜なら、これはこうなる、こうした方がメリットとデメリットのバランスが良くなる」という考えを常に持ったエンジニアが誕生するというわけだ。
概ね未経験からスタートしたエンジニアは客単価 65万/月 からスタートして、その多くは1〜3年後には80万〜100万/月になっている。
経験年数の少ないITエンジニアに必要な学習
これまでやってきた学習
話は私が2006年に参画した時まで遡る。
当初はcisco機器をヤフオクとか中古販売店で買い漁り、お客様の環境に可能な限り近づけて自宅で学習をする。
solarisは個人では買えなかったため、netBSDやredhat linuxなどで操作感を養う。
お客様のシステム上で動作しているプログラムを知る必要があるため、java,perl,PHPも同時並行で学んでいく。
実際に不特定多数からアクセスされるサイトを構築して、運用管理をより実践的にしたかった。
契約しているネットワークによっては自宅サーバーをグローバルに出すこともできたし、引っ越し先のネットワークがグローバルNGな場合はレンタルサーバやAWSなどでグローバルに直接足が出ているサーバ環境も用意した。
私の経歴を思い返してみるとインフラエンジニアとしての業務を主戦場としてきたが、インフラエンジニアとかプログラマーとか狭義の分類ではなく「ITエンジニア」という広義の分類に位置するエンジニアになるため、ありとあらゆる知識・技術を学ぶ必要があると考え、実際そうしてきた。
(もちろん手を出しきれていない分野も残っており、今もなお学習に勤しんでいる。)
学習の落とし穴
経験が浅いエンジニアがドツボにハマるのが「資格試験の勉強」をメインにしてしまうこと。
例えばLPIC,LinuCならば未経験でもping-tなどの問題集を参考にすれば1週間で取得が可能だが、問いに対する答えを暗記するという作業をしている場合、キケンだ。
他の資格試験も同様に、この学習方法がマズい状況を例えで説明する。
例えばフリーランスやSES形態で働くとしてお客様から仕事を振られる場合、資格試験の設問を業務として割り振ってきますか? 答えはノー。
もちろん資格試験の勉強が役にたつ場合もあるが、それは業務の内容と資格勉強で得られた知識をリンクさせることができた場合にのみ役にたつ ということだ。
例えば業務中に「あるアプリがログを出力しているはずだけど、そのディレクトリにたくさんのファイルがあってどれが対象のログだかよくわからない」
みたいな状況になったとき、「ls -ltr」というコマンドとオプションが役にたつ。
これがLPIC,LinuCの設問で「ls コマンドの -ltr オプションはどのような挙動をするか選択肢から答えよ」というのがあった場合、この設問を思い出して活用できるのか? といえば甚だ疑問だ。
念の為、資格試験の勉強が全く意味がないわけではないことを付け足しておく。 問題は資格試験勉強のやり方だから。
とはいえこれは営業目線だが、SESのような形態でお客様先にエンジニアを提案する際に「資格を取得した」という実績は「やる気・努力・基礎学力の高さ」という部分をお客様側が評価していただけるメリットもあるから、暗記で取得した資格も捨てたものではない。
経験年数が浅いエンジニアが学習すべき方法
多くの場合「〇〇をしたいから△△をする」という思考で業務を進めていくため、逆引きができる学習をするべき。
ここでいう「逆引き」とは「経験に基づいた知識・技術」とも言える。
例えば「lsコマンドでファイルの一覧を詳細表示と日付逆順で表示させるオプション(ltr)を付けると、効果的なのはどんな状況であるか?」
という設問なら上記で記した状況が一つの解として思い浮かぶ。
「ls -ltr」を単なる文字としてではなく、使い所の例を挙げられるコマンドとオプションとして学習することができる。 これが逆引きができる学習をすべき理由の一つ。
コマンドじゃなくてもプログラミングでも同じことが言える。
「〇〇をしたいから△△という関数(処理)を記述する」
この感じを掴むには実際にモノを作ってみることが重要だ。
実際にモノを作ってみるってどういうこと?
例えばWEBプログラミングなら「簡単なECサイトを作ってみる」とか、サーバエンジニアなら「簡単なWEBサーバを作ってみる」ということ。
実際に動くものを作る過程で様々な問題に直面し「〇〇をしたいから△△をする」という思考に変わってくるはず。
ただなんとなく関数やコマンドを覚えるのではなく、自分のやりたいことを達成するのに必要だから関数やコマンドを覚えることになるはずです。
参考にするべきサイト
インフラエンジニア向けのサイトは「パソコンおやじ」と「3分間ネットワーキング」を参考にしてひたすらサーバを構築していく。
目標は手順を見ずに構築ができることではない。 人間の記憶ほどあてならんものはない。 変な思い込みと記憶で間違ったコマンドを打ったりするのはもってのほかだ。
目的は一つ一つの手順や作業の流れ・順番の意味を理解すること。
これは将来自分が手順書を作るにあたって重要になってくる知識と技術になるはです。
全ての手順に根拠がある・根拠を言えることを目標にして学習してみてください。
その結果、LPIC,LinuCのような試験も50%以上は資格勉強なしに答えられるはず。
残りの50%は設問の意図を考えながら、実際に設問に沿うようにモノを作りながら学習してみてください。