본문 바로가기
Book Review

[서평] 프로그래머의 뇌 (The Programmer's Brain, 제이펍 Jpub), 프로그래밍과 인지과학의 만남. 효율적인 프로그래밍에 대한 접근.

by 잇포에듀 2022. 8. 16.
반응형

#프로그래머의뇌  #프로그래밍  #인지과학  #프로그래머  #리팩터링  #서평  #책추천

 

훌륭한 프로그래머가 알아야 할 인지과학의 모든 것

뇌를 알면 코드가 보인다

효율적인 프로그래밍을 위한 참신한 내 머리 사용법

 

 

사소한 나의 이야기

어릴 때 부터 프로그래밍에 관심이 많았습니다. 그리고 꾸준히는 아니어도 틈틈히 공부를 해왔습니다. 기간만 생각하면 벌써 20년도 훌쩍 넘었습니다. 그런데 기간에 비해 여전히 프로그래밍은 걸음마 수준이고, 제대로 작동하는 간단한 완성품 하나 만들어보지 못했습니다. 먼 옛날 GW-BASIC을 시작으로 C, C++, 포트란, 자바, 자바스크립트, 리액트, 파이썬에 이르기까지... 적어도 책 한권을 읽어봤던 언어들은 많습니다.

 

프로그래밍 언어 하나를 선택해 (책을 통해서든, 영상을 통해서든) 공부를 마치고나면 응용해서 무엇을 해볼 수 있을까 고민이 많습니다. 막상 컴퓨터 앞에 앉으면 무엇부터 시작해야 할 지, 그동안 공부했던 기본적인 문법 조차 잘 떠오르지 않는 경험을 늘 합니다. 

 

왜 하나도 기억이 안나지?

 

다시 어릴 때 이야기로 돌아가면 저는 기억력이 좋지 않습니다. (그렇게 믿고 살고 있는 것 같습니다.) 학생들을 위한 학습 코칭을 연구하면서 공교롭게도 주로 연구했던 주제는 "기억력"에 관한 부분이었습니다. 연구회 멤버들 중에 기억력이 제일 안 좋은 사람이 기억을 연구하다니... 정말 아이러니한 일이 아닐 수 없습니다.

 

그래서인지 인지과학, 기억에 관한 부분에 관심이 많이 생겼습니다. 다양한 방법들에 대해 더 많이 찾아보고, 연습도 해보고 있습니다.

 


 

책 이야기: 프로그래머의 뇌 

우연히 재미있어 보이는 책을 발견했습니다. 출판사에서 제공한 소개에는 다음과 같은 내용이 적혀있었습니다.

**뇌를 알면 코드가 보인다**
**효율적인 프로그래밍을 위한 참신한 내 머리 사용법**

프로그래밍은 까다로운 인지 활동이다. 추상적 수준에서 문제를 해결하는 동시에 코드도 작성해야 한다. 우리 뇌가 코드를 처리하는 방식을 과학적으로 들여다보면, 프로그래밍에서 마주치는 어려움의 원인을 파악하여 그 해결책을 찾을 수 있다.이 책은 더 나은 프로그래머가 되기 위해 뇌를 십분 활용하는 방법을 다룬다. 장기 기억 공간, 단기 기억 공간, 작업 기억 공간 세 가지 인지 활동의 메커니즘을 이해하면 코드를 더 잘 이해하고 파악할 수 있다. 나아가, 버그 방지, 명확한 변수명 선택, 리팩터링, 대규모 코드베이스 개선에 이르기까지 각종 연구 결과와 과학적으로 입증된 기법을 제시하여 개발자가 새로운 언어나 프레임워크를 빠르게 배우고 생산성을 향상할 수 있게 도와준다.

새로운 개념을 익히기 어려워하는 주니어는 뇌가 ‘원래’ 그렇게 작동한다는 걸 알고 불필요한 자책을 줄일 수 있다. 경력이라고 뽑은 새 팀원의 온보딩이 늦어서 답답함을 느끼는 시니어 역시 그것이 뇌 때문이라는 걸 알고, 새 팀원을 더 잘 이해할 수 있을 것이다. 더 나은 프로그래머를 꿈꾸는 모든 독자에게 권한다.

 

프로그래밍이라는 분야와 인지과학이라는 분야가 만나다니! 그 동안 제가 공부한 프로그래밍 언어에 대한 내용은 도대체 어디로 간 것인지? 코드를 이해하는데 오랜 시간이 걸리는 이유는 무엇인지? 조금 더 이해하기 쉽게 프로그램을 만드는 방법은 무엇인지? 이러한 질문들에 대한 답을 줄 수 있을 것 같다는 생각을 하고 책을 집어들었습니다.

 

이 책은 크게 네 파트로 구성되어 있습니다.

 

Part I. 코드 더 잘 읽기

Part II. 코드에 대해 생각하기

Part III. 좋은 코드 작성하기

Part IV. 코딩에서의 협업

 

 

프로그래밍을 할 때 역할을 하는 세 가지 인지 과정, 코드를 빠르게 읽고 이해하는 방법, 프로그래밍 문법과 개념을 잘 배우는 방법, 복잡한 코드를 읽는 방법, 낯선 코드를 깊게 이해하는 기술, 코드와 사고에서 버그를 피하는 법, 명확한 변수 이름을 선택하는 방법, 코드 스멜과 인지적 원리, 복잡한 문제 해결을 위한 발전된 기술, 코딩하는 기술, 대규모의 코드베이스 개선 방법, 새로운 개발자 팀원의 적응 지원 방법 등 호기심이 생길만한 주제들이 가득합니다.

 

기본적으로 이 책은 프로그래밍에 관련된 책이기도 하지만 인지과학의 초점으로 다루어져 있습니다. 예를 들어 새로운 코드를 만났을 때 혼란을 느끼는 여러 가지 원인들을 살펴보면 크게 다음과 같습니다.

  • 지식의 부족: 의미를 잘 모른다. => LTM(Long-term memory: 장기 기억)의 문제
  • 정보의 부족: 메서드의 정보가 부족하다 => STM (Short-term meomry: 단기 기억)
  • 처리 능력의 부족: 한눈에 다 이해할 수 없다. => 작업 기억 공간의 문제(Working-memory)

 

이 책은 이러한 인지적 과정의 문제와 해결 방법에 대해 구체적으로 다루고 있습니다. 그리고 재미있는 부분은 아래와 같이 그러한 인지 과정을 연습할 수 있는 방법들도 제공하고 있습니다.

 

 

또 이런 경우도 생각해봅시다. 프로그래밍에서 변수명을 잘 정의해야하는 이유는 무엇일까요? 보통은 코드를 보다 명확하게 이해할 수 있다는 정도로 설명을 할텐데 이 책은 명명의 인지적 측면, 다시 말해 STM, LTM에 도움이 되는 이유라든지, 어떤 종류의 이름이 더 이해하기 쉬운지, 이름이 버그에 어떤 영향을 미치는 지 등에 대해 언급하고 있습니다. 흥미롭고 재미있었습니다.

 

 

그리고 저에게 가장 흥미롭고 재미있었던 부분은 마지막 장, "새로운 개발자 팀원의 적응 지원" 부분이었습니다. 선임개발자가 새로 온 팀원의 적응 지원을 돕는 일반적인 상황은 다음과 같습니다.

 

  • 선임 개발자가 새 팀원에게 많은 정보를 준다.
  • 소개가 끝난 후 선임 개발자는 새 팀원에게 질문을 하거나 과제를 준다.
  • 도메인이나 프로그래밍 언어 혹은 두 가지 관련 청크의 부족과 관련 자동화 기술 부족으로 인해 인지 부하가 높아지고 새 팀원은 어려움을 겪는다.

 

 

그러면 어떻게 해야 하는가? 책에서 저자가 자신의 의견을 자세히 기술하고 있는데 그 내용과 과정들이 매우 인상 깊었습니다.

 


이 책에 대한 간단한 평가

프로그래밍을 공부할 때 내 머릿 속에서 어떤 과정이 이루어지는지 궁금하다면, 프로그래밍 공부를 효과적으로 할 수 있는 방법이 궁금하다면, (기초적인) 뇌 인지 과학도 궁금한 프로그래머라면 재미있게 읽을 수 있는 책

 

★★★★★

 

프로그래밍 언어 공부에 좌절감(?)을 맛 본 주니어 개발자, 아무리 가르쳐도 발전이 없는 주니어에게 좌절감(?)을 맛 본 시니어 개발자 모두가 읽어보면 좋을 책입니다. 꼭 좌절감을 맛 본 개발자가 아니어도 프로그래밍 공부를 보다 효과적으로 시작해보고 싶은 분들이라면 누구나 일어보면 좋을 책이라 생각하고 강하게 추천합니다!

 

클린코드, 리팩터링의 개념에 대한 인지과학적 접근이라고 할까?

 


 

 

제이펍 <IT 전문서 리뷰어> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

 

프로그래머의 뇌 - YES24

인지과학을 활용한 개발자의 일머리 개선법 이 책은 인지과학에 기반을 둔 각종 방법론으로 개발자가 새로운 언어나 프레임워크를 빠르게 배워 생산성을 향상하도록 돕는다. 코드를 더 잘 이해

www.yes24.com

 

반응형

댓글