こんにちは。最近目が覚めてもなかなか布団から出ることができないみいです。ほんとは朝からすっきり朝ヨガとかしたいんですけどね。
さて、今回は「プログラミングのコード暗記すべきか問題」についてまとめてみます。プログラミングって人によって勉強方法も様々ですよね…
プロゲートのコースを何週もした方がいいって人もいれば、反対にコードを暗記するのは無意味だってコメントも。
結局どっちが正しいのって迷ってしまっている人の助けになればと思います。さっそくみていきましょう。
目次
プログラミングに暗記が必要ない理由
コードは常に最新化する
プログラミングのコードをすべて暗記しようとすると、膨大な情報量になります。しかも日々最新のデータにアップデートされるので、一生懸命暗記したのにあとで使えないかもしれません…
暗記はいちど覚えてしまえば、その知識がずっと有効なものには良い方法ですが、常に新情報がアップデートされるプログラミングには適していません。
調べれば答えが分かる
暗記が必要ない理由のふたつめは、プログラミングのコードはインターネットで調べればすぐに答えを見つけることができるからです。人間の記憶力は残念ながらコンピュータに勝つことはできません。
もし暗記に頼ってコードを書いていきエラーを繰り返してしまうくらいなら、サッと切り替えてインターネットや書籍で正しい情報を探し、修正をした方がはるかに効率がいいでしょう。
どこまで暗記すべきか明確でない
でもプログラミングの学習を始めたときに、どうしてもコードを暗記したくなる気持ちも分かります。私自身も暗記は必要ないと知っていながらも、書籍やオンライン教材で新しいコードが出て来た時に、あとで見直せるようにノートにまとめたりしていました。
でも途中で気づきました…
どこまでを覚えるべきか分からないので結局コード全部を丸写ししているのと変わらないと…
例えばCSSでフォントの色を変えるcolorプロパティを新しく習ったとします。赤色に変更しようとまず一番シンプルな color: red ; をノートにメモします。
しかしこの方法は色の名前が複雑になる場合は指定ができないので、カラーコード(赤=#ff0000)やrgb(赤=R255 G0 B0)で記述するのが一般的です。これを色別に全て覚えるなんて…現実的じゃないですよね。
参考:原色大辞典
3つの方法で文字を赤色にしてみましょう。
See the Pen
文字の色を変える by mi (@mi_86)
on CodePen.
書き方は違っても同じ色を表現できますね。
いくらcolor: red ;を暗記しても違う色を指定するときには、カラーコードやrbgを使う頻度の方が高いため結局調べないといけません。そもそもcolor: red ;だけを暗記して、カラーコードやrbgについて知らなければ、そこでつまずいてしまうのです。
プログラミングはいくつかのコードを掛け合わせて使うため、ひとつの方法だけを記憶していてもあまり意味がないのです。
暗記をしないでプログラミング学習をする方法
そんな時は次のことを意識して勉強してみましょう。
コードの調べ方を知る
意外とキーポイントとなるのが知りたいことを確実に調べられる検索力です。インターネットにはプログラミングに関する様々な情報が溢れていますが、調べ方に問題があると求める情報にたどりつけません。
②サジェストや関連キーワードをチェック + 言い換えて検索してみる
まずは①の単語で区切って検索についてです。したいことを出来るだけ言語化して関連する複数ワードをかけあわせて検索することで結果を絞り込むことができます。
①で問題が解決しない場合は②に進みます。サジェストや関連キーワードをチェックしてみることで、実際によく使われている表現を知る事が出来ます。
「HTML 改行」と入力した場合のサジェストです。「改行 しない」「改行 そのまま」などのキーワードもありますね。このように更に絞り込むことで目的の情報を探す時間が短縮されます。
①でやりたいことの言語化が上手く行かないときはこのサジェストを参考にすると検索のヒントとなることがあります。ぜひ試してみてください。
また検索結果の下段に表示される関連キーワードもサジェストと同じ様に利用することができます。
「HTML 改行」の関連キーワード
初めは適切な検索ワードが思いつかなくて当たり前です。とにかく検索ワードを入力してみることで検索力がついていきます。
検索力が付けばコードを暗記しなくても、調べながらで作業を進められます。
初心者は本よりオンラインの教材を使う
専門的な知識がずらっと並べられている書籍からスタートすると、どうしても難しく感じてしまい、とにかくそこにある情報全てを吸収しようとしてしまいがちです。つまりエラーを回避するために結局は答えをみてコードの丸写しを繰り返すことになるのです。
そこでプログラミングの勉強を始めるときにはオンライン教材もおすすめです。本よりもアニメーションなどを使って視覚的に分かりやすく解説している場合も多く、初心者にもとっつきやすいという特徴があります。
またオンライン教材ではインターネットで検索すれば答えが得られる部分に関しては、あえて答えが書いていない場合もあります。丸写しで暗記になりがちなプログラミングの学習を実践的な力を付けながら進められる工夫がされています。
また、一度出版されるとアップデートのない書籍に対して最新データに更新されているオンライン教材を使うことで最近の傾向を掴むこともできます。暗記をしないプログラミング学習にはオンライン教材を使うのもひとつの手段ですね。
ただしオンライン教材は基本的な内容がおおいので、ある程度知識と勉強方法を身につけたら書籍にステップアップすることも必要です。
インプットよりアウトプットを重視する
これもプログラミングの学習を始めると聞いたことがあるかもしれません。プログラミングは暗記などのインプットよりもとにかく手を動かすアウトプットが必要とされています。
その理由はこれまでに紹介したようにプログラミングは暗記をするのではなく、検索力を生かして調べながらするものだということからです。実際に独学でプログラミングを学び、クラウドソーシングサイトの案件をこなしながら新しい知識を吸収し成長していく人も多いです。
プログラミングをする際に必要な全ての知識が頭の中になくてもいいんです。大切なのはそれを調べてでも完成させられるという事です。
[番外編]プログラミング学習ポイント
ここまで読んでくれたあなたはもう暗記に頼らない学習方法をマスターできましたね!ここからは知っておくとお得なポイントを紹介します。
「暗記をしない」の意味(理解は必要)
プログラミングに暗記が必要ない理由を説明しました。ではなんで暗記をするほうが良いという人達がいるんでしょうか?
実はそれはプログラミングにおける「暗記をしない」ということの意味にあります。暗記をしないということは理解をしないということと同じ意味ではありません。
新しい知識に出会った時や、分からない事を検索したときにコード自体は検索できるため丸暗記する必要はありません。しかしどのような条件でそのコードが働くのか、どんな仕組みでその結果が出るのかを理解する必要があります。
これはサイトのコードを模写したり、オンライン教材を周回したりする学習法についてもいえるでしょう。コードを暗記するために行うのであれば、実際に全く同じサイトを作る事はないので意味がない行為になってしまいます。
しかしコードの仕組みを理解するためにするのであれば、実際にコードを書くときにその知識を利用することができます。
時間短縮に暗記は有効
これも当たり前のことですが、暗記をすれば検索する時間の分だけ作業を早く進めることができます。
例えば文字の色を変えたいと思った時、暗記をしないで必要な時に検索をすることにしましょう。前回全く理解をせずコードを丸写ししてしまうと、実際の作業で色の変更をするときにまた一から色の変更方法(3つあります)を調べることになります。
ポイントとして色の変更方法には3つあることを理解して知識を整理しておけば、カラーコードやrgbを確認するだけで良いのでひとつの作業を省略することができます。さらに色別に暗記をしていればさらに時間を省略できますが、それは非現実的なのでおすすめしません。
プロのエンジニアは仕事の中で覚える
では活躍している現役のエンジニア達はいちいち検索をしながら作業をしているのでしょうか?答えはNOです。
実際には同じ文法が何度も出てきたり、専門としている分野ごとに頻度の高いコードが決まっている為、仕事を繰り返すうちに自然に覚えていきます。
プログラミングの学習を始めたばかりの頃は、毎日でも少しずつコードを書くことで、自然と頭に残る文法も増えていきます。プログラミングの学習は週末まとめてよりも、毎日コツコツ進めていくことが勧められています。
まとめ
どうですか?暗記がプログラミング学習に必須ではないことが理解いただけたでしょうか?
プログラミングは頭で考えるよりも、手を動かせのスタイルです。エンジニアになるには準備をしすぎるな、なんても言われています。
とにかくコードを書いてその中で学ぶ事が多いと考える現役エンジニア達が多いからです。
学習のポイントをおさえて勉強すればプログラミングを効率よく学ぶことができるはずです。この記事が参考になればうれしいです。