就活するならプログラミングを学ぼう!文系のための「プログラミング最初の一歩」
就職活動で苦労しないために、非常に強力な武器。それが「プログラミング」です。プログラミングを習得すると、学歴が原因で諦めざるをえないような会社から内定を得ることができたり、初任給がそもそも高い状態からスタートできたりします。今回は、なぜプログラミングを学ぶとそんなことが叶うのか、21卒、22卒の新卒採用の現場がどうなっているのかについて解説していきます。(エンジニアとデータサイエンティストが混ざってますが今回はそこは精緻に分けずに話を進めます)
そもそもプログラミングって何?
プログラミングとは、「コンピューターに対し、コンピューターがわかる形で指示を出す」ことです。コンピューターに何をさせたいかによって、利用するプログラミング言語が変わってきます。
スマホアプリを作りたいならこの言語、ウェブサイトを作りたいならこの言語、と言語によって得意分野が違います。さらに、同じ「スマホアプリを作りたい」という目的であっても、「動きが遅くても簡単に作りたい」こともあれば「作るのは難しいけどサクサク動くしカッコ良い感じにしたい」とアプローチが異なることがあります。それぞれのアプローチに応じて、言語を使い分ける必要があります。
まとめると、プログラミングとは「シーンに応じた言語を使って、コンピューターに適切に命令を出すこと」と理解しておけばよいでしょう。
プログラミングができると本当に就活に有利なのか?
私は年間で100社くらいの企業の人事担当者と会います。その多くは、いわゆる大企業、人気企業です。そのほとんどで、プログラミング人材は優遇されており、はっきりと「就活に有利だ」と言い切ることができます。なぜプログラミングができるとそんなに有利になるのでしょうか?
日本は現在も今後も「プログラマー不足」が深刻
まずこちらが、日本の「IT人材に対する不足感」のデータです。2009年以降、急激にIT人材の不足感が高まっていることがわかります。2017年には、3割の企業が「大幅に不足」と答えており、逆に不足していないと答えている企業は1割にも満たないのです。
では、この不足感は将来的にどうなっていくと思いますか?2017年、9割以上の企業が「不足」と答えている状況ですが、この不足感は、今後さらに加速していきます。2017年の不足数はおよそ22万人でした。これが2022年には35万人で、およそ1.5倍になります。2026年には46万人と、2017年と比較して倍以上の数が不足するとみられています。今現在ですら深刻なエンジニア不足なのに、数年後にはその倍も不足するのです。
プログラマー人材に対する各社動向
新卒採用は、「ビジネスコース」「デザインコース」、そして「エンジニアコース」の3つに分かれています。ビジネスコースは年俸408万円で固定。デザインは年俸408万円からスタートだがプラス能力評価あり、となっています。
一方でエンジニアコースは、最低年俸450万円〜で、他の職種と比較して、スタート地点からおよそ1割給料が高い。エキスパート認定(高度な技術や実績、成果をお持ちの方)されると、最低年俸が720万円からと、破格の待遇です。
エンジニア、データ分析の初任給は427万円〜となっています。実はビジネス職も初任給は同額なのですが、「初任給427万円」となっているので、ビジネス職は初任給固定、エンジニアやデータサイエンティストは実力によって上振れすることが想定されます。
クックパッドの新卒採用ページを見ると、3職種、ソフトウェアエンジニア、リサーチエンジニア、デザイナーしかありません。さすがプロダクトを愛する会社だということが伝わってくるような募集です。エンジニアの初任給は450〜600万円程度と、サイバーエージェントやリクルートに勝るとも劣らない水準です。クックパッドはエンジニア採用の歴史が長いためエンジニア評価を適切にするナレッジもあり、しっかりと実力を評価してもらえるでしょう。
こちらも新卒採用はエンジニア、データサイエンティスト、デザイナーに限られています。データサイエンティストの初任給は驚きの1150万円。ソフトウェアエンジニアは1000万円です。よく「30代で年収1000万円が目標!」という話を聞きますが、それを初任給で実現できてしまうIndeedおそるべし…。ただし求められるレベルも非常に高いです。社内公用語は完全に英語で、英語はネイティブレベルが求められます。
一方で、エンジニアの給与に差をつけていない会社もあるので注意が必要です。例えばパソナは、大卒・大学院卒いずれも月給205,000円です。さらに、営業職には「別途一律営業手当70,000円」とあるのに対し、エンジニアには「残業手当全支給」としか記載がありません。こういった会社は、エンジニアに対しての重要度があまり高くないのだと考えられます。せっかくプログラミングスキルを身につけたならば、エンジニアを大切にしてくれる会社にいきたいですね。
その他企業の動向
最近、メーカーや営業系企業もエンジニア採用に力を入れ始めています。今までは総合職として全員が営業に従事しなければならなかったのが、エンジニアのみ別枠で専門職採用をしている企業が増えているのです。「この会社に憧れていたけど営業はちょっと…」という会社も、今後エンジニアとして入社するチャンスが広がっていくでしょう。
また、これはあまり大声では言いにくいことですが、エンジニア採用枠だけ採用要件を緩めている(下げている)会社も多数あります。例えば学歴やコミュニケーション能力が、他職種では採用に至らないレベルでも、エンジニアに限っては採用する、というパターンです。特にコンサルティング系、IT強化したい日系企業に多いようです。そういった会社を狙う場合も、プログラミングスキルがあると非常に有利だと言えます。
何ができれば就活で武器になる「プログラミングスキル」になるか
プログラミングという言葉は、その対象が広すぎて、どこまで何ができたら「プログラミングできる」と言っていいのか、非常に難しいです。先述の例で言えば、Indeedやサイバーエージェントのエキスパート認定のエンジニアは相当高いレベルを求められるでしょう。一方で、多くの企業ではエンジニア採用はスキル不要のポテンシャルで判断しているケースが見受けられます。
ここでは便宜的に、レベルを下記の3つに分けます。
1)即戦力エース(初任給650万以上)
2)即戦力ジュニア(初任給500万前後)
3)ポテンシャル〜経験ややあり(初任給他職種同等)
※大卒初任給は320万円前後が平均。
1)限られた初任給1000万レベル人材
初任給で650万円以上出せる会社(正確にいうと業界)は非常に限られています。基本的にはサイバーエージェント、LINE、ヤフー、DNA、サイボウズ、フューチャーアーキテクト、楽天などほとんどがIT企業です。場合によっては前述のIndeedや、Facebookなどのように、初任給で1000万円を超す初任給をオファーする企業もあります。
各社の評価基準や給与水準も、特に新卒採用は毎年変わるので、よく名前を聞くIT企業がどんな採用を行なっているのかは個別に調査する必要があります。
これらの会社でトップ評価を受けるには、「高い学歴+高いスキル実績」、または「ずば抜けたスキル実績」、のいずれかが求められます。スキル実績は、ウェブサービスを小さくリリースしてみました、大企業でインターンシップ経験があります、ではNG。長期インターンシップでサービスを1つ丸々立ち上げて、その設計から言語やフレームワークの選定、さらには開発までやりました、くらいのレベル感が求められます。採用の時もコーディングテストや、エンジニアによる技術的な面接が設定されます。
データ分析の場合は実務経験よりは大学での研究経験が求められるでしょう。学士はおそらく難しいので、修士か博士が必要です。
2)頭一つ抜け出した即戦力新卒(初任給500万前後)
上記1の人材は「そもそも市場にほとんどいない」ので、どの会社にとっても会えたらラッキー、ツチノコみたいな存在です(リクルートやIndeed、Facebookは採用力が強すぎてしっかり採りにいきますが)。
一方で、ここの層は各IT企業や外資コンサル、外資金融企業の新卒採用会議で「あいつは絶対採れ!」と話題になる、毎年採用するうちのトップ1〜2割くらいの層。
自分でアプリやウェブサービスを、やや拙いながらもリリースするなど、実務レベルでも通用するスキルが求められます。3年目くらいのSESやSIerのエンジニアレベルでしょう。IT企業やコンサルの場合、単純なプログラミングマニアではダメで、どうしてもビジネス視点が求められます。逆にそれらの企業の課題は、ビジネス視点を持っているおじさんたちがTechの視点を持てないことなので、若い新卒人材がITできて、さらにビジネス視点持てたらそれは垂涎モノなのです。そのため「プロダクトをリリースした経験がある(ユーザーが何を求めていて、それをどう解決しようとしたか考えられる)」ということや、「プロダクトを伸ばすためにチームを作ったり営業した」という経験は非常に高く評価されます。
この時、インフラ、バックエンドからフロントまで一人で全てできる必要はありません。チームで役割分担していてOK。また、フレームワーク使いまくっていても大丈夫です。技術はせっかくなので新しいもの(今ならReactNativeよりFlutterとか)の方が良いかもしれません(人事のほとんどは文系で技術わからないのでちょっとマウンティングできます)。
3)技術が好きでかじったことあるレベル〜興味あるけどて動かしたことはないレベル(ポテンシャル層)
非IT企業のエンジニア採用のほぼ全てと、IT企業の非トップ層がここに当たります。学歴が高くても技術レベルがこの層だと、同僚以上に初任給が上がることはほとんど望めません。その場合は学歴を活かしてそもそも初任給が高い会社を狙いましょう。
逆に、学歴が高くなかったり、文系であっても、ここのレベルで「エンジニア」として入社することができます。エンジニアとして入社すると、今後の年収の上がり方が他職種より有利なケースが多かったり、いわゆる部署ガチャが少ないのである程度安心して就職することができます(ヤフーなどはエンジニア採用でも部署ガチャの恐れがあります)。
情報系の学部、大学であっても、学校で学んでいたプラスアルファくらいだとここに分類されます。インターンシップ1社行った、くらいだとあまり高い評価はされないでしょう(余談ですがNRIやソフトバンク、リクルートのインターンシップは高く評価されることが多いようです)。
初任給に差がつかなくても、この層として就活するメリットはたくさんあります。
まず1つ目が、競争率です。特に文系の場合、営業職として入社する学生が多く、競争率が上がりがちです。エンジニアはどこの会社も足りておらず、結果競争率が大きく下がるので、やや背伸びをした就活が可能です。
2つ目に、配属です。専門職採用以外は多くが営業に配属になります。営業が悪い訳ではもちろんありませんが、苦手意識を持つ人は多いでしょう。エンジニア採用をした場合は、部署はともかくエンジニアとして配属されることになるため、自分の最初のキャリアが読みやすくなります。
3つ目が今後の給与、キャリアの広がりです。最初に申し上げた通り、日本は今後長期的にエンジニア不足です。エンジニアとしてキャリアをスタートすることは、今後のキャリアの選択肢や可能性を大きく広げてくれるでしょう。
プログラマーとしての「最初の一歩」をどう踏み出すか
プログラマとして就職活動することは、初任給はもちろん、それ以外にもたくさんメリットがあることがお分かりいただけたかと思います。そこで問題なのは「いかに最初の一歩を踏み出すか」ということです。多くの場合、ハッカソンは経験がないと難しいし、技術書やUdemyのような動画学習サイトもある程度理解が進んでからでないと、何から取り組めばいいのか検討もつきません。
全体の構造を理解しよう
まずはいわゆる「プログラミング」の全体像を理解しましょう。「プログラミングって最近よく聞く人工知能の開発とかも含むの?」「ホームページ作ることなんじゃないの?」などなど、様々な疑問があると思います。
プログラミングは「シーンに応じた言語を使って、コンピューターに適切に命令を出すこと」ですから、どちらもプログラミングと言って差し支えないでしょう(ホームページ作るのは厳密にはちょっと微妙ですが)。
そしてほとんどの場合、文系新卒プログラマーは、プログラミングできなくてもOKです(2019年5月現在なら)。もちろんできた方がポジティブなのは言うまでもありません。しかも、就活における「プログラミング最初の一歩」を踏み出すための学習時間はおそらく30〜50時間くらいだと思うので、投資対効果としてはものすごく高くなるでしょう。おすすめです。このたった数十時間で、プログラマ入社組の上位半数には入れてしまうのではないかと思います。
一方で、プログラミングできなくてもOK、も本当です。その代わり、この全体像の理解と、ターゲット企業ごとの技術の各論を理解する必要があります。
例えば、バックエンドってなに?フロントエンドってなに?言語はどんなものがなんのためにあって、フレームワークって何?という話。
そして、志望する企業がウェブサービスメインであればそのための技術を、アプリサービスがメインであればそのための技術を、ある程度各論で理解しておくと良いでしょう。
人事が「プログラマーのポテンシャル」としてみているのは、こういった技術的なテーマに対して知的好奇心を持ち、忍耐を持って勉強できるかどうか、という点だからです(逆に営業職や企画職の人たちの多くは、技術テーマに興味がないし、あっても忍耐を持って学ぶのを嫌がります)。
機会を見つけ、飛び込もう
全体の構造の理解は本やネット上の記事でも習得することができます。一方で、プログラミングの最初の一歩は、なかなか難しいものです。特に、環境構築という最初の一歩でつまづくことも多いですし、技術選定も一人ではなかなかできません。
そこで重要なのが「人の繋がり」です。すでにやっている人から学ぶことは非常に効率が良いのです(だからエンジニアはMeetUpやハッカソンが好きです)。周りにそういったことが好きな知人・友人がいるなら、迷わず声をかけてみましょう。そしてビールを奢る代わりに技術について教えてもらってください。企業のインターンシップや、プログラミングハンズオンイベント、MeetUp、そして初心者向けハッカソンなども良いでしょう。とにかく「開発友達」や「開発師匠」を作ることがとても大事。最初の一歩を踏み出す手助けをしてくれた人は、あなたにとって一生の友になる可能性も高いと思います。
まずは本を読み、ネットの記事を読み、なんとなく技術の輪郭が見えてきたら、ぜひ人と交流してみてください。単に就職活動のメリットデメリットの枠を超え、きっとあなたの人生を楽しさとワクワクに満ちた素晴らしいものにしてくれるでしょう。