2P by GN⁺ | ★ favorite | 댓글 1개
  • Python 학습 실험에서 언어 능력과 문제 해결 능력이 학습 속도를 가장 잘 예측해, 코딩 입문이 수학보다 언어 학습에 더 가까울 수 있음을 보여줌
  • 연구진은 42명을 모집해 Codecademy의 Learn Python 10개 레슨을 진행했고, 완료자 36명의 사전 테스트·퀴즈·최종 과제를 비교함
  • 학습 성취는 주로 문제 해결과 작업 기억으로 갈렸지만, 학습 속도에는 일반 인지 능력과 언어 적성이 함께 작용함
  • 언어 적성은 Python 학습 속도 차이의 거의 20% 를 설명한 반면, 수학 사전 테스트는 속도 차이의 2% 만 설명했고 성취와는 상관이 없었음
  • 휴식 상태 EEG의 베타 진동도 빠른 학습 및 더 많은 프로그래밍 지식과 관련됐지만, 인과관계와 작동 방식은 아직 불명확함

Python 학습을 예측한 능력

  • University of Washington 연구진의 연구는 Python 학습에서 언어 능력과 문제 해결 능력이 학습 속도를 가장 잘 예측한다고 봄
  • 연구는 Scientific Reports에 실렸고, 행동 테스트와 뇌 활동 측정을 통해 참가자들이 프로그래밍을 얼마나 빠르고 잘 배우는지 비교함
  • 출발점은 Python이나 Java 같은 프로그래밍 언어 학습이 French, Spanish, Chinese 같은 자연어 학습과 생각보다 비슷할 수 있다는 가정임

연구 설계와 측정 방식

  • 42명이 모집돼 Codecademy의 “Learn Python” 온라인 코딩 과정을 수행함
    • 과정은 45분짜리 10개 레슨으로 구성됨
    • 연구를 끝까지 완료한 참가자는 36명
  • 온라인 수업 전 참가자들은 여러 사전 테스트를 수행함
    • 수학 능력
    • 작업 기억
    • 문제 해결
    • 제2언어 학습 능력
  • 수업 중에는 온라인 소프트웨어에 포함된 퀴즈로 학습 속도와 수행도를 추적함
  • 연구 끝에는 전체 코딩 지식을 확인하기 위한 퀴즈와 코딩 과제가 추가로 진행됨

학습 속도와 성취를 가른 요인

  • 참가자들은 Python을 배우는 속도와 최종 프로그래밍 능력에서 서로 다른 결과를 보임
  • Python을 얼마나 잘 배웠는지는 주로 일반 인지 능력에 좌우됨
    • 문제 해결 능력
    • 작업 기억
  • Python을 얼마나 빨리 배웠는지는 일반 인지 능력과 언어 적성이 함께 설명함
  • 언어 적성은 Python 학습 속도 차이의 거의 20% 를 차지함
  • 수학 사전 테스트 성과는 학습 속도 차이의 2% 만 설명했고, Python을 얼마나 잘 배웠는지와는 전혀 상관이 없었음
  • 이 결과에서는 코딩 학습이 수리 능력보다 언어 능력에 더 크게 의존함

EEG가 보탠 증거와 한계

  • 참가자들은 온라인 학습 전에 휴식 상태 EEG 측정을 받음
  • EEG는 두개골을 통해 기록되는 전기 패턴으로 뇌 활동을 측정하는 방식임
  • 휴식 상태의 전기 활동에는 여러 패턴이 있으며, 그중 하나가 베타 진동이라는 느린 전기 활동임
  • 기존 연구에서는 휴식 상태의 높은 베타 진동 수준이 제2언어 학습 능력과 연결된 바 있음
  • 이번 연구에서도 높은 베타 진동 수준은 더 빠른 학습과 더 많은 프로그래밍 지식과 관련됨
  • 다만 베타 진동이 학습 결과와 어떻게 연결되는지는 아직 명확하지 않아 추가 연구가 필요함

프로그래밍 교육과 선입견에 대한 영향

  • 연구 결과는 프로그래밍, 적어도 Python 학습에서 언어 능력이 중요한 요소이며 수학 능력은 학습 속도나 성취를 강하게 예측하지 못한다는 쪽을 지지함
  • 프로그래밍은 흔히 “수학 집약적” 분야로 여겨지지만, 이 연구는 프로그래밍 학습의 전제 조건에 대한 오래된 가정을 다시 보게 만듦
  • 일부 분야는 수학과 프로그래밍 능력을 모두 요구하지만, 그것이 가능한 프로그래밍 직업의 다수라고 단정되지는 않음
  • 모든 컴퓨터 과학 전공자에게 고급 수학 수업을 요구하는 방식은 이 연구 결과에 비춰 불필요해 보이며, 수학 요구 조건의 유연성은 학생 모집과 유지에 도움이 될 수 있음
  • 프로그래밍이 많은 직업의 사전 조건이 되는 상황에서, “수학형 인간”이 아니어도 컴퓨터 과학에 맞는 사람이 있을 수 있음

다양성과 교육 방식에 대한 코멘트

  • 여성은 “전형적인 컴퓨터 프로그래머” 이미지와 자신이 맞지 않는다고 느끼는 경우가 많음
  • 평균적으로 여자아이는 남자아이보다 언어 능력이 더 높은 경향이 있으며, 언어 능력이 프로그래밍 학습 능력을 예측한다면 여성도 프로그래밍을 잘한다는 평판을 더 가질 수 있음
  • 프로그래밍과 언어 능력을 명시적으로 연결하고, 고급 수학을 요구하지 않는 교육 선택지를 제공하면 다양성 개선에 도움이 될 수 있음
  • 빠르게 인기를 얻고 있는 부트캠프식 선택지는 참가자에게 미적분을 강제하지 않고도 프로그래밍 경력으로 이어질 수 있음
  • 동료 코멘터리에서는 프로그래밍 교육이 Fibonacci 수 계산이나 정렬 알고리듬 구현처럼 수학 중심 과제에 치우칠 수 있으며, 더 창의적이고 언어 지향적인 과제가 더 많은 학생의 학습에 도움이 될 수 있다고 봄

댓글과 토론

Hacker News 의견들
  • 논문을 실제로 읽어보면 제목이 클릭베이트에 가깝고, 연구 결과도 크게 과장돼 있음
    표본이 아주 작아서 완료자는 36명뿐이고, 수리력은 R²=.27, 언어는 R²=.31 정도임
    이후 단계적 회귀로 분산 기여도를 계산하는데, 앞선 결과를 사실상 무시한 채 수리력 기여가 거의 없는 것처럼 나옴. 이유는 두 변수에 약 10%의 공유 분산이 있고, 단계적 회귀는 탐욕적이라 먼저 들어간 변수가 가져가기 때문임
    비슷한 언어 시험을 하나 더 넣어도 고유 분산 기여가 거의 없다고 나올 수 있음
    측정값도 인간 평가자, 완료 시간 등 전부 잡음이 큰데 이를 처리하려는 시도가 없음
    제시된 값으로 “언어 학습이 수리력보다 유의미하다”를 Steiger test로 보면 p-value가 0.772라 전혀 유의하지 않음
    결국 수리력은 분산의 27%, 언어 능력은 31%를 설명하지만, 상관된 변수를 추가한 뒤 수리력의 고유 기여가 2%로 줄어든 것뿐임

    • 공정하게 보자면 수리력 산점도는 실제 과정이라기보다 다트판처럼 보임
      회귀에서 양의 기울기가 나온 것도 이상치 위치의 영향이 커 보이고, 언어 적성 산점도는 적어도 두 변수 사이에 우상향 관계가 눈으로 보임
  • 좋은 코드는 문제를 푸는 데서 끝나지 않고, 읽기 쉽고 모듈화된 방식으로 푼다고 봄
    코딩의 문제 해결 부분에는 수학 능력이 필요하고, 구성하는 부분에는 글쓰기 능력이 필요함. 지저분한 코드는 나중에 다시 읽거나 확장하기 어려워져서 문제 해결 자체를 방해함
    긴 수학 증명에도 구성 능력이 필요하지만, 수학에는 글쓰기만으로 도달하기 어려운 “큰 도약”이나 본질적으로 복잡한 개념이 더 많아 보임
    반면 프로그래밍은 “작은 단계”가 많아서, 아주 똑똑하지 않아도 끈기 있게 컴포넌트별로 만들고 의존성이 너무 많지 않다면 인상적인 프로그램을 만들 수 있음

    • 대부분의 코딩에는 불 논리와 아주 기본적인 집합 연산을 넘는 수학이 거의 필요하지 않음
      실제로는 수학적 조작보다 데이터베이스와 인터페이스 스키마를 읽으며 동작을 이해하는 시간이 더 많음
      게임 엔진 같은 예외가 있긴 해도, 3D 그래픽조차 선형대수 초반부 이상이 필요하지 않은 경우가 많음
    • “읽기 쉽고 모듈화된 코드가 좋은 코드”라는 데는 강하게 동의하지 않음
      모듈화되지 않은 코드가 더 읽기 쉽고 빠른 경우가 많고, 저수준 언어나 수동 메모리 관리 언어에서는 최선이거나 올바른 해법이 가독성과 거리가 멀 때도 많음
      가독성은 보는 사람에 따라 달라지고, 형식적 요구사항보다 뒤로 밀림
      개인적으로는 최소한으로만 모듈화된 길고 잘 정리된 함수를 선호함. 파일 경계, 새 함수 문맥 같은 문맥 전환이 유지보수와 확장 시 복잡성과 버그의 가장 큰 원천이었음
      모듈화는 이런 경계를 늘려 복잡성을 숨기고 조직 문제를 추론·수정하기 어렵게 만들 수 있음. 긴 함수는 처음엔 덜 읽기 쉬워도 더 명확한 정신 모델을 만들어 더 나은 해법으로 이어진다고 봄
    • 수학자들도 프로그래머처럼 깨끗하고 조합 가능한 추상화를 추구한다고 봄
      다른 것들과의 상호작용이 복잡한 것과 달리, 그 자체로 복잡한 개념은 범용 객체보다는 증명 안의 맞춤 도구에 더 가까워 보임
      “프로그래밍은 작은 단계가 많다”는 말은 잘 표현됐음. 유지보수 가능한 코드를 쓰는 프로그래머에게 평균적인 작업 기억이 오히려 도움이 될 수도 있다고 자주 생각함
      3분 전에 쓴 걸 기억 못 한다면 작동하는 스파게티 코드를 낼 수 없기 때문임. 물론 꽤 자기합리화적인 가설임
    • 한 번에 하나의 컴포넌트를 작성하고, 실행해 보고, 동작을 확인한 뒤 진행하는 법 자체가 많은 사람이 어려워하는 기술
      컴포넌트 사이의 불필요한 의존성을 피하고, 문제를 분석해 분리 가능한 부분을 찾는 것도 마찬가지임
      프로그래밍을 가르칠 때 답답한 점은 “누구나 반드시 프로그래밍을 배울 수 있다”는 태도를 항상 유지해야 한다는 압박임
      프로그래밍을 배우려는 많은 사람이 동기부터 혼란스럽거나 잘못되어 있고, 다른 기술을 키우는 편이 훨씬 효율적일 수 있음. 엘리트주의 문제가 아니라, 나도 다른 사람이 자연스럽게 하는 일을 못 할 수 있다는 뜻임
    • 여기서 말하는 수학이 추상화인지 계산인지가 중요함
      머릿속으로 긴 나눗셈을 하는 노력은 난해한 스파게티 코드를 따라가는 노력과 비슷함
      암산 나눗셈은 빠르고 잘하게 될 수 있지만 미적분학의 기본정리를 영원히 이해하지 못할 수도 있음
      쓰레기 코드 속을 잘 헤집는 사람이 있긴 하고, 돈을 받으니 어쩔 수 없이 잘하게 되지만, 프로그래밍의 어떤 부분을 잘하게 된 건지는 애매함
      일에서 정신적 긴 나눗셈 같은 연습만 하고 있다고 느끼면 항상 새 직장을 찾음. 뒤처지는 대가라면 돈이 아무리 많아도 가치 없음
  • Prat et al. (2020) 연구가 Python 학습에서 언어 적성이 수리력보다 더 나은 예측 변수라고 제안하긴 하지만, 쉽게 단순화될 수 있어 조심해서 읽어야 함
    연구가 측정한 것은 일상적 숫자 문제를 푸는 기능적 수리력임. 이는 형식 논리, 기호적 추상화, 형식 언어처럼 프로그래밍과 자주 연결되는 고급 수학과는 상당히 다름
    재귀, 타입 추론, 알고리즘 설계를 이해하는 데 중요한 것은 기본 산술이 아니라 이런 더 추상적인 능력임. 따라서 이 연구에서 기능적 수리력의 예측력이 낮다고 해서 깊은 수학적 추론이 프로그래밍과 무관하다는 뜻은 아님
    또한 연구 대상 언어는 자연어에 가깝고 읽기 쉽게 설계된 Python임. 언어 능력이 강한 사람에게 유리할 수 있지만, 기호적·논리적 밀도가 높은 C, Lisp, Haskell까지 일반화되지는 않을 수 있음
    언어와 수학은 대립 영역이 아니라 작업 기억, 실행 주의, 계층 구조 처리 같은 인지 기반을 공유함. 핵심은 어느 쪽이 “이기느냐”가 아니라, 서로 다른 프로그래밍 맥락에서 어떻게 상호작용하고 보완하느냐임

    • 재귀, 타입 추론, 알고리즘 설계에 추상 수학이 필수라는 데는 동의하지 않음
      학계는 수십 년간 프로그래밍의 많은 면을 형식화하려 했지만, 컴퓨터과학 졸업생과 혁신적 프로그래머 사이의 상관이 낮다는 사실을 여전히 이해하지 못하는 듯함
      현실에서 성과를 내는 많은 사람은 다른 방법으로 벽에 부딪혔을 때 “아, 그래서 재귀가 있구나” 하는 순간을 통해 재귀를 배움. 기호적 추상화, 표시 의미론, 타입 이론을 공부해서가 아님
      불편한 진실은 전문 프로그래밍과 혁신적 프로그래밍의 거의 전부가 학위 과정의 필수 고급 수학을 쓰지 않는다는 것임
      이런 교육의 가혹함은 “나도 했으니 너도 해야 한다”와 학문적 문지기 역할로 유지되는 면이 크다고 봄
      프로그래밍을 아주 잘하게 되어 인생에서 가장 생산적인 구간에 들어가면, 그것은 언어처럼 느껴짐. 그냥 말하듯 표현할 수 있게 됨
  • 이 연구 결과는 꽤 납득됨. 늘 매우 잘 읽고 빠르게 읽는 편이었고, 이 능력이 프로그래밍 경력에 엄청나게 유용했음
    SAT 수학은 710점으로 괜찮았지만, 1990년대 후반 SAT 언어는 800점 만점이었음
    무선 센서 네트워크 석사 프로젝트를 시작했을 때 지도교수가 TinyOS 소스 코드를 출력해서 일주일 동안 공부한 뒤 충분히 이해했다고 생각되면 돌아오라고 했음
    그 경험이 형성적이었고, 이후 새 프로젝트에 합류할 때마다 시간을 들여 코드를 읽고 전체가 어떻게 맞물리는지 이해하려고 해 왔음

    • 언어 능력이 강한 쪽으로서 공감함. 학교 다닐 때 수학은 삼각함수쯤에서 약했지만, 영어·스페인어·C는 잘했음
      지금은 선임 웹 개발자이고, 일상생활에 필요한 기본 수학 이상은 여전히 잘 못함. 다만 음식 서비스업 18년 덕분에 백분율은 꽤 빠르게 근사함
    • 빠른 독해력과 높은 언어 점수는 내 경우와 내 동기 컴퓨터과학 학생 상당수에게도 해당됐고, LLM이나 YouTube 이전의 RTFM, MUD, IRC 시대에 대학들이 적극적으로 선호하고 학생들도 그쪽으로 자기선택했던 특성으로 알고 있음
      함께 일한 최고의 프로그래머들은 여전히 언어적 사고가 강했음. 필요하지 않아도 여러 언어를 다루거나, 어려운 문학을 오래 읽어온 이력이 있었음
      최소한 메타인지적이고 메타언어적인 특유의 재치가 있었음
      지금도 그렇다고 보지만 학위와 커리어 경로가 대중화되면서 야생에서 알아보기 어려워졌음. 게다가 실제로는 좋은 설계와 설명 능력이 알고리즘을 밑바닥부터 만드는 일보다 훨씬 자주 필요한데도 리트코딩 최적화를 하면 자연히 수학형 두뇌가 유리해짐
    • 어릴 때부터 책을 잘 읽었고, 시험에서 공간 추론은 매우 높게 나왔음
      하지만 수학은 형편없고 싫어함. 대부분의 수학 글을 읽을 때 난독증처럼 느껴짐
      초등학교 때는 잘했지만, 알고리즘보다 방정식과 추상적인 것, 적용처를 알 수 없는 내용이 중심이 되면서 빠르게 좌절감을 느꼈음
      반면 프로그래밍은 자연스럽고 쉽게 익혔음. 포인터나 재귀처럼 “어렵다”는 주제를 배울 때 실제로는 너무 쉬워서, “이렇게 쉬울 리 없으니 내가 뭔가 놓쳤겠지”라며 스스로 납득시키는 데 더 오래 걸렸음
      직장마다 “어려운” 문제나 “저수준” 문제를 맡는 사람이었음
      수학을 읽어야 할 때는 모든 것을 단계로 바꾸고, 예시 값이 그 단계를 지나며 서로 영향을 주는 방식으로 만들어야만 이해가 됨. 전부 알고리즘으로 바꿔야 함
      방정식과 증명으로 의미를 표현하려는 시도는 잘 안 맞고, 모든 기호 사이 경계를 하나하나 단계로 바꿔 걸어가야 겨우 이해됨
      프로그래밍은 보통 접하고 배우는 방식이 알고리즘 중심이고, 다른 수학적 표현 방식은 훨씬 적어서 잘 맞았던 것 같음. 변수와 루틴이 무엇을 뜻하는지에 대한 맥락도 기호 덩어리보다 훨씬 풍부함
      Perl을 줄잡음이라고 한다면 수학 글쓰기는 대체 무엇인가 싶음. 정신이 망가진 Cthulhu 광신도의 순수한 횡설수설에 비하면 Perl은 세상에서 가장 명확함
      문제가 되는 건 수학적인 문법을 가진 언어들임. 한 글자 변수와 등식 선언으로 일을 처리하는 관용 스타일은 읽기 어렵고, Haskell은 도저히 못 읽겠음
      같은 까다로운 개념인 모나드나 타입 클래스를 더 평범한 언어로 보면 쉬운데, Haskell로 배우려 하면 전혀 진도가 안 나갔음. Haskell로 쓴 fizzbuzz 수준 프로그램도 이해하는 데 오래 걸림
    • 거의 같은 SAT 경험을 했음. 다만 다른 사람과 달리 함수형 프로그래밍과 Haskell을 좋아하고, 프로그래밍 맥락에서 의존 타입 같은 것을 공부한 덕분에 실제 수학과 증명에 대한 허술한 이해를 보완할 수 있었음
    • 나도 같은 말을 하러 왔고 1980년대 SAT 점수도 꺼낼 준비가 되어 있었음
      언어 쪽 점수가 훨씬 높았고, 누구나 알 만한 대기업의 대규모 전문 프로젝트에서 많은 언어를 함께 쓰며 훌륭한 소프트웨어 엔지니어링 경력을 쌓아 왔음
  • “언어형 두뇌”나 “수학형 두뇌”라는 것은, 해당 뉴런들이 언어와 수학에 각각 전담된 겹치지 않는 두 영역으로 나뉜다는 것을 실험으로 보이지 않는 한 성립하지 않음
    수학 자체도 인간이 만든 형식 언어이고, 논리와 집합론의 정의·공리에서 출발하지만 그 정의와 공리 역시 먼저 인간 언어로 주어져야 함
    숙련된 수학자들은 칠판의 그리스 문자로 쓰인 정리를 평범한 영어처럼 읽는데, 이는 그것을 일반 영어처럼 사고한다는 점을 시사함
    물론 원한다면 그 언어와 동형인 시각적 표상을 마음속에 떠올릴 수도 있을 것임

    • 계산장애, 쓰기장애, 난독증은 서로 독립적으로 나타날 수 있어서 수학, 읽기, 쓰기가 다른 과정에 의해 지배된다는 점을 강하게 시사함
      “언어형 두뇌”와 “수학형 두뇌”라는 말은 유용한 허구일 뿐이고, 실제로 서로 다른 고깃덩어리인지 여부는 중요하지 않음
    • “언어형 두뇌”나 “수학형 두뇌”는 당연히 과학적 용어는 아님
      그래도 문제 해결, 생각을 말로 표현하기, 생각을 수학으로 표현하기가 매우 다른 기술이라는 데는 대부분 동의할 것임
    • 이 프레이밍의 또 다른 문제는 암묵적인 거짓 이분법임. 내가 만난 최고의 프로그래머들은 언어와 수학 능력이 둘 다 강한 경우가 많았음
      “시는 같은 것에 다른 이름을 붙이는 예술이고, 수학은 다른 것에 같은 이름을 붙이는 예술이다”라는 Henri Poincaré의 말처럼, 결국 특히 추상화에 대해 이름을 잘 붙이는 능력에 가깝다고 봄
    • 오히려 추상적 사고와 구체적 사고의 차이가 더 클 수 있다고 봄
      다만 내 경험상 20년 전 SAT는 언어 영역도 유추 같은 추상화를 많이 다뤘고, 수학도 비슷했음. 한 번 본 시험에서 언어 660, 수학 650으로 거의 같았음
    • 뇌 외상 이후를 보면 좋은 단서가 될 수 있음. 특정 기능이 이상하게 사라지는 사람들이 있기 때문임
      Oliver Sacks가 뇌 외상의 기묘한 부작용들을 썼음
      수학자나 작가의 뇌 여러 부분에 외상을 일으켜 실험할 수도 있겠지만, 뇌 영역의 신경 자극이나 마취가 뭔가 보여줄 수도 있음
  • 이 주장은 여러 면에서 이상함. “언어형 두뇌”나 “수학형 두뇌” 같은 실체는 없다고 보지만, 동시에 많은 사람이 수학이 무엇인지 모르고, 그 증거가 오히려 “수학형 두뇌”를 뒷받침한다고도 볼 수 있음
    수학은 계산이 아니라 패턴에 관한 것임. 대수에 들어가면 “왜 수학에 글자가 나오지?”라고 생각하지만, 더 나아가면 “왜 수학에 숫자가 나오지?”라고 생각하게 됨
    수학교육의 큰 비극은 계산에 너무 집중한다는 점임. 군론, 조합론, 그래프, 집합론, 범주론 같은 유용한 주제는 아이들도 이해할 수 있는 기초가 있는데도 학부 수학 전공이나 대학원에 가서야 가르침
    이런 주제들은 엄청난 깊이를 갖고 있지만, 사고방식을 형식화해 주는 많은 부분은 아이들도 이해할 수 있음. 예로는 Visual Group Theory[0]를 추천함
    수학은 추상화에 관한 것인데, 이상하게도 우리는 그것을 “게임 후반”까지 아껴 둠
    이런 것을 이해하면 학습이 빨라지고 사고방식에 깊은 영향을 준다고 확실히 말할 수 있음. 다만 그 추상화를 진심으로 받아들이고, 특정한 적용처에만 쓰이는 도구라고 스스로 제한하지 않아야 함
    많은 사람이 문장제를 어려워하지만, 사촌 Throckmorton이 수박 500개를 사려 한다는 우스운 상황이어도 결국 수학과 현실을 연결하는 일부임
    “고급” 수학이 내 학습을 빠르게 한 이유는 그 수준의 수학이 추상화, 즉 사고방식을 가르치기 때문임. 방정식을 쓰지 않더라도 엄청나게 도움이 됨
    수학은 사실 방정식을 쓰는 것이 아니지만, 복잡해질 때는 방정식이 큰 도움이 되기 때문에 쓰는 것임
    [0] https://www.youtube.com/watch?v=UwTQdOop-nU&list=PLwV-9DG53N...

    • 수학이 추상화로 이루어져 있다는 걸 깨닫는 데 오래 걸렸음
      예를 들어 행렬이 선형방정식을 표현하기 위한 유용한 추상화, 혹은 축약 표현이라는 말을 들어본 적이 없었음
      허수가 특정 계산을 쉽게 하기 위해 발명된 추상화라는 것도 마찬가지임
      그런 추상화가 어떻게 생겼고 왜 유용한지의 관점에서 배웠다면 좋았을 것 같음
    • 수학을 지금처럼 가르치는 방식으로 음악을 가르친다면 사람들이 “수학을 못하는” 게 놀랍지 않음
      “음악 시간에는 오선지를 꺼내고, 선생님이 칠판에 음표를 쓰면 우리는 그것을 베끼거나 다른 조로 이조한다. 음자리표와 조표를 제대로 써야 하고, 선생님은 4분음표를 완전히 채웠는지 매우 까다롭게 본다. 한번은 반음계 문제를 맞혔지만 기둥 방향이 틀렸다고 점수를 받지 못했다.”
      https://en.m.wikipedia.org/wiki/A_Mathematician%27s_Lament
    • 여기서 말하는 표현은 그냥 “수학 문제를 다룰 때 활성화되는 뇌 영역”과 “언어 문제를 다룰 때 활성화되는 뇌 영역”을 뜻하는 것으로 보이고, 둘 사이에 차이가 있다는 강한 증거는 있음
    • 아이들에게 학교에서 배우는 미적분이나 기하보다 군론, 추상대수, 빅오 표기, 조합론 같은 순수수학을 가르치는 편이 훨씬 더 큰 도움이 되고 더 멀리 나아가게 할 것이라고 돈을 걸 수 있음
      나도 추상대수를 독학하면서 학습과 추론 능력이 빨라진 경험이 있음
    • 내 2000년대 어느 고등학교 경험만 보면, 수학 반이 지나치게 세분화된 것은 우리가 80%의 사람에게 수학을 정말 못 가르치고 있거나, 아니면 20%만이 예비미적분을 감당할 수 있다는 뜻처럼 보였음
      기본적으로 네 트랙이 있었고, 하나는 고3 때 대수 1을 끝냈고, 하나는 고3 때 삼각함수를 했고, 또 하나도 삼각함수까지였지만 예비미적분은 없었고, 마지막 트랙만 삼각함수와 예비미적분까지 갔음
      그 마지막 반도 더 세분화돼 일부는 예비미적분만, 일부는 미적분 1과 AP Calculus AB나 IB Math SL을, 더 작은 그룹은 AP Calculus BC나 IB Math HL을 봤음
      내 학년에서 AP Calculus AB 시험을 본 학생은 졸업생 500~600명 중 20명 정도였음
  • “언어 능력과 문제 해결 능력”이라는 표현부터 첫 번째 경고 신호임. 제목은 이를 언어만의 문제로 바꿔버렸음
    문제 해결 능력이 관련 있다는 건 꽤 명백하지만, 언어는 덜 명확함
    평생 대부분을 프로그래밍해 왔지만 스스로 말을 잘한다고 생각하지 않음. 언어 능력도 그럭저럭이고, 새 자연어 학습은 기대하기 어려움
    그래서 회의적이고 연구를 보면, 우선 “수학”이 수리력으로 바뀌어 있음. 프로그래밍은 대수에 더 가깝다고 생각하지만, 그마저도 덜 엄격하고 디버깅이 쉬움
    연구의 수리력 측정은 여러 척도에서 18개의 수리력 문항을 평가한 뒤 가장 예측력 높은 8개를 고른 Rasch 기반 척도였음
    게다가 이 연구는 이제 5년 전 자료임

    • 내게 문제 해결 능력은 문제와 해법을 명료하게 표현하는 능력과 거의 같음. 큰 차이를 보지 못함
      문제를 풀 수는 있지만 무엇이 문제인지, 왜 그 해법이 문제를 해결하는지 설명할 수 없다면 좋은 문제 해결자라고 부르기 어려움
      문제를 잘 설명하지만 해법을 못 떠올리는 사람은 이미 세상의 많은 프로그래머보다 낫고, “풀이 과정” 없이 해법만 던지는 사람보다 함께 일하고 싶음
      사실 그런 표현 능력 없이 문제 해결이 무엇인지 원시적인 의미로 파악하기도 어려움
      이 맥락에서 창의성은 문제를 더 접근하기 쉬운 방식으로 재구성하는 능력일 수 있음. 많은 경우 그런 프레이밍은 명백한 해법이나 명확한 절충안을 가진 해법 집합을 암시함
  • 프로그래밍을 잘 배우는 사람과 영어 스펠링 비를 잘하는 사람 사이에 꽤 흥미로운 상관을 봤음
    알고리즘적인 과정을 수행하면서도 많은 일화와 난해한 규칙 예외를 머리에 담아두는 점이 비슷한 듯함

    • 교사이거나 스펠링 비를 운영하는 사람이어서 일반 지능과의 상관을 구분할 만큼 제대로 통계를 냈는지 궁금함. 이 일화적 근거가 어디서 나온 건지 알고 싶음
    • 철자를 정말 못 쓰던 컴퓨터과학 교수가 있었고, 학생들에게 선의의 놀림을 많이 받았음
    • 나도 자연스럽게 영어 철자를 잘 외우는 편이라 말이 됨
      내 두뇌는 이런 종류의 데이터를 저장하고 꺼내는 데 맞는 듯하고, 이는 CLI 인터페이스와 특이한 명령 구조 같은 것과도 높은 상관이 있음
  • “언어형 두뇌”와 “수학형 두뇌”를 정의하는 것은 거짓 이분법이고 엉터리 신경과학이라고 강하게 봄
    수학은 그 자체로 개념을 표현하기 위해 만들어진 기호 모음, 즉 언어임
    이 연구는 관심, 추진력, 기회가 있으면 누구나 좋은 프로그래머나 수학자나 무엇이든 될 수 있다는, 이미 대부분 아는 말을 하려고 애쓴 느낌임
    수학자, 나아가 컴퓨터과학자에 대한 사회적 인식 변화를 보여주는 흥미로운 책으로 “Duel at Dawn”이 있음
    현대의 비교적 최근 이미지는 숫자와 정보를 처리하는 외계적이고 초인적이며 선천적인 능력을 가진 은둔 천재, 때로는 자폐 암시까지 붙는 인물임. TV 쇼 “the big bang theory”의 “Sheldon Cooper” 같은 전형임
    하지만 이는 거짓임
    누구도 무엇이든 초인적으로 잘하는 능력을 타고나지 않음. 어떤 일을 매우 잘하는 사람은 인식과 무관하게 그 일을 잘하기 위해 매우 열심히 노력한 사람임
    처음에는 기사만 보고 연구를 비판했는데, 실제 인용 논문을 훑어본 뒤 구체적 비판은 수정했음. 그래도 논문 자체는 심리학과 통계 용어로 포장한 약한 우생학적 논변 이상으로 보이지 않음

    • 우생학은 안 보이는데, 인용해 줄 수 있음?
  • 기사가 극도로 오해를 부르고, 거의 악의적이라고까지 말하고 싶음
    연구 자체는 유동 추론과 작업 기억 용량이 34%, 언어 적성이 17%, 휴지 상태 EEG의 베타 및 저감마 대역 파워가 10%, 수리력이 2%를 설명한다고 함
    그런데 여기서 수학 능력을 수리력과 동일시함. 연구 자체도 그렇게 암시하지만, 나는 근본적으로 동의하지 않음
    수학 능력은 수리력보다 유동 추론에 훨씬 더 가깝다고 봄