みなさんこんにちは。いつもお世話になっているQiitaで話題の記事があったので、
これに便乗して記事を書きたいと思います。
プログラミングスクールのメンターを辞めました
https://qiita.com/rhiroe/items/4349b9f412364aa2c729
はじめに断っておくと、私は仕事としてシステムを作ったことはありません。
その意味で、エンジニアという職業について私が何か言える口ではないのですが、
ビジネスとエンジニア、そしてプログラミングについてもう一回考えてみました。
プログラミングを学ぶモチベーションはどこから来た?
先程の記事を書かれたエンジニアの方も仰っている通り、
昨今流行りのプログラミングスクールについて良いも悪いも無いと思います。
プログラミングは小学校からの必修科目になる(と聞いたけどどうなの?)らしいので、
大学生や大人が学び直すというのも理解できなくはない話です。
ただ、プログラミングという技術そのものは「何かを作る道具」であって、
なにかの基礎になるようなものではありません。
端的に言えば「道具の使い方を勉強してどうしたいの?」ということです。
プログラミングを学ぶことを目的にするのは後述の通り良いことですが、人によっては辛いことです。
私はずっとコンピューターが大好きで大学院にまで行ってSIerに入社しようとしましたが、
よくよく考えて仕事としてのSEに向いていないと判断して辞めたことがあります。
おそらくですが、プログラミングスクールに通う多くの人は、
「エンジニアという仕事をしたい」と思ってると思います。
そうであるならば、どういうエンジニアを目指すのか、
そのためにどれだけのステップが必要なのか、
そして「自分の武器」がどこにあるかを認識することを優先することをおすすめします。
とりあえず、エンジニアを目指しても結局条件は悪く、思ったような仕事は回ってきません。
昨今、エンジニア不足ですがまだ基礎的なプログラミング技術がないと、
やはりエンジニアとしての就職は難しいところがあります。
それは、例えば大学にもある程度のランクがあって、新卒採用に採用重点校があるように、
職業としてのエンジニアとして採用基準となる評価基準があります。
そこで仕事を手に入れるなら、やはりエンジニアとしてのランクを作っておかなければ他の人に勝てないのです。
それは単に知識があるとか、アルゴリズムが考えられるというだけはありません。
もちろん、それが武器になることはありますが技術だけで高い報酬を得ようとするのならば、
客観的にその実力を証明できなければいけません。
実はエンジニアの世界では「経験」という年数が評価につながるところがあります。
これは決して年功序列ではありません。
実力として色々なプロジェクトを経験したことで、システム開発の勘が自然と備わるからです。
だから、本当にもしシステムエンジニアを目指してプログラミングスクールに通うならば、
自分が今持っている武器をちゃんと認識することが大切だと思います。
プログラミングの基礎を知っている、業務ノウハウを知っている、という技術としての武器に加えて、
有名な大学を卒業しているならば、一つの武器になるでしょう。
競技プログラミングで優秀な成績ならば、一つの武器になるでしょう。
自主開発サービスがヒットしたならば、一つの武器になるでしょう。
そもそも、自分の作ったWebサービスやサイトで生活できていたり、
買ってくれる人がいるならば既にあなたは職業エンジニアであり立派な経営者ですから、
あえて、今更プログラミングの基礎を学ぶ必要はありません。
決してエンジニアになるために自分の本当の目的を見失わないでください。
プロのエンジニアはそれなりにしんどい
コンピューターが好きでもコンピューターを販売する仕事が合っているのか、
ネットワーク構築や監視が合っているのか、
経営にITを活用することを支援するコンサルティングが合っているのか、
コーディングが合っているのか、
面白いアプリを作っているのが合っているのかわからないですよね。もっと言えば、バイクが好きだからと言ってバイクの整備士になる必要はありませんよね。
バイク屋さんになる必要もありません。レーサーになる必要もありません。
たとえバイクに乗ることが好きだとしても、レーサーとして生きるのは辛いかもしれません。実際に最初は好きだったから始めたことが、それを他人から求められる、
つまり対価を頂く仕事とするプロになるとそれが楽しくなくなることは多いと思います。
仕事としてのエンジニアというのはしんどいことがあると思います。
何年か前に「デスマ」という言葉が流行りました。納期までにプロダクトが完成せず、
ズルズルと負担が現場に襲いかかってきます。そのような崩壊状態で突貫工事をするというまさに死の行進です。
ただ、昨今は働き方改革も浸透しているのかあまり聞きませんね。
こういう印象があるので、エンジニアは大変だという印象を持っている人もいるでしょう。
確かにそういう状況に陥りやすいプロジェクトはあります。そういうPMの下からは逃げましょう。
しかし、エンジニア自体が辛い仕事というわけではありません。
サーバー監視者と同じように看護師や工場勤務者に夜勤がありますし、
PMに経営コンサルタントと同じように顧客交渉があったりします。
人それぞれ自分が「受け入れられる仕事」というのは種類も限度も変わってきますから、
誰かはそれができても、誰かはできないということも普通です。
だからこそ、なんとなくエンジニアがキラキラして見えたからその仕事を目指すというのは絶対にダメです。
自分がお金をもらえる働きをする際に何だったら一番得意にできるかを考えてください。
つまり、単純にコンピューターが好きだからSEになるのではなくて、
「私はコンピューターが好きだけれども、仕事としてコーディングやデバッグをしたり、
顧客折衝をするのはしんどいから、給与の良い仕事に就こう」という選択があって良いと思います。
プログラミングを学びたい意欲だけで生きても良い
「じゃあ、単にプログラミングを学びたい」という目的はダメなのかというと、
全然ダメではありません。
単にお金を貰える仕事としてのプロのエンジニアにはならないだけです。
私もその1人だと言えます。単純に色々な技術が好きで個人的に楽しんでいるだけの人です。
ただ、その場合は食い扶持としての仕事はエンジニア以外のものを見つける必要があります。
これだって簡単ではありません。
経理をやるのに簿記や会計士や税理士の資格が武器になるように、
自分に武器がなければその職を手に入れることが難しいのは誰もがわかっています。
結局の所、どれだけ学んでもお金が欲しいならお金を払ってくれる人が必要です。
それは個人や法人だったりしますが、必ず「あなたにお金を払ってくれる人が必要」です。
その意味で、プログラミングスクールに通っても、確かに基本的な知識は学べますが、
決してプロのエンジニアに適正があるかを判定してくれるわけではありません。
本当にプロのエンジニアになるための足がかりにするのであれば、
スクールに通ったという実績だけではなく他の武器が必要になるのは自明なのです。
繰り返すようですがそれは「税理士になるためにTACに通った」と言っているようなもので、
仕事を依頼する側は「税理士試験に合格した人に依頼したい」のです。
ただ、プログラミングスクールで学ぶことは誰にとっても無駄とは言えないのです。
例えば経理や法務を仕事にしている人にシステム導入を説明する際に、
向こうがプログラミングのちょっとした知識があれば、全く頓珍漢なことは言われず、
ちゃんとお互い理解し合って仕事が進むことが期待できるからです。
その意味で、プログラミングスクール自体が良いも悪いもないのです。
木を見て森を見ずにならないよう、まず自分の目的を明確にしてください。
覚えること、理解することが多い職業エンジニアの道をしんどいと感じてしまうならば、
自分のために早めに別の道を見つけることも大切なことだと思います。