반응형
1. 왜 두 번째 프로그래밍 언어가 첫 번째보다 쉬울까?
전이(transfer)
- 이미 배운 지식이 다른 영역에서도 사용되는 현상
- LTM에 저장된 정보를 사용해서 새로운 내용을 쉽게 배우는 과정을 학습 도중 전이 라고 부른다.
- 새로운 정보를 습득하면, 먼저 감각 기억 공간과 STM에 의해 처리된다. 그다음에 작업 기억 공간으로 전송되며, 작업 기억 공간은 이에 대해 생각하는 동시에 LTM에서 관련 정보를 검색한다. 관련 정보가 발견되면 작업 기억 공간에 전송되어 새로운 정보에 대해 사고하는 것을 돕는다.
- 기존 프로그래밍 지식을 활용할 가능성을 높이는 방법
- 숙달: 전문 프로그래머는 다른 프로그래밍 언어의 문제에 적용할 수 있는 전력, 청크, 정신 모델을 더 많이 알고 있어서 기존 프로그래밍 지식을 활용할 가능성이 높다.
- 유사성: 두 작업 간의 공통점이다
- 배경: 비슷한 환경에서 작업하기. 예를 들어 새로운 언어를 배울 때 동일한 IDE사용하면 학습전이가 더 많이 발생한다.
- 중요 특성: 어떤 지식이 효과적인지에 대해 분명하게 알고 있는지에 대한 것이다.
- 연관: 두 작업이 비슷하다고 얼마나 강하게 느끼는지에 대한 것이다.
- 감정: 작업에 대해 어떻게 느끼는지에 대한 것이다. 예를 들어 이진트리를 사용하는 것에 좋은 감정을 가지고 있는 개발자라면 이진트리를 떠올리는 작업이 주어졌을 때 이진 트리나 이와 유사한 데이터 타입을 적극적으로 적용할 것이다.
- 전이의 다른 형태
- 고도 전이와 저도 전이
- 저도 전이: 자동화된 기술을 이전하는 것을 저도 전이라고 한다. 아무 생각 없이 복붙 하는 행위
- 고도 전이: 복잡한 작업이 전이되는 것을 고도 전이라고 한다.
- 근거리 전이와 원거리 전이
- 근거리 전이: 미적분학과 대수학 또는 C#과 자바처럼 서로 가까운 영역 사이에서 지식이 전이될 때를 말한다.
- 원거리 전이: 라틴어와 논리학, 자바와 프롤로그와 같이 서로 먼 영역 간에 일어나는 전이를 말한다.
- 고도 전이와 저도 전이
- 이미 알고 있다는 것은 저주인가 축복인가?
- 긍정적 전이: 전이를 통해 도움이 되는 경우
- 부정적 전이: 기존 지식이 새로운 것을 배우는데 방해가 되는 경우
- 전이의 어려움
- 연구에 의하면 전이는 일어나기 매우 어렵고 대부분의 사람에게 전이가 자동으로 일어나지 않는다.
- 체스나 프로그래밍을 배우면 논리적인 추론데 대한 기술을 얻거나 심지어 일반적인 지능을 증가시킬 것이라는 주장은 과학적인 근거가 없다.
- 사고방식을 확장하기 위해 새로운 언어를 배우기 시작했다면 이미 시작한 언어와는 근본적으로 다른 언어를 선택하는 것이 중요하다.
2. 오해: 생각의 버그
코드가 작동한다고 확신 함에도 불구하고 여전히 오류가 발생한다면 코드에 대한 오개념이 문제일 가능성이 있다.
- 오개념의 조건
- 사실과 다르다.
- 서로 다른 상황에서 일관되게 유지된다.
- 확신에 사로잡혀 있다.
- 개념 변화를 통한 오개념 디버깅
- 개념 변화(conceptual change): 이미 알고 있는 프로그래밍 언어 때문에 생긴 오개념을 현재 학습 중인 새로운 언어에 맞는 정신 모델로 대체하는 과정
- 오개념 제압하기
- 의식적으로 억제해야 된다.
- 프로그래밍 언어에 대한 오개념
- 핀란드 알토 대학교의 수석 강사인 유하 조르바가 작성 논문
http://lib.tkk.fi./Diss/2012/isbn9789526046266/isbn9789526046266.pdf의 359~368쪽 참고
- 핀란드 알토 대학교의 수석 강사인 유하 조르바가 작성 논문
- 새로운 프로그래밍 언어를 배울 때 오개념 방지하기
- 자신이 옳다고 확신하더라도 여전히 틀릴 수도 있다는 것이 중요하다. 열린 마음을 유지해라
- 흔하게 발생하는 오개념에 대해 의도적으로 연구해 봄으로써 그런 오개념에 빠지는 것을 방지할 수 있다.
- 같은 프로그래밍 언어를 같은 순서로 학습한 다른 프로그래머들에게 조언을 구한다.
발제문
- 3달 전 얼랭 기반으로 만들어진 엘릭서에 관심이 생겨서 관련 책을 읽어 본 적이 있습니다.
긍정적 전이로는 함수형 언어라 익숙한 고차 함수, 재귀, 불변성 등의 개념을 이해하기 쉬웠고
부정적 전이로는 함수호출과 프로세스를 관리하는 형태가 자바스크립트에서는 스레드와 비동기 콜백을 통해 병렬성을 다루지만, Elixir에서는 경량 프로세스를 사용하여 병렬성과 오류 처리를 관리하기에 오개념이 많이 발생했습니다.
특정 언어나 도구를 습득할 때 전이의 다양한 형태(고도 전이와 저도 전이, 근거리 전이와 원거리 전이, 긍정적 전이와 부정적 전이)를 느껴본 사례가 있나요?
반응형
'독서 > 2024' 카테고리의 다른 글
[프로그래머의 뇌] CHAPTER9 나쁜 코드와 인지 부하를 방지하는 두 가지 프레임워크 (0) | 2023.05.15 |
---|---|
[프로그래머의 뇌] CHAPTER8 명명을 잘하는 방법 (0) | 2023.05.14 |
[프로그래머의 뇌] CHAPTER6 코딩 문제 해결을 더 잘하려면 (1) | 2023.05.14 |
[프로그래머의 뇌] CHAPTER5 코드를 더 깊이 있게 이해하기 (1) | 2023.05.13 |
[프로그래머의 뇌] CHAPTER4 복잡한 코드 읽는 법 (0) | 2023.05.12 |