初心者がプログラミングスキルをぐんと向上させる戦略的学習方法

20 min to read

どうも、こうすけ(@kosuke_upd)です。

今回は、プログラミング初心者がプログラミングスキルをぐんと向上させるための戦略的学習方法を、僕の経験をもとにお話します。

プログラミングを本格的に始めてから10ヶ月ほどの僕ですが、ここまでフロントエンドをメインにやってきて、先日 Chrome 拡張機能を世に公開することもできました。

プログラミング歴10ヶ月だけど Vue.js で Chrome 拡張機能を作ってみた

数ヶ月前までは HTML、CSS くらいしかまともにできなかった僕ですが、今では JavaScript、Vue.js、Firebase、Git といった言語や技術をざっと使いこなすことができるようになりました。

そんな僕が、これまでの経験をもとにプログラミングスキルをぐんと向上させるための軸となる学習方法を、プログラミング初心者の方にお伝えしていきます。

結論:何かを作りながら必要に応じて調べるというスタイルがベスト

まず結論から話すと、プログラミングスキルをぐんと向上させたいなら、何かを作りながら必要に応じて調べてスキルを身につけていくのがベストです。

何かを作るというのは、WEBサイト、ツール、アプリなどを作るといったことですが、それらに必要となる機能の作成などでも良いです。例えば、スライダー、バリデーション、モーダル、タブ、アコーディオン、アカウント機能などの作成・実装ですね。

技術書を読んだり、プログラミング学習サービスをしたり、公式ドキュメントを読んだりするのも良いのですが、ベースは何かを作成するのが最も効果的なスキルアップになると実感しました。

ただし、技術書を読んだり、プログラミング学習サービスをしたり、公式ドキュメントを読んだりするのも、それぞれおすすめの使い道があります。軸は何かを作ったり実装することですが、必要に応じて技術書、学習サービス、ドキュメントなどを活用するといったスタイルが良いということです。

というわけで、これらについてそれぞれ詳しくお話していきます。

何かを作ることを軸にしたほうが良い理由

理由1. 何かを作ったり機能を実装するためにプログラミングをするから

何かを作ることを軸にしたほうが良い理由は単純で、何かを作ったり何か機能を実装したりするためにプログラミングを行うからです。

ただ技術的知識を身に付けたいというだけなら技術書などを読み漁れば良いと思いますが、一般的には何かサービスを作ったり、何か機能を実装したりするためにプログラミングスキルを向上させたいという人が多いはずです。

それなら、実際に何かサービスやツール、アプリなどを作ったり、何か機能を作ったり実装していくのが最もスキルアップにつながります。

実際にやってみるとわかりますが、知っていることとできることとの間には大きな壁を感じるはずです。

理由2. 頻繁に使う記述や機能を知ることができるから

何かを作っていると、「この書き方よく出てくるな」「この機能大抵のサービスで使われているな」といった発見があると思います。頻繁に出てくるということは、よく使われる記述や機能だいうことです。

つまり、それらを優先的に身につけることで、効率よくスキルアップしていけるということです。

技術書や公式ドキュメント、プログラミング学習サービスなどでは、様々なことが同じくらいの温度感で書かれていることが多いため、どれから身につければよいかわからず困惑してしまうことは多いと思います。

よく使われる記述や機能というのは、実際に何かを作ったり機能を実装したりしないとなかなか知れないことです。そしてそれらを優先的に身に付けていけば効率的にスキルアップしていけるでしょう。

理由3. 活用方法を理解できるから

技術書やドキュメントを読んだり、学習サービスを使用していて初心者にありがちなのが、「これってどこでどうやって使うの?」ということですよね。もちろんこれらで説明はされているとは思うのですが、学習初期の頃は全然イメージできないんですよね。

しかし、実際に何かを作ったり機能を実装したりするということは、そもそも目的が先にあります。イメージが先に固まっており、それを実現するためにどういったものが必要になるのかを調べて身に付けていく形になります。

「こういうときは、これを活用すればよい」ということがすんなり理解できるのです。

理由4. 問題への対処法がわかるようになるから

実際に何かを作ることの大きなメリットの一つとして、プログラミングにおける問題への対処法がわかるというものがあります。

例えばエラーが出たときの対処法。プログラミングをする上で、エラーとの戦いは日常茶飯事なので、こういったエラーが出たときはこのように対処するということを知っておく必要があります。

また、エラーは出ていないけど正しい結果が返ってこない、正しく動作してくれないというのもよくあることです。そんなときにどのようにデバッグを行っていけば良いかを身につけることもとても重要です。

■ 僕の経験談より

ちなみに僕の経験談ですが、作成中のツールに Firebase の Cloud Firestore という機能を実装しようとした際に、初期設定だけで1週間も費やしてしまったことがあります。毎日調べては試すということを繰り返したのですが、かなり手こずりました。

しかしその1週間はとても濃いものとなり、終わってみると、やろうと思っていたことだけでなく、その周辺知識も身に付きましたし、問題への対処に対する大きな自信が身に付きました。

おそらく実際に何かを作っていくと、こういった問題は毎日のように出てきます。そのため、手っ取り早くエラー慣れし、エラーへの対処の流れを身につけることができます。

実際に何かを作ることにより、問題への対処経験を多く積むことができるのです。

理由5. インプットの質がかなり高くなるから

インプットの質は、その目的の明確さに大きく左右されます。インプットの目的が明確であればあるほど、より多くの情報を吸収できます。

何かを作ることを軸に作業をしていると、毎日のようにわからないことが出てきたり、関連することに対して具体的な興味を持ったりします。問題を解決するためにインプットを行ったり、具体的な興味ごとに関して調べる、つまり必要性の高い物事についてのインプットになるので、より多くの情報を吸収でき、記憶への定着率も高くなるのです。

■ 僕の経験談より

僕の経験上、こういうときにインプットしたことに関しては、一度や二度でしっかり身につけることができています。

また、おすすめのインプットとアウトプットのサイクルがあります。それは、基本アウトプットをしつつ、その中ででてきた問題や興味ごとを移動中などに調べて解決するというものです。

このサイクルはとても効率的であり、PC を前にしているときは手を動かすことに集中でき、移動中などの細かい時間も無駄にすることがありません。ぜひ参考にしてみてください。

技術書、ドキュメント、学習サービスの活用方法

ここまで、実際に何かを作ることを軸に作業していくのが最も効率的にプログラミングスキルを高めていけるということを話しました。

では、技術書、公式ドキュメント、学習サービスなどはどのように活用していくのが良いでしょうか?

実はこれらは不要だということではなく、必要に応じて活用していくことで、プログラミングスキルをより効率的に高めていけるのです。

技術書の活用シーンと活用方法

技術書を最も効果的に活用できるシーンは、特定の言語や技術についてある程度理解した上で漏れがないかを確認するときです。

何かを作ることを軸に日々作業していき、それが完成したときには、おそらく使用した言語や技術に関してかなり知識やスキルが身についていることでしょう。しかし、そのやり方だとどうしても漏れが出てきます。

また、最初から技術書を読んで身につけていこうとすると、理解できないことが多すぎてすぐに挫折してしまうことがほとんどだと思います。挫折しなくともほとんど身についていない状態だと思います。

しかし、実際に何かを作って言語や技術についてある程度身につけた上で技術書を読むと、実は知らなかったことが結構見つかります。そして、すでにある程度知識があるので、知らなかったことに対してもすんなり理解していけるのです。

公式ドキュメントの活用シーンと活用方法

公式ドキュメントをもっとも効果的に活用できるシーンは、特定の言語に関する最新情報や最も一般的なやり方、正確な情報を知りたいときです。

公式ドキュメントは一次情報なので、当然どこよりも正確かつ最新の情報が書かれています。また、「こういうことをしたいときは、このようにしてください」という最も一般的なやり方が書かれています。

ググったり人に聞いたりして得られる情報はわかりやすかったり応用方法を知れたりするという意味でとても役立つのですが、実は古い情報だったり、正確でなかったり、特殊なやり方で汎用性の低いものだったりします。

そのため、ググったり人に聞いたりして情報を得た後は、本当にそれが正しいのか、今でも通用するものか、汎用性の高いものかということを確認するために公式ドキュメントを活用すると良いでしょう。

学習サービス

プログラミング学習サービスを最も効果的に活用できるシーンは、何か新しい言語や技術を身につける際に基礎を手っ取り早く身に付けたいときです。

今はとても良い時代で、特定の言語や技術を身に付けたいと思ったら、学習サービスを使用することで基礎はざっと網羅できてしまいます。概要、文法などについてですね。

ただし、それらは本当に初歩的なことしか網羅していないことが多いので、その後どのように活用していくのか、応用させていくのかといったことが身に付きづらいのは事実です。

そのため、何か新しい言語や技術について身に付けたいときに、手っ取り早く概要や文法などを知るために、学習サービスを活用しましょう。

プログラミング学習サービスなら、ProgateドットインストールUdemy あたりを使えば問題ないでしょう。

プログラミングスキルをぐんと向上させる戦略的学習方法まとめ

では最後に、ここまで話してきたことをまとめます。下記のように学習していけば、効率よくスキルアップしていけることでしょう。

  1. どんなことをしていきたいかを決める(明確であればあるほど良い)
  2. ①に必要な言語を調べる
  3. ②で調べた言語について、学習サービスを活用して基礎を身につける
  4. ①で決めたことを実際に始め、完成させる
  5. ④で使用した言語や技術に関する技術書を読んで漏れを見つけ、身につける

上記が基本的な流れです。公式ドキュメントに関しては、適宜必要に応じて活用していく感じです。辞書的に使用する感じですね。

この基本的な流れを一通りこなすと、おそらく「次はこんなことやってみたい!」「この部分もっと知りたい!」などというようになっているはずです。そうしたら、あとはこの基本的な流れを再度やっていけば OK です。

あとはもうこれの繰り返しですね。「何かを作る → 新たな興味が湧く → 別の何かを作る」といったことの繰り返しです。これで楽しくかつ面白いようにスキル身に付けていけることでしょう。

今回お話したことをぜひ実践してみてください!

\ 記事が良かったらシェア! /

むらかこうすけ

むらかこうすけ

フリーのソフトウェアエンジニア.

Web アプリ, スマホアプリの開発が得意で, 今はゲームに関するプロダクトを仲間とともに開発しています.

ゲーム, 旅行がめちゃくちゃ好きです.

当ブログは Gatsby を用いて構築した完全自作ブログです.

UPDATE