独学にこだわりすぎてプログラミングを習得できたはずのせっかくの機会を失うのはもったいなすぎです。
私は独学で一度プログラミングの習得に失敗した人がプログラミングスクールを受講しプログラミング習得に成功した逆転劇をいくつか見てきました。
一方で独学にこだわりすぎてプログラミング学習を放棄した人も見てきました。
もちろんプログラミングの独学は100%不可能ではないです。ただ挫折しやすい、それはもうスクールの10倍以上は挫折しやすいでしょう。
通説ではプログラミング独学者の90%は挫折してると言われていますがそれはあながち外れてないかなと。
筆者自身も独学でプログラミング学習しましたが2か月であっけなく白旗をあげました笑
その後、プログラミングスクールを受講してプログラミングを習得してエンジニア転職しました。
はっきり言ってプログラミング独学はハードル高いです。独学者を待ち受ける関門の数々あなたは潜り抜けられるでしょうか?
以下の関門が待っています。
1.何をどのように勉強すれば良いか分からない
2.モチベが続かない
3.仲間がおらず孤独
4.変な癖がつく
5.応用力がつきにくい
この関門を楽勝で潜り抜けれそうな人であれば独学でも良いかと思います。ただ大多数の人にとっては独学はおすすめできません。
なぜかというと「ほぼ間違いなく挫折するから」です。
本記事では独学で挫折する人がこれ以上出ないように独学に挫折した私が独学のデメリットについてこれでもかというほど語ります。
プログラミング独学が無理ゲー気味であり、おすすめできない5つの理由
プログラミング独学者を待ち受ける関門は以下です。
1.何をどのように勉強すれば良いか分からない
2.モチベが続かない
3.仲間がおらず孤独
4.変な癖がつく
5.応用力がつきにくい
1.何をどのように勉強すれば良いか分からない
プログラミング独学はまるでゴールの見えないマラソンです。
マラソンはゴールがあるからこそ完走できます。
今、自分がどこを走っていて、後どれくらい走ればゴールに着くのか分かってるからこそ走り続けられるのです。
一方、ゴールがどこにあるか分からず今自分がどこを走っているか分からない状態で走り続けるのは不可能です。
プログラミング独学はゴールの見えないマラソンに近いです。何をどの様に勉強すれば良いかわからずゴールが見えない。
たとえばプログラミング学習の目的がエンジニア転職の場合であればセオリー的には以下2つをやる必要があります。ただ独学だと何をどうやって勉強すれば良いか皆目見当つかないでしょう。
・オリジナルWebアプリを開発
・コードリーディングのスキルをつける
オリジナルWebアプリを開発
エンジニア転職ではプログラミングスキル(コーディング技術)を示すポートフォリオとしてオリジナルWebアプリを自分で企画し開発する必要があります。
このWebアプリとは何か。
情報を閲覧するだけのWebサイトと異なりWebアプリはボタンのクリック、フォームの入力、購入などインタラクティブな性質があります。
たとえば以下の靴のシェアリングサービスはログイン機能、会員登録機能、検索機能、レビュー機能などインタラクティブな機能が充実しています。
上記の様なオリジナルWebアプリはコーディング技術を示すポートフォリオとしてエンジニア転職で重要度を増しています。
ただし、独学だと一体どうやってどんな機能をどんな技術で実装しオリジナルWebアプリを開発すれば良いのか皆目見当つかないでしょう。
コードリーディングのスキルをつける
コードリーディングとは他の人が書いたプログラムのソースコードを読むことです。
エンジニアは0からの開発だけでなく新たにアプリに機能を追加したり改修する機会が多いです。
その際に他の人が書いたプログラムのソースコードを理解しその上でコードを新たに書いて改修作業をしていく必要があります。
ただこのコードリーディングのスキルをつける機会は独学だとなかなか得られないです。
ここまでの解説でプログラミング独学でエンジニア転職を達成するのはかなりハードだとお分かりいただけると思います。
エンジニア転職ではなくプログラミングで副業で稼ぐのを目的にする場合でも同じです。
プログラミングを学ぶ目的が何にせよ独学だと何を勉強したら良いか分からないのです。
独学の最大の問題点でしょう。
2.モチベが続かない
プログラミン学習はどんな人でも最初は意欲高く取り組めます。
しかし早い人だと2週間ほど経てば学習意欲が低下してきます。
「今日は疲れたし明日やればいいや」と学習を止めてしまう。
「今日は止めとこ」が積み重なって最終的に学習を止めてしまう。
プログラミング学習ではモチベの低下を織り込まなければなりません。常にモチベの高い人はいません。モチベが低下した時ほど他人の存在が重要なのです。
たとえばモチベが落ちても進捗管理をしてくれる講師がいれば「勉強してなかったら格好つかない、恥ずかしい」とちょっとした強制力が働いて学習を継続できます。
プログラミング独学だとこうした学習の強制力となる他人の存在がないので挫折しやすいのです。
3.仲間がおらず孤独
独学では基本1人孤独に学習をしなければなりません。
見逃されがちな点ですがプログラミング学習において仲間の存在は実はかなり大きいです。
最近ではオンライン型のプログラミングスクールも増えています。そうしたオンライン型スクールでも学習仲間と交流できるオンラインコミュニティがかなり充実しています。
先日、オンライン型のプログラミングスクールRUNTEQを取材した際にオンラインコミュミニティの話を伺いましたが「受講生同士が良い感じで刺激しあってる」という話を聞きました。
「あの人には負けたくない」
「○○さん凄い成長してる!自分も頑張らないと!」
こんな感じで受講生同士の交流が受講生の学習意欲を掻き立ててるのだそう。
だからこそRUNTEQでは受講生同士で交流できるオンラインコミュニティの運営にかなり力を入れているとのことでした。
プログラミング独学だと切磋琢磨して刺激しあえる仲間はいないです。1人孤独に学習することになります。これが結構きついのです。
4. 変な癖がつく
独学だとコードの書き方に変な癖がついてしまいます。
コードの書き方に変な癖がつくのは良くないです。これはスポーツも同じですね。
たとえば陸上競技だと猫背などフォームに癖があるとタイムは遅くなります。特に最初に正しいフォームを身に着けることが重要です。変な癖がない人は練習を重ねればその分だけぐんぐんタイムを縮めることができます。
一方で猫背フォームが一度身についた人はフォームを矯正するのに一苦労でタイムも一向に縮まりません。
コードの書き方についても同様で最初に正しいコードの書き方を覚えると上達スピードが大きく変わってきます。一方で一度、変な癖がつくと後から矯正するのにも時間がかかり厄介です。
たとえば変な癖の1つとして可読性の低いコードを挙げます。可読性とはつまり他人から見て読みやすいコードになっているかです。
独学で他の人が読みにくい可読性が低いコードを書く癖がついてしまうと開発現場で嫌われます。
独学だとスクールと違って現役エンジニア講師から開発現場目線でのフィードバックをもらえません。ゆえに変な癖がついてしまいがちなのです。
5.応用力がつきにくい
プログラミングを独学している人にあるあるのなのがオンライン教材のProgateの様な基礎固めの教材を繰り返し何度も何度もやっているケースです。
繰り返し学ぶこと自体は良いのです。しかしその基礎知識を応用的に使っていく必要があります。
たとえば野球だと素振りばかりやっていても試合でヒットを打つことはできませんよね。投手にボールを投げてもらって実際にバットを振ってボールを打つより実践的な練習が必要です。
それと同じでプログラミングも基礎ばかりやっていても力がつきません。
たとえばProgateをひたすら何週も周っているだけだと応用力はつかないのです。
Progateで基礎を学んだたらサッと切り上げ実際にオリジナルを開発するなど次の応用フェーズに行くべきでしょう。
以下の様に実践的にプロダクトを開発していく練習が必要です。
1.Progate
2.Railsチュートリアル
3.オリジナルWebアプリ開発
ただしオリジナルWebアプリ開発になると独学だとかなり難しくなってきます。
どんな機能をどんな技術で追加したら開発したいWebアプリを開発できるのか、現役エンジニア講師のアドバイスなくして進めれないでしょう。
この壁を独学で突破できる人はごく僅かでしょうね。
「プログラミングは独学で可能。スクールは不要」は生存者バイアスでしかない。
「プログラミングは独学で可能。スクールなんて必要ない」そんな意見も良く聞きます。
これはまごうことなき生存者バイアスですね。
生存者バイアスとは
成功を収めた結果のみに着目し、それに付随する失敗を見過ごしがちな人間の性質のこと
まず独学に挫折した人ってあんまり「自分は独学に挫折しました」とは言わないですよね。自分の能力不足を露呈している様で恥ずかしいからです。
一方で独学に成功した人は成功したことをSNSでも堂々と言えますし、その情報はより人目につきやすいです。
実際のところ独学で挫折した人って独学で成功した人の10倍以上はいると思います。私自身もプログラミング学習の独学に挫折した経験ありますしね。
独学でプログラミング学習できる確率の高い人は以下に該当する人です(わたしの統計ですw)
・プログラミングが好きで好きで堪らない
・大学受験で予備校に行かず難関大学に合格
・学校の夏休みの宿題は最初の2週間で終わらせたタイプ
プログラミング独学でも挫折しない人はプログラミングが趣味レベルで好きで好きで堪らない上に自制心が強く目標に向けて1人で黙々と頑張れる人ですね。
こんな人はあまりいないと思うので普通にスクールに頼るべきかなと。
プログラミング独学よりスクールを使った方が3~5倍くらい学習効率が良い
筆者は独学よりもプログラミングスクールを強くおすすめします。
私は独学で挫折した後にプログラミングスクールを受講してプログラミングを習得しました。
だからこそ、独学にこだわりすぎてプログラミングを嫌いになって途中で止めてしまうのは極めてもったいないと思うのです。
”独学でプログラミング習得できない人”がプログラミングスクールに通うことで救われてるケースは山ほどあります。
スクールを受講することで「何をどのように勉強すれば良いか」講師が学習計画を策定し進捗管理もしてくれます。
一定の強制力が働くからこそ学習を継続できます。モチベが続かず学習に挫折する心配はありません。
またプログラミングスクールは受講生や講師同士が交流できるコミュニティを設けています。
受講生同士が刺激し合い、高め合う環境があるのです。スクールによっては同期の受講生と飲みに行くようなスクールもあります。
現役エンジニア講師が指導するので変な癖もつきませんしエンジニア就職ならエンジニア就職向けのスキルを教えてもらえます。副業目的なら副業で稼ぐのに必要なスキルを教えてもらえます。
プログラミングスクールを受講して学んだ方が圧倒的に効率が良いと私は経験的に知っているので「独学にこだわりすぎるのは無駄で非効率である」とお伝えしておきます。
スクールを使えばプログラミング習得はざっと3~5倍くらい効率的になりますよ。
独学とスクールのプログラミング習得効率を比較すると以下です。
独学で自分で学習 7か月~1年
↓
スクールでの学習 2か月~5か月
結論
独学にこだわることのメリットはほとんどないです。
普通に考えて効率が良いのは独学よりもプログラミングスクールです。
プログラミングスクールでプログラミングを習得してエンジニア転職すれば世界が変わります。
エンジニアとして2、3年実務経験を積めば引く手あまたとなり仕事に困ることなくなります。フリーランスエンジニアに転身すれば年収1000万円も射程圏内に入ってきます。
参考までにフリーランスエンジニア向け案件紹介サイトのレバテックフリーランスで案件を確認してみましょう。
Rubyの案件の平均単価は79万円です。年収換算すれば約950万円となります。これが平均です。繰り返しますが平均です。
なお私の周りのフリーランスエンジニアで年収1000万円を下回っている人はいません。
これ以上に人生を変えうるスキルはプログラミングスキル以外ないでしょう。
プログラミングスキルを身に着けて新しい世界を切り開いていきましょう。
稼げるプログラミングスキルがつくスクールは以下がおすすめです。
コメント