「プログラミングを学びたいが、何から始めたらよいか分からない」「転職で生かせるプログラミング言語って何だろう」といった悩みを抱えている方もいるのではないでしょうか。初心者がプログラミングを学ぶには、正しい勉強方法を押さえることが大切です。
この記事では、プログラミング初心者に向けて、プログラミングの勉強方法を紹介します。これからプログラミングを学ぶ方は、ぜひ参考にしてみてください。
時は金なり(Time is Money)
最近、「時は金なり」って言葉をあまり耳にしなくなりました。もともとは100ドル紙幣の肖像ベンジャミン・フランクリンさんの”時間はお金のように大事”というありがたいお言葉なのです。
最近、聞かなくなったのは、社会が豊かになって”お金より時間の方が大事”という時代になったからでしょうか。代わってよく使われるのが”お金で時間を買う”という言葉であることが、それを裏付けているように思います。
さてさて、現代においてはそれほどに貴重な時間です。どうせ、プログラミングを勉強するなら、効率よく勉強したいと思うのは誰しも同じでしょう。
ということでVol.3で取り上げた「プログラミングの学習法」を再度テーマに取り上げます。前回は、プログラミング体育会系のY君、癒し系プログラマーA君、気配りもできる独立独歩プログラマーK君の3人にインタビューしたのですが、今回はもっと多くの人に「どうやって勉強してる?」ってアンケートしてみました。
プログラミングの勉強法
アンケートに寄せられた意見をMindmapに貼り付けてみました(図1)。さてさて、どんな方法が挙げられたか、順番にみていきましょう。
①とにかく書く
とにかくコーディングする、プログラミングする、作ってみる、触る、など”とにかく系”の勉強スタイルを押す意見が結構ありました。まあ、英語なら、”文法の勉強よりとにかく話しなさい”ということか。そう考えれば、泥臭いようですが確かに当たっているような気がします。
②サンプルソースで勉強
先生のしゃべった通りをなぞるという英会話のレッスンスタイルを彷彿するのが、サンプルソースで勉強する方法です。このスタイルはだいたい次の3段活用からなっているようです。
a.サンプルソースをそのまま動かす
b.サンプルソースをアレンジする
c.別のプログラムソースを書く
英会話に例えてみると、a.先生の言った通りを復唱する、b.センテンスの一部を変えてみる、C.類似の応用文を話す、という感じですね。うん、そう置き換えるとこの方法も納得感あります。
③他人のソースを参考にする
サンプルソースとほぼ同じですが、ネットや書籍の模範コードではなく、できる先輩や同僚のソースを参考にする方法です。ネットや書籍だと、今、取り組んでいるプログラミングとどんぴしゃりとは行きませんが、仕事仲間だと同じアプリケーションに取り組んでいるので参考になるところが大きいです。
それとは別の観点で、テストや保守で障害修正を担当して、うまい人、下手な人のコードの違いを知るってのもなるほどと思いました。英会話に当てはめてみると、グループレッスンという感じでしょうか。
④自分のコードと向き合う
書きっぱなしではなく、自分の書いたプログラムを見直してみましょう。至らない点、わかりにくい点、改良できる点など、リファクタリングすべき箇所がきっと見えてきます。自分自身で見るほかに、誰かにソースコードレビューしてもらったり、ペアプログラミングしたりするのも効果的です。
⑤Web派 Vs. 書籍派
上記と少し観点が違いますが、Webサイトをベースに勉強する派と書籍を買い込んで勉強する派がそれぞれ相当数います(まあ、大多数は混合派ですが)。サイトの良さは、知りたいことがさっと検索でき、サンプルコードもパッとコピペできるところでしょうか。一方、書籍の方はじっくり基礎力を付けながら体系的に学べる点が魅力ですね。”写経”という古典的な言葉を使う人が複数いて、ちょっとおもしろかったです。
⑥その他
その他の意見として、次のようなものもありました。
a.チュートリアルやe-Learningで勉強
確かに、最近はこういった学習支援ツールも用意されていることが多くなってきました。
b.勉強会に参加して講師をアシストする
コミュニティに参加するのは、知識だけでなく意識・意欲を高められるので、確かにいい方法ですね。相互協力が基本なので、講師をアシストするってのはいい心がけです。
c.資格を取得
これだけの人に聞いて、資格を挙げたのはたった1人でした。でも、自分へのご褒美が明確な方法なので、これも悪くないです。(実際、社内ではいろいろな言語の資格を取っている人がたくさんいました)。
銀の弾などない(No Silver Bullet)
みなさんは、「銀の弾などない」という言葉を耳にしたことがありますか。これはロバート・L・パトリックという人が著した論文で、「ソフトウェアの生産性において、各段の向上をひとりでにもたらすようなプログラミング技法は今後10年間は登場しない」という意味で用いられたそうです。
1987年にIEEEの「コンピュータ」誌に掲載された言葉なのですが、それから
n = n + 10
というループを3回も繰り返した今でも、まだ十分通用しているように感じます。
図1に挙げられたアプローチにも「銀の弾などない」が反映されていましたね。まあ、英語の勉強でも「銀の弾などない」わけですから、各人の地道な努力を参考にして自分なりに頑張ってください。
- カテゴリ:
- キーワード: