プログラミング言語の超効果的な『覚え方・学習方法』

      2017/01/20

読者の方からの相談メールでよく来るのが、

「プログラミング言語ってどうやって覚えたらいいですか?」

というものです。

その時私が答えているのは

「覚えるというよりは、没頭していて、気づいたら覚えてたとなるのが理想です」

というものです。詳しく説明します。

プログラミング言語は言葉である

言葉というと、日本語や英語を思い浮かべますよね。

プログラミング言語も言葉です。

自然言語とプログラミング言語の違いはありますが、基本的には言葉であることに違いはありません。

ですから、自然言語を学ぶプロセスはプログラミング言語を学ぶ際にも参考になります。

自然言語を学ぶプロセスを参考にしよう

私達が母国語である日本語を覚えたのは、日本語の勉強をしたわけではなく、自然と使ってるうちに気づいたら覚えてたというものですよね。

英語などの外国語学習においてもエマルジョン方式という母国語を介さずに英語を直接使っていくことで学ぶ方法があります。

海外ドラマのDVDをひたする見続けていると、ドラマのシチュエーションとセリフの組み合わせから自然と言葉の意味が理解できるようになるというものです。

私はこのエマルジョン方式の英語学習もやっていたのですが、特に英語力が伸びたのは、一人で海外旅行をするようになってからです。

「日本の英語教育はダメ」だとよく言われていますが、実際はかなり頭の中に「英単語の知識」や「文法の知識」は入っています。実際使う機会がないから使えるようになってないだけなんです。

使わなきゃ覚えられない

一人で海外旅行に行くと、飛行機やホテルのチェックイン、電車に乗る時にどうやってチケットを買うかを聞いたりと、全部自分でやらなければなりません。

その時にはじめて、本気の英語を話すようになったんです。英語の授業だと

「ジス・イズ・ア・ペン(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を学んだ時には、「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という関数を使えばいいことがわかります。

こうやって、目的に対して、自分が足りない知識をその都度調べて身につけていきます。

こうすることでとても効率的に知識を身につけていくことができます。

自分の作りたいものを作るので、自分のやる気も引き出せるし、必要な分野の知識に絞って学習することが出来るので、最も効率的だと思います。

ぜひ参考にしてください。

プログラミング初心者におすすめのサービス
1. 講師から対面で学びたい派なら

プログラマカレッジをおすすめします。ProEngineerという転職エージェントが運営しているプログラミングスクールです。20代限定なんですが、無料で受講できて、修了後、就職支援もしてくれるんです。最高過ぎですよ、これ!!就職の紹介料を企業からもらえるのでスクールを無料にできるんでしょうね。すばらしいシステムだと思います!

30代以上の方には

プログラマカレッジは20代限定なので30代以上の方にはWebスクをおすすめします。受講料の返金保証がついているし、毎日11時〜23時まで通い放題なのでとてもいいと思います!

2. 自宅で学びたい派なら

「就職保証付き」オンライン就職予備校をおすすめします。Javaエンジニアコースでは就職保証がついているのでプログラマーとして就職したい方にはぴったりです。Javaエンジニアの求人ってめっちゃ多いし、求められる技術レベルもそこまで高くないのでちゃんとした教育プログラムなら就職保証できるだろうなとJavaエンジニア経験者の私も思います。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

 - 勉強法 ,