펜더님과의 대화에서 파생한 글입니다.
패턴뿐 아니라 코드리뷰, 오픈소스 차용에 대한 근본적인 의문입니다.
근본적인 접근이 없으면 모두 영원히 풀리지 않는 퀴즈라서요.
"믿습니다! 믿습니다!"
"자 내 말을 따르게. 저 철검으로 자기 심장을 찌르도록 하게.
그럼 영생할 수 있을 것이야."
"..."
인간은 중요한 판단에 있어 확신이라는 결정요인을 이용합니다.
삼라만상의 모든 일과 직업이 그렇습니다.
프로그래밍도 마찬가지로 확신을 가지지 않은 사람은
절대 넘어가지 못할 허들이 다수 존재합니다.
고추장을 담그는 명장이 굳이 햇볕에 고추를 말리는
이유를 과학적으로 설명하기는 힘들지 몰라도 명장은
확신에 차있기 때문에 흔들리지 않고 품질을 고수해 냅니다.
과거 신입 개발자에게 미디파일의 운영에 대해 설명해 준 적이 있습니다.
다 듣고 이해했고, 작업을 함에 있어서 전부 원점에서 파헤치더군요.
경력자인 제 말을 귀로만 듣고 인정하지 못해서 제가 화가 났을까요?
너무나 대견했습니다. "저 놈은 크게 될 놈이다."
확신의 프로그래밍은 하는 사람은 경력 년수가 중요하지 않습니다.
자기가 걸어온 길은 100% 지배하고 있는 개발자입니다.
제가 어떤 경험을 이야기했다고 해서 그것을 전부 원점에서 점검하지 않고
대충 그렇게 따라한다면 훗날 반드시 사상누각처럼 크게 무너지는 날이 옵니다.
확신이 없는 지식이기 때문입니다.
"내 심장에 칼을 꼽으란 것"은 땀을 뻘뻘 흘리면서도 끝끝내 하지 못할 일인 겁니다.
그렇기에 패턴은 찌끄레기같은 지식입니다.
진짜 자기 실력이 얼마나 보잘 것 없는지를 사실은 파악하고 있는 개발자가
자기 실력을 숨기고 자신도 최면을 걸기 위해 전파되고 있는 지식에 불과합니다.
패턴들은 단계가 되면 누구나 도달하는 경지입니다.
알 필요도 없고, 자기가 실력도 없으면서 섣불리 도입하는 것도 무리수입니다.
확신이 깨어지는 일이기 때문입니다. 내 코드에 대한 지배력이 급격히 감소합니다.
언어에 관계없이 "진짜 실력"을 길러야 합니다.
실력이 뭔지도 감을 못잡는 사람이 있습니다.
압축알고리즘도 개발해 보고 랜더링엔진도 만들어 보고
스크립트언어도 만들어 보고 길찾기, 자유행동AI도 만들어 보고
물리엔진도 만들어 보고.. 이 세상에는 해 볼 만한 일로 가득차 있습니다.
이걸 전부 다 사서 쓰고, 빌려서 쓰고, 줏어다 쓰면서
대체 실력이란게 뭔지 모르겠다. 어떻게 실력을 길러야 하는지 모르겠다.
STL같은건 왜 만들려고 하나? 공짜로 얻어다 쓰면 되는데.
훗날 50대에 반강제 은퇴를 당하거든
세상 탓은 하지 마세요.
코드리뷰, 패턴, 각종 기술지식으로 무장된 자신을
왜 퇴출해야 하는지를 고민하지 마세요.
자본주의에서 생산력이 떨어지면 퇴출당하는 겁니다.
사회는 학교가 아닙니다. 많이 외웠다고 상주지 않아요~