Written by Manabu Bannai

【公開】プログラミングを高速で理解するコツ【論理+体験談の解説】

PROGRAMMING

プログラミングを効率的に理解したい人「プログラミングを効率的に理解するコツを知りたい…。 最近はプログラミング学習を頑張っているけど、なにせ時間がかかります…。最初は時間がかかっても仕方ないという言葉もあるけど、、、自分は他人よりも遅い気がする…。 仕方ないことかもですが、なにか、もっと早く勉強する方法とかがあれば、ぜひ知りたいです。」

こういった疑問に答えます。

本記事の内容

  • プログラミングを高速で理解するコツを公開します
  • アクティブラーニングとセットでやるべき重要タスク

この記事を書いている僕は、エンジニア歴5年ほど。

プログラミングはすべて独学で身につけ、フリーランスエンジニアとして年収1,800万くらいを稼いでいました。

最近は「プログラミング学習方法の発信」に注力しており、今回は「効率的にプログラミングを理解するコツ」について解説します。

僕の経験談を交えつつ、論理的に解説していきます。

プログラミングを高速で理解するコツを公開します


結論は、アクティブラーニングです。

アクティブラーニングとは

一言でいうと「能動的な学習」ですね。

  • よくある学習法 → 参考書を読む。授業を聞く。
  • アクティブラーニング → 自分でテストを作る。人に教える。

かなりざっくり解説だと上記のとおり。
なお、アクティブラーニングの効果は世界中で研究されています。

まだまだ新しい分野でもありますが、各種研究では成果の報告があります。そして、僕の体感値としても、アクティブラーニングは効果的です。

プログラミングをアクティブラーニングする方法

結論からいうと、技術書を1冊ほど学び終えたら、作品をつくることです。
下記参考です。

僕は当サイトからプログラミング学習方法を発信しているのですが、上記は僕の教材で学習している方の実績です。

みなさん「学習→アウトプット」というプロセスを踏んでおり、素晴らしい。そして、これらのツイートを見て僕も思い出したのですが、僕も過去にアクティブラーニングをしており、その分野では実務レベルの知識が付きました。

体験談:僕がアクティブラーニングした際の実績

下記のとおり。

  • WordPressテーマの作成 → WordPress基礎を学習した後に作成しました。自分でテーマを作ることで、確実に知識が定着しますね。
  • あなたの人生を変えた本 → PHPやSQLの基礎学習を振り返るために作成しました。シンプルなアプリですが勉強になりました。
  • ReLife[リライフ] → 留学生のマッチングサイトです。こちらはLaravelで作成。こちらもLaravel知識の定着に役立ちました。

上記のとおり。当時の僕は「試しに作ってみようかな・・・」という気持ちだったのですが、今となって振り返ると「これはアクティブラーニングだったな」と思っています。

アクティブラーニングはシンドいです

冷静に考えてみたらわかりますが、アクティブラーニングは肌感覚としても「効果がありそうだ・・・」と気づくはずです。

  • 従来の学習法 → 参考書を読んだり、講義に出席したりと、受け身。
  • アクティブラーニング → シンドいけど、脳ミソをフル活用できる。

上記のとおりで、論文とかの裏付けもありますが、やはり効果が高そうだなと思えますよね。しかし大半の人はやりません。

その理由はシンプルで「シンドいから」ですね。

受け身で参考書を読むだけなら、そこまで疲れません。しかし、自分でプログラミングしてサービスを作るとなると、シンドいので挫折しがち。

しかし、当記事で説明したとおり、ここを頑張るべき価値はあると思えます。ぜひトライしてみてください。

アクティブラーニングとセットでやるべき重要タスク


アクティブラーニングの軌跡をブログ発信することです。

効果的な学習プロセスを解説します

効率的な知識定着を目指すなら、下記の手順を推奨します。

  • 手順①:まずは特定分野の知識を学ぶ
  • 手順②:学んだ知識でサービスを作る
  • 手順③:作品の作り方をブログで解説

上記のとおりで、すでにお気づきの方もいるかもですが、順番に解説していきますね。

手順①:まずは特定分野の知識を学ぶ

ここは説明するまでもないですね。まずは技術書とかで特定分野の知識を学びましょう。

そしてポイントとしては「この知識で、どういったサービスが作れるだろう・・・」と考えることです。

この時点からアクティブラーニングが始まっています。

手順②:学んだ知識でサービスを作る

ここは先ほども解説しましたが、メインパートですね。アクティブラーニングの一環として、自分でサービスを作ってみましょう。

そしてポイントとしては「サービスはシンプルでOK」ということです。

いきなりFacebookのようなサービスを作るのは難しいので、1つだけ機能を搭載したサービス or アプリを作ってみてください。

手順③:作品の作り方をブログで解説

ここが最終パート。自作した作品の作り方をブログで解説しましょう。

すると、下記のメリットがあります。

  • 読者に感謝される
  • 知識の忘却防止になる
  • 自分に信頼が積み上がる

上記のとおり。サクッと解説していきます。

読者に感謝される

ここは説明しなくても、、、まぁ分かりますよね。わかりやすい記事に仕上げてください。

知識の忘却防止になる

ここも納得できるはず。

技術書で学び、作品を作り、その後に「自分の言葉でブログにまとめる」という作業が大切です。ここはアクティブラーニングでいう「想起」という理論に基づいています。効果があるはずです。

自分に信頼が積み上がる

ここに気づく人が少ないかもですが、学習して、作品を作り、その方法を公開することで、自分に信頼が積み上がります。

読者からしたら「あぁ、この人はしっかり学習しているんだな」と伝わりますので。

そして、仮にコードが間違っていたとしても大丈夫です。読者さんから指摘されたら直せばいいだけですからね。失敗を恐れてなにもしない人よりも、よっぽど高速で成長できます。

1つだけ注意点があります

個人情報を扱う系のサービスは、ちょっと注意してください。

メルアドとかを流出させてしまうと問題なので、初心者の頃は「個人情報を扱うサービスは作らない」という感じがいいと思います。もし作るなら、経験のある人に相談すべきですね。

体験談:僕も本記事の方法を使っていました

サービスを作り、その方法をブログに書きましょう、という話を解説しましたが、過去の僕もこの方法を使っていました。

僕が開発したサービス

開発に必要な知識のまとめ

上記のとおり。
開発に必要な知識のまとめという記事を読めば、たぶん僕が作ったサービスの設計を理解できるはずです。

もう1つ例を出しておきます。

僕が開発したサービス

開発に必要な知識のまとめ

上記のとおり。ここもPHPの基礎が分かる人なら理解できるはずです。

こういった感じで発信をしていくと、ブログからも受注できるようになりますよ。というわけで今回は以上となります。

プログラミング学習は、購入した技術書の量で決まる訳ではありません。着実に、一歩一歩を進めていきましょう。