世の中のデジタル化が加速する中、社会のあちこちで「プログラマーが足りない」という悲鳴が聞こえてくる。そんな中、未経験からでもプログラマー業界へ飛び込もうと意気込む人が増えている。
一体、どれぐらいの時間を勉強に費やせば、仕事がもらえるレベルになれるのか。プログラミングスクール「RUNTEQ(ランテック)」を運営するスタートアップテクノロジー代表の菊本久寿さんに話を聞いた。(取材・文:キャリコネニュース編集部)
1年でも、なんとかなる?
「エンジニアとしてしっかりキャリアを築ける会社に就職するためには、腰を据えて1000時間プログラミングと向き合うことが重要になってきます」
菊本さんは、ズバリこう答える。
ちょっとピンとこないが、例えば小学校高学年の総授業時間数が1年あたり約1000時間だ。365日休まず勉強しても1年で辿り着こうとすると、1日あたり2?3時間となる。これって、けっこう大変じゃないか!?
ただ、いわゆる難関国家資格と言われている税理士や公認会計士は勉強時間の目安が約3000時間、弁護士だと6000時間というから、それと比べればマシと言える。一方で基本情報技術者試験には200時間必要と言われているので、それよりは、かなり時間をかける必要性がありそうだ。
さて、仮にスクールでプログラミングを1000時間勉強すれば、具体的にどんなことができるようになるのか?
プログラマーにも色々あるが、RUNTEQはWebアプリケーション開発で使う言語「Ruby」と開発フレームワーク「Ruby on Rails(Rails)」を学ぶためのスクールだ。授業の実習では掲示板などのウェブサイトを作っているという。
ここで1000時間勉強すれば、自力で新規Webサービスを作れるようになる。簡単なタスクなら一人でこなせるので、開発現場でも「周囲のお荷物」ではなく、戦力として扱ってもらえるレベルになるという。
このスクールでは、最初HTMLやCSSといったWebの基礎中の基礎から始めて「Ruby」学習へと進んでいく。ソフトウェアのバージョン管理をするために必要な「Git」の使い方・お作法なども学ぶ、この「基礎・入門」段階で、約200時間かけるそうだ。
続いて、応用編として、自分でWebサイトを構築するために必要な知識をひとつひとつ、積み重ねていく。例えば「データベース・SQL基礎」では、SQLの超基礎からテーブル設計入門などに11時間かける。JavaScriptなどRuby以外の言語も必要に応じて学んでいく。
「Rails実践 基礎編カリキュラム」では、合計200時間ほどを使って「掲示板サイト」をつくる。その掲示板に「画像アップロード機能」をつけるのに12時間、掲示板の「検索機能」を実装するのに8時間といった具合で、これもひとつひとつ、根気よくこなしていく感じだ。
また、「Rails実践 応用編」では「ブログアプリ」をつくる。ここでは、「課題:画像挿入時のバグ修正」(8時間)、「課題:アイキャッチの表示サイズ/位置指定」(16時間)といった課題に挑んでいく。
そうやってカリキュラムを800時間分ほどこなしたら、最後の締めくくりに自分のスキル・実績をまとめた「ポートフォリオ」を作るそうだ。
続けるコツは?
菊本久寿さん
1000時間もの間、飽きずに勉強を続けるコツはどんなものがあるだろうか?
菊本さんは「ちょっと笑えるような、クソアプリ開発がモチベーション維持に有効です」とアドバイスする。
RUNTEQでは、在学中に「二郎系ラーメン店の情報をまとめたアプリ」や「遅刻の言い訳を考えるツール」「ツイッターで怪しい情報商材系の人を見分けるツール」などを作った人がいたそうだ。
「自分の手でアプリを作ってみるだけで、学んだ技術の棚卸しになりますし、ものづくりに対する意欲も湧いてくるので、結果的にモチベーション維持にもつながるんです」
「また、一緒に切磋琢磨できる仲間を見つけられるかも大事です。受験勉強とかと一緒で、周りに同じような形で勉強している人がいるだけで、学習を続けられるきっかけになります。オンラインのイベントや”もくもく会”に顔を出し、ベテランや駆け出しのエンジニアと交流していくのもいいでしょう」
未経験でも就職できる?
さてスキルを身に着けたとして、心配なのが「お仕事を貰えるか」だ。1000時間勉強すれば、未経験でも雇ってもらえるのだろうか?
菊本さんは「以前に比べればハードルは大分下がっていると言えます」と話す。
「もちろん企業の本音としては、プログラミング経験があって即戦力になる人材がほしいです。しかし今はどこもエンジニア不足、そうした人材は中々採用できません。そこで、未経験のポテンシャル採用に踏み切るわけです。DX化が早急に求められるなか、少しでも戦力になる人材を抱えたいのです」
それでも、さすがに「スクールを出ていればOK」というほど、イージーではないようだ。
「純粋な未経験者の場合、ある程度”自走”できることが条件になってきます。社内のエンジニアの工数を、新人のOJTでは極力使いたくないからです。既存のコードを読んで、タスクを理解して、実装して、Gitを使ってプルリクエストするまで、一人でできるかが肝になってきます」
いくらポテンシャル採用でも、お荷物を雇う余裕はないということか。この辺はシビアな世界なのだろう。
自分の実力を示すためには、「ポートフォリオの出来」が大事だという。
「スクール出身者の中には、規定のカリキュラムに沿って作られた『〇〇クローン』のようなポートフォリオを出す人もいるのですが、採用担当者も見飽きています。見かけた段階で落とすことが多いんです」
確かに、他人に指示されて作ったコピペサイトじゃ何の実力もわからない。
「大したものでなくても構わないので、実際にサービスとしてローンチしてユーザーがついた実績をポートフォリオでアピールすれば、より通りやすくなるでしょう」
雇ってもらうには「カルチャーフィット」も重要?
Web業界では、どんなエンジニアが必要とされているのだろうか?
「DX文脈においては、ビジネス全体を理解しながら開発を進められるエンジニアが必要とされています。最近は企業の中で開発を内製化する動きも出ているので、ものづくりができるだけでなく、企画やプロダクトの設計も考えられる『サービス志向』が求められるようになっています」
「リーンスタートアップやアジャイル型の開発手法を学び、小さく作ってなるべく早くリリースし、仮設検証しながら回すこと。さらにはユーザーのことを考え、サービスを成長させるところまで踏み込んで考えられることが、特にスタートアップへの就職で非常に重要になってきます」
また、最近ではスキルだけでなく「カルチャーフィット」も重要視するようになっているという。
「背景には、未経験で就職したものの1年ぐらいで会社を辞めてフリーランスに転向する『踏み台フリーランス問題』があります。そのため、技術力だけでなく、その企業にあった考え方や、一緒に長く働けそうなマインドを持っているかも見られるようになっています。企業理念に共感し、事業にコミットしてくれそうかといった、気持ちの面も重要視されていると考えた方がよいでしょう」
向いているのはどんな人?
最後に、エンジニアに向いているのはどんな人かを聞いてみると、菊本さんは「怠惰」「短気」「傲慢」が「プログラマーの3大美徳」だと教えてくれた。
え? 美徳なの?と思ってしまうが、その意味するところは、「無駄な労力を省くためになるべく自動化する『怠惰』、問題を素早く解決する『短気』、人様に見せるのにふさわしいプログラムを書く『傲慢』といった感じ」らしい。プログラミング言語『Perl(パール)』の開発者ラリー・ウォールが提唱したものだという。
なるほど。うまいこと言うもんだな。僕も「怠惰」だけなら誰にも負けないと思ってるんですが……。