近年、企業の働き方改革や副業の推奨、フリーランスという働き方が浸透してきている状況などを背景に、手に職としてプログラミング技術を習得し、エンジニアへのキャリアチェンジを希望する人が年々増えてきました。
また、技術の進歩によりシステム開発の参入障壁や制作ハードルが下がっていることや、新しい技術に乗り遅れることが企業の運命を左右するほど常識化しつつあることなどを追い風に、Webシステム開発やモバイルアプリ、機械学習、IoT、AR/VRなどのエンジニアの需要が非常に高まり、深刻な人手不足に陥っています。
こうしたエンジニア需要を補填する形で、数年前から現在に至るまでに多くのプログラミングスクールが爆発的に誕生しました。
しかし、選択肢が増えた分だけそれらを比較検討することが難しくなり、自分に最適なプログラミングスクールをどうやって選べば良いかわからない、といった相談も同時に増えています。
この記事ではそんな悩みにフォーカスし、あなたにとって最適なプログラミングスクールの選び方を「現役エンジニア」の目線から順序立ててご紹介していきます。
- 1 プログラミングスクールの現状
- 2 プログラミングスクールを探す前に整理すべきこと
- 3 考えが整理できたらプログラミングスクールを選んでみよう
- 4 プログラミングスクール選びで重要なポイント
- 5 独学で勉強することは可能か?
- 6 失敗しないプログラミングスクールの選び方
- 7 プログラミングスクールを決めきれない方へ
- 8 スクールに通い始めた後の話
プログラミングスクールの現状

上述したようにプログラミングスクールの数は年々増加しており、コンセプトや受講料金、立地、オンラインかどうか、強みとしている言語、講師のレベル、カリキュラムのクオリティなどなど、自分とって最適なもの選ぶのは非常に難しいのが現状です。
最近では、Twitterを始めとするSNSで炎上したり問題になっている話題の一つとして、資本が大きい(簡単に言うと投資や融資を受けていてお金のある)スクールが誇大広告を大量に出稿している、という事実があります。
具体的には、
- 〇週間であなたもエンジニアになれる!
- 未経験から〇ヶ月で月収60万円のエンジニアに!
- 卒業生の就職率98%以上!
といった類の広告です。
これは現役エンジニア目線からすると「そんなわけあるかよ…」という話なのですが、全くの業界未経験者からだと知識がないのでこれを信じてしまい、結果として悲惨な目に逢って私の元に相談に来る…というケースがとても多いです。
全てが嘘だとは言いませんが、エンジニアや未経験の定義が曖昧なので、広義には正しいという名目の下で広告を出しているのでしょう。もちろん中身がしっかりしている所もありますが、大切なのはそれを事前にきちんと把握することです。
こうした誇大広告に踊らされることなく「そういうマーケティング手法もあるんだな」と認識・俯瞰した上で、プログラミングスクールに入る前にまずは自分と向き合い、目的をきちんと整理し、情報を正しく汲み取り、納得した上でスクールに入ることが重要です。
プログラミングスクールを探す前に整理すべきこと

「プログラミングスクールに入る前にまずは自分と向き合う」という話をしましたが、具体的にはどんなことから取り掛かればいいのでしょうか?
「エンジニアになりたいけど何から始めればいいか分からない」という方は、この章を参考にしながら各質問に自分なりの回答を作っていくのが効率的です。
大まかなステップとして、
- なぜプログラミングを勉強したいのか?
- どんな技術を学びたいのか?
- スクール選びで不安なことは何か?
の順番で考えを整理していきましょう。
なぜプログラミングを勉強したいのか?目的や目標を明確にしよう

どんな物事にも当てはまりますが、何か新しい物事を始めるときは目的や目標の設定が非常に重要です。
決め方に答えはありませんが、ここでは実際に現役エンジニアや駆け出しエンジニアの方々と交流した中で、特に多かったものをいくつかご紹介します。
エンジニアとして就職・転職したい
この回答が圧倒的多数でした。元々はアパレルや飲食店などで働いていたけれども、手に職をつけたいという想いから一念発起し、エンジニアとしてのキャリアに挑戦する、といった異業種からの転職が主なケースです。20代中旬〜30代前半の方が特に多い印象です。
次いで多いのはファーストキャリアとしてエンジニアを志望する大学生です。
しかし実際には、漠然と「エンジニアになりたい!」と言う人が多く、具体的にマークアップだとかサーバーサイドだとか、そういった専門性まで踏み込んだ目標がを持っている人はあまりいないように思います。
後述しますが、実はこの部分がどれだけ鮮明にイメージできているかが、プログラミングスクール選びにおいても後々のエンジニア人生においても、モチベーションや学習意欲といった点から非常に重要なポイントとなります。
未経験だとあまりイメージできないかとは思いますが、続きのコンテンツを読み進めることで自分なりに具体化していきましょう。
副業で稼ぎたい
最近では副業(複業)推奨の追い風もあり、週末や就業後の空いた時間を利用して収入を増やしたいと考えている方も多いのではないでしょうか。
特にエンジニアはパソコン一台で場所を選ばない自由な職業だという印象がありますが、実際に私自身もMacbook Proを片手に様々なところで仕事をしています。
後述するフリーランスエンジニアの話とも重複する部分がありますが、ある程度実務経験を通じて体型的な知識を身につけてから副業することをおすすめします。
特に、確定申告や契約周り、瑕疵責任など(後々バグが判明したらどうするかなど)考えるべきことがとても増えるため、エンジニアとしての業務フローはしっかりと身についていた方が安心です。
プログラミングスクールには副業・フリーランスエンジニアの講師も多数在籍しています。どのような障壁があるのかを事前にきちんと把握しておくことで、スクールに通いながら副業に関する心配事を解決していくことができます。
フリーランスエンジニアになりたい
大学生と話していて特に多いなと感じるのが、この「フリーランスエンジニアになりたい」という目標です。
某ブロガーさんや某サロン運営者さんなどの影響もあり、私の友人のエンジニアにもパソコン一つで国内を転々としながら仕事をしていたり、タイのバンコクやマレーシア、ベトナムなど物価の安いアジアで優雅に暮らしたり、ハワイやインドネシアのバリ島などで開発をしているエンジニアも実際に何人かいます。
海外にも日本人を中心とした開発グループ(コミュニティ)が存在し、そこでみんなで共同生活をしながら自由に生きているというケースが一般的です。フリーランスと言っても一人でフラフラしているわけではありません。
また、特に女性にとっては、将来の出産や子育てに備えて、フルリモートで仕事ができるように今のうちに自走できるだけの技術力を身につけておきたい、という話もよく聞きます。
最近ではフリーランスという働き方もようやく社会に受け入れられてきており、試作段階のプロジェクトに正社員のエンジニアを雇用するよりも、技術力のあるフリーランスをうまく活用しながら積極的に新ビジネスに挑戦していくスタイルにシフトしている経営者がかなり増えてきています。
最近では収入保障や代金回収不能などのトラブルに対応しているフリーランス専用の保険もたくさん出てきています。
ただ、全てに共通することとして「きちんと技術力が身についていること」が大前提になります。中途半端な状態で企業と契約を結んで大惨事になった駆け出しエンジニアさんを私は何人も見てきました。
一足飛びで未経験からフリーランスエンジニアを目指している人は、もう少し目標設定を段階的にする必要があります。
具体的には、
- 未経験
- プログラミングスクールで勉強
- 自作で何か開発したりポートフォリオを作成
- 教育体制の整っている企業に就職
- 徐々に副業を始める
- フリーランスにシフト
といったイメージです。これは堅実な例ですが、ひとつずつステップを踏むことで正しい知識や判断軸が身につきます。
エンジニアと技術的な会話ができるようになりたい
「教養として周辺知識を身につけておきたい」とも言い換えられますね。
この目的を持っている方は、
- IT領域にも手を広げたい経営者
- 部下にエンジニアを抱える管理職の方
- プロジェクトマネージャー(PM)
などが多いです。
業務内容にもよりますが、IT関連知識に乏しいマネージャーは正直生き残っていくのが厳しい時代になりつつあります。2020年度より小学校から高等学校の各学校でプログラミング教育が必修化されることも背景に、知識として避けては通れない「常識」になっているのです。
資格で言うと「基本情報技術者」や「ITパスポート」などのベーシックな国家資格勉強にプラスして、特定の領域(バックエンド領域のRuby / Ruby on Rails、インフラ領域のAWSなど)をプログラミングスクールで学び、実践としての技術の一旦を習得する、というケースです。
余談:少し話がズレますが、AWS(Amazon Web Service:ITインフラストラクチャサービスを運営する有名企業ですね)では独自の資格試験を運用していて、最近その一つとして「AWS クラウドプラクティショナー」と言う認定資格試験を新設しました。
これはAWSの中でも「初級試験」にあたるもので、AWSをベースとしたクラウド知識全般の理解度を測るためのもので、上述したマネージャーや営業の方なども対象に含まれています。民間企業レベルでもこうした取り組みは始まっています。
このように、IT業界で仕事をする上で必要な知識水準は年々上がってきており、表題のように「エンジニアと技術的な会話ができるようになりたい」という需要も高まっています。
もしざっくりと「エンジニアと会話ができるレベル」を定義しているのであれば、
- どの専門領域の勉強をしたいのか?
- どのくらいのレベルまで専門知識や技術をつけたいのか?
- 具体的にどんな業務でスムーズに会話をしたいのか?
といった点を目標の中に取り入れていくと、プログラミングスクールを選ぶ上での良い基準となります。
どんな技術を学びたいのか?

上の章で「プログラミングを学ぶ上での目標」がイメージ出来たら、次は具体出来にどの専門領域の技術や知識を学びたいのかを絞り込んでいきましょう。
「エンジニア」や「プログラミング技術」といっても、それは「スポーツ」や「ミュージシャン」のように漠然としています。「ミュージシャンになりたい!」と言っている人に対して、何の音楽教室を紹介すればいいのか全くわかりませんよね?
これと同じように、例えば、
- マークアップエンジニアとしてWebサイトのコーディング業務に携わりたい
- バックエンドエンジニアとしてWebシステムの開発に携わりたい
- AR/VRアプリを開発したい
など、目的に応じて学習すべき言語や内容が変わってきます。下で具体的な職種ごとの分類をご紹介します。詳しくは別途記事をご用意しましたのでそちらをご覧ください(執筆中)。
デザイナー(Web, アプリUI / UX, ロゴ, イラスト)
デザイナーをエンジニアとしての括りに入れるのは間違っているかとは思いますが、切っても切れない関係ですので今回はこちらに入れておきました。
デザイナーと一口に言っても、これもまた「ミュージシャン」くらいざっくりとした表現になります。実際にエンジニアとチーム開発を行う際には、それぞれの役割に応じたデザイナーとしての専門スキルが必要になります。
Webデザイナー
主にHP(ホームページ)やLP(ランディングページ)などのWebサイトの画面設計やデザインを行います。
Adobe PhotoshopやIllustrator、XDなどのツールを用いてWebデザインを制作し、色や幅などの指示書き(レギュレーション)と共にマークアップエンジニアやフロントエンドエンジニアに引き継ぎます。
アプリ(UI / UX)デザイナー
UI(User Interface:ユーザーインターフェイス)とは、人が機械を操作する際のものと定義されているように、ここではアプリの画面設計からボタンやフォントなどのデザインを行います。
一方、UX(User Experience:ユーザーエクスペリエンス)デザイナーは、UIに加えて、ユーザーの体験にフォーカスします。もっと快適に利用してもらうには?長く使い続けてもらうためには?遊び心はあるか?といったように、ユーザー体験を最大化することを使命としています。
ロゴデザイナー・イラストレーター
こちらは想像通りかと思いますが、Webサイトやサービスを開発する上では欠かすことのできない存在です。文字通り、サイトロゴやイラストの制作を担当します。やまた、より効果的な広告を作成する上でも心強い存在となります。
それぞれ得意分野がありますが、基本的にはAdobe PhotoshopやIllustratorを利用してデザインを行います。
マークアップエンジニア・コーダー
マークアップエンジニアやコーダーと呼ばれる人は、主にHTMLとCSSを利用してデザインを形に仕上げる職種になります。
最近では多少のアニメーションやモーションも一般化してきているので、ある程度Javascriptの知識も求められます。
マークアップエンジニアにはHTML5構造の理解を深め、W3Cに準拠した適切なサイト設計(例:figureタグ、asideタグ、navタグを活用するなど)の知識が必要になります。
主にHPやLPなどの静的サイトのコーディング業務が主な仕事になります。
フロントエンドエンジニア
フロントエンドエンジニアとマークアップエンジニアの違いがよく分からない方も多いと思いますのでここで簡単に説明します。
組織やチームによって解釈が分かれるかもしれませんが、一般的にフロントエンドエンジニアはマークアップエンジニアの技術に加えて、Javascriptの専門技術(ReactやVue、一部Node.jsなど)を駆使して、バックエンドエンジニアとコミュニケーションを取りながらシステム開発を行う職種になります。
最近ではNode.jsのようにフロントエンド・バックエンドの垣根を超えるような技術が主流になりつつあり、境界線が曖昧になってきています。
フロントエンドエンジニアの守備範囲はあくまでもフロントですが、バックエンドの知識も同時に必要となります。
バックエンドエンジニア
バックエンドエンジニアは、主にサーバーサイドで動作する言語を扱う専門家です。広義にはサーバーエンジニアの素養も含んでいます。
一般的にエンジニア同士の会話でイメージされるのは、コンパイラ言語としては「Java・C・C++」などで、インタプリタ言語では「PHP・Ruby・Python・Go・Node.js」などがあり、いずれもサーバーサイドで動く言語でシステム開発を行うエンジニアを指すことが多いです。
当然、データベース設計や簡単なサーバー構築などの技術も必要になります。
単純な静的ページを作るのであればマークアップエンジニアの技術で事足りますが、Webサービスやアプリなどの動的なシステムを開発する際には必須になります。
インフラ・ネットワーク・クラウドエンジニア
こちらもひとまとめにするのは難しいですが、一般的にはシステムを動かすサーバーの設定と、それを稼働させるためのネットワークおよびセキュリティ設計などを担当します。
データやシステムを社内で管理するオンプレミスや、ネットワークを介した遠隔地でデータを管理するクラウドまで、その守備範囲は多岐に渡ります(細かく専門性も分かれます)。
最近ではコストや俊敏性、運用の手軽さなどの観点からクラウドが主流で、GCP(Google Cloud Platform)、AWS(Amazon Web Service)、Azure(Microsoft Azure)などのクラウドコンピューティングサービスが台頭しています。
スマートフォンアプリエンジニア(iOS, Android)
iOSやAndroidエンジニアは専用のネイティブアプリ開発が主な仕事になります。
スマホアプリの需要は最初のスマホ発売から10年以上経っても未だに衰えることはなく、公開されているアプリ数は4年前と比較しても1.7倍ほどに増加しています。
一般的なブラウザで動くWebサービスと同じような印象を受けますが、デザインやUI/UX設計の部分から考えるべきことが異なっており、開発に使用する言語もWebサービスとは違います。
また、iOSとAndroidの両方を開発できるエンジニアも実は少数派で、ここでもSwiftとJavaといったように学ぶべき言語が異なります。
最近ではDartという言語で両方のアプリを作ることができるFlutterというフレームワークが注目を集めています。
スマホアプリのエンジニアになるためには、スマホに特化した専門知識に加え、バックエンドからインフラまでの総合的な知識が必要になります。
VR・ARアプリエンジニア
基本的にはVR・ARデバイスで動作するシステム開発を担います。
まずVRとARの定義について簡単に確認しておきましょう。
VRは「Virtual Reality」の略で、日本語では「仮想現実」と呼ばれています。
これは体験した方もいるかと思いますが、専用ゴーグルを装着して、別の仮想空間にあたかも自分が実在するかのような体験を味わうことができます。
具体的なデバイスとしては、「Play Station VR」や「Oculusシリーズ」などが挙げられます。
一方、ARは「Augmented Reality」の略で、日本語では「拡張現実」と呼ばれています。
代表的な作品としてポケモンGoが挙げられますが、現実世界にCGなどの情報を重ね合わせることで、目の前の空間にデジタル情報を融合させます。VRと違う点は、ARは現実世界が主体という点です。
具体的なデバイスとしては、「Microsoft HoloLens」や「Google Glass」などが挙げられます。
VRの開発には「Unity(C#)」か「Unreal Engine(C++)」のスキルが必要です。
一方、ARについてはスマホアプリとして開発することが多いため、各サービスが提供している開発キット(iOS: ARkit)や(Android: ARCore)を活用します。
いずれにせよ、ARの場合はスマホアプリの知識が必要となります。
どちらもこれからの時代を牽引していくであろう新しい領域で、5Gが登場したことでより爆発的な普及が見込まれている領域です。
機械学習エンジニア
顔認証や自動運転システムを代表例として、すでに私たちの生活の一部を支えてくれている新しい技術で、これからも確実に伸び続ける領域になります。恋愛マッチングサービスなどもAIを活用して成功している事業として有名ですね。
機械学習と聞いて真っ先に思いつく言語は「Python」かと思いますが、実際には演算パフォーマンスに優れた「Julia」や統計解析を得意とする「R」なども目的に応じて使い分けられています。
また、職業としてはAIエンジニアやデータサイエンティストなどがあり、ディープラーニング技術を用いて業務効率を改善したり、ビッグデータ解析により特徴分析を行うなど、突き詰めるとそれぞれの専門性が見えてきます。
IoTなどと連携することで日常を豊かにするシステムを開発したり、医療分野において病変部位の早期発見や分子標的薬のスクリーニング解析に用いられるなど、あらゆる分野との掛け算で世界を変えることのできる魅力があります。
フルスタックエンジニア
フルスタックエンジニアという職種は実際には存在せず、幅広い領域の業務を一人で完結できる技術を持っているゼネラリスト(マルチな技術を持った)エンジニアのことをこう呼びます。
良く言えば「マルチな知識を持った技術者」、悪く言えば「何でも屋さん」です。
フルスタックエンジニアは、特に創業初期のベンチャーや、WebやITリテラシーが低い企業で「この人が一人いれば安心」という技術責任者的な立場などで特に活躍できる場面あります。少数精鋭で自分の裁量を存分に発揮でいることが魅力です。
一方で、大規模なシステムや大人数での作業、役割分担が既に明確な組織などにおいては、フルスタックではなくスペシャリストが求められるため、そうした場所での際立った活躍を望む場合は、何かの技術に特化して理解を深める必要があります。
エンジニアリング・プログラミングの基礎学習
特別な技術を身に付けたいというよりも、IT業界の動向を理解したりエンジニアとのコミュニケーションを円滑にしたいといった展望もあるかと思います。
これについては「エンジニアリング・プログラミングの基礎知識を養う」の章で詳しく解説しますが、徐々にこうした知識を持っていることが当たり前の時代になりつつあります。
そのための最良の一手がプログラミングスクールなのかというと、実は一概にそうだとは言い切れません。いくつかの選択肢から検討して、ご自身がどのレベルまで掘り下げて理解したいのかによって変わってきますので、ぜひ記事後半をご一読ください。
スクール選びで不安なことは何か?

プログラミングスクールを探していると、
- 受講料金に見合った技術が本当に得られるのか?
- 卒業後にエンジニアとして就職できるのか?
といった心配事が頭をよぎるかと思います。こうした不安はスクール入学前にきちんと解消し、整理しておくべき大切なポイントです。
ここでは、プログラミングスクール選びの際によくある不安ごとをまとめてありますので、ぜひ判断軸として参考にしてください。
入学金・受講料の高さ
受講料はプログラミングスクールによって大きく異なり、下は無料から、上は卒業までに100万円以上かかる場合もあります。大手スクールの料金体系を見ていくと、1ヶ月あたり平均12万円くらいを目安にすると良いかと思います。
同じ料金帯でもそれぞれのスクールで強みとしていることは異なります。平均的な受講料についてある程度納得感のある方であれば、スクールの特徴や学びたい言語など、別の軸で絞り込んでいきましょう。
また、そうした中で目を引くのは「受講料無料」を掲げているスクール。なぜプログラミングスクールを無料で運営できるのでしょうか?
それを可能にする最大の理由は、「受講生に卒業後の就職先を斡旋することで、企業から給与の数ヶ月分を人材紹介料として受け取る」という紹介ビジネスの仕組みが背景にあるからです。
つまり受講料を実質無料にしても、経費があまりかからない小さなスクールなどでは十分に運営が可能になります。
ただし、こうした無料スクールにはいくつか注意点があります。例えば、
- 入学時に就職・転職の意思表明が必要
- 就職・転職先が限られてしまう
- 好みのプログラミング言語を選べない
などが挙げられます。
これらの条件を事前によく確認し、それでも問題がないのであれば(あるいは金銭的にどうしても初期費用を払えないのであれば)、無料のプログラミングスクールも選択肢としてはありだと思います。
最近では、学生同士が主体的に学びあうピアラーニング方式を採用した42 Tokyo(東京/六本木/運営:DMM.com)や、日本で初めてISAsを採用したQUELCODE(東京/恵比寿/運営:LABOT)など、受講中に料金が発生しない新しいタイプの無料スクールも誕生しており、金額面で心配がある方はチェックしておくことをおすすめします。
42 Tokyo:学歴や職業に関わらず、挑戦したい人には質の高い教育を提供すべきだと考えています。 そのため私たちは、「学費完全無料」「24時間利用可能な施設」「問題解決型学習」等の、誰もが挑戦できる環境を用意しました。
出典:42 Tokyo
ISAsは、米国で生まれたスクールと学生の新しい契約モデルで、受講開始から卒業までの期間は受講費用が発生しない代わりに、一定の条件をみたした場合に卒業後の収入から一定割合をスクールに支払うという内容の所得分配契約です。
出典:LABOT
カリキュラムについていけるか心配
プログラミングスクールには、元々パソコン作業が得意な方もいれば、タイピングすらおぼつかない方まで、様々なバックグラウンドを持った初学者が集まっています。
全くのプログラミング未経験者の方やパソコン作業があまり得意ではない方にとっては、きちんとカリキュラムについていけるのか心配になりますよね。
その場合、
- 基礎的な勉強をできる限り事前に行なっておく
- サポート体制についてスクールごとに確認する
という2点を必ず実施しておきましょう。
まずカリキュラムの内容についてですが、基本的にスクールは完全未経験者を対象としていることがほとんどです。カリキュラム自体の難易度はそこまで高くはありませんので、内容について過度に心配することはありません。
スクールによっては、カリキュラムがより実践的なものであったり、初学者には難しいハイレベルなものを用意しているスクールも存在します。そうしたところでは、入学前に試験を実施しており、基本的な操作ができない人は事前に足切りになる(足切りしてくれる)場合もあるので、事前に確認してみると良いでしょう。
いずれにせよ、エンジニアの世界で求められるのは「自ら学び続ける姿勢」です。入学前にプロゲートで一通り勉強しておいたり、何かしら初心者向けの参考書を一読しておくなど、入学してからの時間を無駄にしないよう事前準備をしておくことは必須です。
スクールによっては「入学前にこれだけはやっておいてください」という事前課題(読書など)がある場合もあります。こうした記載がない場合、スクール直接聞いてみるのもありだと思います。
もし曖昧な返答しか貰えなかった場合、「初心者の声にはあまり耳を貸してくれないスクールなんだな…」という良い判断材料になるでしょう。
次にサポート体制の話ですが、スクールによっては、
- 講師がエンジニアではないアルバイトの人なのでマニュアル的な回答しか貰えない
- サーバー設定など複雑な(あるいは個別の)疑問質問には答えられない
- オンライン(Slackなど)でメンターに質問しても回答に3日以上かかる
といった課題を抱えているケースもあり、私も駆け出しエンジニアの方々から何度もこうした相談をされたことがあります。個人的にはこれは非常に問題だと思っています。
カリキュラムに沿って学習するために、講師やメンターの技術的なサポートは必須です。上記の問題などは、
- 講師は現役エンジニアか?
- カリキュラム外の相談や質問も積極的に聞いていいか?
- オンラインの場合はすぐに回答を貰えるのか?
などの質問に変換できるかと思います。ホームページに記載がない部分もありますので、これらについても事前に問い合わせなどで確認しておくことが大切です(お問い合わせへの対応速度も運営体制の良し悪しを判断する材料になりますね)。
オンラインか?オフラインか?
プログラミングスクールを選ぶ上で、オンラインとオフラインのどちらに主軸があるのかを把握しておくのは重要なポイントです。
ここでは、それぞれの通い方の特徴と、メリット・デメリットを確認しておきましょう。
オンライン型(ネット型)スクール
オンライン型のスクールとは、カリキュラムの進捗共有や技術的な質問、ミーティング、勉強会など、基本的にすべてのやりとりがSlackやChatwork、Zoomなどのオンラインコミュニケーションツールで完結します。
実際にリアルの場で講師やメンバーと会うのはオフ会や打ち上げ、会社のイベントなどが中心になります。
メリットとしては、時間や場所を選ばず自分のペースで学習できたり、移動にかかる時間やコストが削減できる、という点が挙げられます。近くにスクールがない場合や、仕事や子育てなどで学習時間や移動が制限されている方にとっては心強い存在です。
一方デメリットとしては、コミュニケーションにタイムラグがあるためオフライン型と比べて学習効率が下がったり、一人でモチベーションを保つのが難しい、などが挙げられます。
主要都市にアクセスが難しい場合はオンライン型のスクールという選択肢しかありませんが、現在スクール業界としてもオンラインに力を入れて展開しようという動きも出てきています。
オフライン型(通学型)スクール
基本的には上で説明したオンライン型の逆になるのですが、オフライン型のスクールでは「オンライン要素も兼ね備えている」という特徴があります。
都内などには数多くのプログラミングスクールが教室を構えており、実際にそこで講師やメンター、同期の受講生などとコミュニケーションをとったり、勉強帰りに食事に行くなど、いわゆる学習塾と同じように近い距離で学習を進めていくことができます。
これらに加え、Slackなどのコミュニケーションツールを活用しながらオンライン上で講師に質問できるなど、ハイブリット型である場合がほとんどで、オフライン限定により生じるデメリットを上手く中和しています。
ただし、あくまでも主軸はオフラインです。オンライン特化型スクールほどオンラインでのコミュニケーションに力を入れられていないケースもあるので、これについても事前に確認しておくと安心です。
また、主要都市に学習用の教室を構えるということは、それだけ運営にもコストもかかります。よって、オンライン型と比べると受講料が高めに設定されていることが多いです。
卒業後に未経験エンジニアとして就職できるか?
「なぜプログラミングを勉強したいのか?目的や目標を明確にしよう」の章でも解説しましたが、プログラミングスクールに通う目的を「エンジニアとしての就職・転職」に置いている方がほとんどかと思います。ここではこのケースについて解説します。
結論から申し上げると、スクールを選ぶ段階でスクール卒業後の進路が既に心配なのであれば、
- 実績のあるスクールだけに絞り込む
- 企業選びの際に高望みをしすぎない
- 余裕があればやっておくべきことを把握する
この3点を事前に押さえておくことが大切です。以下で順番に解説していきます。
実績のあるスクールだけに絞り込む
まず、満足いく就職ができるかどうかは、主にスクールの知名度と、実務未経験者であるあなたのスキル(伸びしろ)をきちんと証明できるかどうかに大きく依存します。もちろんタイミングなどもあるでしょう。
また、スクールのお世話にならず、自分で転職活動をするというのももちろん可能です(無料スクールの場合は契約を要確認)。
優秀な実務未経験エンジニアを多く排出しているスクールはそれだけ業界でも信頼がある一方で、実績のないスクールから実績のないエンジニアを推薦して採用してくれる企業はやはり少ない傾向にあるのも現実です。
スクールごとの実績や卒業後の進路については各ホームページに掲載されている場合もあるのである程度の参考にはなります。不安であれば直接聞いてみるといいかもしれません。もしくは、卒業生にTwitterなどで直接コンタクトをとってみるのも一つの手です。
スクールの就職支援に期待しすぎない
Webエンジニアになるために就職活動をする際に、企業のビジネスモデルを、
- 自社サービス開発
- 受託開発
- SES/派遣
などの大きなくくりに分けて語ることがあります(厳密な違いはここでは割愛します)。
この中で人気なのは依然として「自社サービス開発」で、多くのスクール卒業生は「自分たちのプロダクトを育てつつ勉強したい」という想いに動かされる傾向があります。
この傾向は実務経験者にとっても同様のため、必然的に自社サービスを開発する企業は狭き門となり、極端な話、「わざわざ未経験者を採用しなくても優秀な実務経験者からの応募があるので結構です。」となるわけです。
つまり、こうした応募が殺到するような企業に対しては、スクールは十分な就職支援を施せない可能性も十分にあります。
もしあなたが未経験から有名な自社サービス開発企業に就職したいと強く望むのであれば、スクールに通いながら自分で何かプロダクトを開発してスキルを証明することは不可欠です。
また、受託開発やSESを行う会社にも素晴らしい会社は無数に存在しています。複数の案件で様々なケースに対応できるような幅広い技術に触れることができるため、エンジニアとしての基礎をきちんと固めたい方にとっては良い経験となるはずです。
スクール在籍時に取り組むべきことを把握する
それでもなお卒業後の進路が心配な方はぜひこちらの就職転職記事をご覧ください。(執筆中)
こちらは選び方のポイントではなく、就職・転職活動時に有利になるためにスクール在籍時に取り組んでおくと良いことをまとめてあります。
- 並行して自分のプロダクトを開発する
- 学んだことを積極的にアウトプットする
- イベントには積極的に参加して交流する
考えが整理できたらプログラミングスクールを選んでみよう

ここまでの内容を通じて、プログラミングスクールを選ぶ前にイメージしておくべきことや、エンジニア業界が少しはクリアになったのではないでしょうか?
- なぜプログラミングを勉強したいのか?
- どんな技術を学びたいのか?
- スクール選びで不安なことは何か?
といったシンプルな質問を投げかけてきました。これらに自分なりの答えを持っていれば、プログラミングスクールを選ぶ際に迷うことは少なくなるはずです。
ここから先は、自分がどんな目標を持っているかがクリアになった状態で、プログラミングスクールを選ぶ際に重要なポイントについて解説していきます。
プログラミングスクール選びで重要なポイント

私は初学者向けのエンジニアコミュニティを運営していましたが、そこに集まっていた各スクール受講生の方々から、プログラミングスクールを選ぶ際にどんなことに注意して探していたのかを実際にヒアリングしてきました。
ここではその回答結果を中心に、いくつかの項目に分けてご紹介します。
スクール経営者の目指す世界観

こちらの意見は少数派ではありましたが、初学者の方は見落としがちで、かつ私自身も非常に重要だと感じているポイントですので最初に書かせていただきました。
プログラミングスクール経営者の目指す世界観、というのは、要するにスクールでの教育活動を通じて、
- 社会のどんな課題を解決しようとしているのか?
- 社会にどんな影響を与えたいと思っているのか?
といった、いわゆる「存在意義」をどの程度まで理解し、考え、事業を通じて叶えようとしているのかという部分です。
これがなぜ重要なポイントなのか?
まずスクール内の話で言うと、経営者の強い想いというのは現場まで届くという点です。つまり、そうした想いはカリキュラムの内容やサポート体制、講師の採用基準、コミュニティとしての雰囲気などに露骨に表れてきますし、最終的にはスクールの実績や卒業後の進路にも結果として表れてきます。
そしてスクール外の話で言うと、エンジニア業界や特にスタートアップ界隈は非常に狭い世界という点です。
そうした想いを持った経営者は横とのつながりも大切にするため、結果的に「あの〇〇さんが経営するプログラミングスクールの卒業生であれば安心だよね。」といった共通認識がスタートアップ経営者の間のネットワークでも共有されていきます。
プログラミングスクールの生みの親がどのような人物で、どのような想いで経営を行なっているかは、スクールのホームページやTwitterアカウントなどを見れば読み取れるはずです。
ここは見落としがちですが、プログラミングスクール選びでかなり重要なポイントになるので、ぜひここは事前にチェックしておくとよいでしょう。
カリキュラムの内容

初学者がプログラミングスクールに通う場合には、「汎用性が高く実践的な基礎技術」を身につけられるカリキュラムになっているかどうかを見極めることが非常に重要です。
ここではバックエンドエンジニアとしてのコースを例にご紹介します。
バックエンド技術としてPHPやRuby、Pythonなど様々ありますが、どの言語を勉強する場合でも、Webサービスというものは基本的に「共通する設計思想(アーキテクチャ)」があります。
何を作りたいかがベースにあり、どんな構成や設計にするかの大枠を決定し、じゃあこの言語で書くのがベターだよね、という流れが一般的です。
例えば、どの言語を選んだとしても「データを取得する、登録する、変更する、削除する」といった機能は同じであり、あらゆるサービスに無くてはならない必須機能になります。データベースの設計なども同じですね。
もう少し踏み込むと、例えばエラーが起きた時にどのようにハンドリングするかや、APIについてなど、システム設計という汎用的な仕組みを日本語で語れるようになることが、エンジニアとしての技術を習得する上では最も近道です。「どの言語を学ぶか?」はあくまでも手段でしかないのです。
また、マークアップエンジニアになりたい、という人に対してサーバーの設定などを細かく指導するようなミスマッチなカリキュラムは避けるべきですし、プロントからサーバーまで全部学べます、といった込み込みカリキュラムは、中級者には丁度いいですが、完全な初学者にはおすすめしません(情報過多でパンクします)。
スクールによっては個別で講義をカスタマイズしてくれたり、授業を選択式で取れるようなケースもありますが、これはある程度現場に出ていたりプログラミングに慣れてきた頃に「知識の穴埋め」を目的に通う場合に向いていますが、最初に通うのは少々ハードルが高いように思います。
このように、自分がなぜプログラミングを勉強したいのかを軸として、将来的にきちんと意味のあるカリキュラムになっているかを事前に確認しておくことが大切です。
しかし初学者にとってそれはとても難しいのも事実ですので、「良さそうだな」と思うスクールをいくつかピックアップした上で、可能であれば実際に体験を受けてみてください。
実践的なカリキュラムになっているかどうかは体験や相談をすればきっとわかります。こちらも他の要素同様にスクールを選ぶ重要なポイントの一つになります。
講師のレベルや採用方法

先ほどの「スクール経営者の目指す世界観」に影響される部分ですが、プログラミングスクールによって講師の質はバラバラです。
まず重要なのは「エンジニアとしてのスキルが高いこと=教えるのが上手い」とは限らない、ということです。
実務経験が長くスキルが高いエンジニアは「自分が初学者だった頃に苦労したこと」を忘れてしまっていることがほとんどです。初心者が「なぜ分からないのかが分からない」ので、同じ目線まで降りて適切な指導をすることができないのです。
この問題は誰が悪いという話ではなく、レベル差がありすぎることが良くない(吸収もしきれない)ということです。
完全な初心者にとっては、エンジニア経験が5〜6年くらいの若手エンジニアの方が、意外と皆さんの気持ちを理解して親身に指導に当たってくれるケースが多く実際に人気も高いです。
比較的若く、勉強熱心な現役エンジニアを講師として採用しているスクールは頼り甲斐がありそうです。
実は一部のプログラミングスクールでは「プログラミング未経験の人が講師をやっている」ところもあります。
どういうこと?と思うかもしれませんが、アルバイトとして「マニュアルに沿ってプログラミングを教えるだけの人」であって、実務経験はおろか、カリキュラム以外のことで質問をしても答えられない始末です。
こうした プログラミングスクールは間違いなくハズレです。絶対に行ってはいけません。
どうやってこれを事前に判断すれば良いのかというと、確実なのはスクールに確認することですが、各ホームページやよくあるアルバイト募集掲載サイトなどでスクール講師の求人情報を確認するだけでも十分に判断できます。
実際に見てみると、
- 実務経験1年以上(=短すぎる)
- 学生可・時給1000円〜(=安すぎる)
- 教育に熱心な方(=専門性がない)
といった衝撃的な採用基準を設けている場合があります。こうした地雷を踏まないためにも、講師のレベルや採用方法についてリサーチすることが大切です。
コミュニティとしての成熟度

プログラミングスクール事業がきちんとビジネスとして仕組み化されていることと、コミュニティとしてスクール内でのイベントや、生徒同士または講師とのコミュニケーションが円滑かどうかは、別軸で判断する必要があります。
コミュニティとしての成熟度というのは、具体的には、
- Slackが活発に動いているか?
- 堅苦しい雰囲気を感じないか?
- 些細なことでも発言しやすい雰囲気か?
- 自発的な意見や提案などが飛び交っているか?
- 他の生徒や講師と勉強以外の面でも仲良くできる環境か?
などが挙げられます。
スクールによっては、昼食は生徒みんなで食べに行くとか、講義後に自発的に時間を作ってみんなで課題を討論したりなど、エンジニアチームとしての感覚を根付かせようと努力して企画や運営をしているところもあります。
これについては、卒業生のレビューを複数見て判断したり、実際に体験として参加してみることが最も近道です。
また、スクールではTwitterなどのSNSを積極的に活用している場合が多いので、そこである程度雰囲気を掴むこともできます。
上記の項目のように、コミュニティとしてアクティブに活動を行なっているかどうかも、プログラミングスクールを選ぶ上での重要なポイントです。
スクールの実績や卒業後の進路

プログラミングスクールに通う目的を「エンジニアとして就職・転職するため」に置いている人にとっては、実績や卒業後の進路については気になるところかと思います。
「卒業後に未経験エンジニアとして就職できるか?」の章でも詳しく書きましたが、実際に卒業間近になってくると「どんなところに就職したいか」を考え出します。
その時に「ここに行きたい!」という候補がいくつか出てくると思いますが、それがたまたま通っていたスクールが紹介してくれる、というケースは非常に稀です。ほとんどゼロに近いです。
スクールがホームページなどで掲げている実績というのは、あくまでも卒業生が頑張って就職活動・転職活動をした結果であって、スクールの紹介先企業とは限りません。
また、完全に未経験の人だけがスクールに行くわけではないので、実績というのも実際には経験者込みだったりしますので、期待しすぎるのは禁物です。
とはいえ、実際にそのスクールで学んだ経験もある程度加味されて就職できたというのも事実ですので、「え、そんな企業に行けるの!?」という実績はあくまでも参考程度としておきつつも、そうした可能性も努力次第で掴みとれるということや、実際に輩出した未経験エンジニアの人数などは参考にするといいかと思います。
独学で勉強することは可能か?

ここまで読んでくださった方の中で「やっぱり独学でいいや」という方はほとんどいないかと思いますが、実際のところどうなのかも説明しておきます。
私自身、最初は独学でした。小さなホームページを手作りしてみたり、WordPressを開発したり、サーバーを立ててみるなど、実際に目標を決めて手を動かしながら独学で勉強していました。
そんな私から先に結論を申し上げると、独学でも可能ですがおすすめはしません。
独学で大変なことは山ほどありあますが、特にしんどいと感じたこととして、
- 基準となる正しい実践的なプログラミング知識を学べない
- 知識が偏っている(間違っている)ことに気づけない
- くだらないエラーで何日も時間を無駄にしてしまう
- モチベーションを一定に保つための自己管理が難しい
- エンジニア業界の常識やお作法を知ることができない
などが挙げられます。
独学の最大のデメリットは「いつまで経っても自分に自信が持てない」という点です。なぜなら、自分が必死に学んで実装した機能でも、理論上は合っていたとしても、現役のエンジニアに「それでOKだよ!」と言ってもらった経験がないからです。
逆に言うと、小さなことでもコードレビューしてもらいながら「自分のやっていることは正しい」と認めてくれる人は大変貴重な存在で、その小さな確信を積み重ねていくことが大きな自身に繋がります。
ですので、独学は独学のメリットがありますが、デメリットの方が遥かに大きいのが現実です。
私が初心者の頃は、プログラミングスクールという選択肢はまだほとんどありませんでした。
もし皆さんが「エンジニアになりたい」という目的がしっかりしているのであれば、まずはスクールに通って基礎を固めるという正しい判断をしてもらいたいと願うばかりです。
失敗しないプログラミングスクールの選び方

前の章で解説した「プログラミングスクール選びで重要なポイント」を基準にすることで、スクールの絞り込み方のイメージがついたかと思います。
これらの前提知識を元に、
- やりたい職種で選ぶ
- 受講料の費用対効果(コスパ)で選ぶ
- 受講スタイルで選ぶ
の3つの観点から自分に合ったプログラミングスクールの選び方をご紹介します。
やりたい職種で選ぶ

はじめに、あなた自身が最も興味のある職種に就くためにはどのようなスキルが求められるのかを確認指定おきましょう。
Webデザイナーを目指す
いわゆるホームページ制作やUI/UXデザイナーについてお話しします。
まず共通する必須スキルとして、Adobe Photoshop、Illustrator、Xdなどが挙げられます。特に重要なのはPhotoshopで、Webデザインや簡単なバナー制作まで一通り制作でき、他のツールと比べても使用頻度が高い傾向があります。
制作会社によってはIllustratorでWebデザインを行うケースもありますが、マークアップエンジニア目線で言うと、特殊なLPなどを除けばPhotoshopで納品してもらった方が楽なケースが多いです。
そんなIllustratorの得意分野としては、関連するところだとロゴ制作やイラスト作成など、細かい作品の作り込みを行うケースに利用されます。
また、簡単なWebデザインであればXdでも作成可能ですが、基本的にはWebディレクターがクライアントの要件を形にするための、いわゆるワイヤー制作に用いられることが多く、それを元にWebデザイナーがPhotoshopで清書する流れが一般的です。
Xdはお絵かきツールを最大に拡張したような使い勝手で、レイヤーやパスなどの概念もなく覚えることも比較的少ないのです。スキルという点での汎用性は他のツールには劣ります。
つまり、実際の現場で求められる最低限の技術的なスキルとしては、Adobe Photoshop、Illustratorをきちんと使いこなすことができ、やろうと思えばXdでもできますよ、というレベル感になります。
こうしたポイントを理解した上でスクールを選ぶとするならば、まずは最新版のPhotoshopでWebデザインの基礎をしっかりと学ぶことができ、実際に作品を作って評価してもらえるようなスクールを選ぶべきでしょう。
優先順位はあくまでもIllustoratorよりもPhotoshopの方が上で、Photoshopがある程度理解できた後に、Webデザインに味を出すためにIllustratorを活用したロゴ画像やイラスト制作を学ぶのが良いでしょう。
一方で、最初からAdobe Xdに特化したようなスクールを受講する必要はありません。
フロントエンド系のWebエンジニアを目指す
前半でマークアップエンジニアとフロントエンドエンジニアの違いをご紹介しました。少し語弊があるかもしれませんが、フロントエンドエンジニアはマークアップエンジニアの延長線上(技術の幅の拡張上)にいる存在するという前提で解説をします。
まずマークアップエンジニアになるための必須スキルは何と言ってもHTML(HTML5)とCSS(CSS3)の理解になります。HTMLについては、何でもかんでもdivタグやpタグで書くのではなく、きちんとW3Cに準拠してコーディング規約に則った書き方を学ぶ必要があります。
CSSはHTMLにスタイルを当てるための言語で、これらは必ずセットで勉強します。CSSはあらゆる言語の中でも極めてルールが少ないので初心者にでも簡単に直感的に書けてしまいます。しかし自由度が非常に高い分、一定の記述ルールを決めて守り通さないと、誰も修正ができないカオスなコードになりかねない、奥深い言語です。
CSSではBEMやFLOCSSなどの記法に則って書く場合が多く、SassやSCSSなど、CSSを便利で簡単に書ける(管理できる)モジュールなども存在し、現在ではこれらを活用することが一般的になっています。
加えて、マークアップエンジニアにはJavascriptの知識も必要になります。NodeJSなどの難しい言語は必要ありませんが、簡単な素のJavascript(バニラJSと呼びます)とjQueryを用いた簡単なDOM操作ができる必要があります。
プログラミングスクールを選ぶ際には、Javascriptの専門コースを受講するよりも先に、まずはHTMLとCSSでサイトの基礎をしっかりと学べるコースを選ぶことが重要です。また、カリキュラム内でJavascriptやjQueryを扱うかどうかもきちんと確認しておく必要があります。
プログラミングスクールの中には「フロントエンドエンジニアコース」を開設していても、実際にはマークアップエンジニアとしての基礎コースである場合が多いので、選ぶ際には注意が必要です。
バックエンド系のWebエンジニアを目指す
バックエンドエンジニアの場合、「PHP・Ruby・Python・Go・Node.js・Java・C・C++」などの幅広い言語選択が可能で、それぞれの言語に特徴があります。そのため、初心者が最初に選ぶ際に非常に混乱しがちです。
WebエンジニアとしてWebサービスの開発を行いたいのであれば、現状としてはPHPかRubyをおすすめします。理由としては、まずこれらの言語を採用している企業が圧倒的に多いからで、これらの言語ができれば仕事探しに苦労することはまずありません。
特に最近では各言語をフルスクラッチで開発することは少なく、何かしらの主要なフレームワーク(PHPであればLaravelやCakePHP、RubyであればRuby on Raildなど)を活用する場合がほとんどです。
また、PythonやGo、Node.jsなどの言語も徐々に需要が高まってきていますが、PHPやRubyと比べると参考文献や情報がまだまだ少なく教育体制もあまり整っていません。
一方で、JavaやC系の言語については、大規模な金融システムや業務アプリケーションシステムなどの開発に活用されたり、Webアプリやゲーミングプログラム、機械の組み込みなどを得意領域とする言語です。Webブラウザで利用するタイプのWebサービスにはあまり利用されていません。
もしこれらの言語をどうしても学びたいのであればぜひ学ぶことをおすすめしますが、漠然とWeb系のバックエンドエンジニアになりたいという思いがある場合には、迷わずPHPかRubyを選ぶべきでしょう。
PHP(LaravelやCakePHP)はレガシーなシステムから最新のシステムまで幅広く利用されている一方で、Ruby(Ruby on Rails)はスタートアップやベンチャー界隈で利用されることが多いです。
基本的にどの言語も、あくまでも「言語」でしかありません。背景にあるWeb技術の理論や設計は似ていることが多いので、どれか一つでも言語が書ければ、他の言語を学ぶのも容易です。
加えて、バックエンドエンジニアには「言語を扱えるかどうか」以上に「Web技術の仕組みを理解する」ことが重要になります。逆に言えば、Web技術や設計を学び、日本語できちんと説明できるようになれば、あとは「書くだけ」ということです。
プログラミングスクールを選ぶ際には、ただ言語を暗記して叩き込むだけのカリキュラムではなく、きちんとWeb技術の本質を学ぶことができる環境かどうか(質問できる講師のスキルが高いかなど)を基準に選ぶことが大切です。
インフラ・ネットワークエンジニアを目指す
インフラエンジニア・ネットワークエンジニアを目指すためには、まず幅広いネットワーク技術の知識が必要になります。
そのためには、まずは「基本情報技術者」や「ITパスポート」などの国家資格勉強を通じて一度体型的に学ぶことが堅実です。
もう少し踏み込んだ資格だと、「シスコ技術者認定(CCENT・CCNA・CCNPなど)」や「ネットワークスペシャリスト試験」などが存在します。
Webサービス系に限らず、最近では、オフィスに専用サーバーを設置するオンプレミスから、共有で使える各種レンタルサーバー、GCP(Google Cloud Platform)、AWS(Amazon Web Service)、Azure(Microsoft Azure)などのクラウドサービスなどの需要が急速に高まっており、それが当たり前の時代になりつつあります。
こうしたクラウドサービスを活用する際にも、IPアドレスの概念からネットワークセキュリティまでの幅広い知識を総動員する必要があるため、いきなりAWSなどのサービスを利用しながら勉強しようとしても痛い目を見ます。
また、インフラ・ネットワークエンジニアにはLinuxやWindowsサーバーの 構築・設定などもできる必要があります。
実際にこれらを学ぶことのできるプログラミングスクールはあまり多くなく、バックエンドエンジニアのカリキュラムの一部として組み込まれていることが一般的です。
バックエンドの知識も合わせて学ぶことでWeb技術全体を俯瞰して学ぶことができるので、もしそれを望むのであれば、まずはバックエンドエンジニアのプログラミングスクールの中でもインフラ周りをきちんと学べるスクールを選びましょう。
そしてスクールに通いながらネットワーク周りを自主的に(講師を活用しながら)強化し、インフラに力を入れている企業への就職・転職してから本格的に学ぶのも正しい選択だと思います。
一方、すぐにでもインフラ・ネットワークエンジニアになりたい場合は、上述した資格勉強のサポートを行なっているスクールなどを選び、体型的な知識と資格を得た上で就職・転職し、引き続き現場で学ぶことが近道となります。
スマートフォンアプリエンジニアを目指す
執筆中です。
VR・ARエンジニアを目指す
執筆中です。
フルスタックエンジニアを目指す
フルスタックエンジニアを目指す場合、それ専用のプログラミングスクールは存在しません。
ただし、バックエンドエンジニアのスクールではHTMLやCSS、Javascriptなどを合わせて学ぶことのできるところもありますので、カリキュラム内でなるべく幅広いことを学べることがスクールを優先的に選ぶことが重要になります。
エンジニアリング・プログラミングの基礎知識を養う
エンジニアリング・プログラミングの一般知識を得るために通うべきプログラミングスクールがあるかというと、実はそういった一般教養だけを学べるスクールは存在しません。この範疇は主に情報系の大学や専門学校で学ぶことができます。
今から学校に通うのが難しい場合、細かい技術書などではなく、Web技術を活用したサービスを運営している企業のビジネスモデルを学んだり、今後5年〜10年後の未来がITによってどう変わっていくのかという社会課題的なニュースなどかを先に勉強してみるのが良いでしょう。
その中で、例えば「自動運転、IoT、5G、拡張現実」などのキーワードから自分が興味のある領域、あるいは現在の仕事や今後関わっていきたい領域の単語を拾い出します。
それに該当する技術的な仕組みを調べ、「AR、クラウドネットワーク」などの関連する専門的な技術書を読んでみたり、特定の技術に特化したプログラミングスクールに通うことを検討してみるのが良いかと思います。
受講料の費用対効果(コスパ)で選ぶ

私が面談をした方の中には、バックエンドがやりたいけど言語はなんでもいいからとにかく初期費用を抑えたい、という方も少ないですがいらっしゃいました。
受講料が安いプログラミングスクールの特徴は前半で記載した通りで、
- 入学時に就職・転職の意思表明が必要
- 就職・転職先が限られてしまう
- 好みのプログラミング言語を選べない
などのデメリットが潜んでいる場合があることも解説しました。
当然ですが、受講料が高いスクールよりも安いスクールの方が、カリキュラムのフォローの質が低いことは間違いありません。そこにお金をかける余裕がないからです。
それらを加味した上で考えると、
- 最低限実務で使えるカリキュラム内容
- 少人数制かどうか
- 講師との距離感の近さ
- 講師の職歴や人柄
などをよく比較検討することが、費用対効果が高い(コスパがいい)プログラミングスクールを選ぶ基準となります。
こうしたスクールはあまり情報を開示していないケースが多いので、実際に問い合わせてみたり、お試し受講などしてみることをおすすめします。
また、直近でもたくさんのプログラミングスクールが開講していますが、一期生や二期生の募集の際はほとんどがモニター価格(無料や半額など)になりますので、ここは狙い目です。これらはTwitterなどで情報収集をしていると見つけることができます。
受講スタイル(オンライン・オフライン)で選ぶ

プログラミングスクールにはオンラインとオフラインの受講スタイルが存在することは前半でもお話しました。
最近では働き方改革や女性の育児支援、そして世界的に流行しているコロナウィルスの影響も後押しして、リモートワーク(テレワーク)が普及していることと同時に、スクールの受講スタイルもオフラインからオンラインにシフトする動きが出てきています。
ただ、現役のエンジニアである私としては、勉強をするのであれば依然としてオフライン受講もできるスクールが優位であると考えています。
オンラインでは質問と回答にタイムラグがあったり、テキストベースでは状況を的確に説明することは、初心者はおろか講師にとっても容易ではありません。
その点オフラインでは「今すぐ解決したいこと」をすぐに解決できたり、実際に隣同士で画面を見せ合いながらの操作も可能で、モチベーション管理も期待できます。
ですので、もし通うことが可能な場合にはオフラインも合わせて実施しているスクールを選ぶことをおすすめします。
もし事情によりオンラインしか選択肢がない場合の基準としては、
- SlackやZoomなどで講師と連絡がつきやすいか?
- Slack内でのコミュニケーションは活発か?
- オンラインで実施するのに無理のないカリキュラムか?
といったポイントがスクールを選ぶ上で重要なポイントになります。
卒業後の働き方で選ぶ

「どんな働き方をしたいのか?」を明確にしておくことは、プログラミングスクールを選ぶ上でとても良い基準になります。
ここでは、
- 就職・転職する
- 副業で稼ぐ
- フリーランスとして活動する
の3つのパターンにおいて、それぞれ最適なプログラミングスクールの選び方をご紹介します。
なお、LIFTECHではこれらを「堅実なステップ」として捉えています。もちろん一足飛びで「プログラミングスクールを卒業したらフリーランスになる!」と意気込むのも良いのですが、一時的になんとかなったとしても、中長期的にきちんとした基礎力が身についていないと後々厳しくなります。
就職・転職する
ほとんどの方がプログラミングスクールを卒業した後にデザイナーやエンジニアとしての就職を希望されているかと思います。
「卒業後に未経験エンジニアとして就職できるか?」の章でも解説しましたが、スクール卒業後に満足のいく就職・転職ができるかどうかは、実務未経験者であるあなたのスキル(伸びしろ)をきちんと証明できるかどうかにかかっています。
そのためには、エンジニアを募集している企業が未経験者に対して真にどのような人材を求めているのかをスクール自体がきちんと把握している必要があり、それをきちんとカリキュラムや講習の内容に落とし込めているかどうかが鍵となります。
では、プログラミングスクールを選ぶ段階でこれを見極めるにはどうしたら良いのかというと、「プログラミングスクール選びで重要なポイント」の章でも言及しましたが、
- スクール経営者がスタートアップやエンジニア業界に精通している人物か?
- 教科書をなぞるような内容ではなく、実務で使えるような実践的なカリキュラムを組んでいるか?
- 講師の採用基準を十分なレベルで設定しているか?
などのポイントをきちんと確認して把握する必要があります。
また、比較検討した中で優劣に迷った場合には、可能であれば一度スクールを訪問して、実際に体験し、運営方針やカリキュラムの話を聞いてみるのが良いと思います。
副業で稼ぐ
将来的にリモートワークでの受託開発など副業で稼ぎたいという方も多いかともいます。
就職してエンジニア社員として開発するのと、一人で副業で開発するのとでは、後者の方が幅広い知識とスキルが求められることになります。
また、クラウドソーシングを通じて請け負ったけど手に負えなくて飛んでしまったり、知人の頼みだから…といって契約を蔑ろにしてトラブルになるケースなどもあります。
つまりエンジニアとして副業で稼ぐためには、きちんとしたエンジニアとしての業務フローの理解と、確かな技術、契約や法律に関する責任部分の知識なども同時に身についている必要があります。
これらをプログラミングスクールで全て学べるかというと、現状でこれらをカバーしているスクールは無く、実務経験の中でしか学べないこともあります。
よって、将来的に副業で稼ぐことを見据えつつプログラミングスクールを選ぶのであれば、上で挙げたような実践的なカリキュラムを組んでいるところを優先的に探すことに加え、実際に副業やフリーランスとして活動しているような現役エンジニアの講師が多数在籍しているところを選ぶのが近道です。
フリーランスとして活動する
出鼻を挫くようですが、プログラミングスクールを出てすぐにフリーランスエンジニアとして活動を始めるのは、正直無謀だと思います。
理由を挙げればキリがありませんが、例えば「ギター教室に3ヶ月通ったのでミュージシャンとして生計を立てます」とか、「ロシア語を半年間勉強したので日露の翻訳家として独立します」などと同様で、他の業界で考えればそれがいかに無謀かがわかります。
また、部分的に知識やスキルを持っていても通用しないことに加え、自身がクライアントのパートナーとして認めてもらうためのコミュニケーションスキルや人間性の向上、支払いに関する契約や報酬の取り決めなど、その範囲は多岐に渡ります。
副業の場合はクラウドソーシング経由の仕事でも稼ぐことはできますが、個人事業主・法人に限らず、フリーランスの場合にはバックグラウンド(業務経験や実績など)をより厳しく求められます。また、直接クライアントと面会してやり取りを行うケースや客先常駐などが一般的です。
これらをプログラミングスクールだけで完結させるのは不可能ですので、上で説明した通り、
- 就職・転職する
- 副業で稼ぐ
- フリーランスとして活動する
というステップをきちんと踏むことが大切です。
その場合のプログラミングスクールの選び方については前述したものと同様になりますが、それに加えて「コミュニティとしての成熟度」についてもしっかりと確認しておくと良いでしょう。
同じスクール内で横のつながりをたくさん作っておくことで、将来的にフリーランスとして独立した際にとても心強い存在になりますし、協力関係を築ける可能性も高いです。
また、スクールとは別にPM(プロジェクトマネージメント)や個人事業主が中心のイベントにも自主的に参加するなどして、知見を深めていくことが大切です。
スクールの評判で選ぶ

プログラミングスクールを選ぶ際に、最後にいくつかの候補が残って決めきれない状況に陥ることも多々あります。
実際にスクールを訪問したり、メールや電話などで問い合わせをしてみて感覚で決めるのありですが、運営者側は基本的にポジティブな話しかしません。
そんな時におすすめなのがスクール卒業生による評価です。Google検索などをしてしまうと歪曲された記事が多数出てきてしまうので、Twitterにてスクール名やハッシュタグなどで検索をかけ、リアルな批評を追うことでより実態が見えてきます。
また、スクール経営者や講師のTwitterアカウントを見てツイートを追ってみたり、Connpass(IT勉強会支援プラットフォーム)でイベントなどを積極的に開催しているかなどを調べることで、そのスクールの実態をより鮮明に把握することができます。
スクールの評判だけで選ぶというのはあまりおすすめしませんが、迷ったスクール同士を比較するために評判を活用することはとても有効です。
こだわり・特徴で選ぶ

もしプログラミングスクールを選ぶ際に譲れないこだわりの条件があるのであれば、それを優先して選んでも良いでしょう。
プログラミングスクールの中には、
- 入学試験に合格した人のみが入ることのできるハイレベルスクール
- 講師が不在で生徒同士で学び教えあるコミュニティ型スクール
- 地方出身者しか入れない地域限定スクール
などのように、特徴的な条件で運営されているところもあります。
これについては「自分に合ってるなと思う条件」がそのまま選ぶ基準に直結します。
プログラミングスクールを決めきれない方へ

この記事では「失敗しない!プログラミングスクールの選び方を徹底解説」と題して幅広いケースについて解説させていただきました。ご自身の中でスクール選びのための基準や思考の整理はできましたでしょうか?
全体を通じて、プログラミングスクールを選ぶ上で事前に考えておくべきことや、選ぶ際の重要なポイント、そして業界の実情や周辺知識などを細かく解説してきました。
それでもプログラミングスクールを選びきれない方のために、おすすめのプログラミングスクールとその特徴をいくつかご紹介いたします(選定中です)。
比較検討を行なった上でいくつか候補をあげておきますので、ぜひ参考にしてください(選定中です)。
スクールに通い始めた後の話

自分にぴったりの最高のプログラミングスクールに出会えたとしても、通い始めてからの取り組み方で学習効率が全く変わってきます。
スクールのカリキュラム以外に自主的に取り組むべきこととして、
- 学んだことをSNSやQiita、ブログなどで積極的にアウトプットする
- 自分だけのオリジナルサービスを並行して開発してみる
- スクール外の勉強会やイベントに積極的に参加する
- 講師や同期と仲良くする、コミュニケーションをしっかりとる
- 他のスクール生と被らないようなポートフォリオを作成する
- 将来働きたい業界のニュースなどを追って情報を収集する
などが挙げられます。
多くのスクール生は「通っていれば満足な就職ができる」と思っているようですが、現実としては全く逆で、未経験のエンジニアが簡単に就職できるような業界ではありません。
そんな中で頭一つ抜けて目立つためには、こうした自主的な取り組みを通じて「知識や取り組みの幅」や「自発的に学べる姿勢」を磨いていく必要があります。
プログラミングスクールでの時間を最大限に活用できるよう、自分なりにプラスアルファでの取り組みを心がけることが大切です。
最高のプログラミングスクールから始まる、最高のエンジニアライフを!