小学校の授業でプログラミング教育が必修化になるなど、世間的に”プログラミング”が流行ってますね。転職を考えている人達の間でも「エンジニアへの転職で給与アップができる」と信じている人が少なくないみたいで、プログラミングスクールという文字を見かける機会も増えてきました。
システムエンジニアとして10年以上働いている立場的には「数週間、数ヶ月のスクールでプログラミングを理解できる訳がない」と思っていましたが、エンジニア不足の煽りを受けて、未経験からプログラミングスクールを受講・卒業した人を採用することになってしまいました。
採用から1ヶ月半が過ぎたので、プログラミングスクールを卒業した人の技術力・知識量、実際にプログラミングスクールで教わっていた内容、それらを元にしたシステムエンジニアとしての本音を話していきたいと思います。
利用したプログラミングスクールの内容
採用した人(以下、彼とする)は、完全オンラインのプログラミング個人レッスンを前面に押し出したプログラミングスクールを利用。面接では「未経験からWEBサイトを作れるようになるというコースを受講して、複数のプログラミング言語とデータベースに関する知識を習得してきました」と豪語していました。
- HTML
- CSS
- JavaScript
- jQuery
- PHP
- MySQL
プログラミングスクールでの成果物として提出してきたオリジナル?のWEBサイトは極めてお粗末な内容でしたが、その点は、カリキュラムに添った結果なのであれば仕方ないという判断に至りました。
言語とデータベースの組み合わせは「まさにWordPress」と言いたくなる内容でしたが、ウチの会社で公開向けのWEBサイトを構築するときはLAMP環境を用いることが多いので「全くの無知より、少しでも知ってる方がマシ」ということで採用しました。
卒業生の技術力と知識量に脱帽
彼が入社したその日、教育係としていくつかの質問をしました。
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]プログラミングスクールで勉強した言語の中で「特に理解できた」と思うものがあれば、その他を優先して教えていくけど何かある?[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]プログラミングスクールでは言われた通りに進めていただけなので、一応、全部教えてもらった方が良いです。[/speech_bubble]
エンジニアとして働いている人ならピンと来たかと思いますが、私はこの時点で”失敗した”と思いました。失敗したと感じた理由は「言われた通りに進めるだけでは、プログラミングの技術も知識も身に付かない」でした。
そこからはもう、地獄です。
ベタのHTMLでHello worldが作れない
研修の教材として考えていたプログラムを埋め込むために、ローカル環境に専用のURLをきって、プログラマーお馴染みのHello worldを出してもらう様に指示をしました。
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]空のindex.htmlを用意したので、Hello worldを表示してみようか。[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]できました![/speech_bubble]
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]流石にこれはできるか…って、えっ!?[/speech_bubble]
DOCTYPE宣言もない、<head>も<title>も何もないindex.htmlが、プラグラミングスクールを卒業してきた彼が最初に出した成果物でした。
デザイン・コーディングは基本的に行わないとしても、システムエンジニアとして働く殆どの人達がHTML, CSSの基礎程度のことは理解しているし、WEBサイトを作る上で最低限は知っておかなければいけないこと。
- ログイン画面
- 一覧・検索画面
- 新規・変種画面
ひとつずつタグの説明をしながら、上記した3つの画面(項目数は必要最低限)をベタのHTMLで書くのに2週間もかかってしまいました。
JavaScript?変数?何のこと?
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]とりあえず、最低限必要な画面はできたから、次はJavaScriptで入力された値の取得をやってみようか。
JavaScriptはやったことあるんよね?[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]JavaScriptをやったはやったのですが、覚えていないので教えてもらった方が良いです。[/speech_bubble]
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”](でしょうね…。っていうか、教えてもらった方が良いですって日本語おかしくない?)
ログインIDのテキストボックスに入力された値を変数に入れて、alertで…。[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]変数って何ですか?[/speech_bubble]
プラグラミングスクールでJavaScriptを教わった、jQueryを教わった、PHPも教わった。それなのに「変数って何ですか?」ってどういう状況?
今にも口から飛び出してしまいそうな失言を必死で抑えながら、中身が「変わる数」だから「変数」ということから順に、時間をかけて説明していきました。
データベース?SQL?名前だけは!
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]今回作ってもらうシステムに必要なデータベースをMySQLで作ったから、ここに必要なテーブルを作ってもらおうと思う。
ただ、最初はわからないと思う(学んできたハズやのにね)から、どんなデータを保持することを目的に、どんなテーブルを作る必要があるかを説明するね。[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]はい![/speech_bubble]
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]まず始めに、部署の情報をデータベースで管理したいから、部署テーブルを作ります。[/speech_bubble]
■部署マスター
部署CD | 部署名 | ソート順 |
1 | 開発部 | 10 |
2 | 営業部 | 20 |
3 | 経理部 | 30 |
[speech_bubble type=”ln” subtype=”L1″ icon=”30sman.png” name=”三十路さん”]PHP側からMySQLに接続して、SQL文:部署CD=1の情報をSELECTしてくださいで情報を取得して画面に表示します。[/speech_bubble]
[speech_bubble type=”ln” subtype=”R1″ icon=”danna.jpg” name=”新入社員”]SQL文…。[/speech_bubble]
習得できる技術の中に含まれているMySQLが定義するものとは、いったい何なのだろうか?
「MySQLとはデータベース管理システムです」と言われて「はい、お終い」の可能性を全力で否定できないくらい、テーブル、カラム、レコード、フィールド、彼は何ひとつ理解していなかった。
最後の砦!PHPの知識量は…
もう茶番として会話を取り上げる気にもなりません。
変数の使い方すらわからない人が「PHPならバリバリ書くことができます」なんてことが、あるわけがないんです。
- 定数と変数
- 配列
- 演算子
- 文字列
- ループ
- 条件分岐
- 関数…などなど
偏った勉強をしてきた可能性も考慮して、POSTやGET、Cookieなどフォームを絡めた良くある構図の話もしてみたけど、結局は「何にもわかっていない」んです。
プログラミングスクールの卒業生は二度と採用しない
プログラミングスクールを受講した人の中には「受講したことで技術と知識を得ることができて、就職に役立った」という人も居るでしょう。なので、プログラミングスクールを批判する気はありませんが…。
ウチの会社では、二度とプログラミングスクールの卒業生を採用することはないでしょう。
完全に初心者ということがわかっていれば、それなりのカリキュラムを組んで育てることもできますが、本人が出来もしないことを「出来る」と勘違いしていることほど、面倒臭いことはないんです。
少しは知っている前提で組んだカリキュラムの内容を、たったの一部も理解していない彼に教える労力。それらを諦めてカリキュラムを組み直す労力は相当なものなんです。
システムエンジニアとしての本音
IT業界の求人不足が深刻な状態にあることは、紛れもない事実です。広告費に300万円かけても、面接に来てくれるのは一桁でした。
そんな状況下で、最近は”未経験歓迎”の企業も増えてきています。
専門知識を持った人に教わることで「誰でもわかった気にはなれる」けど、わかった気で立ち回れるほどITの世界は単純なものではないです。学んだことを自分なりに解釈して、応用を繰り返すことで経験を重ねることができない限り、未経験の人と大きな差はありません。
IT業界で働く立場としては「数ヶ月で数十万円の費用を支払って、プログラミングスクールを利用するくらいなら、未経験で業界に飛び込んだ方が絶対に良い」と思っています。
「頑張る気持ちは人一倍強い」から先行投資で数十万を支払うのではなく、その気持ちを面接で見せることの方が、企業にとっても、本人にとっても良い縁に結び付くんじゃないかなと思います。
プログラミングスクールの卒業生を採用した結果/まとめ
引き続き頑張ってくれている彼には申し訳ないですが、プログラミングスクールで”教わっただけ”で、本人は”何も理解していない”ことがわかってしまったので、採用したことを後悔しています。
わかったつもりになっている人を雇うくらいなら、「何もわかりませんが、頑張ります」と言ってくれる人を採用したかったなというのが本音です。※求人の応募数が少なすぎて選ぶ権利がなかった
どんな仕事にも向き不向きはあって、プログラミングは向き不向きが表面化しやすい業界であるのは間違いありませんが、それは「頑張る気持ち」があれば何とでもなるレベルの問題です。結局はやるか、やらないかだけです。
IT業界への転職を考えている人は、プログラミングスクールで前知識を積むのではなく、その熱量を就職活動に向けることをおすすめします。
最後になりますが、先でも触れた通り、プログラミングスクールを批判する気はありません。実際に「利用して良かった」という人もたくさんいると思います。もちろん、高額の紹介報酬を打ち出すことで「プログラミングスクールは良い」という評判を回していることも知っているので、お金儲けと割り切って、その流れに乗る方が賢いのかも知れませんが、IT業界に迷惑がかかるので私は辞めておきます。
システムエンジニアとして働いている経験+実際に採用した結果が「無駄なお金」というだけの話なので、関係者の方はご容赦くださいね。