개발자의 서재

소프트웨어 개발자를 위한 두뇌 활용법 - 실용주의 사고와 학습

지구빵집 2017. 12. 7. 10:11
반응형



실용주의 사고와 학습 - Pragmatic Thinking & Learning: Refector Your Wetware


실용주의 사고와 학습은 프로그래머뿐 아니라 사고와 학습 방법, 나아가 자신의두뇌를 더 잘 활용하려는 모든 사람에게 도움이 딜 만한 책이다. 이 책은 우리의 마음을 '디버그'하고 '리팩터링'하면서 우리의 뇌가 작용하는 원리, 배우고 경험을 축적하는 방법, 집중력과 직관을 향상시키는 방법을 소개한다. 그것도 굉장히 현실적인 방법이다.


머리는 쓰면 쓸수록 좋아진다는 말처럼 여기서 소개하는 내용을 바탕으로 자신의 뇌를 직접 갈고 닦다 보면 어느 순간 전문가의 경지에 이른 자신을 발견하게 될 것이다.





1장. 개관


책의 목표. 어떻게 하면 직관을 더 잘 활용하고 패턴을 더 잘 인지하고 적용할 수 있는가.


소프트웨어는 여러분의 머리가 창조해내는 것입니다.


프로그래머는 지속적으로 학습을 해야 합니다. 팀 동료의 기벽도 익혀야 하고 자기 분야의 흐름이 변화하는 것도 읽어야 하며 프로젝트 자체가 완성되어 가면서 진화하는 특성도 학습해야 합니다. 배우고 또 배워야 합니다. 그 배움의 힘으로 매일매일 쏟아지는 오래된 문제들과 새로운 문제들의 집중포화에 맞서는 것입니다.


배움의 능력이 필요합니다. 학습은 교사가 가르치는게 아닙니다. 학생이 배우는 것입니다. 배움은 전적으로 여러분에게 달린 것입니다.


물살을 그대로 따라가는 것은 죽은 물고기뿐이다.


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


기술 습득의 드라이퍼스 모델. 초보자 -> 고급입문자 -> 중급자 -> 숙련자 -> 전문가.


10년 경력의 개발자가 있다 하더라도 사실은 그냥 1년치의 경험을 9번 반복한 것에 불과할 수도 있습니다. 이런 것은 경험으로 보지 않습니다.


다른 사람에게서 배울 수 있는 능력이 있으면 격언을 이해하고 적용할 수 있는 능력도 따라옵니다.


기술도 없고, 없다는 사실도 모른다. 자신의 부족함을 안다는 것이 어렵기 때문에 자신을 과대평가한다. 전문가가 되고 나면 여러분이 아는 것이 얼마나 적은지 뼈저리게 깨닫게 될 것입니다.


사실 전문가를 탈선시키고 그들의 생산성을 깎아 먹는 일은 아주 쉬운 일입니다. 그들에게 고정된 규칙을 따르라고 강요하기만 하면 됩니다.


전문가 != 선생님 가르치는 것은 그 자체로 하나의 전문성입니다.


경험이 없으면 전문성도 없습니다. 경험을 대신할 수 있는 것은 아무것도 없습니다.


흉내내라 -> 흡수하라 -> 혁신하라. 즉 처음에는 다른 사람을 흉내 내다가 조금씩 그 암묵지와 경험을 흡수해가는 겁니다. 그러다 보면 결국 흉내를 넘어서 혁신할 수 있는 수준이 될 수 있습니다.


3장. 이것이 뇌다.


두 개의 CPU 모드. L모드와 R모드. 좌뇌와 우뇌.


샤워 중에 성가신 문제의 답이 문득 떠오른 경험이 있나요? 이것은 R모드가 비동기로 동작하기 때문입니다.


사고가 어느 정도 구체화되기 전까지는 노트에 쓰지 않는다는 사실을 알게 되었죠. 어느 정도 생각이 정리되지 않은 상태에서 써넣으려고 하지 않는 거죠. 이건 좋지 않습니다.


R모드의 능력이 낭비되고 있다. R모드 없이 전문가가 될수는 없습니다. 전문가의 암묵지는 R모드에 있습니다. R모드의 유추적이고 전체론적인 사고방식은 소프트웨어 아키텍쳐와 설계에서 아주 중요합니다.


자신의 지성을 발전시킬 수 없을 것이라고 생각하는 학생들은 실제로도 발전하지 않는다고 합니다. 뇌의 유연함을 믿는 학생들은 쉽게 자신의 능력을 높여갑니다.


계속 사용하고 연습하는 기술과 능력이 점점 뇌의 많은 부분을 점유하고 그 목적으로 재구성됩니다.


더 뛰어난 코더가 되고 싶으십니까? 코딩을 더 많이 하십시오. 자발적이고 집중된 연습을 하십시오. 외국어를 배우고 싶으십니까? 여러분을 외국어에 푹 담그십시오. 늘 그 언어를 말하고 생각하십시오. 여러분의 뇌는 곧 상황을 파악하고 새로운 용도를 잘 지원하도록 스스로 적응할 것입니다.


4장. 마음속 들여다보기


여러분의 뇌는 이런 종류의 새롭고 추가적인 자극에 굶주려 있습니다. 뇌는 끊임없이 변하는 환경에 지속적으로 적응하도록 만들어져 있습니다. 그러니 여러분의 환경을 주기적으로 바꾸고 뇌에 자양분을 주도록 해보세요.


암벽등반 수업. 처음에는 공감각적이고 실험적인 상황을 주고 우리가 머리 전체를 활용할 수 있게 했습니다. 그러고 나서 전통적인 사실 위주의 강의를 한 것입니다.


날림 초안이라도 완성하는 것이 완벽한 초안을 영원히 완성하지 못하는 것보다는 낫다.


짝 프로그래밍을 할때는 종종 내비게이터가 패턴 매칭 모드같은 것에 빠지는 것을 경험합니다. 드라이버는 그럴 수 없는 상태에서 말입니다.


모닝 페이지에 그날 아침 처음 떠오른 일을 쓰세요.


5장. 당신의 마음을 디버그하라.


소프트웨어 개발은 사람에 의존합니다. 그리고 이제껏 보아왔듯이 사람은 버그를 갖고 있습니다. 즉 우리는 모두 어떤 측면에서는 골칫덩어리라는 것입니다. 아무리 좋은 의도라도 자신과 서로를 이중으로 점검해 볼 필요가 있습니다.


여러분 자신에 대해서도 단위 테스트가 필요합니다.


6장. 의도적으로 배우라


중요한 것은 지속적으로 배우는 것입니다.


학습은 누군가가 여러분에게 해주는 것이 아닙니다. 여러분이 하는 것입니다. 지식을 경험없이 그 자체로만 습득하는 것은 효과적이지 않습니다. 목표와 피드백 없이 무작위로 접근하게 되면 무작위적인 결과를 낳습니다.


SMART. Specific. Measurable. Achievable. Relevant. Time-Boxed.


조금씩 나아가야합니다. 자주, 작은 중간 목표를 설정하세요. 중간 목표를 달성하고 나면 더 동기부여도 될 것이고 다음 목표를 만족시키고 싶은 마음도 더 커질겁니다.


남는 시간이란 건 없습니다. 시간은 오로지 할당할 수 있을 뿐입니다. 학습을 의도적으로 해내려면 적당한 시간을 할당해야 합니다.


지식 투자와 재무 투자의 큰 차이점 하나는 지식 투자는 뭐든 가치가 있다는 것입니다. 설령 그 기술을 업무에서 쓰지 않더라도 생각하는 방식, 문제를 푸는 방식에 영향을 줍니다.


정기적으로 최소한의 시간을 투자하도록 자신과 약속하십시오. 결국 장기적으로는 이기게 될 겁니다. 만약 시간이 날 때까지, 혹은 마음이 내킬 때까지 기다린다면 결코 이루어지지 않을 것입니다.


무언가를 배울 때 가장 단순하면서도 효과적인 기법은 그것을 가르쳐 보는 것입니다.


7장. 경험 축적


탐험하거나 가지고 노는것이 공부하는 것보다 먼저 와야 합니다. 댄스 수업을 받는 것을 생각해보세요. 실제로 춤 한 번 춰 보기도 전에 춤의 이론에 대해 테스트를 통과해야 한다면 어떨까요?


탐험. 발명. 적용.


이너게임. 시도하고 실패하라. 자신의 인지가 교정해줄 것이다.


단위 테스트라는 애자일 실천 방법을 생각해보세요. 여기서는 단위 테스트가 실패해도 상관없습니다. 오히려 장려하기까지 하죠. 그로부터 배우고, 코드를 수정하고, 앞으로 나아가면 됩니다.


늘 모든 밴드에서 최악의 연주자가 되세요. 만약 거기서 가장 잘하는 사람이라면 다른 밴드로 옮겨야 합니다. 제 생각에 이 방법은 다른 모든 것에도 통하는 것 같습니다.


거울 뉴런으로 알려진 자연스러운 현상 때문이죠. 다른 사람의 행동을 보면 똑같이 따라하려고 하게 됩니다.


8장. 초점 관리하기


시간이 부족한 것이 아니라 주의가 부족한 것입니다. 그래서, 시간이 없다고 말하지 말고 대역폭이 부족하다고 하는 것이 더 정확합니다.


명상의 이득은 명상을 할 때나 의식적으로 주의를 기울일 때뿐 아니라 하루 종일 간다는 것입니다. 이것은 엄청난 것입니다. 육체적인 운동이나 훈련이 건강에 장기적으로 큰 도움을 주는 것과 같죠.


정말 하기 싫은 그런 종류의 일이어서 딴 짓을 한다면 그것은 단순한 미루기입니다. 하지만 여전히 거기에 흥미가 있는데 단지 막혔다라고 느끼는 것이라면 생각은 여전히 끓고 있습니다. 그것으로 충분합니다.


생각을 절이고 분류하고 발전시키고자 할 때 가장 효과적인 도구는 개인 위키입니다.


어떤 형태의 생각을 담아둘 곳이 일단 생기면, 그런 형태의 생각을 더 많이 모을 수 있습니다.


컨텍스트 스위칭. 무슨일을 하든지, 둘 다 하지는 마세요.


하루 중 어떤 시간을 방해받지 않는 시간으로 설정하세요.


9장. 전문성을 넘어서


행여 예전으로 돌아간다고 해도 너무 자책하지는 마세요. 뇌가 그렇게 되어있는 것입니다. 그저 잘못을 인지하고 새롭게 마음을 다잡고 앞으로 나아가면 됩니다. 그런 일은 또 일어날 것입니다. 다만 그런 일이 일어난다는 사실을 깨닫고 다시 바른 길로 찾아가면 됩니다. 이건 학습 습관을 바꾸든, 담배를 끊든, 체중 감량을 하든 다 마찬가지입니다.


가만히 쉬고 있으면 계속 거기에 있으려는 경향이 있습니다. 새로운 방향으로 움직인다는 것은 관성적인 저항을 극복해야 한다는 것을 의미합니다.


늘 초보자의 마음을 유지하세요.


새로운 기술이나 생각, 혹은 여러분이 잘 모르는 것에 대한 자신의 반응을 인지해보세요. 자기 인식은 전문가가 되는 열쇠이고 또 전문가를 넘어서는 열쇠이기도 합니다.




목차 


목차

01장 개관 

1.1 또다시 “실용주의”로? 

1.2 맥락을 고려하라 

1.3 모든 사람이 이것에 대해 이야기한다 

1.4 우리는 어디로 가고 있는가 

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

이것이 뇌다 

마음속 들여다보기 

당신의 마음을 디버그하라 

의도적으로 배우기 

경험 축적 

초점 유지하기 

전문성을 넘어서 

1.5 감사의 말 


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

2.1 풋내기 대 전문가 

2.2 드라이퍼스 모델의 다섯 단계 

단계 1: 초보자 

단계 2: 고급 입문자 

단계 3: 중급자 

단계 4: 숙련자 

단계 5: 전문가 

2.3 실전에서의 드라이퍼스: 경주마 몰이와 양 경주시키기 

기술 분포의 슬픈 측면 

2.4 드라이퍼스 모델을 효과적으로 활용하기 

책임을 받아들이는 것 

실전에서 전문성 활용하기 

2.5 도구의 함정을 경계하라 

2.6 맥락을 생각하라, 다시 한 번! 

2.7 매일매일 드라이퍼스하자 

앞으로 나아가기 

다음 할 일 


03장 이것이 뇌다 

3.1 두 개의 CPU 모드 

메모리와 버스를 사이에 둔 경합 

3.2 24×7 통찰을 잡아라 

3.3 선형적이고 풍부한(rich) 특성 

L 모드 처리의 특성 

R 모드 처리의 특성 

왜 R 모드를 강조할까요? 

3.4 R 모드의 부상 

트럼프 기능 디자인하기 

매력 있는 것이 더 잘 통한다 

3.5 R 모드는 숲을 보고 L 모드는 나무를 본다 

3.6 DIY 뇌수술과 신경 적응성 

대뇌 피질의 경쟁 

3.7 어떻게 거기에 이를 수 있습니까? 

다음 할일 

다음을 시도해보세요. 


04장 마음속 들여다보기 

4.1 감각을 갈고 닦아라 

4.2 오른쪽에 그리기 

R 모드로의 인지적 전이를 느껴보자 

4.3 R 모드로 시작해서 L 모드의 흐름을 타라 

벽을 타고 올라보자 

로자노프 집회 

취중에 글을 쓰고, 맑은 정신으로 퇴고하라 

짝 프로그래밍 

메타포 안에서의 만남 

준거 체계를 병렬로 배치하기 

시스템 메타포 

그래서, 이 오리가 술집으로 걸어 들어가면... 

다음 할 일 

4.4 R 모드의 신호를 포착하라 

여러분은 이미 알고 있습니다 

엘리아스 호웨의 이상한 사건 

이미지 스트리밍에서 수확하기 

자유 형태 저널링에서 수확하기 

모닝 페이지 기법 

‘그냥 쓰기’라는 방법 

걸으면서 수확하기 

4.5 수확 패턴 

코드에서의 패턴 

머리에 충격 주기 

예언자적인 충격 마술 

셰익스피어의 수수께끼 

4.6 제대로 하기 

다음 할 일 


05장 당신의 마음을 디버그하라 

5.1 인지적 편향 만나보기 

예측 실패 

‘드물다’는 ‘결코 일어나지 않는다’와 다르다 

종결을 연기하라 

기억을 신뢰하지 말라 

다음 할 일 

5.2 세대별 기호를 인지하라 

GI 세대, 1901-1924 

조용한 세대, 1925-1942 

베이비 붐 세대, 1943-1960 

X 세대, 1961-1981 

밀레니엄 세대, 1982-2005 

이제 모두 모여서 

네 가지 전형 

이것이 미치는 영향 

다음 할 일 

5.3 자신의 성격 경향을 파악하라 

다음 할 일 

5.4 하드웨어 결함 노출하기 

원숭이가 보고 원숭이가 행동한다 

행동은 진화한다 

다음 할 일 

5.5 이제 뭘 생각해야할지 모르겠어 

자신을 테스트하라 

다음 할 일 


06장 의도적으로 배우라 

6.1 학습이란 무엇인가... 그리고 학습이 아닌 것은 무엇인가 

6.2 SMART 목표 설정 

Specific(구체적인) 

Measurable(측정 가능한) 

Achievable(달성할 수 있는) 

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

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

더 넓은 맥락에서의 목표 

다음 할 일 

6.3 실용주의적 투자 계획 만들기 

PIP: 구체적인 계획을 세우라 

PIP: 다각화하라 

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

PIP: 정기적으로 투자하라 (매입 비용 평균화) 

다음 할 일 

6.4 자신에게 적합한 학습 모드를 사용하라 

다중 지능 

성격 유형 

기본 상태를 넘어서서 

다음 할 일 

6.5 함께 일하고, 함께 배우라 

6.6 고급 학습 기법을 활용하라 

6.7 SQ3R로 의도적으로 읽기 

과정 

예제 

6.8 마인드맵으로 통찰을 시각화하라 

마인드맵 활용 

시도해 볼 것 

마인드맵을 SQ3R에 활용하기 

탐험적 마인드맵 

협동적 마인드맵 

다음 할 일 

6.9 문서화의 진짜 힘을 활용하라. 

6.10 가르치며 배우기 

6.11 거리로 들고 나가라 

다음 할 일 


07장 경험 축적 

7.1 배우기 위해 놀기 

놀이의 의미 

다음 할 일 

7.2 기존 지식을 지렛대로 활용하기 

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

탐험적인 환경 만들기 

다음 할 일 

7.4 이너게임에 대해 배우기 

상황적인 피드백 계발하기 

테니스를 넘어서 나아가기 

7.5 압박은 인지를 죽인다 

실패를 허락하라 

7.6 상상은 감각을 넘어선다 

달걀은 희다, 맞나요? 

실력 끌어올리기 

다음 할 일 

7.7 전문가처럼 배우라 

하지만 먼저, 초록색 선을 자르세요. 


08장 초점 관리하기 

8.1 주의집중력 높이기 

주의 결핍 

긴장은 풀고 집중한 초점 

어떻게 명상할 것인가 

다음 할 일 

8.2 집중하기 위해 집중을 풀어라 

다음 할 일 

8.3 지식을 관리하라 

외부 뇌세포 구축하기 

위키를 사용하라 

8.4 현재 컨텍스트를 최적화하라 

컨텍스트 전환 

주의 산만 방지하기 

단일 작업 인터페이스 

작업을 효율적으로 조직화하고 처리하기 

8.5 끼어들기를 의식적으로 처리하기 

프로젝트의 작업 규칙을 설정하라 

이메일을 통제하라 

컨텍스트 친화적인 작업 중단 

마스커블 인터럽트를 켜라 

스택을 저장하라 

8.6 충분히 큰 컨텍스트 유지하기 

작업 초점 유지하기 

8.7 정신을 똑바로 차리는 방법 

다음 할 일 


09장 전문성을 넘어서 

9.1 효과적인 변화 

9.2 내일 무엇을 할 것인가 

9.3 전문성을 넘어서 


부록 A 앤디 헌트 인터뷰


반응형