見出し画像

乱立するプログラミングスクールの卒業生と現場で求められるスキルギャップ問題考察

最近はフリーランスという働き方が注目されるようになってきた背景もあるのか「エンジニアになるとどこでも働ける&稼げる」というイメージが強いくなってきているのを感じます。エンジニアバブル状態になりつつあり、それに伴いプログラミングスクールも乱立してきています

私自身もホーチミンでメンターと泊まり込み共同生活をしながらストイックにプログラミング研修を受けられるGAOGAOゲートという事業の運営を行なっています。

現在、日本国内にてスクールの数は私も把握できていないくらい存在し、提供するコースの内容・金額・期間はスクールごとに違います。大体期間は2ヶ月くらいのところから半年くらいでしょうか。

そのようなスクール乱立時代にスクールを運営する側 vs 採用したい現場側の両面を見ている私が最近よく聞く話題として「卒業生のスキルが現場レベルに足りておらず、雇用のミスマッチが起きている」という問題があります。今回の記事はそのギャップ問題を考察してみるポエム記事です。

スクール卒業後には「就職したい」が大半

弊社のサービスや他社様プログラミングスクールに参加されている方にモチベーションを聞くと、その大半の方は「卒業後エンジニアとして就職して稼ぎたい」と考えます。将来フリーランスとして働きたいという方も多いですが、独立する前の過程として一度エンジニアとして就職したいと考える方が多いです。その他は、自分で起業したいという方か、一部学生の方で将来の選択肢の一つのしてプログラミングを学びたいという方がいらっしゃる感じです。

世間のプログラミングスクールに通う大半の「卒業後にすぐに就職したい」という方は、卒業直後にとにかく求人サイトで申し込みを行うことが多いようです。その中でインターンを獲得できればラッキー、就職できればウルトラハッピーというような状況で、皆がすぐに希望の仕事に就けるわけではありません。このエンジニア需要が高い現在、なぜ彼らの就職が難しいのでしょうか?それは現場の求めるスキルにまだ満たないケースが大半だからです。

多くのスタートアップ企業が求めるエンジニアは即戦力

私は今現在10社近くエンジニア採用のお手伝いをしています。ほとんどは100名未満のスタートアップ企業ですが、そのような現場で求めるエンジニアのスキルは一般的なスクール卒業生のレベルではありません。

大手は異なるかも知れないですが、スタートアップ企業の場合、エンジニアの教育にコストをかけられる余裕はないです。そのような現場では、とにかく採用対象の方には即戦力が求められるため、概してスクール卒業直後に採用されるのは難しい状況となります。報酬をかなり下げたトライアル期間のような位置付けとしてのインターンシップであれば、採用の可能性は高いですがそれでも現実的に現場のエンジニアに教育の時間を取ってもらう必要があるため難しい現状です。一方、業界でエンジニアが足りていないのは事実で、即戦力になりそうなエンジニアはどこの会社も探している状況です。そう考えると「スクール卒業<->即戦力人材」のスキルギャップは企業からの需要の観点でも大きなギャップがあるようです。

聞いたところによると、スクール卒業直後の方は書類時点で全て落としているという名の知れたスタートアップ企業もあったりします。そのような状況の中でスクール卒業生は就職のためにどうすれば良いのでしょうか。

スクール卒業生は本当にスキルが足りないのか?

よく「プログラミングが得意で好きな人はスクールに通わなくてもできる」という意見があると思います。私もその通りだと思っていて、そのような方々はスクールに通わずとも自身で突き進んでいけます。

ただ、私はスクールに通う方は全員スキルが無いなんてことは全く思いません。「より効率的にスキルを身につける方法としてスクールに通うのは選択肢の一つ」としてオススメしています。スクールの提供するコースの多くは、過去の生徒を指導した結果、考察を行った上でカリキュラムが組まれていることが多いはずです。独学で全てやり切れる人はそのようなカリキュラムに頼る必要ないですが、10年前とは異なり今や「効率的に」学べる機会が溢れているので、それを「活用」するのは全く悪くないです。大学受験における、独学 vs 塾に近い考え方かもしれません。

そのような考え方で参加されているスクール卒業生の中には現場で大活躍できるレベルの方ももちろんいます。なので、スクール卒業生が決まって全員スキルが足りないというよりは、統計的にスキルが足りないことが多い、という現場の肌感で、採用時のコストを考えると書類時点で敬遠してしまうというのが事実のようです。

卒業後のスキルと現場で求められるスキルの何が違うのか?

実際にスクール卒業後の人材のスキルと現場で求められるスキルは何が違うのでしょうか?私や知り合いのスタートアップのCTOの方の肌感としては、「今乱立しているスクールを卒業した後、半年間フルタイムでインターンシップを経験すれば、ようやく現場のスタート地点に立てる」という感覚なんです。


では、その半年間のインターシップは現場のスタート地点に立てるためのギャップをどのように補うのでしょうか。まず一般的なプログラミングスクールが教えることって、当たり前ですが、プログラミングスキルですね。

RailsやLaravelなどのチュートリアルを一通りこなして、実践的な課題を与えられ、それをコツコツプログラミングを学習しながらクリアしていき、一通り動作するWebアプリケーションを2, 3ヶ月程度で完成させるというのが一般的なスクールのカリキュラムであると思います。(もちろんスクールによって内容は異なります)

上記過程を通じて、生徒さんはある程度のプログラミングスキルを習得することができます。

一方、主にスタートアップの現場にて、ジュニアエンジニアに求められるものを挙げてみると以下のようなことが多いです。

- 実践レベルのプログラミングスキル

実際にスタートアップの現場で採用された場合、エンジニアの方が書いたコードは直接ユーザーに提供されることが多いです。つまり、アウトプットの品質がいきなり製品レベルのものであることを期待されるます。

- チーム開発能力

ほとんどの企業はサービスを複数人で開発しています。チームで働く際には、必ずオフラインでのコミュニケーション、また、slackなどを使用したオンラインでのコミュニケーション能力が求められます。スムーズな成果物の納品のために、githubを代表とした多くの開発支援ツールを使った開発の円滑な進め方を身につけている必要があります。

- 自己解決能力

特にスタートアップでは、現場で活躍しているエンジニアのリソースを教育の時間にかけすぎることはできる限り避けたいです。そのような現場では、ジュニアエンジニアであっても、自走力やオーナーシップを強く持ち、できれば自身で解決していく人材が求められます。


上にあげるものだけではないかもしれないですが、このような考え方が現場である以上、単純にプログラミングの基本知識があれば現場で活躍できるわけではありません。

スキルギャップを埋めるためにスクールができること

これまでご説明した通りスキルギャップがある状況では、仮に社員として雇用された際に思ったよりもパフォーマンスが出なく、企業側との雇用のミスマッチが起きてしまいます。

もしかしたら、企業側が "人材投資"としてのインターンシップを受け入れる事例がもっと増えていけば良いのかもしれません。その内容は少しトピックがずれるため、この記事では、スクール側の立場で簡単に思いつく提供コンテンツの改善策をご紹介して終わりたいと思います。


- 実践に則したコーディング経験の提供

未経験から数ヶ月で現場レベルのコーディングスキルを身につけるのはもちろん難しいですが、現場で求められる実践レベルの品質の高いプロダクトを知る機会を提供することは良いかと思います。

いわゆる教則本のようなものを使った短期間の学習方法では、いきなり現場に出るのは難しいです。イメージでは、スノーボードの教則本を読んだ状態から、いきなり雪山に放り出されて転ばずに速く滑ってくださいと命じられるような感覚です。

品質の高いコードを速く実装できるようになるには、多くの現場のプロが書いたコードを見て学び、多くのアウトプット経験を通じて身に付いていくものであります。スクール在籍中の短い期間でより効率的にそれらのスキルを身につけるには、例えば、実践に則した現場のコードやOSSを利用したカリキュラムを提供すること。また、現場で活躍するプロフェッショナルのコードを見て学習できたりコードレビューをしてもらう機会の提供などが考えられます。

これらを実現するためにはスクールと企業がコラボするなども必要になるかもしれないですが、教則本以外のリアルな現場を知ってもらうようなカリキュラムがあると、生徒もそのギャップを自身で知ることができるため通常よりも早くその差を埋められる機会を提供できることになると思います。

- チーム開発経験の提供

既にチーム開発の体験を提供しているスクールも既にあると思いますが、きちんとオンラインコミュニケーションツールの使い方実践に則したツールの使い方の教授すると良さそうです。例えば、前者はslackやzoomなどを利用した開発時のコミュニケーションの取り方、後者はgithubを利用したブランチ、Issues、プルリクエスト、プロジェクトを活用した開発の進め方を導入するなどです。また、スクラムの導入などオフラインでも開発手法も導入できるのであれば、現場に出た際にチーム開発において混乱は少なくなるはずです。

- 自己解決能力の向上

初学者の方はスクールなどでメンターさんが常にいる環境にいると、なんでもとりあえず聞くようになりがちです。スクール側としては、メンターにいつでも聞けるということを売りにしているとは言え、生徒さん自身がまずは自分で解決することを試みる力を養える方針で教育をしていかないと現場に出ても同僚や先輩に聞かないと何も進まないような状況になってしまいがちです。

例えば、30分間ググるなどして悩んでみる、わからなかったらメンターに聞くなどルールを導入し、自身で解決を試みる癖をつけていくのは重要です。

また、自分で解決を試みる姿勢がついた上で、学びの速度を向上させることも重要です。私がその時にオススメしている方法は、ググったりメンターに聞いて何か解決できた時に「なぜそれで解決できたのか?」と考える癖をつけることです。その癖をつけることで、できなかった理由を理解することができるため、同じ問題にハマる機会がどんどん減っていきます。

学習速度が上がり自走力が高い人材になることができれば、自己解決能力が高いエンジニアとして同僚から認知されるようになっていくと思います。

スクールとしては、プログラミングの内容だけでなく効率の良い学び方の部分も力を入れて教えていくことができればギャップを縮めていくことができるかもしれないですね。


まとめ

近年、有力な大手・メガベンチャーを除いて企業側は即戦力エンジニアを雇うことはほぼ困難です。その事実を踏まえた上で、スクール卒業生を雇って育てていくような判断をしていく企業も増えていくはずです。一方、スクール側は卒業生をもっと現場で活躍できる人材になってもらうための内容の工夫を施していくことで、スキルギャップを減らし、雇用のミスマッチを解消していくことができるのではないかなと思います。

以上、今回の記事では今乱立するプログラミングスクールの卒業生と、現場で求められるスキルにギャップがあるという事実をご紹介した上で、どのようにスクールが改善方向に向かうべきなのか、個人的な考察を書かせていただきました。


この記事が気に入ったらサポートをしてみませんか?