おすすめの学習法

【独学は可能?】プログラミング学習に必要な時間と効率的な学び方

「未経験からプログラミングを学ぶには、どれくらい勉強すればいいんだろう」
「独学だけでプログラミングを身に付けることはできるのだろうか」

今の職種からエンジニアへの転身を図ろうと思ったものの、こうした不安を抱いてしまう人は非常に多いです。

そこでこの記事では、以下のような点について解説していきます。

  • 未経験からプログラミングを学ぶ場合の目安となる勉強時間
  • 勉強を続けるためのコツ
  • 具体的なプログラミングの学習方法
  • 独学のみでプログラミングを身に付けることができるかどうか

プログラミングの学習時間は1000時間が目安

プログラミングの勉強

学ぶ言語や個人の能力によって変わってくるものの、未経験からプログラミングの学習を開始してからエンジニアとして現場で通用するようになるには、最低でも1000時間の勉強時間が必要です。

なぜ1000時間も必要なのか

「1000時間はいくら何でも長すぎるんじゃ・・・」

数字だけ見てしまうと、思わずこう考えてしまう方もいらっしゃるでしょう。
しかし、人生を逆転できる時間だと考えれば、決して長い時間ではありません。

人生を変えるための勉強といえば「受験」「資格取得」の勉強ですが、これらの勉強時間は大体以下のような目安となっています。

受験勉強

■私立大学 : 2000時間以上
■国立大学 : 3000時間以上

資格取得の勉強

■税理士 : 3000時間
■司法書士 : 3000時間
■中小企業診断士 : 1000時間

このように、人生を懸けた勉強には時間がかかるものです。

なお、エンジニアになるための勉強時間として300時間や500時間でも充分だと説明しているサイトやスクールもありますが、未経験からWeb系エンジニアになるのは厳しいでしょう。

就職先がSES系企業であることも多いでしょう。

SESとは、SI業界での4次請けや5次請けといった企業であり、客先常駐といって派遣先の会社で働く労働形態になることが多いでしょう。

スーツを着て派遣先の会社で働くことも多く、開発経験も案件によっては全く積めないこともザラにあります。

こうした理由から、Webエンジニアのような、働き方の自由度が高く将来性も明るい職種に就くには最低1000時間の学習時間を確保する必要があるのです。

勉強のペース

プログラミングの勉強を始める場合、いきなり仕事を辞めて勉強にコミットするのではなく、まずは働きながら並行して勉強する方が良いです。

勉強を始めてはみたもののすぐに心が折れてしまう、ということもあるからです。
その場合、ただ仕事を失っただけになってしまいますので、仕事は続けておくべきでしょう。

では、働きながら1000時間もの学習をするにはどうすればよいのでしょうか?
例えば、平日10時から20時まで仕事をして21時に帰宅する、という人の場合で考えてみましょう。

まず平日の場合は、2時間程度の勉強時間が確保できれば充分です。
これくらいの時間でしたら、やり繰りすればどうとでもなることが多いはずです。

「仕事を終えて帰宅してから2時間も勉強する気力など湧かない」という場合は、勉強時間を刻めばOKです。
夜にまとめてやらなければならないわけではありませんので、早朝に起きて1時間、寝る前に1時間、という形でもまったく問題ありません。

そして休日ならば、最低でも8時間は勉強できるはずです。

となりますと、30日間で月に8日休みがあるとした場合、

■平日 : 2時間 × 22日 = 44時間
■休日 : 8時間 × 8日 = 64時間

・・・となり、合計で月に108時間の学習時間を確保することができます。

このペースで勉強を続けられれば、9か月ほどで1000時間に到達する計算となります。
ブーストしたい方は、後半からは仕事を辞めて勉強にコミットする、という方法も有効です。

1000時間の学習を達成するためのコツ

エンジニアになるための1000時間にも渡る勉強は、生半可な気持ちではやり遂げられません。
最後までまっとうするために、是非以下のようなことを実践してみてください。

周囲に公言する

親や友人などに「自分はエンジニアになるための勉強を本気で始める」と宣言したり、ブログをやっている方ならばブログ上で告知したりする方法がおすすめです。

誰にも言わずに始めた勉強ならば、誰にも言わずにやめることができてしまいます。
しかし、一度公言してしまったことはやめにくいものです。

こうした心理を活用して、自分を追い込んでみるのが有効です。

無駄な時間をなくす

  • 通勤中
  • 会社の昼休み
  • 入浴中

誰しも、こういう時間があるのではないでしょうか。
このようなちょっとした空き時間では、スマホゲームでの暇つぶしやボーっとするだけになってしまっている人が多いと思います。

しかし、これらの時間を活かすことで、少しでも勉強を進めることができます。

通勤ラッシュで本を読むようなスペースがないならば、YouTubeでプログラミング関連の動画を探してイヤホンで聞く、という手もあります。

そして入浴中であろうと、学んだ内容を頭の中で整理する時間に使えます。

ちょっとした空き時間でも上手く活用して少しでも勉強に充てていけば、塵も積もればなんとやらで、数か月後には大きな成果となることでしょう。

時間の断捨離を行う

上記は空き時間や無駄な時間の活用についてでしたが、それだけでなく、時間の断捨離をして大幅な勉強時間の確保に動くことも重要です。

例えば、帰宅してから1~2時間程度晩酌する人ならば、その時間をごっそりと勉強時間に置き換える、といったような形です。

仕事の疲れを癒すための晩酌の時間がなくなるのは厳しいものですが、何も永遠に断つわけではありません。
長くても1年弱、集中的に行えば半年程度で1000時間の勉強が完了するのです。

「今だけの我慢だ」と割り切り、目標に向かって集中的に勉強を進めるべきです。

最初から無理をしすぎない

時間の断捨離と逆説的ではありますが、何も最初からすべてを断って勉強だけに打ち込むことはありません。

最初の段階で大事なのは「コツコツと継続していくこと」です。
ただでさえ未知の領域を学ぶということでストレスが大きいのに、その上、好きなこともいきなり全部捨てて勉強だけに身を投じるというのはなかなかできることではありません。

従って、まずはできる範囲で勉強を開始し、徐々に、平日は2時間、休日は8時間という勉強時間を確保できるようになることを目標にしましょう。

プログラミングの学習方法

学習方法

未経験からプログラミングを学ぶためのロードマップについて解説していきます。

学ぶ言語を決める

まずは言語の選択からです。
どのような言語を選んでも問題ありませんが、IT業界で最も勢いのある「Web系の言語」を選択するのがおすすめです。

主なWeb系の言語は以下の通りです。

言語 分類 難易度
HTMLやCSS マークアップ言語 ★☆☆
(易しい)
RubyやPHP スクリプト言語 ★★☆
(普通)
Java コンパイラ言語 ★★★
(難しい)

HTMLやCSSはプログラミング言語とは少し違うので、せっかく学ぶのならば、開発現場で多く採用されているRubyかPHPかJavaあたりを選ぶのが一般的です。

Progateを活用する

Web系の開発言語を学ぶならば、まずは「Progate」というオンライン学習サービスを利用するのがベストです。

プロゲート■Progate

Progateとは、元東大生たちが作り上げたプログラミング初心者向けのサービスで、100か国以上の国で提供されており、ユーザー数は200万人を超えています。
エンジニアを目指す初心者の多くが、まず最初に利用する学習サイトとなっています。

無料版と有料版がありますが、本気で学ぶつもりならば迷わず有料版を選択すべきです。

教材内容としては、とにかく初心者目線で作成されているため取っ付きやすく、最初の教材としてはうってつけです。
Progateでの学習から入って、いきなり心が折れてしまうというケースはあまりないでしょう。

ただし、Progateは「プログラミングの大枠を掴む」という点では優れているのですが、専門的な知識やスキルが身に付くというところまでは辿り着かないので、あくまで学習の第一段階と捉えておくべきです。

サンプルコードの写経

プログラミングの基礎について学んだ後は、サンプルコードの写経(模写)をひたすら繰り返していきます。

「ただ写すだけの行為に意味なんてあるの?」

そう感じる方もいらっしゃると思われますが、写経には以下のようなメリットがあります。

  • 繰り返し同じプログラムを書くことで基本的な文法が自然と身に付く
  • 写しただけとはいえ、自分が書いたプログラムが動くことで自信に繋がる
  • デバッグスキルを学べる

ただ写すだけとはいえ、最初のうちは高確率でタイプミスが発生します。
その際、どこでミスをしたのかというデバッグ作業が必要となるのですが、勉強段階でデバッグ作業に慣れておくことで、エンジニアにとって必須であるデバッグスキルも身に付いていきます。

言語に応じた教材を選んで知識を深める

プログラミングの基礎について学んだ後は、より高度な教材を言語に応じて選び、知識を深めていきます。

例えばRubyならば、「Ruby on Railsチュートリアル」というRubyに特化した学習サイトが存在します。
こちらのチュートリアルをしっかりやりきれば、Rubyに関する知識やスキルはかなり向上することが期待できます。

このように、言語に特化した学習サイトもありますし、幅広く網羅している高度な学習サイトもありますので、そういったサイトを利用しながらスキルを高めていってください。

自作のサービスやアプリを作る

最後に、これまで学んできた知識やスキルを総動員させて、渾身のサービスやアプリの作成に取り掛かります。

ここで作成したサービスやアプリは、就職活動時のポートフォリオとして使うレベルのクオリティを目指してください。
採用担当者は、学歴や資格よりもポートフォリオを重要視します。

なお、どのようなサービスやアプリを作っていいかわからないという場合は、以下の記事を参考にしてみてください。

プログラミングは独学可能?

独学

プログラミングを学ぼうとした際、ほとんどの方が「独学でいくか、スクールを利用するか」という問題にぶつかります。

そこで、独学のメリットとデメリット、独学のみでエンジニアレベルのプログラミングの習得が可能なのかについて解説していきます。

独学のメリット

最大のメリットは、「費用が抑えられる」という点です。
というより、メリットは費用面のみと言っても過言ではありません。

独学ならば、ネット上の無料学習サイトを使ったり、安い有料サイトを活用したり、質問サイトを駆使したり、書籍を購入したりといった形で、必要最低限の費用で勉強を進めることができます。

また、自分のペースで自由に勉強を進めることが可能という点も一応メリットではありますが、これをメリットと取るかデメリットと取るかは人それぞれなので難しいところです。

独学のデメリット

メリットに対して、デメリットとしては以下のようなものがあります。

  • モチベーションの維持が難しい
  • 難しい問題にぶつかってしまった時に乗り越えられない
  • 勉強のペースが遅れがちになる

個別に見ていきます。

モチベーションの維持が難しい

未経験からプログラミングの勉強を始める際は、わからないことだらけです。
何をどうしていいのかもわからない状態で、心が折れることなく勉強を続けるというのは尋常な事ではありません。

また、無事にある程度勉強が進んだとしても、要所要所で躓いてしまう部分が出てきてしまいます。
そんな時に、勉強開始当初のモチベーションを維持したまま続けられる人は、残念ながらあまり多くはありません。

難しい問題にぶつかってしまった時に乗り越えられない

誰でも、個人の力では「ここまでが限界」というラインがあります。

ある程度知見のあることならばまだしも、未経験のジャンルの勉強を進める中で、何をどうやってもクリアできない問題とぶつかった時は、多くの方がやる気を失ってしまいます。

勉強のペースが遅れがちになる

メリットのところで触れた「自分のペースで勉強を進められる」という点についてですが、逆に言えば、いくらでも勉強のペースを落とせるということにもなってしまいます。

独学の場合、よほど自己管理能力が高くなければ、大抵の場合は想定していたスケジュールよりも遅れることになってしまいます。

独学のみでプログラミングを身に付けるのは困難

以上のように、独学にはデメリットが多い上、そもそも勉強をやり切ることが困難です。

自己管理能力が高く、強いメンタルを持っている人ならば独学のみでも1000時間の勉強をやり通せるかもしれませんが、よほどの自信がない限りは独学のみで勉強を進めるのは避けた方がよいかと思います。

なお、前述した通り、エンジニアとしての将来性を考えないのであれば300時間程度の独学でも就職は可能です。
しかし、待遇がよく将来性もあるWebエンジニアのような職種を目指す場合は、最低でも1000時間程度の勉強が必須となります。

効果的なプログラミング学習ならばスクールの利用がおすすめ

プログラミングスクール

上記の独学のデメリットをすべて補えるのが、スクールの利用です。

プログラミングスクールを利用した場合のメリット
  • エンジニアを目指す仲間がいるのでモチベーションを維持しやすい
  • 難題にぶつかっても講師に相談できる
  • 勉強のペースが管理されるためスケジュール通りに進められる
  • 就職時にアピールできる

プログラミングの勉強を効率的に進めていくためには、やはり独学のみでは厳しいと言わざるを得ません。
少しでも早いエンジニア就職を目指す場合は、スクールの利用を検討するのも一つの手段です。

RUNTEQでは、開発現場が求めるレベルに到達できるWebエンジニアを養成するためのカリキュラムを組んでおります。

受講生からは、時に「厳しい」「難しい」という声が上がりますが、その分最後までやり通した時の恩恵は高く、転職成功者のWeb系開発企業の内定率は98%となっております。

もし「独学でやり切るのは難しい」と感じた場合は、是非RUNTEQの無料相談会にお越しください。

RUNTEQの無料キャリア相談会を見てみる