2017년 7월 11일 화요일

경험주의 합리주의 개발자

근대 철학에서 합리론이 먼저 대두되었고 그에 대한 비판적 견해에서 나중에 나온 것이 경험론입니다.

오래전에 합리론에서는 데카르트를 읽어본 것 같습니다. 경험론에서는 베이컨을 읽어본 것 같습니다. 그리고 새카맣게 까먹고 아무것도 기억이 안 납니다. 이 둘과 전혀 상관없는 니체나 정신분석학의 프로이트는 좀 기억이 나네요.

개발자 이야기에 쌩뚱맞게 왠 철학이 나오냐고 하실 겁니다. 저도 내용은 싸그리 다 까먹었고 다시 읽을 시간도 없으니 철학적인 개소리는 할래야 할 수가 없고요. 제목만 가지고 이야기 하겠습니다.

헤드라인, 즉 제목은 아주 중요합니다. 뉴스와 신문에서도 가장 중요하게 취급하고 조작질을 일삼고 있지요. 내용을 끝까지 안 읽거나 아예 읽지도 않는 사람들이 상당히 많기 때문에 그렇습니다. 책을 자주 사는 사람도 사 놓은 책의 절반밖에 읽지 않는다는 통계가 있습니다. 구미가 당기는 제목의 책을 사 놓고 여러 가지 이유로 읽지 않는 것이지요.

결국, 제목만 남는 겁니다.

앞의 글에서 제가 누가 봐도 민망하고 오바스런 초특급 슈퍼 개발자란 글을 서슴없이 썼습니다.

네. 맞습니다. 누가 봐도 민망하고 오바스럽지요. 그런데 그렇게 쓰는 것에 근거는 있습니다. 상용으로 쓰이는 비중이 높은 거의 모든 종류의 소프트웨어를 직접 프로그래밍하여 실무에 적용시킨 경험이 있습니다. 아래에 대충 나열해보겠습니다.

오토마타, RAD툴(파워빌더, 델파이, 비주얼 베이직), 소켓 네트워킹(UNIX/Linux/Win32/JAVA/C#), 미디어 인디코딩, 하드웨어 IO(오디오, 비디오), 윈도우 프로그래밍(Win32/MFC), 멀티플랫폼 코어(gcc/Win32), 전화 장비 개발(Q.931/SS7/M3UA/SCTP/H.323/SIP), 리눅스 드라이버, 고성능 네트워킹(PF_RING/DPDK), 스마트폰 용 App개발(JAVA/Objective-C), 웹 퍼블리싱(HTML/CSS/javascript), 웹 개발(JAVA/PHP/Ruby), 게임 개발(Unity/C#)

위에는 실제 실무로 해 본 것들이며 그냥 어셈블리, 코볼, 포트란, 플래시등등 취미처럼 해본 것도 많습니다.

소프트웨어를 모르는 사람이 봐도 뭔가 많이 한 것처럼 보이겠습니다. 개발자들이 봐도 자기가 안 해보거나 아예 모르는 분야가 많을 것으로 보입니다.

위에 나열한 것 중에 오토마타는 다른 것들과 성격이 좀 다릅니다. 오토마타는 이론이고 나머지 것들은 개발언어나 툴같은 Skill Set이라고 볼 수 있습니다. 첫 부분에만 이론인 오토마타를 넣은 것은 약간 의도가 있습니다.

제가 대학생일 때 처음으로 배포할만한 프로그램을 개발해서 실제로 PC 통신에 배포했고 대략 10만 명 정도까지 다운로드 받아간 프로그램이 있는데 그때 누가 시키지도 않았는데, 돈 되는 것도 아닌데 대견스럽게도(?) 스스로 오토마타를 공부했었고 막상 적용을 하려니 부가적인 스킬면에서 너무 할 게 많아서 결국 공부한 거는 적용을 못하고 꼼수와 편법을 써서 개발했습니다. 저에겐 기억에 남는 의미가 있어서 어거지로 넣어봤습니다. ^^;

여하간, 이 정도로 다양한 경험을 해 본 개발자는 한국엔 몇 없습니다. 제가 잘나서 그렇다기보다는 상황이 그렇게 진행돼서 그런 것 같습니다. 4개 회사에 다녔었고 그 4개 회사의 성격이 모두 다 다른 업종이었습니다. 그리고 회사에서 아무도 해 본 적이 없는 개발을 해야 할 일이 생겼을 때 피하거나 주저하지 않다 보니 그것들이 대부분 저에게 할당이 되었었네요.

이렇게 경험이 많은 사람들에겐 맹점이 하나 있습니다. 경험에만 의존하려는 경향이 있는 거지요.

바라쿠다 신드롬(창꼬치 증후군)이란 것이 있습니다. "과거의 경험이 비슷하지만 다른 상황에 잘못된 생각을 갖도록 하는 것"을 말합니다. 자세한 내용이 궁금하면 직접 검색해보시면 되겠습니다.

바라쿠다: 그놈 참 맛없게도 생겼네...

그렇기 때문에 항상 합리적이고 논리적으로 생각하려고 노력해야 합니다.  개발자 뿐만 아니고 다른 모든 직종도 마찬가지겠습니다. 많은 경험을 바탕으로 합리적인 결론을 도출해 내는 것이 중요합니다. 그런 개발자, 그리고 이제는 그런 경영자가 되어야 합니다.

글 첫 머리에서 언급한 철학에서도 그런 시도가 있었고 위대한 철학자 칸트가 합리론과 경험론의 통합 정립을 했습니다.

마찬가지로 읽었지만 다 까먹었습니다. 다 까먹었으니 내용 면에서는 왜 위대한지는 설명하려면 다시 읽어보고 정리해야 하지만 안타깝게도 지금의 제겐 그런 시간을 낼 용기가 없습니다...ㅠ.ㅠ 그렇지만 상반돼 보이고 물과 기름처럼 서로 섞일 수 없어 보이는 합리론과 경험론을 통합시켰다는 제목만 봐도 위대한 사람임이 맞는 것 같습니다.

저도 경험과 합리적 판단을 균형감 있게 운용하는 개발자, 경영자가 되면 위대하다는 평가를 받을 수 있을까요??? ^^;;;;;;;;;;;;;;;;;;;;;;;;

위대하다는 철학자 칸트: 더 나이 들고 돈 걱정 없이 은퇴를 하면 다시 읽어보고 싶군요.

댓글 없음:

댓글 쓰기