프로그래밍을 오래 하다 보니 통찰력이란 게 생기게 된다. 지식과는 별개로 지혜를 얻게 되는 것인데, 사실 알고 나면 별거 없지만 모를 때는 정말 안갯속을 걷는 기분이다.
1. "무조건"이 없어지게 된다.
모든 것은 양면이 있다는 사실을 알게 된다. 새로운 프로그래밍 언어가 나오면 무조건 그것이 좋다며 신봉하는 사람이 생겨난다. 프로그래밍 "언어"인데 왜 새로운 그것을 더 신봉할까? "언어"라는 것에 빗대어 설명해 보면 그렇다. 한국 사회에서 잘 적응하지 못해서 해외로 나가는 케이스를 많이 보았다. 물론, 한국이 문제 기는 하지만 대부분의 경우 적응이라는 것은 경쟁에서 뒤처진다는 것이고 그것이 수학이던 국어던 중요치는 않다. 뒤쳐진 경쟁에서도 행복을 느낄 수 있는 자존감이 강한 사람이라면 모르겠지만 대부분 사람은 그렇게 강하지 않다. 즉, 그 언어를 잘 못해서 새로운 언어를 배우게 된다는 것. 만약, 반대의 경우가 있다면 잘하는데도 잘하는 것을 버리는 경우가 있다면 새로운 것이 정말 좋은 것이다. 버리는 것의 "크기"에 따라 얻는 것의 크기는 다르다. 오랜 세월 동안 내가 본 사람 중에 프로그래밍을 가장 잘했던 두 사람은 전자공학도였다. 수학과 출신이 프로그래밍 잘하는 것과 비슷한 이치인 것 같다. 위에서 말한 것처럼 양면의 경우, 본인의 길이 막막해서 다른 것을 하는 경우도 있지만 본과의 공부를 정말 잘하는데 모든 것을 버리고 다른 것을 하는 경우가 있다. 박사 수료가 아닌 박사 학위를 받고 음악을 하는 루시드 폴이 음악을 하는 이유도 같은 이유라고 생각된다.
프로그래밍을 대안으로 하느냐 정말 좋아서 하느냐에 따라 특별히 다른 것은 없다. 즐기지 못하는 자와 즐기는 자로 말하기도 하지만 사실, 즐긴다고 해도 힘들 때는 힘들다. 그래서 개발자끼리 싸울 필요는 없다. 역사서 보지 않고 혹은 잘못된 역사서를 보고 역사를 말하거나, 아예 역사를 모르고 독도를 일본땅이라고 하는 것처럼 우둔한 것이 없듯이 프로그래밍 세계에서도 목에 핏대 세우며 말하는 많은 사람들 중에 제대로 된 경우는 전무했다. 거의가 아니라. 그냥 뭘 하던 좋아하는 것 하면 된다. 사람인에 올라온 코볼 개발자 연봉이 스타트업에서 최신 기술만 이야기하는 연봉의 2배인 경우를 보고 일전에 글을 올렸더니 많은 마케팅 문구가 변하는 것도 보았다.
얼리어답터만 고집하다가 여러 사정으로 이제 라스트 무버가 되고 있는데 양쪽 다 장/단점이 있다. IT 세계에서 무조건이라고 확신했다가 망한 경우가 많았는데, 그런 경우 자체도 무조건이 없다고 하고 싶다. 왜냐면 스티브 잡스나 빌 게이츠가 뛰어난 엔지니어는 아니기 때문이다. 메모리는 640KB로 충분하다는 등, 그들이 말한 게 틀린 부분도 있어서 확신하지 말라는 것 자체도 무조건에 속한다. 변한 지 않는 것은 변한다는 사실 뿐이라는 문장이 이미 존재한다. 이 말을 자기 말을 뒤엎는데 쓰는 파렴치한도 직접 만나보기는 했는데, 상황과 때에 맞게 적용하려면 충분한 내공이 있어야 한다고 생각한다. 프로그램이 할 때도 모듈, 컴포넌트, 프레임웍, 서비스, 요즘엔 휴대폰을 AI에 이용하려고 하니 심지어 시스템까지 그 목적이 변한다.
OLPP 역시 모든 것은 변하지만 관계(LINK) 속에서 변한다는 사실을 말하고 싶은 것이다. 새로운 프로그래밍 언어가 나오면 좋은 쪽으로 갈 수도 있고 아닐 수도 있다.
2. 내가 iOS/SWIFT를 타깃으로 정한 이유는 사실 생각보다 간단하다. 구글의 GO 언어나 안드로이드에서 밀고 있는 코틀린 그리고 애플의 SWIFT 3개 중 하나를 해야 한다는 생각이 들었다. 애플의 언어를 주 언어로 선택한 이유는 우선, 그 본체가 Objective-C가 LLVM 기반이고, 그 뿌리는 gcc 이기 때문이다. 컴파일러를 잘 만드는 국가는 덴마크와 미국이고. 애플은 이것을 확실히 알고 있다는 생각이 들었다. 그리고 확실히 평생 이것만 해도 되겠다고 생각한 결정적인 이유는 애플의 시가 총액이 1위를 했기 때문이다. 상업적으로 성공한 프로그래밍 언어가 최고는 아니겠지만 예전 선배의 가르침에 더욱 확실해졌다. 리눅스 잘하시는 분이 모든 것을 버리고 마이크로소프트 진영으로 가셔서 MVP 되시고 잘 나가실 때 강연을 하셨는데, 이미 10년도 더 넘은 이야기다. 왜 리눅스를 버렸냐는 질문에 본인도 리눅스가 너무 좋은데 "청춘이 멍들잖아요"라는 말을 했었다. 이제 정말 뼈저리게 이해한다. 이제 FSF 멤버도 떠났는데 보스턴에서 자꾸 소식지는 보내준다. 진정한 자유와 소프트웨어 개발의 기쁨은 FSF에 있다는 것을 안다. 다만 지금은 닿지 못하는 이상향으로 보인다. 정말 깨끗한 사람이 걸을 수 있는 길이다 FSF는. 사실, 개발자는 C만 잘해도 먹고살 수 있다. 도전적인 부분도 많아서 챌린지 한 프로젝트도 많다. 소위, 안될만한 것을 잡아서 되게 만드는 프로젝트가 많아서 보람도 남다르겠다. 이제 그런 모듈이나 아키텍처나 시스템, 그리고 의뢰자의 요구사항도 의뢰자의 수준에 맞춰서 보이면 삽질은 되도록이면 안 하고 싶다. 여기서 매우 큰 차이는 포주가 되느냐 아니냐 차이인 것 같다. 스트라디바리는 사랑해야 하지만 과르네리는 강간해야 한다는 말을 듣고 너무 저질이라고 생각했는데, 소리 비교 영상을 보면서 뭔가 사라지지 않는 여운이 있는 것을 보면, 참... 더 이상 말을 말자. 나 역시 너무 저급스런 표현이면 에이전시를 운영하게 되느냐 현역으로 계속 뛰느냐 차이인 것 같다. 또, 다 안다고 생각해도 현역으로 뛰는 게 맞다고 본다. 짧은 생을 살면서 지식의 정수에 다가가지는 못한다. 나 역시 아래쪽으로 계속 내려다가 보니 C, 펌웨어, 어셈블리, 피스파이스, 베릴로그, RTL로 내려가다 결국 전기 학원까지 다녀봤는데 전문가란 하고 싶은 것을 포기하고 자신의 전문 분야를 닦는 것을 말한다. 고 내 책에 썼다. 또, 쓰는 책마다 쓴다. 왜냐면 내 딸이 다리 다쳐서 외과 수술을 받아야 하는데 산부인과나 내과에 부탁하지는 않을 것이기 때문이다. 물론, 수술을 못할 거라 생각지는 않는다. 변호사가 만능 자격증이긴 해도 세무는 세무사에게 노무는 노무사에게 맡기는 것과 비슷한 이치는 아니다.(이제 아니라고 생각한다.) 왜냐면 같이 부서에서 일하던 사법고시 출신 변호사 형의 업무 능력이 사실, 너무도 뛰어났기 때문이다. 물론, 나이가 들면 ^^;;; 그때의 체력과 열정은 똑같지는 않을 것이다. 양면적으로 생각하다 보니 자꾸 산만해진다.
3. 시중의 프로그래밍 책은 뭔가를 새롭게 만든 게 아니라 제약 사항에 대해서 설명하는 것이다.
생각해 보자. 전기 안 들어가면 컴퓨터 안 켜진다. 컴퓨터 안 켜지면 프로그래밍 못한다. 내가 만든 프로그램도 온갖 프로그래밍 기법을 쓰지만 결국 Windows, MAC, Android, iOS 등이 제공하는 수준에서 벗어나지 못한다. 프레임웍을 만든다고 해도 칩이 제공하는 기능을 벗어나지 못한다. 하드웨어가 BLE를 제공하지 않는데 BLE 프로그래밍을 할 수는 없는 것이다. 물론, 칩 설계도 요샌 프로그래밍해서 디자인 하우스에 보내기는 한다. 프로그래밍을 포괄적으로 보면 사실 하드웨어도 포함한다고 봐야 하겠다. 시중에 나온 책은 추상화된 APi와 그런 API를 효율적이고 멋있게 쓰는 방법에 대한 기술이다. 해당 API는 하드웨어 제약 사항에 제약을 받을 수밖에 없고 설계 역시 그렇다. 시중의 프로그래밍 책은 모두 그런 제약 사항에 대한 설명이다. 보다 자유를 느끼고 싶으면 전기 이론을 공부하면 되는데 사실 반도체 하나만 해도 한 사람이 평생 가도 모두 공부할 수 없는 분야기 때문에(원자력과 같은) 커뮤니케이션의 능력이 중요하게 된다. 그리고 리더의 자질에 대한 중요성도 더욱 커지게 된다.
리더라는 것은 처음부터 없었던 것이다. 필요하게 되어 생겨나게 된 것이다.
내 딸이 있어 내가 아버지가 된 것처럼 아버지도 필요에 의해 생겼다.
내가 아버지라고 어디 가서 좀 거들먹거리고 싶고, 우리 아버지가 그랬던 것처럼 가족들에게 폭력을 쓰고 싶어도
가족이 없는 순간 난 아버지 자체가 아니기 때문에
결국 OLPP 란게 중요한 것이다.
나약한 현실 도피의 사상에서 출발한 것은 아니다. 이미 중학생 때부터 오래도록 다져온 생각이다.
'BOJ' 카테고리의 다른 글
몰입의 즐거움 (0) | 2019.03.21 |
---|---|
BOJ 24970 (0) | 2019.02.25 |
건전(sound)하지 못한 스타트업 (0) | 2019.02.02 |
추리와 추론의 차이 (0) | 2019.01.14 |
사르뜨르가 했던 말과 내 생각 (0) | 2019.01.07 |
최근댓글