- 独学によるプログラミング学習は十分可能である
- プログラミングスクールを検討したほうが良い
上記のような、対立意見がプログラミング業界ではよく見かけられます。
筆者の結論は、「プログラミングスクール一択」です。
独学によるプログラミング学習を継続する意志がある人は読まないでください。
本記事では、プログラミング未経験/初心者は独学をやめたほうがよい理由を詳細に解説します。
本記事の対象者
大前提として、プログラミング学習において目的・目標が特に設定されていない人は対象外になります。
初心者にとっての独学によるプログラミング学習の難しさ
プログラミング未経験/初心者が最初に考えることは、「何から始めるべきか」になります。
しかし、何から始めるかを考える際、いきなりつまずく可能性があります。
ここでは例として、エンジニアへのキャリアチェンジを目指すプログラミング未経験/初心者である20代から30代の社会人を想定します。
- 学習によって実現したい目的/目標設定
- 学習内容の取り決め
- 学習レベルの基準
- 学習時間の確保
- 学習計画の具体的なスケジュール管理
- プログラミングにおける悩み/エラー解消などの学習環境
- エンジニア就職/転職の具体的な実現方法
最低限でも上記の項目は考慮し行動を実施する必要があります。
理由に関しては後述していきます。
独学によるプログラミング学習ロードマップ作成は難しい
一般的に、プログラミング未経験/初心者にとって学習ロードマップを作成することが難しいです。
改めて、理由として以下の項目が関係します。
- 学習によって実現したい目的/目標設定
- 学習内容の取り決め
- 学習レベルの基準
それぞれの理由について解説します。
学習によって実現したい目的/目標設定
まずはじめに、エンジニアといった職種を考えてみても種類がいくつか存在します。
以下は、代表的なエンジニア職種の2種類と役割です。
種類 | 役割 | 主な言語 |
---|---|---|
フロントエンドエンジニア | クライアント側のUI画面設計/実装 | ・HTML ・CSS ・JavaScript ・TypeScriptなど |
バックエンドエンジニア | サーバーサイド側の機能設計/実装 | ・Java ・PHP ・Ruby ・Python ・Goなど |
また、自社開発/受託開発といった企業スタイルや目指す業界でも主要言語は変化します。
- Webサイト/Webサービス
- スマホアプリ関連(SNSやタスク管理アプリなど)
- ゲーム関連アプリ
- IoT/デバイス関連
- AI
- FinTech
もちろん、飲食業やアパレル業など情シス(情報システム部)の部署が存在する限り、その部署に社内エンジニアが存在することになります。
つまり、エンジニアといってもIT業界だけに限らないということです。
このように、エンジニアが様々な業界で活躍し選択肢が多い中、適当にプログラミング言語選定や「とりあえず言語学習を始める」といった行動にはならないと思います。
そのため、プログラミング初心者にとって2つのコストが高まってしまいます。
コスト名 | 陥りやすい状況 |
---|---|
認知コスト | 自身の目的/目標に合わせたプログラミング言語選択が正しいかといった不安 |
心理的コスト | 独学中に無駄な学習時間を費やしていないかといった焦燥感 |
上記の様々なコストが回収できなくなると、プログラミング学習の挫折につながります。
プログラミングの挫折を回避するために、「どんなエンジニアを目標にするか」は重要になります。
学習内容の取り決め
目指したいエンジニア像の輪郭が見え始め、自身が学びたいプログラミング言語が選択できたと仮定しましょう。
次に考えることは、「選択したプログラミング言語をどのように学習するか」になります。
本記事はプログラミング未経験/初心者を想定しているため、プログラミング学習の進捗はほぼ0と仮定しています。
ここで問題になるのが、「基礎学習を何で学ぶか」と「どこまで理解できたか」を取り決める必要があります。
もちろん、ここまで考慮する必要があるかは別として、体系的な基礎学習ができるか考える必要があります。
また、基礎学習における情報収集や学習サイトで学んでも、サイト内容によって学習ロードマップの統一感がなく、逆にプログラミング初心者にとって難易度が高まってしまいます。
やはり、学習内容の取り決めにおいても「この取り組みが正しいのか?」といった判断までに心理的コストが負担になります。
学習レベルの基準
早まってプログラミング基礎学習の行動を起こしてしまうと、かえってプログラミング学習を挫折する原因になります。
基礎学習で重要になるのは、「目標からの逆算による学習ロードマップ作成」になります。
目指したいエンジニア像が明確であるほど、求められる実務レベルや学習内容が鮮明になり、取り組むべき学習レベルの基準を設定できます。
学習レベルの基準から逆算することで、「どのスキルを習得すべきか」と「どのレベルまで理解を深めるべきか」が判断できます。
当然、実務経験がないプログラミング初心者は基準を作れないため、「とりあえず学習してみる」といったサンクコストがかかる行動に出て結果挫折する形になることが多いです。
プログラミングスクールをおすすめする理由を改めてまとめます。
- 学習の先に成功したロールモデル情報をいくつも持ってる
- 実務レベルから逆算した学習内容を取り決めてる
- キャリアチェンジの成功例から学習レベルの基準を設けてる
多くのプログラミングスクールは、卒業生の輩出数に応じて洗練された学習ロードマップを持ってると考えます。
そのため、独学では挫折してしまう状況でも数多くのサンプルからエンジニアへのキャリアチェンジを実現しているはずです。
次章は、「プログラミングにおける勉強時間」について考えていきます。
独学はプログラミングの勉強時間の管理が難しい
独学によるプログラミングの勉強は、以下の悩みも付き纏います。
- プログラミングの勉強時間/期間といった目安がない
- プログラミング学習のモチベーション維持が難しい
- プログラミング学習のスケジュール管理がきつい
上記は、プログラミングにおける時間的コストについての悩みです。
プログラミングの勉強時間/期間の目安
基本的にプログラミングの勉強時間/期間の目安は学習者によって大きく異なります。
そのため、一概に絶対的な時間の目安が存在するわけではありません。
- 習慣化を意識したスケジュール作成
- おおよそ1,000時間前後を目安とした期間設定
短期間/長期間どちらにおいても、モチベーション低下を起こさず継続したプログラミング学習を心がける必要があります。
プログラミング学習はスケジュール管理が難しい
自身で取り決めた勉強時間/期間を設けた際、プログラミングスキル習得するためのスケジュール管理も難しいです。
せっかく立てたスケジュール/学習計画を妨げる要因があります。
- エラーが発生した場合の対処に時間がかかる
- 疑問点/不明点を検索する時間がかかる
エラー解消に関しては、プログラムが正常に動作すれば概ね問題なく進行できます。
しかし、エラー対処も含めてプログラミングでわからないことがあれば、常に調べる時間がかかります。
さらに、内容によって複数の解決方法が存在すると何が最適解か分からず、一つの疑問に数時間かけてしまうケースもあります。
本来、立ち止まることなく課題やコード記述に取り組みたくても、途端に足踏みしてしまい挫折する要因になります。
また、進捗が芳しくなく想定した学習内容に時間投下できず、期間延長によるスケジュール調整あるいは計画自体の破綻につながってしまいます。
このような時間管理の徹底が疎かになることも、独学によるプログラミング学習で陥りやすいです。
プログラミングの悩み/エラー解消などの学習環境
要は、プログラミング時の悩み/不安/エラー解消を適切に対処する方法を教えてもらえる環境があるかどうかです。
一度、学生時代を振り返ってみてください。
高校/大学等の受験を思い返すと、通学する学校/予備校/参考書等といった様々な形で特定の教科を勉強してきたことだと思います。
文科省が取り決めた学習要項を基に、学校用のカリキュラム/自身のレベルに合わせた予備校のカリキュラム/偏差値に合わせた参考書など、あなたが志望する内容に合わせて作成されています。
つまり、あなたが目的/目標さえ設定していれば、取り巻く学習サポート環境によって100%に近い集中的な学習を実現できているわけです。
学習サポート環境について、さらに深堀りすると以下の独学によるデメリットが浮き彫りになります。
- プログラミング学習のみに全集中できない
- チャットやカウンセリング等のサポートがない
上記の独学によるデメリットによって、プログラミングでの勉強の難易度が高まってしまいます。
- プログラミングがわからない状態が各学習内容によって発生
- 効率学習ができずプログラミング勉強時間の無駄が発生
- 集中できない学習環境によってプログラミングへのモチベ低下
- 独学に固執することによって勉強法の確立ができない
もはや、独学によるプログラミング学習の始め方として入り口がわからない状態が続いてしまいます。
プログラミング学習のみに全集中できない
プログラミング学習のみに集中した時間を作れない場合、様々な弊害が発生します。
- プログラミングがわからない状態が続く
- 学習計画の甘さで予定が崩壊し継続学習がきつい状態になる
- 疑問/不明点を残した学習でつまらない状態になる
- 思うように進捗せず時間を消費しモチベが維持できない
極端な例に見えますが、上記内容が時間をかけて積み重なると「プログラミングはもういいや。」といった諦めが生まれてしまいます。
学生時代であっても、本当に独学で受験戦争を勝ち上がった人は少ないと考えます。
少なからず、学習サポート環境が一定保たれていたのではないかと推察しています。
独学者の「プログラミングがわからない、つまらない、きつい。」といった意見の大半は、おそらく学習環境とサイクルが整備できずゲームのレベ上げのようにガンガン進められないといった原因も考えられます。
ゲームのレベ上げがスムーズにできてミッション達成できると楽しいですし、受験も第一志望に合格できれば嬉しいですし、プログラミング学習も同じです。
チャットやカウンセリング等のサポートがない
独学によるプログラミング初心者にとって、最大の問題の一つが「相談できる環境がない」ことです。
- ヤフー知恵袋
- teratail
- Stack Overflow
上記のサイトが挙げられますが、プログラミングカテゴリの質問を確認すると学習関連は二元論で様々な意見が散見されます。
必ずしも周りと比較したり他者の意見に流される必要はありませんが、プログラミング未経験/初心者にとって正しい判断ができるとは思えません。
基本的には、信頼が一定担保されている現役エンジニアやメンター講師といった役割を持つ人に相談するべきです。
- エラー対処に関する相談
- 疑問/不明点に関する相談
- インフラ周りに関する相談
- 就職/転職に関する相談
相談以外にも、疑問/不明点で参考になるサイト情報をまとめてもらったり、現役エンジニアの慣習など聞ける可能性も十分にあります。
また、学習の指針を常に提示してもらうことで、「このまま続けていても問題ないんだ。」といった不安や恐怖もなくなります。
それほど、誰かに相談できる学習環境は心強く、ためらいなくプログラミングに集中できます。
エンジニア就職/転職の具体的な実現方法
おそらく、ぼんやりと独学によるプログラミング学習を継続している人は就職/転職の取り組みに移行できません。
なぜなら、具体的にどのような方法でエンジニア就職/転職するかわからないためです。
- 未経験でもOKな企業選定
- 自己アピール用のポートフォリオ作成
- スキルセット確認用のスキルシート作成
- 職務経歴書作成
- 面接対応
独学によるプログラミング学習の場合、自身のキャリアに近い人のロールモデルから見つける情報収集が必要です。
あるいは、業界や業種を1から調べてエンジニア就職/転職サイトに登録することになります。
しかし、プログラミングスクールであれば過去の卒業生や成功事例から統計的なデータを持っているはずです。
また、あなたに酷似したロールモデルが先んじてエンジニアになっているケースも人数の規模から可能性があります。
要は、独学によるプログラミング学習が自分なりに終えれても、設定した目的/目標が達成されなければ時間の無駄になってしまいます。
たとえ就職/転職といった目的ではないとしても、「ただ学びたかっただけ」で学習の継続は難しいです。
プログラミングを学ぶ過程にこだわるのではなく、学んだ結果を求めたほうがよいと考えています。
独学は純粋なプログラミング学習ができない
改めて、独学によるプログラミング学習のメリットとデメリットをまとめています。
- 自分のペースで学べる
- 学習費用が抑えられる
- プログラミング学習のロードマップ作成が難しい
- プログラミングの勉強時間の管理が難しい
- プログラミングの悩み/エラー解消などの学習環境不備
- キャリアチェンジの場合に実現方法を模索する必要がある
デメリットの詳細は上述した通りですが、独学のメリットはデメリットになる可能性が秘められています。
また、ネット情報あるいは特定情報を扱ったマイクロ化された教材などで学習補完しても、体系的な学習を継続できません。
さらに、バラバラな情報からプログラミング基礎知識やアプリ開発の順序立てた学び方をロードマップ化するのは困難です。
これらを含めプログラミングスクールは、「体系的なプログラミングの学び方を学ぶ」といった点でも優れていると考えます。
100%純粋なプログラミング学習環境を如何に作り出すかが大切な取り組みの一つになります。
独学は果たして学習費用が抑えられるのか?
ここでは、本格的にエンジニアへのキャリアチェンジを実現したい人を想定した内容になります。
結論は、独学は費用が抑えられるが先行投資によって将来的に回収できると考えます。
一度、自身における現在の状況を振り返ってみてください。
- 収入アップが見込めている
- キャリアアップが見込めている
上記の項目を踏まえて考えると、独学によるプログラミング学習はかえって逆効果になるケースも考えられます。
ITエンジニア特化の転職サイトForkwellの調査結果によると、以下の年代別平均年収の変化が算出されています。
転職回数 | 20代前半 | 20代後半 | 30代前半 | 30代後半 | 40代前半 | 40代後半 |
---|---|---|---|---|---|---|
0回 | 457万円 | 463万円 | 528万円 | 579万円 | 662万円 | 680万円 |
1回 | 444万円 | 486万円 | 537万円 | 604万円 | 664万円 | 689万円 |
2回 | 472万円 | 517万円 | 577万円 | 626万円 | 672万円 | 705万円 |
3回 | 453万円 | 542万円 | 588万円 | 662万円 | 637万円 | 690万円 |
4回 | 425万円 | 631万円 | 686万円 | 685万円 | 727万円 | 729万円 |
上記の調査結果から読み取れる注目したいポイントは以下になります。
- エンジニアの平均年収の高さ
- 収入アップ/キャリアアップによる転職回数
転職者のポテンシャルや転職先の年収帯で変化するため、一概に回数によって必ずしも上記の数字のように右肩上がりになるわけではありません。
ただ注目したいのが、エンジニアの平均年収についてです。
自身の年収帯と比較してすでに高くなる見込みがあれば、キャリアチェンジとして目指す理由は十分にあると感じます。
また、エンジニア実現後もエンジニアの求人サイトを見て、転職による収入アップやキャリアアップの結果が出ています。
このように、現在の働き方から見えてくる生涯年収とエンジニア実現後の生涯年収を考えると、将来を見据えた先行投資/自己投資としてまとまった学習費用の捻出もありだと考えます。
完全独学によるプログラミング学習は無理なのか
とはいえ「独学ではもう無理。」と挫折や諦めを抱いて手を止めてしまった人は、今後のプログラミング学習は無理でしょう。
ただ、一度これまでのプログラミング学習を振り返り、独学によるプログラミング学習は無理なのか判断しても良いと思います。
- 思い通りの学習ができていない
- 未知の問題が解決できない
まず独学によるプログラミングの悩みを大別すると、上記のパターンに分けられると考えています。
特に目の前のプログラミング課題にどう向き合うべきか知りたい人は「【プログラミング独学】無理な状態なら目的逆算思考で考える」を一読ください。
まとめ|相談するのが唯一の解決策
プログラミング未経験/初心者の場合、右も左も分からない状態でモヤモヤ考えてしまうとかえってドツボにハマります。
当然の結果で、プログラミングの実務やエンジニア経験がないと経験則という基準がなく、比較できる軸がなく答えが見つからないからです。
何度も同じ悩みに立ち返って逡巡し続けると、「プログラミングは諦めよう。」と挑む前から挫折することもあります。
スクール名 | TechAcademy | DMM WEBCAMP |
---|---|---|
受講料金 | 251,900円~ | 169,800円~ |
補助金対象 | 最大70%OFF | 最大70%OFF |
Pythonコースの有無 | Python以外も豊富 | Python以外も豊富 |
転職支援 | 無料転職サポート | 無料転職サポート |
無料相談 | “>無料相談はこちら | “>無料相談はこちら |
筆者がおすすめしたいのが、プログラミングスクールへの無料相談になります。
Python特化になりますが、筆者がまとめた「【Python特化】厳選したおすすめプログラミングスクール」一読ください。
もちろん、別コースに関する情報も記載しております。
また、無料相談時の確認内容もまとめていますので参考にして頂けたら幸いです。
コメント