알고리즘이나 수학은

만약 정말 똑똑한 어떤 천재가 있다면,

책상 위에서 혼자 머가리를 굴려서 수학에서 의미있는 모든 활동을 수행할 수 있음.

(증명을 한다던가, 수식을 만든다던가, 등등...)


왜냐하면 수학에서 사고의 대상이 되는 것은 참 혹은 거짓으로 나뉘는 명제들이고,

누군가 참과 거짓임을 정해놓은 것이 아니기 때문.


따라서

수학에 있어서 지식의 습득은 어디까지나 보조적인 수단인 것이고,

본질은 스스로 생각하는 것에 있는 것 같음. 어떤 방식으로던, 제대로 생각하면 참인지 거짓인지를 그 사실에 도달할 수 있다.




반면 개발이나 프로그래밍을 한다는 것은 조금 다른 것 같음.

본인이 모든 라이브러리나 프레임워크를 다 만들어서 쓰는 것은 말이 안되니까..

결국 다른 사람들이 만들어 놓은 기술들을 사용한다는 것인데


그렇다면 기술들이 돌아가는 일련의 동작의 순서나 원리 등은

그 자체로 참인 것이라서 혼자 대가리 굴려서 알아낼 수 있는 것이 아니라


수 많은 정답중의 하나로 처음에 만든 이가 채택 해놓은 방법이기 때문에,

동작 과정이나 등장 배경을 빠삭하게 모르면 적재적소에 기술을 사용할 수 없음.


따라서 개발이나 프로그래밍을 하는데 있어서

지식의 습득은 보조적인 수단을 넘어서 그 자체가 수단이 될 수 있고,

혼자 망상한다고 모든 것을 알 수 있는 경우는 그리 많지 않다는 것.


이걸 개발 지망생인 내가 일상에서 적용해보면


개발을 공부하는 데 있어서는 결국에 혼자 망상하면서 추론하는 시간보다는

브레이킹 포인트라도 걸어서 라이브러리 어떻게 만들어졌고 어떻게 돌아가는지

하나하나 직접 눈으로 보면서 지식을 쌓는 것을 가장 먼저 하고

거기에 나름의 추리와 생각을 더하면 되는 것 같다.


이상임.