ITコラム

column_main31674

スキルアップ

2021.02.25

プログラミングスキルを最速で身につける独学の勉強方法は?

この記事の監修者
藤岡 弘大
藤岡 弘大

キャリアアドバイザーと求職者の面談や就職支援をおこなっています。
お互いの趣味など雑談しながら、本人も気が付いていない強みを把握し、面接本番でどうアピールしていくか一緒に考えることを心がけています。

プログラミング初心者で、最速で技術を身につけたいと考えている人の悩みを解決します。
後述しますが、「1000時間ルール」という法則がありプログラミング初心者の方はまず1000時間の学習を目標にしましょう。今回は、プログラミングスキルを最速で身につける独学方法や心掛けるべきことなどを解説します。

最終更新日:2021年2月25日

目次

1. プログラミングスキルを最速で身につける独学方法は?
 1-1. 実務レベルのプログラミングスキルの習得には1000時間
  1-1-1. 一流・天才を目指すならば1万時間
  1-1-2. 1日10時間の学習をおよそ3ヶ月
 1-2. 1000時間の学習を時短・最短化するにはどうしたらいい?
  1-2-1. 【前提】「アウトプットを出すこと」を最優先に考える
  1-2-2. 【前提】「分からないことが分かる」のもゴールの1つと割り切る
  1-2-3. 作りたいものから逆算して言語・フレームワークを選ぶ
  1-2-4. 「小さなプログラム」をたくさん書くことを繰り返す
  1-2-5. メンターの存在も重要
2. プログラミングを最短で身につけるために心がけるべきこと
 2-1. 学ぶ言語は常に「1つずつ」
 2-2. 初めは「コピペ」から
 2-3. サンプルプログラムを改変し、成果物を作る
 2-4. エラーメッセージを恐れない
 2-5. 「ググる」力はとても重要
 2-6. 質問できる相手を見つける
 2-7. 学習進捗を管理する
3. まとめ

1. プログラミングスキルを最速で身につける独学方法は?


プログラミングスキルを最速で身につける独学方法をご紹介します。
ポイントとしては、後述しますが「実務レベルのプログラミングスキルの習得には最低1000時間」が必要になります。詳しく見ていきましょう。

▲目次へ戻る

1-1. 実務レベルのプログラミングスキルの習得には1000時間

何かが「得意」「上手」と呼ばれるために必要な時間数を示すものとして、ロチェスター大学のPhilip Guo准教授が提唱する「1000時間ルール」があります。後述しますが、一流・天才と呼ばれるためには「1万時間」が必要です。一流・天才と呼ばれるレベルではありませんが、実務レベルのスキル習得に必要な時間の目安になります。

参照:子どもたちへのアドバイスとしての「1000時間ルール」とは?|GIGAZINE

▲目次へ戻る

 

1-1-1. 一流・天才を目指すならば1万時間

1万時間の鍛錬によって、誰もが一流・天才のスキルを身につけられるという「1万時間の法則」があります。

参考:天才! 成功する人々の法則|Amazon

1万時間というと、達成するためにどれくらいの日数が掛かるかは気になる所です。
具体的な目安としては以下の通りです。

  • 平日4時間ずつ:約9年7ヵ月
  • 平日8時間ずつ:約4年9ヵ月
  • 毎日4時間ずつ:約6年10ヵ月
  • 毎日8時間ずつ:約3年5ヵ月
  • 毎日12時間ずつ:約2年3ヵ月
  • 週末8時間ずつ:約12年
  • 週末2時間ずつ:約48年

例えば大学時代に、毎日8時間プログラミングを大学1年~4年まで行ったとしたら3年5ヶ月で1万時間を超えます。「得意」「上手」というレベルではなく「一流」「天才」と呼ばれるレベルになるためにはこのような積み上げが必要で、一朝一夕の独学ですぐにキャッチアップできるものではないことも事実です。ただ、現実的に1万時間を目標にするのは少々遠いので、まずは1000時間の学習から始めるのが良いです。

▲目次へ戻る

 

1-1-2. 1日10時間の学習をおよそ3ヶ月

1000時間を目標にしている場合、1日10時間の学習をおよそ3ヶ月で達成可能です。

▲目次へ戻る

1-2. 1000時間の学習を時短・最短化するにはどうしたらいい?


1000時間の学習は特に社会人や、アルバイトや課題で忙しい学生にとってはハードルが高いです。
1000時間の学習を最短化する方法はないのでしょうか。
ここでは時短・最短化して効率良く学習する方法をご紹介します。

▲目次へ戻る

 

1-2-1. 【前提】「アウトプットを出すこと」を最優先に考える

前提として「アウトプットを出すこと」を最優先に考えるようにしましょう。
特定のプログラミング言語やフレームワークの文法や仕組み、アーキテクチャを「全て網羅的に学ぶ」という発想ではなく、簡単なもので良いので目標とする成果物を決めるのが重要です。そして、その成果物を作るために必要な技術だけをピンポイントで学んでいくという意識を持って学習することをおすすめします。

ひとつずつコツコツと目標とする成果物をこなしていくようにしましょう。
アウトプットを最優先として、技術書やチュートリアルの内容を丸暗記する必要はありません。

▲目次へ戻る

 

1-2-2. 【前提】「分からないことが分かる」のもゴールの1つと割り切る

前提として、「分からないことが分かる」のもゴールの1つと割り切るのが大事です。
1000時間学んだとしても、1万時間学んだ人の10分の1の学習時間にすぎません。学んだ技術を全て理解し、応用的な内容の開発を一人でこなせるほどのスキルは学習後にもまだ身についていない可能性も高いですが、それで十分と割り切るようにしましょう。「分からないことが分かる」のも学習のゴールの1つであり、ひとつずつ積み重ねていく姿勢が重要です。分からないことはおいおい学ぶようにしましょう。

起業に関心がある場合は、プロダクト開発を行いたいならば、自作できるところは自作しつつ分からないところは外注し、マネジメントを経験するのもおすすめです。

▲目次へ戻る

 

1-2-3. 作りたいものから逆算して言語・フレームワークを選ぶ


作りたいアプリケーションやサービスが既に明確に頭の中で固まっていれば、その実装に必要な言語・フレームワークを選定して学びましょう
例えば、Androidアプリを作りたいならJavaやkotlinを学習し、IOSアプリを作りたいならswiftを学習するといったように、それぞれの分野において得意とする言語が違ってきます。

友人にエンジニアがいれば意見を求めたり、アイデアを企画書に落とし込んだ上でクラウドソーシングでエンジニアに見積もりを求めてみるのも良いです。

またオリジナルアプリの開発サポートを提供するプログラミングスクールもあるので、体験会に参加して意見を求めてみるのも有効です。

▲目次へ戻る

 

1-2-4. 「小さなプログラム」をたくさん書くことを繰り返す

初心者がいきなり「Facebookを開発したい」「Twitterを開発したい」と考えたとしても、現実的に難しいです。それらのアプリケーションの機能を1つ1つ切り出して考えると、実装工数が多く、求められる技術も幅広いので、Facebookであれば「ログイン機能のみ」、Twitterであれば「投稿機能のみ」を再現するなど、「小さなプログラム」をたくさん書くことをまず目指すようにしましょう
ゴールが明確な上、エラーが起きたとしてもコードレビューする箇所が最小で済みます。

▲目次へ戻る

 

1-2-5. メンターの存在も重要

どれだけ参考書通り・教材通りにコーディングしても詰まったりエラーがどうしても解決できない時もあるので、質問できるメンターの存在は重要です。
特に初心者の内はエラーが出る頻度が多いので「挫折させない」ためにも頼りになるメンターの存在は大きいです。

▲目次へ戻る

2. プログラミングを最短で身につけるために心がけるべきこと


プログラミングを最短で身につけるために心がけるべきことをご紹介します。

▲目次へ戻る

2-1. 学ぶ言語は常に「1つずつ」

学ぶ言語は常に「1つ」に絞りましょう。
さまざまな言語に手を出してしまうと、どれも中途半端に終わってしまう可能性が高いです。

例えば、Rubyを学ぶならRuby以外の言語には、そのカリキュラムを終えて成果物を作るまでは触れないなどがあります。RubyではなくPythonやPHPなど他の言語を選んだ場合も同様です。

1つの言語で文法を学習し、フレームワークを学び、アウトプットを作る経験をすることで、その経験を他の言語の学習に役立てることができます。
プログラミング言語にはそれぞれ得意とする処理があるものの、似通っている点も多く、最初の1つをきちんと学習することが基礎として大切です。

▲目次へ戻る

2-2. 初めは「コピペ」から


自分のアイデアをアプリケーションなどの形に落とし込むには、まず文法やフレームワーク、ライブラリの活用などに関する知識が必要です。
また実装したアプリケーションを機能ごとに切り出して、それぞれの機能の実装に必要なライブラリなどを見積もる力も必要です。

そうした知識を得るためには、まずはチュートリアルやカリキュラム、書籍に掲載されている基礎的な文法を学んだ上でサンプルプログラムを「真似てみる」ことが大切です。

最初は書かれているコードを写経するだけでも良いでしょう。写経とは答えとなるソースコード見ながら、実際にキーボードから入力していく作業のことです。慣れてきたら、模写に移行して実際にコーディングをしてみるのも良いです。

▲目次へ戻る

2-3. サンプルプログラムを改変し、成果物を作る

書籍やチュートリアル、カリキュラムに書かれているサンプルプログラムを改変し、自分のアイデアを反映させたオリジナルアプリケーションを開発してみましょう。

例えばサンプルプログラムがシンプルなToDoアプリケーションだとしたら、機能を1つ追加してみるなど些細なものでも良いので自分なりのオリジナルな成果物を作ってみましょう。

▲目次へ戻る

2-4. エラーメッセージを恐れない

エラーメッセージにはエラーの原因やエラーが生じている箇所のコードが記載されています。
初心者の頃はエラーが発生することを恐れて、既に動作しているコードを書き換えたり機能を追加したりすることに対して億劫になりやすいです。
しかしエラーが発生したとしても該当箇所のコードの修正を重ねれば、正しい動作を実現できます。
よってエラーメッセージを恐れず、どんどんコードを書き、改変する経験を重ねた方が結果として解決のためのスキルが身につきます

▲目次へ戻る

2-5. 「ググる」力はとても重要

「ググる」力、要するに「Googleで検索する」ことはとても重要です。
エラーや分からないことに直面しても、ググれば解決できることも多いです。

実装したいアプリケーションや機能のアイデアがあれば、類似するアプリケーションのコードがオープンソースで公開されていないか調べます。
例えば、エラーが発生したら似たようなエラーに直面した他のエンジニアが解決策をブログに書いていないか調べるなどがあります。

ググる力を身につけることで、圧倒的に問題解決能力が高まり、効率が向上するでしょう。

▲目次へ戻る

2-6. 質問できる相手を見つける


Googleで検索しても、エラーメッセージを読み解いても思うようにエラーを解決できないこともあります。
この時は自分よりも経験値が高い他のエンジニアに質問したり、コードレビューしてもらうことが有効です。

また、知人がエンジニアであれば助けを求めたり、TwitterなどのSNS、クラウドソーシングやスキルシェアサービスを利用するほか、勉強会に参加したり、スクールに通ってエンジニアの友人を作ることも有効です。

▲目次へ戻る

2-7. 学習進捗を管理する

どこまで学習したかをきちんと管理しましょう。
例えば参考書のサンプルプログラムを写経するとして、コアとなる機能のコードを真似して似たような処理を実装できたタイミングで満足してしまったとします。しかし実際にアプリケーションを1つの「成果物」とするには、付随する他の機能やUIの実装も大切で「やりきる」ことが最も重要です。

IT業界は進化のスピードが早いので、エンジニアに求められる力の一つに「向上心」があげられます。何ごとにも満足せず、常にやり切り、技術をブラッシュアップしていく姿勢がエンジニアに求められます。

▲目次へ戻る

3. まとめ

今回は、プログラミングスキルを最速で身につける独学方法や心掛けるべきことなどを解説しました。プログラミングスキルを身につけるためには「ひとつのことをやり切る」という姿勢が重要で、簡単なアプリでも良いので目標物を決めるようにしましょう。アウトプットを重ねてトライ&エラーを重ねていくことが大切です。本記事を良く読んで、プログラミングスキルを最速で身につけために必要なことを理解して頂ければ幸いです。

▲目次へ戻る

SHARE

最新記事

zoom_mv_07

卒業生インタビュー

2021.10.13

【卒業生の声:ツヅクさん】不動産からIT業界へ。業務の電子化をきっかけに、エンジニアへの転職を決意しました

受講スクール プログラマカレッジ 受講期間 昼間コース(2020年1月生) 料金 無料 就職先 株式会社クリアス・テクノロジー プログラマカレッジ卒業生のツヅクさんにお話しをお伺いしました! 目次 職場でのシステムトラブ […]

続きを見る

無料相談する

INTERNOUS,inc. All rights reserved.