本記事は、私が学生時代に所属していた研究室での知見と、新卒エンジニアとして日々学習する中で得た個人的な気づきをまとめたものです。「こういうアプローチもあるんだな」という一つの視点として読んでいただければ幸いです!
はじめに
新卒エンジニアのhirotoです。日々膨大な技術知識のインプットに追われる中で、「いかに効率よく、かつ継続して学ぶか」の重要性をひしひしと実感しています。
私が学生時代に所属していた学習工学研究室での学びを振り返り、学習工学に基づいた「効果的・継続的な学習のコツ」をまとめました。
学習とは
従来の学習環境では、受け身の姿勢になりがちでモチベーションを維持しにくいケースがあります。しかし、本来の学習は学習者主体であるため「なにかを達成できて、楽しい」という性質を持っています。つまり、学習=楽しいものであるというのが、学習工学における基本的な考え方です。
学習を楽しいものにするために、私が所属していた研究室では認知心理学(人の認知に関する心理)に基づいて多くのアプローチを行っていました。それらで得た知見を基に、効果的な学習方法について述べていきます。
学習のモチベーションには2種類ある
学習におけるモチベーションには、大きく分けて内発的動機づけと外発的動機づけの2種類があります。
内発的動機づけ
内発的動機づけとは、学習者がもつ好奇心や探求心などを原動力として行動することです。
例えば、ゲームをプレイして「うまくなりたい!」と思った時のことを考えてみてください。時間を忘れて攻略動画を見たり、何度もプレイしたりした経験がある方は多いのではないでしょうか。
このように、自分が「知りたい」「うまくなりたい」という内側からの欲求が、学習を能動的なものにしてくれます。
外発的動機づけ
外発的動機づけとは、報酬や評価、罰則など外部からの刺激を原動力として行動することです。
義務教育におけるテストを例に挙げるとイメージしやすいかもしれません。「テストで良い点を取る」「希望の学校に進学する」といった目標を動機として学習した経験がある方も多いのではないでしょうか。
こうした外部からの影響をモチベーションとしている場合、学習が受動的なものになりがちです。よって、外部の環境が変わるとモチベーションも変化しやすいという弱点があります。
モチベーションに左右されずに継続する方法
モチベーションに左右されずに学習を継続するためには、自分の人生をRPGと考えることが大事だと考えています。これは、内発的動機づけで触れた「ゲームだったら能動的な学習をしていた」という話に近いです。
自分がゲームの主人公だと考えると、技術の知識やスキルは「魔法」や「装備」のように捉えられ、日々の学習を少し楽しく感じられます。
技術の効果的な学び方
これまで紹介したモチベーションの維持に加え、研究室での経験を基に技術をどのように学んでいくかを述べていきます。
プログラムを書くのではなく、プログラムを読む学習をしよう
AI(エージェント)によるコーディングが主流になりつつある現代では、「ゼロからコードを書く」以上のスキルが求められます。つまり、「書かれたコードを正しく読み解く」ことの重要性が高まっていると考えています。
私が所属していた研究室では、トレース課題という手法を用いてプログラミング学習を行う研究が進められていました。
トレース課題とは、プログラムのコードを1行ずつ追いかけ、変数の値がどう変化するかを頭の中(または紙の上)でシミュレーションする学習法です。この「コードの挙動を脳内で正しくトレースする力」を鍛えることが、バグの発見や設計の理解において非常に強力な武器と言えます。
誤りの認知(メタ認知)
RPGにおいてボスに負けた時、「レベルが足りなかったのか」「属性の相性が悪かったのか」を分析するように、学習においても自分がどこでつまずいているのかを客観視することが非常に重要です。
エラーやバグに遭遇した時、「AIの回答でエラーが解消した」で終わらせないことが重要です。「どこの処理の何がどのような状態だったのか」をメモとして言語化しておくことで同じ失敗を防ぐことにつながります。
長期記憶と短期記憶
人間の記憶領域には、主に短期記憶と長期記憶があります。学習においては、すぐに消えてしまう短期記憶を、いかに長期間保持される「長期記憶」へと移行させるかがカギとなります。
長期記憶に定着させるためのポイントは、反復学習と情報の関連付けです。
- 反復学習: インプットとアウトプットを繰り返すこと。一度読んだ記事やドキュメントも、時間を空けて再度振り返ることで記憶の定着が促されます。
- 情報の関連付け: 知識を単体で丸暗記するのではなく、知識同士のつながりを理解することです。「この新しい言語の仕様は、あの言語のあの機能と似ているな」と既存の知識と結びつけることで、記憶の定着率が大幅に高まります。
おわりに
今回は、自分の学生時代の経験を基に効果的な学習方法についてまとめました。概要は以下の通りです。
- 学習は本来、楽しいものである
- 学習のモチベーションには内発的動機づけと外発的動機づけの2つが存在する
- 今後のプログラミング学習では「プログラムを読む(トレースする)」ことも重要である
- 技術を効果的に学ぶには「誤りを認知する」「長期記憶へ移行させる」仕組みが大切である
新卒エンジニアとして学ぶべきことはまだまだ山積みですが、今回まとめた学習工学の知見を活かし、効率よく、そして何より楽しく学習を続けていきたいと思います。