こんにちは。
この記事を読んでいるあなたは、

「未経験からプログラマーになるには1000時間の勉強が必要なの?」
「プログラミングにかかる1000時間って、どんな内訳なんだろう?」
「効率的にプログラミングの学習をやって成果を出すにはどうやったらいいんだろう?」
このように思っているのではないでしょうか?
よく言われる、「プログラミングの勉強は1000時間かかる」という話。
もしあなたがこれからプログラミングの勉強をする場合、1000時間は途方も無い時間に思いますよね。
そして、できる限り短期間で終わらせたいと思っているでしょう。
そこでこの記事ではそんなあなたのために、以下のような内容を説明します。

・プログラミングの習得に1000時間かかると言われる理由とその内訳
・(僕の実例紹介)1000時間の時間を使ってもうまくいかないケース
・短時間のプログラミング学習で成果を出す方法
この記事を最後まで読むことによって、プログラミング学習に時間がかかると言われる理由や、プログラミングの学習を効果的に進める方法を知ることがができます。
最後まで読んで、最速であなたの目標を達成できるようにしてくださいね。
この記事の信頼性
僕は大学のときからプログラミングをはじめました。
学部の研究と趣味を兼ねる形で、「プログラミングを使ったアート作品」を作り始めたのがきっかけです。
作っていたアート作品は、「メディアアート」といわれるものです。
分かりやすい例だと、チームラボのような作品を作るアート表現でした。
僕は大学の3年、4年の時、このアート作品作りにどっぷりとハマっていました。
学校の授業の空き時間はもちろん、家に帰ってからもプログラミングをやっていました。
毎日5時間くらいはプログラミングをしていたのではないかと思います。
ただ、「とにかくアート作品を作りたい!」という思いばかりが先行してしまい、ろくにプログラミングの基礎も分からない状態のまま、毎日手探りでプログラミングをしていました。
そんな頑張りのおかげで大学を無事に卒業することができました。
プログラミングの本質的な理解はできないままでしたが、浅い知識ながらも長い時間をかけた結果、まわりの人からは評価してもらうことができました。
そこで、「自分はプログラミングができる」と勘違いしてしまいました。
そんな勘違いをしたままの大学生は、次の4月からエンジニアとしてメーカーに入社しました。
「プログラミングができる」と自負して自信満々に配属されたのですが、そこで気づいたのは、周りの人の圧倒的なレベルの高さです。
みんな、プログラミングの本質的なところを理解していますし、作業も非常に早い人達ばかりでした。
そこで、「自分はプログラミングができないんだ」ということに気付かされました。
あれだけ長い時間プログラミングをしていたにも関わらず、です。
結果的に、「全くプログラミングができない側の人間」になってしまった僕は、そこから1年くらいみっちりと指導されることになりました。
周りからは「こんなことも分からないの?」という目で見られてしまい、非常に大変だった思い出があります。
今思い返せば、学生のときにもう少ししっかりとプログラミングの基礎や本質的なところを理解できていれば、もっと楽だったでしょう。
大学の頃、僕はプログラミングの勉強方法を間違っていたのです。
この記事は、そんな僕の「間違ったプログラミング学習方法とその後の苦労」を踏まえて、プログラミング学習を効率的に学習するための方法をまとめています。
僕の体験がベースになっているので、非常に信頼性は高いと思っていただいてよいかと思います。
そもそも「プログラミングの習得に1000時間かかる」と言われる理由

まずはじめに、「プログラミング学習は1000時間かかる」と言われる理由を説明していきましょう。
プログラミング初心者の場合、何から始めたらいいか分からず時間がかかるため
もしあなたが「これからプログラミングの勉強をする!」という場合、何から始めたら分からないのでしょうか?
・「プログラミングをする」とはどういうことかが分からない
・どうやって始めたらいいかが分からない
このような部分が分からず困ってしまうかと思います。
プログラミングを学習する人にとって、一番最初に壁になるのが「何から始めたらいいかわからない」という点です。
そのため、いろいろな参考書やWebサイトを見てまわることになります。
「プログラミング学習に1000時間かかる」と言われる最初のステップは、こんな迷うところから始まるのです。
エラーが出たときに長い時間ハマってしまうため
プログラミング初心者を悩ませるのが、学習中に起きるエラーです。
特にプログラミングを始めたばかりの頃は、「何が悪いのか?」の検討がつかず、非常に大変な思いをします。
場合によっては、1つのエラーを解決するのに丸一日かかってしまう、なんてこともあります。
特に独学でプログラミングを勉強しているときは、このエラーが、プログラミング学習の最大の敵になるでしょう。
なかなかエラーが解決できずに苦しむ時間が長く続くこともあり、結果的にプログラミングの習得には1000時間くらいかかってしまうという側面があります。

起こったエラーの解決方法を探し回っている間に、いろいろな知識がつくからです。
また、エラー解決のスキルや経験は実際にプログラマーとして働く際にも流用することができます。
一人前に通用するレベルでは、非常に広範囲のスキルが求められるため
プログラマーとして働く際、必要なのはプログラミングスキルだけではありません。
その他にも「ソフトウェアの設計スキル」や「プロジェクトやタスクの管理スキル」、「他の人とのコミュニケーションスキル」などが求められます。
プログラミングだけでも大変なのに、さらにこういったスキルも追加で求められます。
こういったものを身につけようとすると、どうしても1000時間くらいはかかってしまいます。
プログラミングの習得は、これまでの経験が重要になることもあるため
最後は身も蓋もない話ですが、プログラミングをスムーズにできるようになるためには、「どのくらいプログラミングの学習に時間をかけたか?」が重要になることがあります。
例えば、以下のようなものが該当します。
・不具合のパターンを知っている
・不具合の調べ方を知っている
・素早いプログラムの書き方を知っている
・便利なプラグインを知っている
こういったものって、プログラミングを勉強している間に少しずつ頭に入ってくるものだったりします。
どれもが非常に小さい内容ではあるのですが、プログラマーとして働く上では非常に重要です。
プログラミング習得の1000時間には、こういったものも含まれていたりします。
プログラミングの学習時間別のスキルのイメージ

ここまで読んでくださったあなたは、

「プログラミングの習得に1000時間かかるのはわかった。
1000時間に到達するまでに、勉強にかけた時間ごとのスキルの目安が知りたいよ!」
と思っているかもしれません。
そこで、続いてはプログラミングを1000時間学習する上で、「学習時間ごとの、平均的なスキルの目安」をご紹介します。
この目安はあくまで、「効率的にプログラミングの学習を続けていた場合」です。
僕のように、非効率な勉強をしていたら、1000時間勉強しても身につかない可能性があるので注意してくださいね。

〜200時間: 文法を理解したり、サンプルの写経をしたり簡単なエラーなら解決できる
ドットインストールやProgateなどの入門的な内容を一通り実施し、基本的なif-elseやloop文などが分かっている状態です。
簡単なサンプルプログラムであれば、教科書やWebに載っているものを写経することができるレベルです。
簡単なエラーであれば、比較的時間をかけることなく修正することができます。
ただ、ちょっとでも複雑なプログラミングをしようとすると手が止まってしまいますし、これまで見たことのないエラーが表示されても、なかなか解決ができなかったりします。
プログラミング学習は、ここまでの時間で一つ大きな壁があります。
それは、プログラミング学習を始めた直後は右も左も分からない状態であるため「何をやったらいいか分からない「何が分からないか分からない」からです。
ここで、多くのプログラミング初学者の人が脱落していきます。

このフェーズでは、分からないなりに学習を続ける、粘り強さが必要になります。
〜400時間: 簡単なアプリを作れるようになる
電卓やメモ帳などの簡単なアプリであれば作れるようになるレベルです。
クラスやオブジェクト指向などプログラミングとして非常に重要な概念も理解できている状態です。
基礎的な学習から、少しずつできる幅が広がってくるので、少しずつプログラミングが楽しくなってくるタイミングでもあります。
とはいえ、まだまだあなた一人で何かを作ることはできないですし、サンプルプログラムなどがない状態だと、ほぼ何も作れないでしょう。

〜600時間: 知識の幅が広がる

あなたがフロントエンド系のプログラミング言語から学習を始めたとしたら、バックエンド側の知識の習得ができたりと、知識の幅が広がってくるのがこの頃でしょう。
出てくるエラーも、随分と見慣れてきてほぼ一人で解決できるようになってきます。
また、チーム開発をやったり、「見やすいプログラムとは何か?」というあたりを勉強し始めるのもこの頃やるとよいでしょう。

僕はこのくらい学習をやっている段階でも、「動けばいい」という考え方でプログラミングをしていたため、後々苦労しました。
「動けばいい」という考え方は、少しずつ卒業していきましょう。
〜800時間: ポートフォリオとしてWebサービスやアプリが作れるようになる
フロントエンドやバックエンドが通信するアプリが作れるようになるレベルです。
ポートフォリオとして、ある程度の見栄えと機能を持ったアプリを作れるようになるため、未経験からプログラマーを目指す場合は、このくらいのタイミングから転職活動や案件獲得に向けて動き始めるのがよいでしょう。

1,000時間以上: 現場で活躍できるレベルのスキルが身につく
実務未経験のプログラマーとしては十分なスキルを持ち、人材が不足しているスタートアップ系の企業からは内定をもらえるようになるレベルです。
ただ、大手のIT企業は競争倍率も高いため、実務経験がないと入るのは難しいです。
大手のIT企業を目指すのであれば、独学ではなく実務で経験を積み、さらに転職で目指すのがよいでしょう。
【実体験】1000時間勉強しても習得できない方法

ここまでで、1000時間の勉強時間に到達するまでの、想定されるプログラミングのレベルを解説しました。
次は、僕自身の実体験を踏まえつつ、「1000時間プログラミングの勉強をしてもスキルが身につかない方法」を解説します。
完全にアンチパターン (真似してはいけない方法)なので、反面教師として読んでいただければと思います。
基礎を理解せずに次に進む
プログラミングの学習をしたり、作りたいものを作ったりする際、基礎を理解せずに進めることができてしまいます。
例えばあなたがプログラミングをしている中でわからない文法があった場合、

「まあ、いいか」
「とりあえず動いてるからいいか」
このように考えて進めてしまっているのであれば要注意です。
分からないことを放置していると、応用的な内容も学習することはできません。
基本的な内容を理解しないまま次に進むと、次第に「何が分からないか分からない」状態になってきます。
この状態になると、再度基礎部分に立ち返って勉強をすることになるため、時間をロスしてしまいます。
こんなことをしてると、1000時間勉強したとしても、本来のスキルレベルには到達しないですよね。
「どのくらいのスキルが必要なのか?」を理解せずに学習を続ける
僕は「エンジニアやプログラマーとして必要とされるスキル」を全く理解せずに就職した結果、非常に大変な思いをしました。
エンジニアやプログラマーに求められるものを知らなかったために、仕事を始めた後、毎日

「え、プログラマーやエンジニアってそんなこともやるのか!?」
「こんなに高いプログラミングのレベルが必要だったんだ・・・」
こんな驚きの連続でした。
これはなにも、新卒でエンジニアやプログラマーとして働くケース以外も同じです。
これからプログラミングを勉強してプログラマーになりたいと思っているあなたも、
・どのくらいのプログラミングのレベルが求められるのか?
・プログラミング以外ではどんなスキルが必要とされるのか?
以上のものを知っておかないと、なかなかプログラマーとして転職が決まらなかったり、仮に決まったとしても非常に大変な思いをすることになります。
僕はプログラマーになったあと、本当につらい思いをしました。
「もう無理だ・・・辞めたい」と思うのは毎日のことですし、「あぁ、自分は何もできないんだ・・・」と、鬱っぽくなってさえいました。
これを読んでいるあなたには、そんな思いをしてほしくありません。
そこで、このブログではこれからプログラマーをめざすあなたに、プログラマーになるための情報をいろいろとまとめています。

「これからプログラマーになりたい!・・・でもできる限り苦労はしたくないな」
と思っているのであれば、必見の内容です!
僕と同じ苦労をしないためにも、以下の記事も読んでみてくださいね。
プログラミングの勉強ばかりして、プログラマーに必要なスキル全体像を把握しない

プログラミング初心者の人は見落としがちですが、プログラマーになるためには、 プログラミング以外にも必要な知識やスキルが多くあります。
例えば、以下のようなものが必要です。
・チームで開発するスキル
・他の人からも読みやすいプログラムを書くスキル
・立場の違う人と議論をするコミュニケーション能力
こういったスキルがないと、「プログラムを書けるだけの人」という扱いになり、プログラマー転職や、フリーランスエンジニアとして案件を獲得することはできません。
これらのスキルを身につけるのに最も簡単な方法は、プログラミングスクールに通うことです。
プログラミングスクールではプログラミングだけではなく、チーム開発や他の人と議論をする場もあり、プログラマーに必要な総合的なスキルを高めることができます。

「できるだけ早くプログラマーになりたい」
と思っている人は、プログラミングスクールへ通うことを検討してみましょう。
あなたの目的に合わせた最適なプログラミングスクールは、こちらの記事にまとめてあります。
たくさんあるプログラミングスクールの中から、エンジニアの経験を踏まえてオススメのプログラミングスクールを厳選してあります。
是非一度、目を通してみてください。
(オマケ)傲慢になる
僕は学生時代に、(今思えば些細でどうでもいいレベルの)成果が出てしまっていたため、傲慢になってしまっていました。

そんな経験もあって、僕は我流でプログラミングをしただけで、

「自分はプログラミングができる!」
と思ってしまっていたのです。
今思えば、全く基礎ができていない状態でしたし、「プログラミングができる」なんて口が裂けても言えないレベルでした。
そして、本当はもっと本格的にプログラミングの勉強に向かい合うべきところを、手をぬいてしまっていました。
もちろん自信を失う必要はありませんが、現場のプログラマーのレベルは本当に高いです。
極端な例、「1000時間独学で勉強しても、自分はまだまだだ」と思い、真摯に勉強に向き合う姿勢をオススメします。
短期間でプログラミングを習得する方法

ここまでで、プログラミングを1000時間学習しても身につかない方法を紹介してきました。
こういった「真似してはいけない例」を踏まえて、この章では「短期間でプログラミングを習得する方法」を紹介します。
ここに書いている情報の詳細は、以下のページにまとめています。
もし「もっと詳しく知りたい!」と思った場合は、以下の記事も読んでみてくださいね。
独学で、ある程度基礎を勉強する
まずは独学でプログラミングを勉強しましょう。
何故なら、プログラミングを他の人に教わるとしても、「プログラミングって何?」という状態だと、教わる効率が悪いためです。
・エラーが発生して、その解決に苦労したことがある
というところまではあなた自身で勉強するようにしましょう。
プログラミング言語は何でもOKですが、もしあなたがプログラミングを全くやったことがなければ、HTMLやCSSなどがオススメです。
それらの言語を勉強した後、JavaScriptなどの、より複雑なプログラミング言語に進むことをオススメします。
プログラミングの始め方分からない!・・・という場合は、以下の記事を読んでみてください。
プログラミングスクールで時短を実施
すでに説明したとおり、プログラマーには、プログラミング以外のスキルも必要です。
・チームで開発するスキル
・他の人からも読みやすいプログラムを書くスキル
・立場の違う人と議論をするコミュニケーション能力
こういったスキルは、あなた一人ではなかなか身につきません。
そして、「読みやすいプログラム」と言われても、何が読みやすいプログラムか?が分かりづらいのではないでしょうか。
そこでオススメなのが、プログラミングスクールに通うことです。
プログラミングスクールに通うことで、プログラミングをする以外のスキルも網羅的に勉強することができます。
「できる限り短期間でスキルを身につけたい」と思っているのであれば、是非プログラミングスクールに通うことを考えてみましょう。
あなたの目的別・プログラミングスクールは以下の記事にまとめてあります。
この記事では、
・市販の教材だと勉強がはかどらないから、あなた向けにカスタマイズされた教材で勉強したい
・今やっている仕事や育児と両立したい
・スマホアプリのエンジニアになりたい
など、あなたの目標ごとにオススメのプログラミングスクールを解説しています。

この記事で紹介しているプログラミングスクールは、僕のプログラマーの経験を踏まえて厳選しているので、安心してくださいね。
実務でプログラミングを利用する
ある程度プログラミングのスキルが身についたら、プログラマーとして働いて実践の中でスキルを高めていきましょう。
プログラミングのスキルは、ある程度のレベルに到達したら、実践の中で磨いていくのが一番です。
プログラマーとして働いていくと、毎日新しく生きた教材で勉強するくらいの価値があります。
「分かりません、できません」が許されない真剣勝負の場ですが、その分、あなたのスキルが高まること間違いなしです。
ですので、僕はプログラミングを1000時間くらい勉強してオリジナルのWebサービスやアプリなどを作れるようになった後は、早いタイミングでプログラマーに転職することをオススメしています。
(自戒を込めて)プログラミングの勉強は効率よく進めよう

ここまでで、僕自身の経験を踏まえ、やってはいけない効率の悪いプログラミングの勉強方法をお伝えしてきました。
最後に・・・ですが、何か勉強をするときは効率よく進められるようにしましょう。
プログラミングの勉強は、あくまで「手段」であり、「目的」ではありません。
「1000時間勉強すること」が目的にすると、どこにも通用しないスキルを持った人になってしまいます。
そのためには、すでにお伝えした通り、プログラミングスクールなどで効率よく勉強するのがオススメです。
最短・最速であなたの目標に向けて、頑張っていきましょう!
この記事は以上です。
ここまで読んでくださり、ありがとうございました!
コメント