소프트웨어 엔지니어가 critical thinking을 학습하려면

젋은 친구들이 소프트웨어를 업으로 하고 기업에 입사하거나 창업에 도전하는 모습이 이제는 사회적으로도 상당히 기대를 받는 장면이 되었다.

그런데 지식 산업인 소프트웨어를 연구 개발하는 역할을 하기 위해 어떤 성장이 필요할까?

개인적으로 최근 몇년간 딥러닝 쪽 공부를 하면서 미국 대학 강의를 들을 기회가 많은데 대학 시절에 공부를 제대로 하지 않아서인지 상당히 인상적인 부분이 있었다.

아마 명강의란 그런 것이 아닌가 싶은데 지식의 전달 방식의 차이였다.
대부분의 책에서 찾아보기 힘든 교수님의 지식에 대한 직관(intuition) 혹은 관점에 대한 전달이었다.

수학적 증명을 하고 난 다음에 이것을 수식이 아니라 직관적으로는 어떻게 이해를 할 수 있느냐 하는 부분이 매우 중요한데 지식을 이해한다는 것이 어떤 솔루션이나 아이디어의 기반이 되는 지식으로 발전하기 위해서는 직관이 가능한 멘탈 이미지로 머리 속에 재정립시킬 필요가 있다.

  • 지식이 머리 속에서 살아 있는 직관 가능한 모델이 되어서 여러 가지 개념들과 느낌들이 무수히 연결되어야 한다.
  • 즉, 평소에도 친숙하게 느낄 정도로 쉬운 개념이거나 숙련으로 쉽게 연상할 수 있는 개념이 되어야 한다. 예를 들어 친숙한 ‘코끼리’라는 개념은 여러 가지 코와 귀, 몸무게, 여러 가지 코끼리의 특성에 대한 것들을 연결시켜준다.
  • 쉽게 직관할 수 있는 모델로서 이해하는 과정이 intuition 관점의 추가 이해라고 볼 수 있다.
  • 이 멘탈 이미지 혹은 개념적 요소로 인지하면 비로소 지식은 유연성을 얻어 이를 기반으로 다양한 유추가 가능해진다. 
소프트웨어를 기업 환경에서 다루는 사람이라면 소프트웨어에 맞는 생각하는 방법을 배워야 더 큰 소프트웨어를 다룰 수 있고, 또 깊이를 가질 수 있다.
창의적 사고의 중요한 요소라고 하는 critical thinking(임계적 사고)이나 system thinking(체계의 사고)은 특정 지식 혹은 영역에서 임계적 요소를 식별하고 이를 좀더 깊이있게 사고할 수 있는 능력이라고 할 수 있다.

그런데 critical thinking, system thinking의 방법은 지식 분야별로 도메인별로 크게 형태가 다를 수 있다.
여기에서 정말 중요한 학습이 필요하다.

앞에서 대학 강의를 얘기했었는데 이러한 임계적 사고가 대학 교수님들의 명강의를 통해서도 어느 정도 체득이 가능하다고 본다.
하지만, 기업에는 같이 문제를 해결하고자 하는 여러 뛰어난 동료들이 있을 수 있다.
이들이 문제를 바라보는 시각, critical path에 대한 판단법, 시스템을 바라보는 사고 체계 등을 옆에서 지켜볼 수 있다면 금방 자기의 것으로 소화할 수 있다.
개별 지식 자체가 아니라 사고의 방식, 도메인을 접하는 시스템에 대한 개념 모델을 엿볼 수 있다.
이러한 시스템적 사고의 방법을 배울 수 있는 동료나 선배가 있는 곳이 좋은 성장의 장소가 된다.
물론 이들과 오픈으로 토론하고 문제를 함께 찾아갈 수 있는 문화가 뒷받침되어야 한다.

개별 지식에 대한 학습은 혼자서 꾸준히 하면 되는 것이지만, 판단의 수준을 높이는 것은 혼자 학습만 해서 이루긴 어렵다.
생각하는 방법의 차이를 주의깊게 보고 이를 자기의 것으로 소화하려는 노력이 진정한 큰 성장을 가져온다.

주변에 배울 사람이 없는 환경이라면 끊임없이 생각을 정리하고 체계화하여 intuition으로 발전시키는 노력을 기울일 필요가 있다. 물론 주변에 배울 사람이 있을 경우에도 먼저 개인의 intuition을 정리하고 이를 오픈하여 개인의 편향이나 오류를 검증할 필요가 있다.

추천한다면 주변의 개념을 넓혀 도움을 주거나 나눌 사람을 기업내외를 막론하고 주기적으로 함께 지식 이해의 수준을 높여갈 수 있도록 찾을 필요가 있다.
배울만한 멤버와 오픈된 토론 문화를 가진 스터디 그룹을 찾아 참석하는 것도 좋은 방법이다. (그런 스터디 그룹이 많지는 않을 것이다.)

지식 기업들에게는 개개인의 학습 능력과 성장이 무엇보다 기업의 잠재력이 되기 때문에 이러한 성장을 매우 중시한다.
유감스럽게도 우리나라 IT 기업들의 수준은 개인의 역량 측면에서나 개인의 역량을 결과물로 총합해내는 측면에서나 그렇게 뛰어난 편이 못된다.

그렇기 때문에 기업의 성장은 외부로부터 우수한 인재를 영입을 하는 것으로 해결하기가 어렵다. 기업 구성원의 성장과 기술적으로 더 나은 솔루션을 의사결정할 수 있는 문화를 만들어가야 한다.

개인의 Career path도 자신의 기술적 성장에 베팅하는 것이 미래에 가장 효과적인 자산이 될 수 있을 것이다.

댓글

이 블로그의 인기 게시물

[Java] Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

일론 머스크의 First Principle Thinking (제1원리 기반 사고)

엄밀한 사고(Critical Thinking)란 무엇일까