未経験からプログラミングスキルを身に付けたいと考えた時、最も短期間で実現できるのはプログラミングスクールの活用です。
しかし、身に付けたスキルを使ってIT業界に就職することを考えた場合、ただ単にカリキュラムをこなすだけでは不十分だと言えます。
というのは、プログラミングスクールで身に付くのは基本的なプログラミングスキルでしかないことと、数多くのスクールが登場したことによりスクール卒業生同士の就職先争奪戦が激化してきたことによります。
今回は、プログラミングスクールを卒業後にIT業界に就職することを目指す場合、どのような心構えで授業を受け、成果をだしていけば良いのかについて私の意見を述べたいと思います。
スクールはスタートラインに立つための1つの手段

プログラミングスクールによっては、「〇〇〇か月後は即戦力として転職が可能」みたいな宣伝をしているものもありますが、現実はそう簡単ではありません。
この章では、その理由について解説しておきます。
3ヶ月~半年くらいでは即戦力にはなれない
どの業界でもいえることですが、1年目は素人、2~3年目からは先輩、4~5年目からは新人に自分が受け持つ仕事の一部を指示できる立場で、10年でやっとベテランの領域となります。
人にもよりますが、即戦力となるのは3年~5年以上のプログラミング経験を積んだ場合です。
どうしてこんなに時間が掛かるのかというと、実はプログラミング以外のスキルがとても大切であり、それらスキルは業種や業界、会社によって変わってくるためです。
もし半年間プログラミングスクールに通ったとして、確かに特定のプログラミング言語でプログラムを書けるようになるでしょう。
しかし、その他のスキルをほとんど学んでいないため、就職時は「ちょっとプログラミング経験がある新人」としか見なされません。
プログラミングはスキルの一部
プログラミングは、お客様が持つビジネス上の課題を解決するために、何らかのシステムが必要になった際、そのシステムを開発するための手段でしかありません。
つまり、そこにはプログラミング以外の数多くのスキルが必要なのです。
例えば、プログラミング以外に、業務に関する知識、開発業務の進め方、各種設計書の意味や書き方、テスト方法、デバッグ方法、ソース管理方法、作業工数の見積能力、自己管理能力、問題発見能力、問題解決力などのスキルが必要になます。
これらは業務経験を通して少しづつ身に付けていくものなのです。
余談ですが、これらスキルの中で一番重要且つ習得が困難なものはどれでしょうか。
答えは「業務に関する知識」です。
お客様のビジネス上の課題を解決するためには、お客様の業務を理解しておかなければ、勘違いして間違ったものを作ってしまうかもしれません。
あるいは、とんでもなく使い勝手の悪いシステムになるかもしれません。
仕事内容でプログラミング言語や作り方が変わる
「WebアプリやWebAPIを開発する会社」と一言で言っても、業界や業種、お客様によって作り方は様々です。
有名な言語をざっと挙げただけでも、Java、JavaScript、C#、Ruby、PHP、Perl などが思い浮かびますが、就職先もしくは仕事をするプロジェクトによって、どれが使われているかケースバイケースです。
もう1つややこしいのは、単純にそのプログラミング言語でプログラミングするという訳ではなく、言語もしくはプロジェクトごとに用意されたフレームワークを使ってプログラミングしなければならないことです。
フレームワークとは、ライブラリと呼ばれる汎用共通処理と、それを効率よく活用するためのプログラム記述ルールを定めたものだと思ってください。
会社によって、多用している開発言語やフレームワークはあるものの、基本的にどの言語、どのフレームワークを使うかは実際に仕事に着手するまでは分かりません。
つまり、スクールで覚えた1つの言語でプログラミングの仕事が出来るという保証は無いのです。
経験者と未経験者は天と地の差
プログラミング実務経験者は、少なくともチーム開発において、仲間と一緒にシステムを作り上げていく上で自分がどう動いたら良いか、課題や問題にどう対処すべきかを経験を通じて理解していますし、開発に関する手順やプログラミングのルール、フレームワークの使い方などプログラミング以外のスキルもある程度身についています。
実務経験者と未経験者の違いは、無論プログラミングスキルの差もありますが、それ以外のスキル量が圧倒的に違います。
例えるなら、教習所の中でしか走ったことのないドライバーと、公道を普通に走れるドライバーの差です。
もしあなたなら、どちらの車に取りたいですか?
未経験からのIT就職は決して簡単ではない

プログラミングスクールの多くは就職・転職支援というものがあり、中にはスクール卒業後の転職率は99%で、年収も100万以上アップするような表示をされているものもあります。
ここでは、卒業後の就職支援によって簡単にIT業界に就職できるのかについてまとめています。
多くの企業は実務経験者を雇いたい
大手企業の定期採用は別ですが、中小IT企業では圧倒的に実務経験者を求めています。
理由は教育コストの問題です。
未経験者を1人雇用した場合、プログラミングの勉強中は利益が出ませんが給料は支払われますので、仮に3ヶ月間の勉強期間を設けると、給与+雇用保険+交通費+福利厚費などで100万くらいの出費が必要です。
自分の給料分の利益を出そうと思うと、おそらく1年くらい掛かるため、会社は500~600万円の赤字を覚悟しなければなりません。
プログラミングスクール卒業者なら、ある程度は教育コストを抑えることは可能でしょうが、それでも実務経験者と未経験者の差を考えると、二の足を踏んでしまいがちです。
とはいえ、そう簡単に実務経験者を雇用できないため、プログラミングスクール卒業者からの雇用を考えるのです。
面接官が重視するのはあなたへの投資価値
プログラミングスクール卒業者に対して、採用する企業側はそれほどプログラミングスキルを重視していません。
やはり実務経験者と比べてスキルの幅が圧倒的に違うからです。
企業が期待しているのは「将来性」です。
企業にとって人を採用することは、数百万の投資になるわけですから、投資する価値があるか否かを徹底的に審査します。
正直言ってどこのスクールを卒業してようと関係ありません。
面接官は、「どういう姿勢でプログラミング学習に向き合ってきたか」、「今後とも積極的に新しいスキルを身に付ける努力をしていけるか」、「将来当社の中核となって活躍してくれそうか」という点を評価して採用、不採用を決めるのです。
単にプログラミングスクールを卒業したというだけでは、なかなか採用されないのはお分かり頂けたでしょうか。
スクールでの学び方

ここまで厳しいことを書きましたが、これらの事を踏まえた上で、どのような姿勢でプログラミングスクールを受講すれば良いかについて解説します。
1つの言語を極める
実際にプログラマーになると、どの言語を使うのかはプロジェクトごとに異なります。
しかし、プログラミングの基本的な考え方は共通しています。
たとえば、どんな言語でも条件判断文やループ文は存在しますし、何かを実現するための処理手順や処理の分割方法などのロジカル的な思考は共通です。
ですから、最低限1つの言語はマスターして、スラスラと書けるようにしておきましょう。
1つの言語をマスターしておけば、別の言語を使うことになっても、違いだけを覚えれば事足ります。
つまり圧倒的に学習時間が少なくなるのです。
他人のコードを読めるようになろう
世の中は、簡単な提携業務ならプログラミング無しで作れてしまう方向で進化していることもあり、全くゼロからシステムを新規開発するケースは減ってきています。
しかし、企業には数多くの既存システムが稼働しているため、それらに対して機能追加や変更を行うという需要は少なくありません。
既存システムに対して修正を加える場合、まず他人のプログラムを読んで理解する能力が必要です。
これはゼロから作るより圧倒的に難易度が高いです。
日本語にも様々な言い回しがあるように、1つのプログラミング言語でも様々な書き方が出来ます。
また、1つの機能を実現するための処理手順(アルゴリズム)も複数あるため、プログラマーの好みが反映されます。
つまり、自分と違う考え方で書かれたプログラムを読み解き、その意味を理解し、支持された動作になるよう修正していくという作業が必要にはります。
しかし、これは慣れであり、人が書いた様々なプログラムに触れ、その考え方を理解することで、次第に出来るようになります。
もし、あなたが受講するプログラミングスクールでこのようなカリキュラムが無かった場合、積極的にメンター(又はアドバイザー)に相談して、出来るだけ人の書いたプログラムに触れるようにしましょう。
テストとデバッグに慣れよう
自分が作ったプログラムがちゃんと動作するかを確認する作業がテストです。
一般的にプログラマーが行うテストの事を「単体テスト」と呼びますが、要するに自分が作ったプログラムに対してテストデータやテストのための操作を行い、期待通りに動作していることを確認する作業です。
ここで期待通りに動作しなかった場合、「バグが発生した」と表現し、期待通りに動くようにプログラムを修正します。
この作業を「デバッグ」と呼んでいます。
テストやデバッグはプログラマーにとって避けて通れないものであり、自分が作った成果物の動作を保証する為の作業なのですが、プログラミングスクールによってはあまり時間を割いてくれない場合があります。
どんなに早く複雑な処理をプログラミングできても、バグが多ければプログラマーとしての評価を落としてしまいますので、スクール在学中は是非力を入れて学んでください。
他のスクール生との差別化を図る
オリジナルポートフォリオを作る
プログラミングスクールによっては、卒業生に対して同じ課題が出されて、同じようなプログラムを作る場合があるようです。
面接時にポートフォリオを見せるのは大変効果があるのですが、逆に完成度が低かったり、他の卒業生と似通ったものだったりすると、その程度のものと思われてしまいます。
他のスクール卒業生との差別化を図る意味でも、できるだけオリジナリティのあるポートフォリオを作成することを心がけましょう。
就職活動を始める際に知っておきたいこと

最後になりましたが、就職活動をするときの心得について紹介しておきます。
中小IT企業の大半はSES
SES(システムエンジニアリングサービス)とは、特定の業務に対して技術者の労働を提供する契約形態のことです。
簡単にいうと、「相手企業に常駐してプログラミングする」という作業形態になります。
派遣と似ていますが、派遣は常駐先に指示命令系統があるのに対し、SESは命令系統が所属している自社になります。
SESのことを「準委任契約」と表現する場合もあります。
中小IT企業では教育コストが負担になるため、入社後いきなりSESとして客先に常駐させてしまうことが多々あります。
SESだとどんなに素人でも、常駐先から一定の金額がもらえるため、体力の弱い中小IT企業では願ったりなのです。
プログラミングスクールからIT企業へ転職する人は、基本的に自社開発を望んでいると思いますが、IT業界は圧倒的にSESが多く、SESの方が就職し易いという事は覚えておいて下さい。
SESのメリット・デメリット
SESが一概に悪いという訳ではなく、常駐先によって環境が異なるため、良い常駐先であればスキルを伸ばせますが、悪い常駐先なら今あるスキルを使う事さえできなくなるという、ギャンブル性があります。
常駐先が大手なら問題ないかというと、あながちそういうわけでもありません。
メリット | ベテラン社員と一緒に派遣された場合、ベテランから色々と教えてもらえる 常駐先が開催するセミナーや新人教育に参加できる可能性がある 色々なプロジェクトに参加して幅広いスキルが得られる可能性がある |
デメリット | プログラミングとは関係の無い作業をさせられる可能性がある 派遣先によっては劣悪な環境で作業させられたり、冷遇される可能性がある 深いところまで勉強できず、スキルが中途半端になる可能性がある |
まとめ
今回は、プログラミングスクールでスキルを身に付け、IT企業への就職を目指す人に対して現実を知ってい頂きたく、次の4点について解説しました。
- スクールはスタートラインに立つことである
- スクールを卒業しても、簡単にIT企業に就職できるわけではない
- スクールでの学び方
- 就職活動を始める際に知っておきたいこと
車の運転に例えると、スクールを卒業した段階とは、免許もらいたての段階です。
まだまだ運転技術はこれからですが、それはこれから運転していくことで向上していきます。
プログラミングも同じで、最初は難しい事の連続ですが、やっていくうちにスキルは上がってくるのです。
本当にIT技術者になりたいなら、そして最短コースを選びたいなら、プログラミングスクールが一番の早道です。
プログラミングスクールはたくさんあり、良いスクール、悪いスクールのどちらもありますが、自分が目標を持って本気で取り組むなら、正直どこも大差はないと思います。
とにかく勉強して、諦めずに前に進んでいけば、必ず道は開けます。
皆さんが一日も早くスクールを卒業し、よい就職を果たすことを願っています。