プログラミングはどこまで深く勉強するべき?
今回はプログラミングのスキルはどこまで追求するべきかというテーマで、個人的な見解をまとめていきます。
最近、エンジニアに転職したいという人や副業でWeb制作をしたいという人が多いですよね。
会社の採用を担当している人に聞いても、面接に来る実務未経験者が激増したと言っていました。
本記事を見てくれている人も、このブームに乗っかってプログラミングを始めた人が多いと思います。
そして自分のそのうちの一人です。
プログラミングをやると一口で言っても、プログラミングを勉強する目的は、一人一人全然違うと思います。
- ただコードを書くことが好きで趣味としてやっているか
- 自分の理想のライフスタイルを実現するための手段の一つであるか
おそらくこのどちらかです。
この二つのうち、プログラミングのブームに乗っかって始めた人の大半は、後者だと思います。
つまり、
- リモートで働いて家族との時間を確保したい
- 沖縄でノマド生活を送りたい
- 自分の単価を早いとこあげていいマンションに住みたい
などのように、自分の理想のライフスタイルを実現するためにプログラミングをやっている人がほとんどだと思います。
そのため、今回の記事では、プログラミングを理想のライフスタイルを実現するための手段という前提のもとで話していきます。
かくいう自分も純度100%の手段派です。
確かにプログラミングは楽しいとは思いますが、目的は0%です。
映画鑑賞とか読書、ゲーセン、サッカー、野球何でもいいですが、自分の趣味をやっている時と同じくらい楽しくて、マネタイズなんて関係なく自分の時間を割きたいと思うなら、それは立派にプログラミングが目的だといえます。
しかし、この記事を見てくれている人の大半はそうじゃないですよね。
プログラミングよりも、ゲーセンに行ったり、旅行に行ったり、カラオケ行った方が楽しいですよね。
お金があってもそれをやりたいと思うことが「自分の趣味」「自分の本当に好きなこと」です。
お金に困ってなかったら、皆さんはプログラミングやりますか?
おそらく大半の人は絶対にやらないと思います。
そういう人は自分も含めてただの手段でプログラミングをやっています。
ここからが本題なんですが、自分も含めて、「お金を稼ぐため」「理想のライフスタイルを実現するための手段」として、プログラミングやっている人は、どこまでスキルを追求すればいいのか。
さっそく結論を言うと、自分はそこまで追求する必要はないと思ってます。
追求する必要がないと言っても、どのレベルまでやればいいのかというと、副業としてWeb制作をしている人は、今まで通り、HTML、CSS、Javascript、Wordpress、Shopifyなどを使って、サクサクと案件をこなせるレベルです。
そして、今現在正社員としてのエンジニアを目指している人やすでに働いている人は、実務経験を1年〜2年くらい積めたら、もうスキルの追求はひと段落つけて、さっさとフリーランスになるべきだと思います。
ここからは、自分がなぜスキルをそこまで追求する必要がないと思っているのか、その理由について説明していきます。
これから話す内容については、自分は一生自分で手を動かす労働者でいいというよりは、もっと上のステージにいきたいという人は、特に最後まで見て欲しいです。
スキルを追求しなくてもいい理由
将来的に超高度な人材しか必要なくなるから
「IT業界というものはエンジニアが不足する!」ということを最近よく聞きますよね。
「2030年までに数十万人のIT人材が不足する」みたいな具体的な統計を出しているメディアもありますが、勘違いしていけないのが、高度なスキルを持ったエンジニアが不足するということです。
そのため、この情報を聞いて「お、これからエンジニアってめちゃくちゃ需要があるのか、これはやるしかないな!」のように安直な考え方をしてはいけません。
2030年なんて10年後ですよ。
10年も経ったら、今の時代、ほぼ全てのソフトウェアが更新されてるくらい全くの別世界に生まれ変わっています。
これからの時代テクノロジーが進化して世の中に浸透するスピードは年々早くなっていきます。
10年後なんて、ブロックチェーン、シェアリングエコノミー、トークンエコノミー、スマートシティなど、現在近未来のように扱われてる概念が全部当たり前になっています。
ソフトウェアだけじゃなくて、社会構造が丸ごと書き換わっています。
もちろん、人工知能の技術も例外ではないです。
とにかくこれからは新しい概念、ソフトウェアがどんどんと出てきて、どんどんと人間は楽になっていく方向に進んでいきます。
ここで、どんどんと楽になるというのが大事なポイントで、将来的に下流や中流にいるような、へぼい人材というのは間違いなくいらなくなります。
誰でもできる受付をやっている人、データ入力をしている人とか、そんな人はかなり近い将来抹殺されると思います。
ただ、その人たちより高度な仕事をしているエンジニアも例外ではないです。
すでにWeb制作なんて、WixやWordPress、Shopifyなどを使えば誰でも簡単に作れるようになってるし、NoCodeというバズワードも最近出てきましたよね。
5年もすれば静的なサイトはもちろん、小規模、中規模くらいのWebアプリケーションならほとんどエンジニアなしで作れてしまう時代になってると思います。
バックエンドだっていますでに、規模が大きいアプリケーションでなければFirebaseを使えばいいし、これからもっとバックエンドをカバーする便利なBackend as a Service(BaaS)が進化するのも目に見えてます。
そのため、初級者、中級者レベルのエンジニアは5年以内には、ほとんど必要なくなってしまいます。
それでは、どのような人材が必要になるかというと、もちろんその逆で高度なエンジニアリングができる人だけです。
NoCode、BaaSが進化したとしても、やはり大規模だったり、アクセスがかなり多かったり、細かいカスタマイズ性や運用保守が必要とされるWebアプリケーションとなると、必ずエンジニアの人手は必要となります。
つまり、進化したFaaS(Frontend as a Service)やBaaSでも、まだカバーできない部分をエンジニアリングできる高度な人材だけが必要となるわけです。
今実際にエンジニアとして会社で働いていて感じますが、もうフルスタックが当たり前になりつつあります。
以前までなら、フロントエンド、バックエンド、インフラ、アプリなど、どれか一つだけでもできれば十分でしたが、これからはフロント、バック、アプリの全てができないと、価値がないというような時代になります。
時間が経つにに連れて、どんどんと現場で求められるエンジニアのレベルが上がっています。
そのため、エンジニアとして働きたいなら、日々アップデートされる技術を勉強しながら、どんどんと新しいスキルを身につけていかなければいけない。
そして業界から見捨てられないように、高度なエンジニアを目指さなければいけない。
これってめっちゃきつくないですよね?
プログラミングをただの理想のライフスタイルを実現するための手段としてやっている我々がそこまで勉強して、高度な人材を目指すべきなのかということがポイントになってきます。
プログラミングが好きな人は、とことんスキルを追求して、頑張って勉強して高度な人材を目指せばいいと思います。
ただ、プログラミングというスキルを生かしつつも、もっと効率的に稼ぎたいという人は、スキルの追求はそこそこにしておいて、
- マネジメントする側に回る
- コンテンツ販売をする
- 知見を生かして誰かをコーチングする
- 起業する
などのように、横展開した方がよほど効率が良さそうです。
話をまとめると、これからエンジニアといえども高度な人材しか生き残れないので猛烈に勉強しなければいけない。
しかし、それはかなり大変なので早めに下流の人材から脱出しましょうというのがスキルを追求すべきではない理由の一つ目です。
スキルを追求しても高度な労働者になるだけだから
先ほど、エンジニアとしてやっていくためには超高度な人材にならなければいけないが、それはかなり大変だし効率も悪いという話をしました。
この「大変」とか「効率が悪い」といっているのは、勉強し続けなければいけないという意味ももちろんありますが、それ以上に、そもそもスキルを追求したところで、高度な労働者にしかならないという意味もあります。
よく考えれば当たり前なんですが、「市場価値を高める」という言葉を使うときは、誰かに雇われて働くことが前提にあったりします。
ここが落とし穴で、いくら市場価値を高めても、大前提として、誰かに雇われている、ただの労働者だということです。
つまり、今エンジニアとして頑張ってスキルを磨くということは、優秀な労働者になろうとしているわけです。
そして労働者である限り、どれだけ頑張っても年収1000万円ちょっと稼げれば万々歳という世界です。
労働収入だけで、年収2000万円とか3000万円なんて到底無理です。
もしそれくらい欲しかったら、外資系のコンサルティングファームや投資銀行 に転職するか、日銀総裁や国会議員になってください。
そのため、まずは最終的には、誰かから雇われる労働者から抜け出す思考を持たなければいけません。
本当の楽園は、会社の外側にしかないです。
高度な労働者になることをやめて、会社から抜け出そうという意識があればスキルをそこまで追求する意味がないことをわかってくれると思います。
最近、「市場価値を高めるんや!」と言って燃えている人が増えていますが、本当にできる人ほど、市場価値なんてあげようなんてしていないです。
彼らはもう一つ上の視点を持っています。
つまり、そのような高度な労働者をいかに”使うか”ということを考えています。
もちろん、労働者からさらに一つ上のステージに行くには、ある程度スキルが必要なのは間違いありません。
しかし、3年も4年も修行してスキルを深く身につけるなんていう必要はないということです。
スキルを深めることよりも、マーケティング能力や、人を動かす力を鍛える方にシフトした方が、どれだけ時間が経っても通用する普遍的な武器になります。
最後に
ここまでで、プログラミングはスキルを追求しすぎてもあまり意味がないという話をしてきました。
スキルを追求しても
- 超高度な人材になるまで頑張り続けないといけないから
- 高度な人材になれたとしても、所詮雇われの身の労働者でしかないから
というのが理由です。
もちろん、「俺は高度なAIエンジニアを目指すんや」「ドラえもん作るんや」という目標や夢を持っている人は、スキルをとことん追求してもいいと思います。
自分はあくまでも、自分と同じようにプログラミングを理想のライフスタイルを実現するための手段としてやっている人向けに言っているだけですから、エンジニアとして優秀になろうとすることは全く否定しないです。
しかし、プログラミングのスキルを活かして、効率的に稼ぎたいという人はスキルの追求はそこそこにしましょう。
これからの時代、100点のスキルを一個持つよりも、70点のスキルを複数個持つ方が強いです。
100点のスキルを身につけたところで、そのスキルがいつかは高度なテクノロジーに代替されることになります。
エンジニアも例外ではなく、永遠に続く職業は存在しません。
そのため、70点のスキルが身についたと思ったら、さらに他のスキルを身につけてかけ算をするか、コーチングしたり、コンテンツを販売したり、マネジメントしたり、起業したりと、その分野の上流に移行することに注力した方がいいでしょう。
かくいう自分もプログラミングは好きですが、追求する気はないので、すぐに次のステップに行こうと思います。
本記事は、若干レベルの高い話になりましたが、ある程度スキルを身につけた人にとっての道しるべに少しでもなれば嬉しいです。
今回の内容については以下の動画でも解説しているので、ぜひご覧ください^^