3. 프로그래밍 문법 빠르게 배우기
- 프로그래밍 언어의 문법, 개념과 자료구조를 외우면 코드를 더 빨리 파악하는데 도움이 됩니다.
#
3.1 문법을 기억하기 위한 팁- 많은 소프트웨어 개발자는 프로그래밍 언어의 문법을 모르더라도 인터넷에 검색하면 된다고 생각하나 이는 큰 두 문제가 있습니다.
- 첫 번째는 관련 내용을 미리 알고 있는 것이 코드를 효율적으로 읽고 이해하는데 상당한 영향을 줍니다.
- 두 번째는 두뇌가 작업을 하다 업무 중단을 받게되면 더 좋지 못한 결과를 초래합니다.
#
3.1.1 중간에 끊어지는 것이 미치는 나쁜 영향- 검색을 하기 위해 브라우저를 열면 이메일이나 뉴스나 다른 주제로 빠지기가 쉬워 목적을 잃기 쉽습니다.
- 코드 작성을 하다가 업무가 중단되면 코드에 대한 중요한 정보를 잊어버립니다.
#
3.2 플래시카드 사용해 문법 배우기- 신속하게 학습할 수 있는 좋은 방법 중 하나는 플래시 카드입니다.
- 프롬프트가 있는 면을 읽고 나서 해당되는 문법을 기억하는 방식입니다.
- 예시
- 기본 문법 <-> numbers = [x for x in numbers]
- 필터 <-> odd_numbers = [x for x in numbers if x % 2 = 1]
- 계산 <-> [x*x for x in numbers]
- 필터와 계산 <-> squares = [x*x for x in numbers if x > 25]
#
3.2.1 언제 플래시카드를 사용해야 하는가- Cerego, Anki, Quizlet 같은 앱을 사용해서 디지털 플래시카드를 만드는 것도 좋습니다.
#
3.2.2 플래시카드의 확장- 프로그래밍 언어의 문법 말고도 개념 등으로 확장하는 것도 좋은 방법입니다.
#
3.2.3 플래시카드 개수 줄이기- 연속으로 잘 맞는 플래시카드의 경우는, 빼도 됩니다.
#
3.3 어떻게 하면 잊어버리지 않을 수 있을까- LTM은 연습하지 않고서는 내용을 오래 기억할 수 없습니다.
- 한 시간 내로 배운 것의 반 정도를 잊어버리고, 이틀 후는 25%만 남습니다.
#
3.3.1 기억을 잃어버리는 이유#
계층구조 대 네트워크- 두뇌의 기억은 네트워크 구조로 되어있습니다. (하드 드라이브의 계층구조와는 다릅니다.)
#
망각 곡선#
3.3.2 간격을 두고 반복하기- 오랫동안 학습한 만큼 더 오래 기억합니다.
- 많은 시간을 학습해야 한다는 것이 아닌 오랜 간격을 두고 학습을 해야합니다.
#
3.4 문법을 더 오랫동안 기억하기#
3.4.1 정보를 기억하는 두 가지 형태- LTM으로부터 기억을 가져오는 두 가지 기제이며 저장(storage) 강도와 인출(retrieval) 강도가 있습니다.
#
저장 강도- 저장 강도는 무언가를 LTM에 얼마나 잘 저장하고 있는가를 나타냅니다.
- 어떤 것을 더 많이 학습할수록 그 내용을 잊어버리는 것이 거의 불가능해질 때까지 기억은 점점 더 강해집니다.
#
인출 강도- 인출 강도는 무언가를 얼마나 쉽게 기억할 수 있는지를 나타냅니다.
- 저장 강도는 감소하지 않고 늘어나는 반면 인출 강도는 시간이 흐를수록 약해지는 것으로 알려있습니다.
#
3.4.2 단지 보기만 해서는 안 된다- 코드의 특정 문법을 기억하는 것은 인출 강도의 문제입니다.
#
3.4.3 정보를 기억하는 것은 기억을 강화한다- 능동적으고 의도적으로 기억해내는 노력이 중요합니다.
- 학습을 추가로 하지 않더라도, 정보를 기억하려고 능동적으로 노력하는 것이 중요합니다.
- 즉, 프로그래밍 문법에 대해 검색하려고할 때 검색 이전에 먼저 그것을 능동적이고 의도적으로 기억하려고 시도해보는 것이 중요합니다.
#
3.4.4 능동적 사고를 통한 기억력 강화- 정보를 외울 때는
- 첫번째는 어느 정도의 간격과 기간을 두고 연습하면 좋습니다.
- 두번째는 정보에 대해 능동적으로 생각하고 그것을 반추하는 것입니다.
- 정보에 대해 생각하는 과정을 정교화(elaboration) 라고 합니다.
- 정보화 작업은 복잡한 프로그래밍 개념을 학습할 때 특별히 효과가 좋습니다.
#
스키마타- 사고나 생각이 서로 관련되어 조직된 방식을 스키마(schema) 혹은 스키마타(schemata) 라고 부릅니다.
- 새로운 정보를 학습할 때 정보는 LTM에 저장하기 전에 먼저 스키마의 형태로 만들어지며, 존재하는 스키마에 잘 맞을 수록 더 쉽게 기억할 수 있습니다.
- 기억이 서로 연결되어 있을 때 관련 기억을 하기 쉽습니다. 즉, 인출 강도는 다른 기억에 연관된 기억일 때 더 높습니다.
- 기억이 저장될 때 기존 스키마타에 맞추기 위해 심지어 기억이 바뀌는 일도 가능합니다.
#
정교화를 이용해 새로운 프로그래밍 개념 학습하기- 기억된 정보를 다시 가져오는 인출 강도가 약하면 기억은 잊혀질 수 있습니다.
- 새로운 정보를 더 잘 기억하고 싶다면 그 정보를 정교화하는 것이 도움이 됩니다.
#
요약- 문법에 대한 지식어 더 많을 수록 청킹을 쉽게 할 수 있기 때문에 문법을 외우는 것이 중요합니다.
- 앞면에는 프롬프트를, 뒷면에는 코드를 적어놓은 플래시카드를 사용해 새로운 문법을 연습하고 기억할 수 있습니다.
- 기억이 없어지는 것을 방지하기 위해, 새로운 정보를 기억하는 연습을 정기적으로 하는 것이 중요합니다.
- 최상의 연습은 기억한 것을 두뇌로부터 인출하는 연습입니다. 다른 곳에서 해당 정보를 찾기 전에 기억해내려고 노력해야 합니다.
- 기억하는 지식의 양을 최대로 하기 위해서는 연습을 긴 시간에 걸쳐 고르게 해야합니다.
- LTM 속 정보는 관련된 사실들이 서로 연결되어 있는 네트워크의 형태로 저장됩니다.
- 새로운 정보를 능동적으로 정교화하면 그 새로운 기억이 연결할 기억의 네트워크를 강화하고 이는 인출을 쉽게 하는 데 도움이 됩니다.