最近よく見かけるようになったプログラミングスクールのWeb広告。
「未経験でもエンジニアとして就職できる!」とか、「フリーランスで稼ごう!」とか、魅力的な謳い文句についクリックしてしまう人もいるだろう。
どうやら数ヶ月~半年で即戦力になれるらしい。
しかし実際、プログラミングスクールに通うだけで本当に使い物になる力が身に付くのだろうか?
ふとそんなことが気になったので、いくつかのスクールのカリキュラムを覗いてみた。
今回はそんなお話。
※実際に受講したわけじゃないので、いちソフトエンジニアとしてのただの感想だということをご了承願いたい。
目次
プログラミングスクールで何を学べるのか?
プログラミングスクールは実際のところ星の数ほどある。(言い過ぎか)
そして今現在も新しいサービスが誕生している。
しかしどのスクールのサイトを見ても、サービス内容は似たようなものである。
- 講師が教室もしくはオンラインで授業する
- 生徒はそれを見ながら課題をこなす
- 分からないところは質問をすることができる
- トレーナーが付いており、学習状況を管理・アドバイスしてくれる
- 就職の斡旋をしてくれる
体制は申し分ないと思う。結構手厚いサービスだ。
でも肝心なのは “何を学べるか” である。
Webエンジニアのコースが多い
各スクールのコースを見てみると、Webエンジニアとしての内容が多い。(それしかないスクールもある)
エンジニアは分野がとても幅広くて、Web以外にも、
ソフトウェアエンジニア、組み込みエンジニア、システムエンジニア、ネットワークエンジニア、セキュリティエンジニアなどたくさんある。
しかしプログラミングスクールではWeb以外のコースは存在しないか、あったとしてもレアである。
ちなみに〇〇エンジニアの明確な定義は存在しない。
インフラエンジニアとか、フルスタックエンジニアとか、Webエンジニアもそうだが、仮に「私はWebエンジニアです」と紹介されたとしても、
Webサイトをコーディングしているのか、デザインしているのか、インフラを構築しているのか、Webアプリを作っているのか、よく分からない。
逆に言えば、何のエンジニアを名乗っても問題ないということにもなる。
ちょっと話が逸れたが、プログラミングスクールでWeb系しかコースが無いのには3つの理由が考えられる。
- 開発環境が整っている
- 成果物が分かりやすい
- 個人や中小企業から仕事を取りやすい
理由1:開発環境が整っている
最も環境に恵まれているのは、Web系の開発である。
Webサイトを作るならテキストエディタとブラウザ(Chromeとか)だけで開発もテストもできるし、
Webアプリやスマホアプリを作る際はIDE(統合開発環境)と呼ばれるソフトウェアをインストールするだけで開発もテストもできる。
ほかに必要なものは無い。導入が簡単なのだ。
これが未経験でもOKな理由の一つである。
もし導入が複雑で、実際にコードを書いて動かせるようになるまでにいくつもの手順を踏まないといけないとしたら、
未経験者には最初の導入のステップでつまづいてしまうだろう。
導入が簡単というのは、未経験者を迎え入れるうえで重要な要素である。
理由2:成果物が分かりやすい
WebサイトやWebアプリというのは、コードを書いたらすぐにブラウザで動作確認ができる。
しかも視覚的に。
自分の書いたコードがすぐに目に見える形で動かせるというのは、モチベーションの維持に大いに貢献している。
理由3:個人や中小企業から仕事を取りやすい
今も昔も、Webサイト(いわゆるホームページ)を作るという仕事は需要がある。
特に今では、個人事業主や中小企業でもホームページを持つのが当たり前の時代だ。
しかし個人や中小企業は資金上の問題で大企業に依頼できない(もしくは相手にされない)ケースが多い。
そこで、大企業よりも報酬の安価なフリーランスに仕事が回ってくるケースが十分にある。
こういった理由から、未経験者がまずWeb系からスタートするのは理にかなっているし、
私も未経験者からエンジニアになりたいと相談されたら、「まずWebサイト作ることから始めてみたら?」とアドバイスするだろう。
C++を勧めるなんてことはしないと思う。多分。
プログラミングスクールが合う人・合わない人
さて本題である。
プログラミンスクールは “主にWeb系を短期間で教えてくれる場所”、と定義することにする。
そうすると、プログラミングスクールが合う人合わない人が見えてくる。
プログラミングスクールが合う人
これまでの話の流れそのままであるが、
- 短期間でモノを作れるようになりたい人
- 独学で勉強できない人
- フリーランスで活躍したい人
- Web系をやりたいと思っている人
最も大事なのは、Webをやりたいという明確な思いがあるという点である。
エンジニアは先ほども書いたが、Web系だけではない。
例えば自動ロボットを作りたいと思うのなら組み込み系やAIなどを学習する必要があるし、プログラミング言語もPythonやGo、C++などが適している。
企業向けに業務ソフトウェアを作りたいと思うのならシステムエンジニアの道を行く必要があるだろう。
これらをやりたいなら、プログラミングスクールに通うよりも真っ先にスタートアップに就職して実務経験を積んだほうが良い。
※ただし、未経験でも採用してくれる企業は人手が足りないケースが多く、ブラックの可能性もある。
プログラミングスクールが合わない人
上と逆である。
- 基礎から知識を身に付けたい人
- 独学で勉強できる人
- 尖った企業に就職してバリバリ働きたい人
- Web系以外をやりたいと思っている人
最も大事なのは、基礎中の基礎から力を付けたい場合である。
プログラミングスクールでは、基礎を教わることはない。(聞けば教えてくれるかもだが)
例えば、
- そもそもソフトウェアはなぜ動くのか?
- PCやスマホのOSってどんな仕組みなのか?
- 通信(ネットワーク)の種類やアルゴリズムはどうなっているのか?
- どんな開発手法やテスト技法があるのか
こういった基礎は教えてくれない。
別に知らなくても物は作れるので問題ないかもしれないが、応用的なことをしないといけなくなったときに少し困るかもしれない。
料理教室に例えると、あんかけを作るレシピがあったとする、
講師は「とろみを付けるために片栗粉を入れます」と教えてくれるだろう。
でも、”なぜ片栗粉を入れるととろみが付くか?” までは教えてはくれない。
料理教室はあくまで料理の作り方を教えてくれるところだからだ。
これが料理教室ではなく調理師を目指す専門学校に行けば、片栗粉の成分から何まで教えてくれるだろう。
授業で習うはずだ。基礎だから。基礎を知ってないと料理そのものの応用力が無くなるからだ。
プログラミングスクールも同じである。
基礎から勉強したいなら独学でやるか、就職して実践を積むか、専門学校に通った方が良い。
以上が、私が感じたプログラミングスクールが合う人・合わない人の境界線だ。
色々と私の意見を書いたが、実際にプログラミングスクールを受講したわけじゃないし、
サイトのカリキュラムを見ただけなので間違っている点があれば指摘していただけるとありがたい。
なお、エンジニアになりたての人はまず基本情報技術者試験を受けておくといい。
実務に直接的に役立つことはあまり無いが、広く基礎を学べるためおすすめだ。
たとえ合格できなくても、合格に向けて一度勉強しておくだけでも価値がある。
エンジニアの市場価値について
ここからは補足になるが、日本においてエンジニアの数は圧倒的に足りないと言われている。
プログラミングスクールもこの点を謳って会員数を増やしている。
経済産業省がデータを出しているので数が足りないのは本当の話であるが、実際のところ足りないのは「世界に通用する技術力を持ったエンジニア」である。
ちょろっとコードをかけるようなエンジニアは山ほどいるのが実情だ。
そして、挫折して辞めていく人も同じく山ほどいる。
市場において価値があるのは一般的なエンジニアではなく、優れたスキルを持つエンジニアであることを忘れてはいけない。
実際、就職・転職活動でまず聞かれるのが
- 「あなたにはどんなスキルがありますか?」
- 「何ができますか?」
- 「これまでどのような実績がありますか?」
- 「日々新しい技術を追っていますか?」
これらすべてにはっきりと答えられないと、エンジニアとして採用してくれる企業を見つけるのは容易いことではない。
IT技術が進化していく速度はものすごく早い。
日々勉強が必要であり、就職したとたん怠けて勉強しなくなる人はエンジニアには向いていない(正確には、やっていけない)ので、そこを肝に銘じておく必要がある。
※もちろん、これは私自身にとっての自戒の念でもある。