お願いですから、もう退路を断ってエンジニアになろうとしないでください
はじめに
いつもであれば丁寧語を使って文章を書かないのですが、丁寧語を使えば少しは聞いてもらえるかと期待して書いています。「てめえのエゴで意見してんじゃねえ」っていう意見も持つ方もいますし、批判されることもあると想定しています。それでも強く意見を発信したいと考え、この文章を書いています。
また、「エンジニアを増やしたくない」といった考えは1ナノも持っていません。むしろこれからの日本の発展にはエンジニアは絶対に不可欠です。エンジニアは増えてほしいのです。だからこそ無謀な方法で失敗してほしくないのです。
本題
エンジニアはなにか一つの職種を指すものではありません
過去に某オンラインスクールを批判したりしてきましたが、周囲でも無謀な方法でエンジニアになろうとする人たちを目にする機会が増えました。「エンジニアへのなり方」というのが、「医師になるために医学部に入って国家試験を取って医師免許を取る」といったように定型として定まっているものではありません。そもそも「エンジニア」という職種すらなにか一つの職種を定めているものではありません。
しかし、「エンジニアを目指す」という人たちが指すものの対象が「プログラマー」となってしまっている現状があります。一部のオンラインスクールではAWSなどのクラウドを教えているものもありますが、多くがRubyといった「教えやすく作りやすい」プログラミング言語を教えるものばかりです。
プログラマーになることが駄目だと言っているのではありません。「よくわからないまま、自分のイメージの中にある『エンジニア=プログラマー』という価値観のままエンジニアになろうとする」ことは愚かであるといっているのです。自分がなろうとする職種を何もわからない状態で目指すというのは極めて危険な行為です。趣味であれば構いません。あなたはそれで生計を立てようとしています。それなのになにもわからない状態で判断してしまうのが愚かなことであるということを客観視してください。
ITは金のなる木ではありません
エンジニアを目指す人の多くは現状に不満を持っています。そして現代はITと切って切り離せない環境にあります。そして(何も知らない人たちにとっては)「ITは金のなる木」という価値観が世の中にあります。これはきっと、2000年代のITバブルが強く影響しているでしょう。
確かにITは表面ではパソコンとインターネットさえあればなにかできるイメージがあるかもしれません。これは上でお話した「エンジニア=プログラマー」という価値観がどうしても色濃く残ってしまっているからです。現代のIT、というよりもITバブルの頃のITですら多額のお金がかかっています。サーバーやネットワークも安くはありません。Webサービスであればサービスダウンをしないための取り組みや大量のアクセスをさばくための仕組みも必要です。プログラムも日々メンテナンスをしないとコンテンツの価値は下がりますし、バグですべてが崩壊してしまうこともあります。セキュリティや情報管理もおろそかにすると罪や裁判を起こされることもあります。
ITは金のなる木ではありません。様々な取り組み、すなわち資金を投じることで収益化が発生する可能性があるものです。これは他の業種と変わりません。仮想上のものだからタダというような価値観は捨ててください。
再・エンジニアは一つの職種を指すものではありません
「ITは金のなる木ではない」でお話したとおり、ITのサービスは「サーバー」「ネットワーク」「セキュリティ」「情報管理」といったことが必要です。最近では「サーバー」が「クラウド」に置き換わったりもしますが、いずれにしろサーバーの知識が必要となります。これらの一つ一つを解決していくのも「エンジニア」の仕事です。
スマホゲームをやっている方であれば「サーバーが落ちてメンテナンス」というのはよく目にするでしょう。スマホアプリはスマホ内にあるプログラムで完結しているものではありません。通信先であるサーバーがあり、サーバー内部にはサーバー内部で通信するネットワークやデータを保存するためのデータベースなどを動作させるためのサーバーといったものがたくさんあります。それらを面倒見ているのは「エンジニア」という職種の人達ではありません。サーバーエンジニア、ネットワークエンジニア、データベースエンジニアといった職種の人達がいます。彼らの中(むしろ多く?)にはプログラミングができない人がいます。それでも彼らはIT業界で活躍する「エンジニア」です。
あなたの中にある「エンジニア=プログラマー」というよりは「エンジニア=プログラミングができる人」という価値観をまずは捨て去ってください。
魅惑に惑わされないでください
オンラインスクールでも「年収○○○万->年収△△△万へ!」といった高年収の就職事例を謳う広告が目立ちます。少し考えてください。あなたの勤める会社の広告に「あなたの知っている会社にとって不都合な事実」が書かれていますか?綺麗なことしか書いていないでしょう。
それがすべてを物語っています。「年収○○○万->年収△△△万へ!」の広告は1つの事例としては正しいのかもしれません。しかし数百人、数千人の会員数の中での一人かもしれません。かもしれません、というよりは確実にそうです。これはあくまでも持論ですが、その人は「オンラインスクールに行っていなくてもそれをなし得た人物である」と考えています。
「オンラインスクールが駄目というつもりはありません」というつもりはありません。オンラインスクールは基本的に情報商材と考えてもよいです。私もいくつかのオンラインスクールに指導側の関わったことがありますが、決してエンジニアになれるような環境であったことがありません。もちろん、自分が関わったものがすべてであるというつもりはありません。
オンラインスクールにもよりますが、きちんと教えようとしているところはあります。しかし、オンラインスクールのやり口は「やっている気にさせる」のがせいぜいです。生徒側も「お金を払って習っている」という価値観を買っているに過ぎません。もしくは上述の通りで、「エンジニア」がなにかもわからずに「プログラミングができれば今の自分の環境が変えられる」と考えている人たちです。
冷静になってください。
馴れ合ってもエンジニアには慣れません
Twitterで「#駆け出しエンジニアとつながりたい」とつぶやきまくっている人たちをみてください。「#駆け出しエンジニアとつながりたい」が意識高いことをいっていいねやリツイートをしているだけです。時間の無駄です。
じゃあどうしたらいいのでしょう
学生の方は時間を有効に使ってください。学生の方が会社勤めとは違って時間がたくさんある、とはとても思いません。講義やゼミやレポートで追われているでしょう。そのスキマ時間を利用するのが今後、エンジニアとして生きていくためのコツです。具体的に何をするかは次の節で書きます。
会社勤めをしている方が取る行動は2つうちどちらかです。
1つは転職です。今の状態に不満があってエンジニアになりたいのであれば、まずは転職しましょう。エンジニア職でなくてもいいです。とりあえず今の会社から離れて別の仕事につきましょう。エンジニアになることがあなたの不満を解消できる方法ではありません。
1つめの方法でだいぶ多くの人が削れると想定していますが、それでもエンジニアになりたければ学生の方とやることは一緒なので、次の節で紹介します。
ライフハックしましょう
ライフハック(Lifehack)という言葉があります。
「ハック」ですが悪いことではありません。Wikipediaの説明には「情報処理業界を中心とした「仕事術」のことで、いかに作業を簡便かつ効率良く行うかを主眼としたテクニック群」とありますが、そこまで大したものとして捉えなくて十分です。とにかく毎日、技術を使って普段の過ごし方を少しだけ良いものにしてみてください。
まずは技術を知りましょう。
例えば家にWi-Fiのルーターがある方であれば、ルーターへのパスワードが「admin」や「password」になっていませんか?最近のルーターは違うものになっているかもしれませんが、かんたんなパスワードであればすぐに変えましょう。
パスワード。サイトに登録するときのパスワードは同じものを使用していませんか?同じものにしているのであれば違うものを使うようにしましょう。そうすると管理が難しくなります。それであればパスワード管理ツールを使ってみましょう。1Password が便利で使いやすいですが、仕事で使わない限りは少し高く感じるかもしれません。であれば Bitwarden は無料での利用が可能です。PCやスマホのパスワードが一元管理できます。
「これがエンジニアになるまでの道なのか?アホなのか?」と思うかもしれません。確かにパスワード変更をしたりパスワード管理ツールを使っているからと言ってエンジニアになれるわけではありません。しかし、「パスワードがなぜかんたんでは駄目なのか」がわからないとパスワードを変える意味などはわかりません。パスワード管理ツールはWebサイトの登録時やログイン時にパスワードを記録して暗号化して保存し、ログイン時には選択するとユーザー名とパスワードを自動的に入力してくれます。それを知らなければ知るきっかけにもなります。また、それらがどういった技術を使って実現されているかということは十中八九説明できないでしょう。僕も正確にはできません。でも想像して自分の考えを説明することができます。
あらゆる技術がどうやって実現されているのか、を想像できることはエンジニアにとって重要な素養です。大まかな設計図を思い浮かべられるかというだけでも十分なスキルです。またそれを再現できるのであれば強力なスキルです。
次に技術を利用しましょう。
AWSやGCPといったクラウドサービスは一定額の無料枠があります。それらを利用してみましょう。サーバーはインターネットにつながっているため、セキュリティリスクが発生します。どうすればセキュリティリスクが少なくなるかを考えてみましょう。その上にアプリケーションを載せて利用してみましょう。NextCloudというDropboxやGoogle Driveのようなツールを自分で構築することができます。サーバーがあると自作したWebアプリケーションを公開できます。もし公開してみたくなったら開発して公開してみましょう。また、LINEのbotやAmazon Alexaの機能追加もサーバーがあるとできます。趣味レベルで構いません。楽しいと感じたり、面倒でも便利にしたいと感じるがままに進めてみてください。
エンジニアには、この「楽しい」か「面倒でもやる」というのが非常に重要です。ライフハックが重要なのではありません。これらの価値観を感じられるのであればどのような方法でも構いません。これらの価値観が重要な理由は、何かを覚えたら一生食べていける職業ではないからです(個人的見解としてはこれはすべての職種に当てはまるものだと思うのですが)。能動的でも惰性的でも、勉強はずっとついて回ります。必要だからやるのは当たり前で、必要でなくても勉強することで仕事のキャパシティが広がります。「習うより慣れろ」です。
これを知らずにエンジニアになるのは、無謀で愚かな行為としか言えません。
フリーランスをしていますが病気で働けないことがあります。記事がなにか琴線に触れたら支援いただけるととてもうれしいです。