생각의 도구를 컴퓨터공학 도메인에 맞춰서 정리해야 한다
-
그래야 내 생각이 내 전문성을 사용해서 뻗어나갈 수 있다.
-
좋은 예시) https://johngrib.github.io/wiki/cleaning-tile-cycle/
- 물때를 언제 청소할 것인가에 대한 간단한 생각에서 출발한다. 그러나 물때를 청소하는 것에 대한 요구사항(?)을 Threshold로 명명한다. 이름을 threshold로 명명하고 나니, cs에서 사용하는 접근방법들이 같이 떠오르고, 이를 사용해서 문제를 해결한다.
자동 GC라면 기계가 되었던 사람이 되었건 항상 누군가가 대기하여 threshold를 감지하고 일정 영역을 청소할 준비를 해놔야 한다. '처리량(throughput)'과 '짧은 일시 정지 시간'이 상충한다는 GC의 상식을 떠올려본다.
- 나라면 “더러움에 대한 역치"라는 단어를 사용 했을 것이다. 이 단어는 현상을 훌륭하게 설명하지만, 생물학적인 지식이 부족하기 때문에 내 전문성이 적용되기 어려운 단어이다. 따라서 역치 대신 threshold를 사용했다면 적어도 비슷한 방식으로 문제에 접근할 첫번째 스텝이 되었을 것이다.
-
이런식으로 생각하는 단어들을 “내 전문성이 높은 영역에서 사용하는 단어"로 치환하면 “나의 다른 분야의 지식"이 해당 문제를 해결하는데 도움을 줄 수 있을것이다.
-
어떻게 보면 “어려운 문제를 간단하게 치환한다"라는 일반적인 방법과 반대로 보인다. “간단한 문제를 어려운 문제로 치환한다"가 되는 것인데, 여기에는 두가지 이점이 있다.
-
- 어려운 문제가 “내가 전문성이 높기 때문에 풀 수 있는 문제"가 된다. 내가 전문성이 높은 영역에서는 풀이법을 몰라도, 어떻게 접근해야 하는지 알 수 있다. (혹은 검색 방법이라도!)
-
- 내 전문성의 영역에서 어려운 문제는 이미 답변들이 존재한다.
화장실 청소를 효율적으로 하는 전략
은 명확한 해답이 존재한다고 할 수 없다. 그러나걸리는 시간이 긴 로직을 효율적으로 실행하는 전략
은 여럿 있을 것이다.
- 내 전문성의 영역에서 어려운 문제는 이미 답변들이 존재한다.
- 추가적으로 단순히
(...) 로직을 효율적으로 실행하는 전략
으로 생각하면 명확한 답에 도달하지 못할 것같다. 이 문장은 중간 단계로 더 구체적인 문장이 되어야 한다. 화장실 청소를 JVM의 stop the world로 비유한다면,JVM에서 worldstop을 줄이기 위해 어떤 전략을 사용하는가?
라는 물음에 답하면 된다. (그리고 이 물음에 대한 답은 인터넷에 충분하다)
-
-
만약 내가 화장실 청소에 대한 전문성이 높다면, 단순히
화장실 청소를 전략적으로 하는 방법
이라는 문장으로도 충분히 답을 낼 수 있을 것. 그러나 나는 화장실 청소에 전문성이 없고, 앞으로도 없을 것이다. 이후에도 수많은 영역에서 물음들이 발생할 것이 분명하기 때문에,현재의 문제를 컴퓨터 공학으로 치환해서 정답을 알아내는 것
의 능력을 키우는 것이 효율적일 것이다. -
아이러니 하지만,
컴퓨터 공학의 전문성만 올라가는 것으로도 더 넓은 영역의 문제들을 해결할 수 있다
는게 재미있는 생각인 것 같다.- 아주 당연히
당면한 문제를 컴퓨터공학의 문제로 치환하는 능력
또한 같이 존재해야만 한다.
- 아주 당연히