最近世間ではプログラミング教育という言葉が、とても流行っているような気がします。でもその割にはどうやって学習すれば良いのか、述べられている情報は少ないように感じます。そこで今回の記事では、そのプログラミングをどうやったら身につけられるか、その学習方法について考えてみたいと思います。
継続してプログラミング学習をするための大前提
プログラミングに限った話ではありませんが、それを習得することによって何を達成したいか目的と目標を明確にすることが必要となります。
- 「ゲームを作りたい」
- 「副業でお金を稼ぎたい」
- 「プログラミングすることがそのものが面白そう」
その目的は何でも良いと思います。目的を達成するための動機は強ければ強いほど良いでしょう。また学習をして「楽しい」と感じられるかどうかも大切な要素だと思います。
プログラミングの学習方法
何を目的とするか決めることができたら、次は具体的な学習方法を考えてみましょう。個人的には大きく3つに分けられると考えています。
- 書籍やWebサイトのプログラミングコードの写経をする
- 分からないことは分かりそうな人に質問する
- 学習成果を公開する
学習のコツ
ただし、上述した方法を漫然とやっていてもプログラミング力は向上しないと思います。個人的にそれぞれ以下のことを心がけています。
プログラミングを写経するときの心がけ
自分は意味も分からず写経すると必ず眠くなります。なので写経をするときは、以下のことに気をつけています。
- 意味の分からない変数、配列、オブジェクトなどはデバッグして内容を明らかにする
- 意味の分からない概念やメソッドなどは公式ドキュメントで確認しながら理解する
- エラーの文言が出たらまずエラーメッセージをよく読む。意味が分からなかったらそのエラーの文言をGoogleの検索窓に入力してググる。
- どうしても分からないときは、手を動かすのを止めて、別のことをする。日時を改めて取り組む
- どうしても分からないときは、全てを削除して一から書き直す
- どうしても分からないときは、予めインストールしておいたgitを使って、一つ前の作業に手戻りをする
- 使い勝手の良いエディタソフトをインストールしておく(自分はAtomを使用)
- 使い勝手の良いローカル開発環境を予め構築する
本当にプログラミング学習初心者の人がいきなりgitやエディタソフト、ローカル開発環境の構築を理解するのは難しいでしょう。はじめての方はそんなツールがあるんだなと頭の片隅においておき、その便利さに気がついたときに使い方を学習すれば良いと思います。
人に質問するときのコツ
自分では調べきれず、どうしても「エラーの原因が分からない」や「概念が理解できない」ということがしばしば発生します。そういうときは人に質問して教えてもらうしかありません。
当然のことながら「何となく分かりません」という聞き方では、どんなに親切で熟練したプログラマーの方でも教えることはできません。上級者の方に質問をするときは個人的に以下のことを気をつけています。
- 分からないことに関連する分野のWebサイトや書籍を読んで語彙を増やしておく
- 分からないことに関するキーワードでGoogle検索をして、ヒントになりそうなページのURLを控える
- 何がどこまで分からないか明確にするため言語化する
- OSC(Open Source Community)のコミュニティ運営側の人間として参加する
この中でちょっと分かりにくいことは、「OSCの運営側の人間として参加する」というところでしょう。自分はプログラミング学習のために、ただ話を聞きに行くというだけの勉強会にはほとんど参加しません。話を聞くだけでは自分の頭を使うことをしませんし、自分が分からないことを教えてくれそうな人脈を築くこともあまり期待できないからです。
一方、コミュニティや勉強会に同じ参加するにしても、頭もしくは体を使う運営する側に回るとぼんやりしている暇はありません。自分の学習成果をスライドにしてまとめたり、一定期間、他の運営者の方と心を合わせて行動しなければなりませんので、新しい知見に出会えたりや人脈を築くことができます。
個人ブログやSNSに学習成果を書いて投稿する
プログラミング学習をして分かったことだけではなく、分からなかったことも記録に留めておくことをおすすめします。記憶の定着と整理が期待できます。
- とにかく最初は無料・有料を問わずブログを始める
- ブログを始めるのが面倒くさかったら、第三者が内容を確認できるツールを用いて書き留めておく
- ブログ記事などを公開したら、TwitterやFacebookにも記事のURLを掲載してSNS拡散を行う
- 勉強会のうちもくもく会に積極的に参加して学習成果を人前で発表する
つい初心者の方だと「こんなこと書いていいのかな?」と思われるかもしれません。でも他の方を誹謗中傷するような投稿でなければ、学習成果は積極的に書いた方が良いと考えています。
初めから期待してはいけませんが、ひょっとしたら誰かがその記事を読んで、分からなかったことについてヒントを教えていただけるかもしれません。また逆に分かったつもりで書いたことも「ここは違うよ」とご指摘をいただける可能性もあります。
自分もはじめてまだ5年程度です
個人ブログにしてはかなり長い記事を書きました。ただ自分もプログラミングをはじめて5年程度です。その間プログラミングだけでなく、サーバーのことに手を出してみてたり、便利ツールにハマっていたり、WordCampの運営をしていたりするので、大したスキルはありません。
ただし「どうすれば効率良く学習し自分のやりたいことをできるか?」は日々、追究しています。他にもっと良い学習方法をご存知の方がいらっしゃったら、ぜひ教えていただきたいと思っています。偉大な先輩方からすると、まだまだひよっこな自分ですw
【参考サイト】