プログラミング言語の超効果的な『覚え方・学習方法』
読者の方からの相談メールでよくあるのが、
「プログラミング言語ってどうやって覚えたらいいですか?」
というものです。
その時私が答えているのは
「覚えるというよりは、没頭していたら、自然と覚えてたとなるのが理想です!」
というものです。詳しく紹介します。
プログラミング言語は『言葉』である
言葉というと、日本語や英語が思い浮かびますが、プログラミング言語も言葉です。
- 自然言語 = 人間との意思疎通に使うもの
- プログラミング言語 = コンピュータに手順を指示するもの
という違いはありますが、言葉であることに違いはありません。
ですから、自然言語を学ぶプロセスはプログラミング言語を学ぶ際にも参考になります。
自然言語を学ぶプロセスを参考にしよう
私達が母国語である日本語を覚えられたのは、日本語を勉強したわけではなく、使ってるうちに自然と覚えられたというものですよね。
英語学習においてもエマルジョン方式という日本語を介さずに英語を学ぶ方法があります。
一例を上げると、海外ドラマのDVDを日本語字幕なしで長時間ひたする見続けていると、ドラマのシチュエーションとセリフの組み合わせから自然と言葉の意味が理解できるようになるというものです。
爆弾が爆発しそうで逃げなきゃって言う場面で
「Get out of here!」
と主人公が言ったとします。場面から想像して、「ここから逃げよう!」という意味なのかなと分かります。こうして、日本語の対訳を覚えなくても場面とセリフの組み合わせから英語を学ぶことができるんです。
私はこのエマルジョン方式の英語学習もやっていたのですが、特に英語力が伸びたのは、一人で海外旅行をするようになってからです。
「日本の英語教育はダメ」だとよく言われていますが、実際はかなり頭の中に「英単語の知識」や「文法の知識」は入っています。実際使う機会がないから使えるようになってなかっただけなんです。
使うと覚えられる!
一人で海外旅行に行くと、
- 飛行機やホテルのチェックイン
- 電車やバスに乗る時にチケットや乗り場について尋ねる
- 道に迷った時に道を聞く
などを、全部自分でやらなければなりません。
そういう状況になってはじめて、本気の英語を話すようになったんです。英語の授業だと、
「ジス・イズ・ア・ペン(This is a pen.)」
のように、日本語発音で英語を発音していたのですが、一人で海外旅行すると、本気の英語発音になります。そうしないと通じないからです。
本気になると、私たちの英語はけっこう通じます。よく「単語を並べてジェスチャーすれば通じる」とか言う人がいますが、案外通じません。すると、本気の本気になって、必死に記憶をたどって正しい文法で話そうとするもんなんです。
プログラミング言語も同じです。使うことで本気になれます。
基礎知識を身につけたら、すぐ実践する
教科書を読んで知識を暗記するのではなく、自分が作りたいプログラムを作るための知識を身につけるというやり方がおすすめです。
とはいえ、全く何も知識がない状態から作り始めるのも非効率です。
例えば、プログラミングの基礎知識が全くない状態で「GPSを使ったスマホアプリを作りたい」と考えても、どこから手を付けていいかわかりません。
なので、最初の取っ掛かりとしてプログラミングの入門書を読むというのはあり、というか必要です。
英語を学ぶときで考えるとわかりやすいのですが、海外ドラマをひたすら見る方法をやるにしても、英語の知識が全くない状態で見続けるよりも、
- This is a pen.
- I am Japanese.
- What is this?
くらいの基礎的な知識があった方が理解が早いですよね。
プログラミングも同じです。入門書を読んでプログラミング言語の文法や基礎がなんとなく頭に入ったところで、自分が作りたいソフトウェアの制作に取り掛かります。
作っていく過程の中で足りない部分を調べて覚えていくと効率よく身につきます。私が新たにプログラミング言語を覚える時はいつもそうしています。
私が新たなプログラミング言語を覚える時の手順
私は仕事でJavaを使うことが多くて10年以上Javaでシステム開発をやってきました。
その後、趣味の開発で
- PHP
- Ruby
- Node.js
- Unity(C#)
を覚えました。
趣味で覚えたUnityとPHPは、その後の仕事でも使うことになりました。独学でも仕事で使えるレベルまで十分いけるんです。
PHPを学んだ当初の目的は、「WebAPIを使ったちょっとしたWebサービスを作ってレンタルサーバで公開したいな!」というかんたんなものでした。
はじめは図書館でPHPの入門書を何冊か借りてざっと読みました。
プログラミング言語の本は、新しい方がいいのは確かです。新しく出版された本の方が新しい言語仕様・技術に対応しているからです。ただ、基礎的な部分はそんなに変わるものではないので、少し古い本であってもかまわないと思います。
そうやって、まずは入門書を時間をあまり掛けずにざっと読んでみると、その言語の文法や基礎知識が身につきます。
PHPって、
- 変数の前に$をつけるんだな
- グローバル変数を使うにはglobalっていう宣言をするんだな
というような知識がざっくりと頭に入ります。
その状態で作りたいものを作り始めます。
私の場合「WebAPIを使ったかんたんなWebサービスを作る」のが目的なので、WebAPIについて調べます。
Amazonや楽天、GoogleなどのWebAPIを調べてどんな機能があるのかを把握します。その後、どうやってそれを呼び出すかを調べます。
PHP WebAPI 呼び出す方法
のようなキーワードで検索してみると、「file_get_contentsという関数をつかうとWebAPIを呼び出せる」という記事が見つかります。
レスポンスのフォーマットがJSON文字列で返ってくる場合とXMLの場合があるので、レスポンスの文字列をパースしてJSON文字列・XML文字列をPHPのオブジェクトに変換する方法を調べます。
PHP JSON 変換
で検索するとjson_decodeという関数を使えばいいことがわかります。
こうやって、自分に足りない知識をその都度キーワード検索して必要な知識を身につけていきます。
これってとても効率的なんです。必要な時に必要な知識だけ学べますからね。
自分の作りたいものを作るので、やる気も出るし、気づいたら作業に没頭しています。
そうして、ある時、振り返ってみると、「おれ、この言語マスターしたかも!」と後で気がつくものなんです。
ぜひ参考にしてみてください!