「プログラミングで稼ぎたい」「IT業界に転職したい」「趣味にしたい」などなど動機は人それぞれかと思いますが、プログラミングの勉強を始めるのに遅すぎるも早すぎるもないでしょう。お金を稼ぐにも趣味として楽しむにもプログラミングは優れたツールなので、いつでも好きなときに勉強を始めれば良いと思います。
プログラミングの勉強を始めるに当たって最初に出てくる疑問が、どうやって勉強するか、ということでしょう。今はネット、書籍、動画などの情報が多いのですが、使用する教材の前に独学にするかプログラミングスクールにするか迷っている人も多いはずです。
そこでこのページでは、独学とスクールを比較し、それぞれのメリット・デメリット、どんな人に合っているか、といったことを解説していきます。先に私がどのようにプログラミングを勉強したのかについても一応紹介しようと思いますが、興味のない方は飛ばしてください。
私のプログラミング学習履歴
独学とプログラミングスクールを比較する前に、前提として私がどのようにプログラミングを学んだのか説明させていただきます。簡単なフローで表すと以下のようになります。
独学 → 会社(SIer)の外部教育でのスクール学習 → 開発現場での開発+独学 → フリーランスエンジニアとしての受託仕事+独学
こんな感じでやってきました。最初の独学ではHTML、CSS、Java、VBAなどを勉強して書いてみるといった勉強法です。これは私が大学卒業後フリーターをしながら公務員試験を受けて、結果を待っている間に、「暇だから前から興味のあったプログラミングを勉強してみよう」ということで始めたものでした。
とはいえ、「公務員試験全部落ちてたらIT企業に就職しよう」という考えも薄々あってのことでした。結果的に公務員試験は全滅し、SIerの面接をいくつか受けてそのうちの一社に入社することになりました。
ちなみに私は文系なので学校でプログラミングを勉強した、それまでに勉強していた、といったことはありません。特別なスキルを持っていたわけでもなければ、逆に極端にパソコンが苦手だったわけでもありません。
普通にオフィス系のソフトを使ったり(マクロを組んだことはありませんでした)、パソコンの調子が悪ければ簡単なメンテナンスをしたり、調べながらパーツを買ってスペックを上げてみたり、といった感じのレベルです。
簡単な独学を経てSIerに入社し、そこで外部研修を受けることになりました。カリキュラム的にはJavaの基礎を学び、システムを開発してみる、といったものです。なのでプログラミングスクールと同じようなカリキュラムです。
独学と言っても簡単なことしかやっていなかったので、研修のシステム開発ではまあまあ苦労した記憶があります。5年くらい前のことなので記憶が曖昧ではありますが・・・
そして研修後はCOBOL、Javaなどの案件に参画しました。ちなみに、SIerについて興味のある方は以下の記事を見てみてください。
SIerの客先常駐はお先真っ暗?元SIerのSEが考える打開策
SIerについてはいろいろ言われていて、スキルが身に付かないと指摘されることもあります。それは現場によりけりで、だいたいの場合マニュアル化等が進んでいない炎上案件に放り込まれたりもするので、ある意味スキルアップせざるを得ない状況になることも多いとは思います。
脱線しましたが、このようにSIerを経て、その後フリーランスになりました。フリーランスでは簡単な案件から受注を始め、なるべく幅広くスキルアップするようにしました。言語や開発領域を絞って技術力を伸ばした方が単価は上がりやすいかもしれませんが、技術の幅を広げた方が相乗効果もあり、なおかつ楽しいので私はそのような方針でやっています。
ちなみにフリーランスエンジニアの仕事については以下で紹介しています。興味のある方は見てみてください。
独学とプログラミングスクールのメリット、デメリット
基本的には仕事を通して「またバグった」「もうわからん」といった感じでプログラミングしてきた私ですが、結果的に独学とプログラミングスクール(厳密には会社の外部スクール研修)の両方を経験しています。
その上で、独学とプログラミングスクールのメリット・デメリットをまとめてみます。
メリット | デメリット | |
独学 |
|
|
プログラミングスクール |
|
|
以上のようになるかと思います。
人によって感じ方自体はそれぞれで、特にモチベーション面で独学の大変さを感じたり、カリキュラム面でプログラミングスクールのメリットを感じる人も多いかもしれません。しかし個人的には、やる気があれば独学でも高いモチベーションで勉強することが可能で、なおかつ情報収集すればカリキュラム的にも問題ないのかなと思います。
私自身独学の経験もありますが、ネット上などで言われているほどモチベーションやカリキュラム的な面で独学とプログラミングスクールに大差あるわけではないかな、といった感想です。
まあそもそも独学が苦手、一人で勉強とか考えられない、といった方もいるかと思うので、その場合はプログラミングスクール一択になるかと思います。そうでない方は独学でも良いのですが、独学には大きな欠点があります。
それは、なかなかバグを解消できない!ということです。独学でも基礎的なことは学べるのですが、当然そこからは練習でシステム開発してみることになります。最初のうちは慣れていないので、コーディングミスをしたり書き方がわからなかったりすることもあるでしょう。
なんとか調べながら書ききって実行してみると、「なんかよくわからなんログ出てる・・・」「ググってはみるもののよくわからん・・・」といったことになりがちです。英語の方が情報量が多いのでなんとか英語のページを見て頑張って英文読解してみるも・・・「やっぱりわからん!!」なんてことは多々ありました。
このようにバグで苦しみながらもがく経験もそこから知識を得られたり、粘り強さを身に付ける上では大切なことかと思います。仕事でプログラミングを扱っていれば絶対に直面する問題で、なおかつ初心者用の練習システムのように誰かに聞けばすぐに解決するわけではありません。
なのでいずれは通る道なのですが、とにかく初心者には辛いものがあります。私自身大学受験や公務員試験(筆記は国家総合職以外の国家一般職、裁判所事務刊、国税専門官、地方上級などに受かった)は独学で勉強していて、独学レベル中の上くらいだと思います。
それくらいだとバグが解消できなくて挫折しそうになり、なかなか大変でした。数時間バグの解消やわからないことのために情報収集とトライ&エラーを繰り返すのはよくあることで、場合によっては丸一日(10時間くらい)、もしくは数日間、同じ個所で詰まったまま進まないこともあります。
上で説明した通りこれも良い経験でスキルに結び付くのですが、「そんな拷問耐えられません」「絶対挫折するじゃん」と思われる方はプログラミングスクールを選んだ方が良いかもしれません。
最初のうちはなるべくハードルを下げて挫折せずに楽しく続けることがもっとも大切だと私は考えています。なぜなら継続さえできればある程度のスキルは身に付き、スキルが上がればバグの解消も早くなりますし、仮に詰まったとしても慣れたものになるからです。
自分は独学向き?プログラミングスクール向き?
最初のうちは詰まるとなかなかきついということでした。私自身最初は独学でプログラミングに取り組んでいますが、プログラミングスクールを利用すれば詰まったときに質問できる分一人でもがき苦しむ時間は減るでしょう。
独学に向いている人とプログラミングスクールに向いている人の特徴をまとめると、以下のようになるかと思います。
独学向き |
|
プログラミングスクール向き |
|
以上のようになると思います。
あと金銭面については一概に言えませんが、たとえば趣味のためにプログラミングスクールに行きたい方以外は、後からのリターンの方が圧倒的に大きいかと思います。転職でも1、2ヵ月もすればスクールの費用は回収でき、そこから先ももちろん仕事を続けてさえいれば給料をもらえます。
副業やフリーランスでプログラミングの仕事を受託する場合も、しばらく仕事を続ければスクール代くらいはすぐに稼げるでしょう。独学を選ぶにしてもスクールを選ぶにしても、スキルは一生物の資産です。
勉強した内容が陳腐化することはありますが、一通りプログラミングを学べば応用が利き、たとえば市場の変化に応じて新たなスキルを獲得していくことも容易になります。なので、やはり最初の第一歩で挫折せずに継続することが何より大切です。
プログラミングスクールを選ぶなら
上のメリット・デメリット、向いている人の結果等を踏まえ、最終的にプログラミングスクールを選ぶのであればおすすめのスクールがいくつかあります。どれも無料体験ができるので、気になるスクールがあればぜひ無料体験してみてください。
1.テックアカデミー |
レッスン形式:オンライン(課題カリキュラム+マンツーマン) 学習期間:1ヶ月~4ヶ月 チャットサポート日時:全日15時~23時 |
2.コードキャンプ |
レッスン形式:オンライン(完全マンツーマン) 学習期間:2ヶ月~6ヶ月 レッスン(チャット)対応日時:全日7時~23時40分 |
3.テックキャンプ エンジニア転職(旧テックエキスパート) |
レッスン形式:通学(東京、愛知、大阪)+オンライン 学習期間:10週間 or 6ヶ月 教室利用/直接質問日時:平日16~22時、土日祝日13~19時 オンライン質問対応日時(チャット・ビデオ通話):全日13~22時 |
4.テックキャンプ プログラミング教養 |
レッスン形式:通学(東京、大阪、愛知)+オンライン 学習期間:3ヶ月 教室利用/直接質問日時:平日16~22時、土日祝日13~19時 オンライン質問対応日時(チャット・ビデオ通話):全日13~22時 |
5.GEEK JOB |
レッスン形式:通学、オンライン(東京(四ツ谷、九段下)) 料金無料(社会人転職コース) ※無料の理由は転職先の企業からGEEK JOBに報酬が支払われているため。 (転職率95.1%) 学習期間:最短1ヶ月 レッスン時間:面談を通して決定 (夜間+土日、空き時間、土日のみなど対応) |
どれを選択するかですが、生活スタイルと好みによります。まずTechAcademyとCodeCampについては、完全オンラインです。通学とオンラインとは好みや生活スタイルによってどちらが最適かが変わってくるでしょう。
時間が取れない方や遠隔地にお住まいの方は、オンライン一択になるかと思います。また通学できれば通学した方が良いという意見もあるようですが、個人的にはそうは思いません。はっきり言って通学するのは面倒ですし、オンラインでも講師による指導、質問、カリキュラムの消化、などができればまったく問題ないわけです。
通学の方が周囲に人もいてモチベーションが上がりそう、ということであれば通学も良いかと思いますが、たとえば東京に住んでいるというだけで無理に通学する必要はないと思います。極端に言えば、プログラミングスクールの横に住んでいてもオンラインの方が良ければオンラインで良いと私は思います。
横ならさすがに通学しろよ、という声もあるかもしれませんが、そのくらい通学でもオンラインでもしっかりやれば効率的にスキルが身に付くということです。またTechAcademyとCodeCampでは講義形式に違いがあり、TechAcademyが課題とマンツーマンの両方があるのに対し、CodeCampは常にマンツーマンです。
これに関しても個人の好みの問題で、必要なときに説明や質問への回答があれば良いという方はTechAcademy、常に講師に見てもらっていた方が良いという方はCodeCampが合っています。どちらもオンラインのみで無料体験できるので、試して比較してみるのがおすすめです。
そしてGEEK JOBに関しては他のスクールに比べて特殊です。なぜなら、転職がセットになっているコースなら完全無料だからです。なぜ無料でスクールを利用できるかというと、転職先の企業からスクールにお金が支払われるからです。
まあそのくらいIT業界は需要が多い分人手不足ということです。転職希望で、なおかつスクールに通学できる方であればGEEK JOBはかなりおすすめできます。私自身独学で多少のスキルを身に付けてIT業界に就職しましたが、当時このようなサービスがあれば利用していたと思います。
手探り状態でなんとか勉強も就職活動もやっていましたが、どちらも手探りなので不安はありました。無料で勉強も転職もサポートしてもらえるなら最高です。またSIerだけでなくいきなりWeb系企業を狙える点も魅力です。
私が今後企業に就職することはないかと思いますが、Web系企業には漠然とした憧れはあります。IT業界は一度就職してスキルを身に付ければ、その後の働き方がかなり自由になります。
もちろん一生企業に所属するという考えもありですし、いったん企業に所属してスキルを磨いて、その後フリーランスや起業を目指すのも良いと思います。または、未経験からスクールで学んでいきなりフリーランスなんて選択肢もあります。
独学を選ばれる方もフリーランスを選ばれる方も、プログラミングスキルを身に付ければ仕事や人生において自分にとってメリットのある選択肢が見えてくると思います。プログラミングに慣れるまでは多少大変かもしれませんが、慣れれば楽しくなってくる可能性が高いですし、楽しみながらお金や時間の選択肢が増えるのはかなりお得です。