brunch

You can make anything
by writing

C.S.Lewis

by 최진용 Nov 05. 2022

실용주의 사고와 학습을 읽고서

실용주의 프로그래머가 되기 위한 첫 여정

이 책을 읽는 대부분의 독자는 프로그래머일 테지만 책의 내용은 다분히 인문학적이며 독자에게 이성적인 접근보다 직관적인 감각을 통해 독서하기를 요구한다. 나 또한 프로그래머로 일하면서 사고방식이 꽤나 문자와 기호에 종속되고 이성적으로 사고하게 되는 경향이 있는데 (일에 적응하기 위해선 이 방법이 가장 빠르고 쉬운 길인 거 같다.) 우리의 뇌는 그렇게 이성적인 사고(책에서 표현하길 L모드)만 하기에는 너무나도 아까운 기관이다! 작가는 이 책을 통해서 독자들이 코드를 단편적으로 이해하는 게 아니라 코드 그 너머에 있는 것들까지 유기적이며 종합적으로 이해하고 바라보길 원하고 있다.

이를 위해서는 우리 안에 그동안 잠들어있는 직관이라는 녀석을 다시 한번 깨울 필요가 있다!


Tip 001 | 늘 맥락을 고려하라


- 기호나 문자화 되지 않은 것들을 이해하고 서로 연결 지어 통합적으로 사고하는 능력

MBA와 중역 대상 교육

인지과학 연구

학습 이론

간호학, 건강관리, 항공 산업과 관련 작업 및 산업

요가와 명상 기술

프로그래밍, 추상화, 문제 해결

인공지능 연구

서로 거리가 있어 보이는 위의 주제들이 언제 어떻게 연결되고 서로에게 영향을 줄지는 아무도 모른다.


책의 각 장을 정리해봤습니다.

초보자에서 전문가에 이르는 여정

이것이 뇌다

마음속 들여다보기

당신의 마음을 디버그하라

의도적으로 배우기

경험 축적

초점 유지하기

전문성을 넘어서


초보자에서 전문가에 이르는 여정

주변에서 전문가를 본 적이 있는가? 뛰어난 요리사, 의사, 프로게이머, 주식 투자자 등 그들의 공통점은 기본적인 실력은 물론이거니와 초보자에게는 없는 직감을 지니고 있다는 것이다. 그들은 문제를 하나의 패턴으로 인식하는 경향이 있다. 어떻게 하면 우리는 전문가가 될 수 있을까? 사람들이 어떻게 기술을 습득하고 통달하게 되는지에 대해 관심을 가지고 연구한 형제가 있었습니다. 그들은 고도로 숙련된 전문가들을 관찰하기 시작했습니다.


드라이퍼스 모델 (Dreyfus model)

초보자

고급 입문자

중급자

숙련자

전문가


- 초보자 (novice)

초보자에게는 레시피가 필요하다. 규칙이 있으면 시작할 수는 있지만 더 앞으로 나아갈 수는 없습니다.


- 고급 입문자 (advanced beginner)

고급 입문자는 큰 그림을 필요로 하지 않는다. 생판 밑바닥부터 시작하는 게 아니라 자신의 경험 중에서 비슷한 상황에 맞춰서 하는 것입니다. 아직은 '큰 그림'을 보지 못합니다.

보통 대부분의 사람은 고급 입문자에 속해있습니다.


- 중급자 (competent)

중급자는 문제 영역에서 개념적인 모델을 정립하고 그 모델을 효과적으로 활용할 수 있습니다. 문제를 스스로 해결하고 새로운 문제를 해결할 방법을 찾아내기 시작합니다.

중급자는 스스로 문제 해결이 가능합니다. 하지만 아직은 경험이 부족한 상태입니다.


- 숙련자 (proficient)

실무에서 숙련자가 되면 큰 그림이 필요해집니다. 단순 업무로는 더 이상 성장하지 못하게 됩니다. 또한 이들은 다른 사람의 경험에서도 배웁니다. 실무자로서 숙련자에 이르면 사례 연구(case study)를 읽고 실패한 프로젝트의 험담도 듣고 다른 사람이 어떻게 했는지도 살펴보면서 성장합니다.

직접 참여하지 않는 경우에도 말이죠.

숙련자는 자가 교정을 할 수 있습니다. 그래서 애자일을 통한 자기 피드백이 가능해지는 단계입니다.


- 전문가 (expert)

전문가는 어떤 분야든 지식과 정보의 근원입니다. 늘 더 나은 방법과 수단을 찾습니다. 늘 적절한 맥락에서 써먹을 수 있을 만큼 방대한 경험을 갖고 있죠. 보통 이런 사람들은 책을 쓰고 기사를 쓰고 순회강연을 다닙니다. 현대판 마법사인 것입니다.

전문가는 일관되고 정해진 규칙으로만 세상이 돌아가지 않는 걸 깨달은 사람들입니다. 그들은 항상 큰 맥락 안에서 행동하고 판단합니다. 전문가는 직관으로 일합니다.


Tip 002 | 초보자는 규칙을 활용하고 전문가는 직관을 활용하라


어떤 분야에 있어서 전문가에 도달하고 싶다면 우리가 현재 어느 단계에 도달해 있는지 생각해볼 필요가 있습니다. 우리가 무엇을 모르는지 조차도 모르는 이차적 무능력을 경계해야 합니다.


이것이 뇌다

뇌야 말로 우리 모두가 가지고 있는 최고의 연산장치입니다. SF소설인 듄(Dune)에 보면 인간 컴퓨터라고 불리는 '멘타트'라는 존재들이 나옵니다. 물론 이건 SF적인 상상력이지만 우리는 우리 뇌를 더 이해하고 활용해야 합니다. 우리의 무한한 가능성을 믿어봅시다.


왜 R모드를 강조할까요? 그것은 R모드가 우리에게 직관을 주고 우리가 그토록 열망하는 전문가가 되는데 필요한 것을 주기 때문이다.
아름다움이 '선택'에서 나온다고 설명합니다. 즉, 예술은 창조 행위 자체보다 무한한 선택 사항 가운데 하나를 고르는 행동이 더 중요하다는 것입니다.


Tip 009 | 분석을 통해서 배우는 것만큼 종합을 통해서 배우라.


L모드 처리의 특성

- 언어, 분석, 상징, 추상, 시간, 추론, 수치, 논리, 선형


R모드의 속성

-비언어적, 비합리적, 종합적, 공간적, 구체적, 직관적, 유추적, 전체론적, 비선형


R모드의 처리 방식에 많은 장점이 있음에도 우리는 별로 사용하지 않습니다. 대부분의 프로그래머들은 L모드의 편중된 경향을 보입니다. 물론 저도 그렇고요. 우리의 능력이 낭비되고 있습니다.


마음속 들여다보기


Tip 012 | 뇌를 더 많이 활용하고 싶다면 감각적인 경험을 늘려라

여러분의 뇌는 새롭고 추가적인 자극에 굶주려 있습니다. 뇌는 끊임없이 변하는 환경에 지속적으로 적응하도록 만들어져 있습니다. 사무실에 뇌에 새로운 자극을 줄만한 물건을 구비해보세요. 제 경우에는 만년필입니다. 만년필 잡았을 때의 특유의 감촉과 종이 위를 내달리는 펜의 느낌이 제게 늘 새로운 자극을 줍니다.


Tip 013 | R모드가 이끌고 L모드가 따라오게 하라

R모드가 운전하는 방식에 익숙해져야 합니다. 불확실성과 혼돈이 지니고 있는 가능성에 주목할 필요가 있습니다. 시작부터 모든 게 정돈되고 정리되어 있어야 할 필요는 없습니다. 우리는 대체로 걱정과 부담을 한가득 안고서 시작을 무겁게 하는 경향이 있습니다. R모드가 이끄는 대로 한번 시도해봅시다.


해당 케이스로 유명한 실험이 있습니다. 이름하여 '마시멜로우 챌린지'입니다.

https://www.superookie.com/contents/5c087c928b129f7a5c47e0e0


당신의 마음을 디버그하라

인지적 편향 만나보기

고착화

기본적인 귀인 오류

이기적 편향

종결 욕구

확증 편향

노출효과

호손(Hawthorne) 효과

잘못된 기억

표상적 축소 오류

명목 오류


Tip 013 | 예외를 살펴보라:'드물다'는 것이 '결코 일어나지 않는다'를 의미하지 않는다.


종결을 연기하라.

종결 욕구는 우리가 불확실성을 제거하려는 경향이 있다는 뜻이다. 프로젝트를 진행함에 있어 결정되지 않은 일에 불편함을 느낀 경험은 누구나 있을 것이다. 하지만 가능하다면 결정을 최대한 늦추도록 하자. 시간이 지나면 지날수록 프로젝트에 대한 이해도는 높아지고 그로 인해서 더욱 좋은 선택을 할 확률이 올라간다. 미루는 것이 아니다 그저 때를 기다리고 묵혀두는 것이다.


의도적으로 배우라

목표는 목적에 도달할 수 있게 해준다.


"자신의 불꽃을 태워라. 정신을 무언가로 채워 넣어야 할 그릇으로 보는 것은 올바른 은유가 아닙니다. 그보다는 점화시켜야할 할 나무이고 점점 창의성을 추구하게 하고 진실에 대한 욕망을 일깨우는 것입니다."


SMART 목표 설정

Specific(구체적인)

Measurable(측정 가능한)

Achievable(달성할 수 있는)

Relevant(의미 있는, 당면 과제에 적절한)

Time-Boxed(시간 제한이 있는)

TIP 035 | 목적을 달성하기 위해 SMART 목표를 만들어라.


실용주의 투자 계획 만들기 (Pragmatic Investment Plan, PIP)

구체적인 계획을 세우라

다각화하라

적극적으로, 수동적이지 않은, 투자를 하라

정기적으로 투자하라


SQ3R로 의도적으로 읽기

훑어보기(Survey): 목차와 장 요약을 훑어보면서 전체적인 개요를 파악합니다.

질문(Question): 생각나는 질문들을 적어놓습니다.

읽기(Read): 전체를 다 읽습니다.

낭송(Recite): 요약하고, 메모하고, 스스로 표현해 봅니다.

복습(Review): 다시 읽고, 메모를 확장하고, 동료와 토론합니다.


지금 이렇게 글을 쓰는 이유도 실제로 SQ3R을 실천하기 위해서입니다. 책을 읽는 시간보다 적은 시간이지만 분명히 책을 다시 읽으면서 정리하는 시간이 짧지는 않습니다. 하지만 책을 다시 읽었을 때의 풍경은 분명 처음 읽었을 때와는 전혀 다른 풍경일겁니다.


TIP 031 | 글을 써라: 문서화는 문서보다 중요하다.


경험 축적

재밌는 것은 좋은 것이다.

TIP 033 | 더 많이 배우려면 더 많이 놀아라


실천하며 실패를 수용하라.

배우기 위해서는 자유롭게 탐험하는 것이 필요합니다. 하지만 탐험은 상대적으로 위험으로부터 자유로워야합니다. 뭔가를 시도하는 것이 두려워 망설여서는 안됩니다. 심지어 어디로 가는지 모르면서도 탐험을 해야할때도 있습니다.

TIP 035 | 자신의 환경에서 탐험하고, 발명하고, 적용하라, 안전하게.


뭔가를 그냥 하지는 마라. 일단 멈춰라

고치려고 하기 전에 '현재 상태'를 완전히 파악하려고 하는 것은 디버깅에도 그대로 적용됩니다.

프로그래머는 뭐가 진짜 잘못되었는지 완전히 파악하지 못한 상태에서 바로 명백해 보이는 버그를 고치려고 달려드는 경우가 너무 많습니다. 급하게 달려들어서 판단하거나 잠재적으로 불완전하게 수정하려는 충동과 싸워야합니다. 시스템이 어떻게 동작하는지 완전히 이해하세요. 해답을 궁리하기 전에 어떤 부분이 '잘못'되었는지 결정하세요.


- 지각 능력을 일깨워라!


실패를 허락하라.

TIP 037 | 스스로에게 실패를 허락하라. 그것이 성공으로 가는 길이다.

아이러니하게도 실패야말로 성공으로 가는 길입니다. 당신이 처음부터 완벽하게 해낼거라고 기대하지 마세요. 가치 있는 일은 어렵고 보통 어려운 일은 처음해보는 일이 것이며 처음해보는 일에 실패하는 것은 당연합니다. 차라리 미리 경험하고 미리 실패하는게 빠른 길일지도 모릅니다.


상상은 감각을 넘어선다.

'성공'의 느낌에 익숙해지는 것은 처음에는 성공한 척이라도 할 가치가 있을만큼 중요한 것입니다.

상상 예측에 있어서 우리의 뇌는 현실 감각으로 입력된 정보와 동일하게 반응합니다. 발판을 이용해서라도 성공의 경험을 하는 것이 얼마나 중요한지 실로 절감하게 됩니다. 턱걸이 운동에서도 턱걸이 하나를 하는게 가장 어렵다고 이야기합니다. 첫번째 성공을 위해서 밴드를 사용해봅시다.


초점 관리하기

TIP 039 | 주의를 기울이는 법을 배우라.


외부 지원도 지성의 일부분이다. 저는 개인적으로 책을 읽지 않아도 근처에 두기만 해도 긍정적인 효과를 본다고 생각합니다. 물론 업무 중에 궁금한 부분을 근처에 있는 책에서 바로 힌트를 얻어서 처리한다면 더욱 베스트겠지만 그렇지 않더라도 책을 옆에 두는건 심리적 안정을 줍니다.


지식을 관리하라

여러분 자신의 책 모음, 노트, 심지어 여러분이 즐겨쓰는 IDE와 프로그래밍 언어까지 이 모든 것들이 여러분의 외부 뇌세포를 구축하는 경우가 많습니다. 이것은 여러분의 물리적 뇌 바깥에 존재하는 지식이나 처리 창치입니다.


위키를 사용하라

개인적으로 깃헙을 이용하는 방법이 가장 간편하고 이력을 관리하기에도 용이하다고 생각합니다.


컨텍스트 전환

컨텍스트 전환은 무조건 최소화하는게 좋다. 스스로를 과대평가하지 말자. 우리의 뇌는 싱글코어라는 것을 인정하자.


전문성을 넘어서

연습으로 지속성을 높인다.

변화는 늘 보이는 것보다 힘듭니다. 이건 그냥 경구 정도가 아니라 물리적인 현실이죠. 오랫동안 깊이 배어든 습관은 뇌의 신경망에 고속도로를 놓은 것과 같습니다. 이런 오래된 습관은 쉽게 사라지지 않습니다. 오래된 습관으로 돌아가는 것은 너무나도 당연한 겁니다. 뇌가 그렇게 되어 있는 것입니다.


계획으로 시작하라.

진짜 적은 실수하는 것이 아니라 아무것도 하지 않는 것이다.

새로운 습관은 시간이 걸린다.

믿으면 사실이 된다.

작은 걸음으로 나아가라.


커다란 목표를 마음속에 담고 있되, 거기에 이르는 모든 단계를 생각하려고 하지 마세요. 바로 다음 것만 생각하면 됩니다.


- 책임을 지기 시작하세요. "왜"라고 묻는 것. "어떻게 안 건가요?", "나는 어떻게 알 수 있죠"라고 묻는 것을 - 두려워하지 마세요. "잘 모르겠습니다. 아직은."이라고 대답하는 것도 두려워하지 마세요.

- 수련하세요. 골치 아픈 코드가 있나요? 다섯 가지 다른 방법으로 다시 짜 보세요.

- 실수를 더 많이 할 수 있는 계획을 짜보세요. 실수는 좋은 것입니다. 거기에서 배우세요.

- 메모장을 들고다니세요.

- 하루 일과 중에 시간을 내서 생각에 잠기는 산책을 해보세요.

- 독서 모임을 시작해 보세요.


제 마음에 드는 목표들을 살짝 골라봤습니다. 하나하나 다 값진 목표들인게 느껴지나요?


선입견이나 성급한 판단, 고정된 시각을 벗어나서 학습에 접근해 보세요. 아이들이 하듯이 있는 그대로 바라보세요. 새로운 기술이나 생각, 혹은 여러분이 잘 모르는 것에 대한 자신의 반응을 인지해 보세요. 자기 인식은 전문가가 되는 열쇠이고 또 전문가를 넘어서는 열쇠이기도 합니다.


영원한 불침번은 자유의 비용일 뿐 아니라 자각의 비용이기도 합니다. 자동조종을 맡기면 아무것도 조종하지 못합니다. 스스로를, 그리고 자신의 상태를 지속적으로 재평가하고 습관과 과거의 지혜가 눈앞에 있는 진실을 보는 눈을 가리지 못하게 해야합니다.


읽고 나서

저의 MBTI는 INFJ입니다. 기본적으로 갈등과 문제상황을 회피하는 성향을 가지고 있습니다. 그래서 갈등과 문제 상황을 곧바로 해결하고 그 문제에서 일분일초라도 빠르게 벗어나고 싶어하는 경향을 가지고 있습니다. 하지만 일어난 문제와 현상에 대해서 충분히 인식하고 맛보는 시간이 필요할 것같습니다. 단순히 문제를 해결하는 것이 아니라 문제가 왜 일어났고 다시 일어나지 않게하기 위해서는 무엇이 필요한지 생각하는 시간이 말이죠.

작가의 이전글 .NET Framework와 .NET 구분하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari