プログラミングを独学で身につけるのは無理なのか?と考える方も多いでしょう。
ネットの情報を見ると
という意見が分かれており、どちらが本当なの?と疑問に思われますよね。
そこで今回は、現役エンジニアで今は開発としてリーダーも務めている僕が、
- プログラミングの独学は無理ではないがおすすめしない理由
- 独学で身につくプログラミングのスキルレベル
- プログラミングの効率的な学習方法
などについてお話していきます。
プログラミングの独学は無理ではないがおすすめしない理由
まず、正直にお話するとプログラミングの独学はあまりおすすめの方法ではありません。
- 現役の大学生で学習時間を十分割ける方
- 仕事を辞めても半年間生活できる貯金がある方
上記の方は、時間が十分にあるため独学もありですが、ほとんどの方は「社会人として働きながらエンジニア転職をしたい方」だと思います。
そのような方は、以下の理由でプログラミングの独学はおすすめできません。
- 時間がかかる
- 効率の悪い勉強方法を実践する
- エラーの解決方法がわからず挫折しやすい
- 目標設定が難しい
時間がかかる
完全初心者が、転職できるレベルのスキルを身につけるための学習時間は約300時間と言われています。実際、多くのプログラミングスクールでも学習時間を300時間と設定しています。
個人差があることは承知の上で、過去弊社で複数の人を育成してきた経験から言うと、平均して300時間くらいは必要な感じでした。それでようやく超簡単な部分であれば業務に入れるようになるくらい。逆にそれだけ時間かけて全く芽が出ないようであればプログラマーには向いていないのかもしれない。。。 https://t.co/cz3qTWLLFN
— 米村歩@日本一残業の少ないIT企業社長 (@yonemura2006) May 21, 2018
しかし、プログラミングを学習するにあたって、独学だとさらに多くの時間を必要とするでしょう。
なぜなら、初学者は始めたばかりではエラーの解決方法がわからず、現役エンジニアであれば5分で解決できることが2時間経っても解決できないことが普通に起こるためです。
仮に5時間に1回、上記のようなケースが発生したとすると、転職できるレベルまで到達するまでには約120時間も余分な学習時間が発生します。
同じスキルを身につけるにしても、近くに教えてくれる人がいればこれだけ時間に差が出てきます。あまり効率的とは言えないのではないでしょうか。
効率の悪い勉強方法を実践する
続いて、初学者の多くの方は書籍での学習を実践しようとしますが、最初から書籍で学習するのはおすすめできません。
なぜなら、書籍は体系的な理解をするためには優秀ですが、プログラミングは最初から体系的な理解は必要ありません。
実際、書籍に書いてあることを丸暗記しようとして挫折した人を何人も見てきました…
まず、初学者がプログラミングを学ぶ上で大切なことは、とにかく動くプログラムを作れることです。
独学では、こうした効率の悪い学習方法や間違った知識を身につけてしまいがちです。方向性を早い段階で正しく向けるためにも、近くに聞ける人がいることは重要と言えます。
エラーの解決方法がわからない
また、プログラミングの挫折率が高い理由としてエラーの解決方法がわからないという人が多いです。
なぜなら、エラーの解決方法にも正しいステップがあり、エラーの解決方法も調べたら出てくるのですが
- なぜエラーが発生しているのかわからない
- 言語のバージョンが違うことによるエラー
- 調べてもエラーの修正方法が出てこない
ど、初学者にとっては、ハマリポイントが数多く存在します。
これらを全て独学で解決できる人は、経験上にはなりますが多くないのかなと思います。
目標設定が難しい
また、仮にプログラミングを学習して転職したい!という目標があったとします。
しかし、転職できるレベルまでスキルアップしようと考えるとざっくりと以下のような目標設定が必要になります。
- HTML+CSSが扱える
- jQuery (JavaScript) を組み合わせて静的なwebページが作れる
- PHPやRubyを使って動的なページが作れる
- CookieやSessionを使ってお問い合わせフォームが作れる
- DBのデータ取得・登録などができる
- フレームワークが少し触れる
ここで難しいのが、ステップを上げるタイミングをいつにするか?という話です。
学習を進めていく中で、ステップを上げるタイミングが早いと理解が難しくなりますし、遅すぎるといつまで経っても次に進みません。
もちろん、独学でも可能ではありますが、第三者の目線がないと目標設定には大いに悩むことになるということは把握しておく必要があるかと思います。
プログラミングの独学は可能という意見は少数派
しかし、プログラミングは独学でも可能という意見も存在します。
例えば、以下のような意見があります。
プログラミングが独学可能かなんて
— むらっしゅ@マレーシア (@MSmurash) January 19, 2019
これだけ情報が溢れてる今
可能に決まってます。
そんなツイートを見て安心してる人
完全に思考停止してますよ。
大事なのは
いつまでに
どのくらいのレベルに
なりたいか
じゃないんですか?
独学で遠回りしてる時間は完全に無駄。
僕の経験からそう断言します
しかし、こうした意見はあるものの、かなり少数派です。
プログラミングは独学可能と考える人はTwitterで約30%
Twitterは割と正直な意見が書かれることが多いため、現実を調べる手段として有効です。
そこで、「プログラミング 独学 可能」と調べてプログラミングは独学可能か?という意見を見てみると、上位10個の検索は以下のような割合でした。
- プログラミングは独学可能・・・30%
- プログラミングは独学が不可能・・・10%
- 独学は可能だが効率的ではない・・・60%
調べるタイミングにもよるので一概には言えませんが、独学は可能であるものの効率的でないという意見が目立ちました。
プログラミングの商材やスクールなどに、
— 有人 | 実務未経験でフリーエンジニア (@freese90) May 28, 2019
『この時代、そんなん独学でも可能』
という否定的な意見もあります。
確かにそうです。
あくまで教材は、
『自分で調べる手間を省く』
という手段なので、
時間を買いたい人が買えばいいと思う。
一方学習の目的が違うので一概には言えませんが、「就職レベルなら独学で挑戦する価値あり」と考える人も一定数いるみたいです。
私はプログラミングスクールにもオンラインサロンにも入らず完全独学でプログラミングを身につけました。と言うか、当時は存在してなかったので独学しかなったのです。少し時間がかかりましたが可能です。
— ヨーショウ@外資系ITエンジニア (@engineer_yosho) October 17, 2019
最低限の知識だけ身につけて実務未経験でもOKのバイトから始めました。#プログラミング学習
どちらの意見も正しいですが、独学可能と答えた人も時間がかかるというのは共通認識と考えて良さそうです。
未経験から独学でエンジニアになった人は30%
現在、僕が働いている会社では、未経験からのエンジニア採用を積極的に進めています。
その中で、未経験から採用された人の数は7人いますが、そのうちプログラミングスクールに通っていた人は5人と実に70%の人がプログラミングスクールを活用しています。
特にプログラミングスクールの卒業生を優遇しているわけでもありませんが、スクールの卒業生が多いのは以下の理由が考えられます。
- 独学で採用に至るスキルレベルを身につけて来る人が少ない
- 地頭がいい人は何が必要か自分で判断して投資ができる
勘違いしていただきたくないので、言っておくとプログラミングスクールが必須と言いたいわけではありません。
ただ、独学でプログラミングを身につけるためには、エンジニア転職を実現する人の中では少数派で難易度は少し上がることは認識しておきましょう。
【目標別】独学で身につくプログラミングのスキル難易度一覧
ここまで、プログラミングを独学で進めるのは難易度が高いという話をしてきました。
しかし、当然全てのゴール設定において独学が難しいわけではありません。
結論からお話すると、独学で身につくスキルレベルと現実的に実現可能な目的と難易度は以下のようになるでしょう。
- 簡単な業務改善ツールを作る・・・難易度【低】
- 新卒として就職するレベル・・・難易度【低】
- 未経験から転職できるレベル・・・難易度【中】
- フリーランスとして活躍するレベル・・・難易度【最高】
簡単な業務改善ツールを作る・・・難易度【低】
まず、エクセルでマクロを組むなどで業務の改善ツールを作ることは十分独学可能です。
様々な未経験エンジニアの方を見てきましたが、こうしたツールを作成したことをきっかけにエンジニアになる意志を強めたケースは少なくありません。
エクセルなどで単純作業があるという方であれば、ぜひそれを自動化して自分の仕事を軽くできないか?を検討するといいでしょう。
新卒として就職するレベル・・・難易度【低】
続いて、新卒としてエンジニアになるために独学で学習するのもいい選択と言えるでしょう。
なぜなら、日本はまだまだ新卒切符という言葉もあるように、新卒採用であればそれほど高いスキルや経験を必要せずともエンジニアとして就職することができます。
新卒として就職するレベルであれば、自分で手を動かしてアウトプットが出せていれば、それほど苦労せずに就職が実現できるかと思います。
どんなアウトプットを作ればいいのか?ということについては、以下の記事でポートフォリオの作り方をまとめているので合わせてご覧ください。
» 【ポイント14個】エンジニア未経験のポートフォリオの作り方!参考例つきでレベルも解説
未経験から転職できるレベル・・・難易度【中】
就職であれば独学でも十分可能ですが、転職となると少し難易度は上がります。
未経験から独学のみでエンジニア転職するのは、不可能ではないものの簡単ではありません。
転職となると可能な限り以下の項目はクリアーしておきたいところです。
- ポートフォリオでアウトプットがまとめられている
- DBやCookie, Sessionなどについても触れる
未経験からエンジニアになる手順は以下の記事でも解説しているので合わせてご覧ください。
フリーランスとして活躍するレベル・・・難易度【最高】
最後に、フリーランスとして活躍できるレベルを独学のみで身につけられるかと言われると正直難しいのではないかと思います。
なぜなら、独学でできる範囲だと技術的に仕事の幅が大きく限定されるためです。仕事の幅が限られるということは、
- 競争が激しくなった
- 需要がなくなった
場合に安定的に稼ぐことが難しくなります。
技術の幅を広げられる仕事を取ればいいと思われるかもしれませんが、仕事として使ったことのない技術を使うことはリスクにもなりえます。
フリーランスで活躍するためにも最初は1年くらいは会社員として経験を積むのがいいのかなと思います。
効率的に進められるおすすめのプログラミング学習手順
では、未経験からエンジニアになることを目指すにあたって、どのような学習手順を踏めば良いのでしょうか。
ここについてざっくり解説していくと、
- まずは独学で学習できる範囲まで学習する
- 詰まったときにメンターやスクールを検討する
という手順で進めるといいでしょう。
プログラミングを独学で学ぶ手順
プログラミングを学ぶ手順については以下の記事で詳しくまとめています。
以下の記事は、言語をPHPとして解説していますが、RubyやPythonなどのサーバーサイド言語であれば言語が変わるだけで基本的に学習手順は全て同じで進められます。
まずは以下の記事通りに独学で進められるところまで進めてみるといいかと思います。
詰まった時にメンターやスクールを検討する
プログラミングを学習していると、いずれ「エラーが解決できない…」「もう無理だ心が折れそう」となるときがあるかと思います。
メンターやプログラミングスクールを検討するのは、その段階に入ってからでも十分遅くありません。
独学せずにスクールに全て頼るのはエンジニアになってから苦労することが多くなるでしょう。
プログラミングスクールを検討されてる方へ
— Simon@IT業界3年目の何もわからない人 (@dir_sh0606) October 24, 2019
先ずはProgateやドットインストールなどの教材を使用して適性があるか測るのをオススメします。
そこから学ぶ手段としてスクールか独学でいくか決めたらいいと思います。
正直スクール入って学ぼうってスタンスじゃ就職してから苦労すると思います。
メンターの選び方やおすすめのプログラミングスクールは以下の記事で解説しているので合わせてご覧ください。
まとめ
ここまでの記事のポイントをまとめます。
- プログラミングの独学は無理ではないがおすすめしない
- プログラミングを独学してエンジニア転職できる人は約2〜3割
- 独学で身につくスキルレベルは「新卒で就職できるレベル」
- 学習手順は「独学」->詰まった時に「スクール」や「メンター」を考える
ここまで、プログラミングの独学は無理なのか?という疑問に対して、無理ではないがおすすめできない理由と実態についてお話してきました。
個人的な意見ですが社会人でプログラミングを学びたい!という方は、独学で始めて詰まったらすぐにメンターやスクールを検討するのがいいのかなと思います。
そうしないと、時間が必要以上にかかり、エンジニアになる前に挫折する可能性も十分にあります。
もし、学習が順調に進んだ場合、スキルが身につくまでの期間を目的別にまとめているので、以下の記事も合わせてご覧ください。