LoginSignup
0
0

More than 1 year has passed since last update.

「プログラマー脳」のchapter3「プログラミング言語の文法を素早く習得する方法」

Last updated at Posted at 2023-04-04

目次

1.初めに
2.文法を覚えるためのテクニック
3.長期記憶から情報を取り出す際に、貯蔵強度と検索強度の2つのメカニズムがある
4.ただ情報を見るだけでは不十分
5.能動的に考えることで記憶を強化
6.【プログラマー脳】Chapter

1. 初めに

「プログラマー脳」という本を読んでいます。
その中で印象に残ったことや大事だなと思う部分をまとめています。
自分の理解の必要に応じて自分が慣れているJavaScriptで処理を書いています。

2. 文法を覚えるためのテクニック

  • フラッシュカードを使って文法を素早く覚える
  • 忘れ物を防ぐ
  • 想起練習(積極的に何かを思い出そうとする)
  • 推敲(新しい知識を既存の知識と積極的に結びつける)

長期記憶の仕組み

  • 脳の中の記憶は階層構造になっておらず、ネットワーク構造で構成されている
  • 勉強時間を増やすよりも期間を徐々に開けながら、長い期間で繰り返し行うことで長期記憶に組み込まれる

3. 長期記憶から情報を取り出す際に、貯蔵強度と検索強度の2つのメカニズムがある

  • 貯蔵強度
    • 長期記憶にどれだけきちんと保持されているかを示す
    • 勉強すればするほど、その記憶は強くなって忘れることがなくなる
    • 例: 3×4=12(すぐに思い出せるため貯蔵強度が高い)
  • 検索強度
    • 特定の何かを思い出すのがいかに簡単かを示す
    • JavaScriptのfillter関数の文法など、知っているはずなのになかなか思い出せない、思い出したらなぜ思い出せなかったのか不思議に思うような場合は検索強度が低いと言えます

貯蔵強度は増加する一方で、年月が経つにつれて検索強度は低下していく

  • ある情報を繰り返し学習することでその情報の貯蔵強度は強化される
  • 自分が知っている事実を繰り返し思い出そうとすると、特に勉強しなくても、検索強度は向上する

【個人的な感想】コードを速読する中で検索強度を意識する方がチャンク化してコードを読むことができそう

4. ただ情報を見るだけでは不十分

リストの処理を1つ1つ処理をするコードの6つの選択肢がある場合に正しい選択肢を見つけることは困難です。答えを知ると当たり前のように感じます。

例: 下記の選択肢の中で0のみを含む配列が返ってくる選択肢を選びなさい(JavaScriptのfiltterメソッド)

1.[0,1,2,3,4,5].filter(item => !item)
2.[0,1,2,3,4,5].filter(item => item > 3)
3.[0,1,2,3,4,5].filter(item => item / 2 === 0)
4.[0,1,2,3,4,5].filter(item => item / 2 !== 0)
5.[0,1,2,3,4,5].filter(item => item < 3)
6.[0,1,2,3,4,5].filter(item => item < 2)

答えは1です

知識が長期記憶にしっかり保存されているか(貯蔵強度)ではなく、それを見つけることの容易さ(検索強度)が必要になりました

長期記憶に情報を保存するだけでは不十分であり、その情報も簡単に取り出せるようにする必要があることがわかりました。

【個人的な感想】インプット以上にアウトプットの速度が重要なのかもしれない(積極的にアウトプットすることの重要性)

5. 能動的に考えることで記憶を強化

学んだばかりのことを考えるプロセスのことを精緻化と呼ぶ。

精緻化とは、覚えたいことを考え、それを既存の記憶と関連づけ、新しい記憶を長期記憶にすでに保存されているスキーマに適合させることをいう

例:下記の数字を覚える際に、二進数表現に変換すると1のみで構成される数字という分類に当てはめることで容易に覚えられる

「1,3,15,127,63,31」

スキーマ : ネットワーク構造の脳内で、他の記憶や事実との関係性を持った内容が頭の中で整理されたもの

新しい情報をより多く記憶したい場合は、その情報を明示的に精緻化していくことが有効になる


文法を調べることで作業の妨げにならないように文法を多く記憶しておくことが大切です。

私たちはプログラミングの文法を頭で記憶しているかを気にしていない
なぜなら、それらの情報をインターネットで調べることができるから

しかし、何を記憶しているかはコードをどれだけ効率的に処理することができるかに影響することをchapter2で知りました。

従って、プログラミング言語の文法や概念、データ構造を記憶することで、コードを処理する速度を上げることができます。→ より多くのコードをチャンク化することができる

6. 【プログラマー脳】Chapter

「プログラマー脳」のchapter1「コーディング中の混乱を紐解く」
「プログラマー脳」のchapter2「コードを速読する」
Now →「プログラマー脳」のchapter3「プログラミング言語の文法を素早く習得する方法」
「プログラマー脳」のchapter4「複雑なコードの読み方」
「プログラマー脳」のchapter5「コードの深い理解に到達する」
【TODO】「プログラマー脳」のchapter6「プログラミングに関する問題をよりうまく解決するには」
【TODO】「プログラマー脳」のchapter7「思考に潜むバグ」
【TODO】「プログラマー脳」のchapter8「より良い命名を行う方法」
「プログラマー脳」のchapter9「汚いコードとそれによる認知的負荷を避けるための2つのフレームワーク」
【TODO】「プログラマー脳」のchapter10「複雑な問題をより上手に解決するために」
【TODO】「プログラマー脳」のchapter11「コードを書くという行為」
【TODO】「プログラマー脳」のchapter12「より大きなシステムの設計と改善」
【TODO】「プログラマー脳」のchapter13「新しい開発者のオンボーディング」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0