2024年3月18日
|2024年4月18日
この記事の目次
プログラミング学習において、暗記は不要です。
エンジニアはすべてのコードを覚えているわけではなく、実際の経験から学びます。
技術を身につけていくためには、暗記ではなく理解をしていくことが極めて重要です。
本記事では、なぜ暗記が必要ないのか、そして理解を重視した正しい学習方法とは何か紹介していきます。
プログラムのコードを全て暗記しようというのは、情報量が膨大すぎてとても覚えきれるものではありません。現役のエンジニアも、必要最低限の基本的なコードや構文は覚えていますが、すべてのコードを暗記している人は稀です。
そして、覚えているといっても、大半が暗記しようとして身についたものではなく、それは何度もコードを書いて経験から身につけたものです。
また、人間は時間が経つと情報の一部を忘れていくもので、1ヶ月後には覚えたものの約80%が失われると言われています。そのため、暗記した情報を保持するためには継続的な復習が必要ですが、何度も復習を行うことは効率的な学習方法とは言えません。
参考:https://yoshin-zemi.com/blog/tk-2/
プログラミングは、サービスやシステムを作成するために行うものなので、コードを暗記していなかったとしても、本やドキュメント、インターネットを調べながら完成させることができればそれでOKです。
プログラミング関連の情報は、インターネット上に豊富にありますので、大抵の内容であれば、解決までたどり着くことが十分可能です。
従って、コードを覚えることよりも情報を調査する力やドキュメントの読解力が重要になってきます。
記憶力は年齢とともに低下する傾向がありますが、情報を調べる能力は持続的であり、プログラミングの現場では非常に価値のあるスキルです。
ITの世界では、日進月歩で技術が刷新されていきます。
今学習している内容も数年後には古い技術になっているかもしれません。
そのため、新しい技術が出るたびに、暗記しようとしてもキリがないですね。
それよりも分からない箇所が出てきた際に、インターネットやドキュメントを読んで、都度調べ、使えるようになれればそれで十分です。
コードの意味を理解せずに、パターンでコードを暗記していると、いざコーディングとなると書けなくなってしまいます。
暗記したものと全く同じ状況であれば書くことができますが、同じ状況にだけ対処する力がつくだけで、少し違った別の状況になると対応することが難しくなってしまいます。
プログラミング学習で大切なのは「暗記」することではなく「理解」すること
ベースの知識を理解することで、それぞれの状況に応用できるようになる
日本人は学校教育で「勉強=ノート」をとるものという思い込みが無意識にあり、プログラミング学習でも同じように学習した内容を紙のノートにまとめようとする人が多いです。
特に、リファレンスの内容や学習サイトに書いてあるようなことをノートにそのまま写す行為には意味がなく時間がかかるだけなのでやめておきましょう。
それであれば、見返したいときに直接リファレンスの内容や学習サイトを見に行った方が効率的です。
もちろん、プログラミング学習において、紙のノートを作成することには有効な側面がありますが、デメリットが多いことにも気を付けなければなりません。
紙ノートのデメリット
紙のノートにまとめることが楽しく、頭の整理に役立つ場合は有益かもしれません。ただし、紙のノートを暗記のためにまとめているのであれば、その必要性を一度考えてみることが重要です。
また、最近では「notion」「Evernote」「Oneone」など、パソコンでノートをとるアプリが豊富にあります。ノートをとる場合は、パソコンを使うことで効率よく学習できるので、オススメです。
電子ノートのメリット
例えばJavaScriptには、lengthというデータプロパティがあります。
これは、文字列の長さなどを取得できます。
<script>
let text = "Hello";
console.log(text.length); // 出力結果:5
</script>
悪い例
「lengthは文字列の長さを取得できる。上記のコードをノートに書いて覚えよう」
これだと上記コードを書き写すのに時間がかかり非効率的です。
良い例
「JavaScriptって文字列の長さを取得することができるのか。便利だな!」
これだけで十分です。「JavaScriptは文字列の長さを取得することができる」ということさえ理解できていれば、関数名や具体的な使い方を覚えなくても、「JavaScript 文字列 長さ」などで検索すれば必要な情報が得られます。
まずは、ざっくりと「どのようなことが出来るのか?」を把握していくことが学習スピードの向上に繋がります。
プログラミング学習において、情報を受け入れる(インプット)だけでなく、実際に手を動かしてコードを書くこと(アウトプット)が極めて重要です。
例えば、自動車教習所で交通法規を学ぶことは重要ですが、それだけでは実際の運転スキルは向上しません。車を実際に運転し、道路での対応力や判断力を養う経験こそが、運転のスキル向上につながります。
同様に、プログラミングも単なる知識の蓄積だけではなく、実際に手を動かしてコードを書くことが不可欠です。すべての知識を完璧に覚える必要はありません。重要なのは、必要な情報を検索してでも問題を解決できる柔軟性や応用力です。
プログラミングでは、手を動かし、実際のプロジェクトで問題にぶつかり、それを解決する中で本当のスキルが身につきます。美しいコードを書くことも重要ですが、何よりも手を動かして経験を積むことが、プログラミングスキルの向上につながります。
一般に、問題解決や新しい知識の獲得のためにインターネットで検索する方が多いと思いますが、ネット上には誤った情報や古い記事が多く存在します。
正確な知識を得るためには、公式ドキュメントを参照しましょう。
ただ、初心者にとって公式ドキュメントは難解で抵抗のある方が多いのではないでしょうか?
「書いている文章の意味が分からない」では、ドキュメントを活用できないので、まずは以下のアプローチを試してみることをおすすめします。
これまでのアドバイスでは、プログラミングにおいては暗記が必要ではないとお伝えしてきましたが、これはコードそのものを覚える必要がないということです。しかし、プログラミングに関連する専門用語は理解しておかないと、書かれた内容を理解することが難しくなります。
参考:https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/length
例えば、MDNのJavaScriptにおけるlengthのリファレンスを見てみると、「データプロパティ」「Stringオブジェクト」「UTF-16」などの専門用語が出てきています。これらの用語を理解していないと、文書の内容を理解することは困難です。ドキュメントを読むのが苦手な場合、少なくとも分からない用語がない程度まで、必要な語彙を身につけるよう努めましょう。
「学舎さくら」は、未経験からITエンジニアへの転職を希望する方に向けた完全無料のオンラインプログラミングスクールです。エンジニア経験のある講師が、基礎から就職支援までサポートしています。
他のプログラミング教材とは異なり、「学舎さくら」では理論や構文のインプットだけでなく、実際にコードを書いて覚えるアウトプット型の教材が充実しています。プログラミング学習では、アウトプット学習が重要と考え、未経験者や挫折経験者、将来のキャリアに不安を感じる方に特におすすめです。
Web説明会も随時開催しており、興味のある方はぜひ参加してみてください。
未来のエンジニアキャリアを築く第一歩を、学舎さくらで踏み出しませんか?
プログラミング学習において、すべてのコードを暗記する必要はありません。エンジニアたちも基本的なコードや構文は覚えつつも、実際のコーディング経験から学んでいます。コードを暗記するのは非効率で、しかも時間が経つと忘れやすいものです。新しい技術がどんどん追加される中、全てを暗記するのは難しい課題です。
その代わりに重要なのは「理解」です。コードの意味を理解し、基本的な知識を把握することで、必要な情報は必要なときに検索できます。学んだことをまとめる場合は、紙のノートよりも電子ノートを取り入れてみましょう。そして、アウトプットも大切で、実際にコードを書くことがスキル向上につながります。
最終的な学習目標は「暗記」ではなく、「理解」し、柔軟に問題解決できる力を身につけることです。新しい技術や状況に対応できる柔軟性を養いながら、プログラミングを楽しんでいきましょう。
最新記事
プログラミング学習に暗記は不要!未経験から効率的に学習する方法
2024年4月18日
この記事の目次1 【結論】プログラミング学習に暗記は必要ない1.1 【理由1】すべて暗記するのは不可能なため1.2 【理由2】カンニングしてもいいため1.3 【
プログラミングに必要なパソコンのスペックとは?初心者向けの選び方
2024年4月18日
プログラミングには、最低限のスペックを備えたパソコンが必須です。とはいえ、初心者の人は「プログラミングに必要なパソコンのスペック」を把握していないでしょう。今回
インフラエンジニアのやりがい5選!向いている人や一日の仕事の流れも解説
2023年10月20日
ITエンジニアのなかでもインフラエンジニアに興味を持っており、「どのようなやりがいがあるのだろう?」と気になっている人もいるのではないでしょうか。 type転職