가끔, 친한 동생들이나 동료들을 혹세무민하기 위해 제가 꺼내는 화제 중에 이런게 있습니다.
(꽤나 제가 오래 사용해 온, 어쩌면 진부한 레파토리입니다만)
Q. 왜 공학용 전공 서적들이나 프로그래밍 관련 서적들은 책이 두꺼울까?
A. 아마도 다음 세가지 이유에서일 것이다.
1. 그만한 분량의 내용과 가치가 있는 분야로 포장해 충분한 인세를 받아먹기 위해.
2. 대부분의 그 분야를 공부하고 싶어하는 사람들이 스크롤 압박에 중도 포기하게 되므로,
미래의 라이벌을 제거할 수 있다.
3. 그 딱딱하고 은근히 곁들여진 책을 진지한 태도로 꼼꼼히 읽어본 사람이라면,
그 시간만큼이나 그 분야에서 뒤쳐지게 된다.
궤변이라 들릴 수도 있겠군요.
가만히 생각해 보면 일리 있는 이야기이기도 합니다.
+ 대단한 개발자로 알려진 어떤 개념과 표준의 창시자들이 쓴 책들 조차도
믿을 수 없을만큼 적절하지 못한 예시들을 사용해 개념 자체의 명확성을 흐리는 경우가 많다.
- 대개 학교에선 그런 저자들의 책을 교제로 채택한다.
- 그것을 가르치는 교수들 수준을 생각해 보자.
뛰어난 교수들도 분명 있지만, 개발자들 사이에서 뛰어난 개발자를 찾는것과 마찬가지로 희박하다.
적당히 고교수준의 학업성취도에서 우수한 성적을 거둔 사람들이 명문대학을 통해
전공분야로 진학하지만, 논문으로 장난 치는 사람들이 많은게 현실이고,
다른 사람의 학위 논문 트럭에 동승하거나 배낀 후,
그 이력으로 각급 기관의 연구소로 진출했다가 진검승부에서 꼬리내리고,
다시 표면적인 실무 경험을 이력삼아 학교로 돌아와 배운 도둑질인
논문장난을 계속하는 경우가 많으니까 말이다. (제 아무리 KAIST나, MIT 출신이라 하더라도)
또한, 상당수의 교수(조교수)들은 병특이며, 가르침에 대한 사명감이 없다.
- 그러한 교수들이 유명 저자들의 책을 교제로, 적당히 번역하고, 적당히 개념을 착각한 뒤,
자의적으로 적당히 발췌해 학생들에게 들려주며, 두꺼운 책 한 권을 한 학기에 떼게 된다.
(한 학기는 15주, 주당 수업시간은 3학점 기준 3시간, 체육대회/축제/MT/시험 일정 등등을
빼고 나면 12주가 채 안되는 경우가 많다. 수업시간 1시간 중 10분 이상은 휴식시간.
즉 총 36시간 이내??
하물며 수업시간 사이 사이의 단편화 된 시간들은 도서관을 찾는 열혈 학생들을 제외하고는
대개 잔디밭, 동아리방, 당구장, 게임방 등등을 전전하며 허비하게 된다.
이것이 제도권의 교육.)
- 많은 학생들이 비싼 수업료를 내고 얻는 것은
포인터나 객체의 간단한 개념 조차도 어렵다고 여기는 것이다.
- 믿을 수 없는 수준의 교수들 조차도 이러한 교육을 받는 학생들을 우습게 보는 경향이 있다.
+ 그 개념/시스템의 창시자들은 애초에 그런책으로 공부한 적이 없다.
- 심지어, 애초엔... 아무것도 없었다.
+ 간혹 1 ~ 2년 이상의 시간동안 공을 들여 많은 지우의 도움을 받아 책을 썼다는 저자들을 볼 수 있다.
- 그들의 책은 정리가 잘 되어 있는 듯 하지만, 방향을 제시할 뿐이다.
- 그들이 1 ~ 2년을 들인 대부분의 시간은 사용된 코드의 검증을 맡긴 사람들의 응답을 받거나,
그 분야에 관련해 보다 심도 있는 프로젝트를 수행하며 소비한 시간들이다.
- 하지만 그 깊은 내용들은 책에서 언급하지 않는다.
이러한 고찰들로 알 수 있는 것은 다음의 것들이 있겠습니다.
+ 대학 교육은 제도권의 교육이 필요 없음을 배우기 위한(홀로 서기 위한) 과정이다.
- 그것 조차도 불필요한 재능있는 사람들이 있다.
- 여기서 말하는 재능이란, 사고의 능력이라기 보다 각 분야에 대한 열정과 사랑일 것이다.
+ Software Engineering은 Art에서 출발해 Engineering으로 흘러가고 있다.
- Art(Creative)가 없인 새 분야를 개척할 수 없음을 반증한다.
- Engineering에 집중 할 경우 본인 스스로가 거대한 기계의 부속일 수 밖에 없다.
+ 새로운 개념이라 불리는 모든 것은 연출일 뿐이다.
- 모든 것은 이미 우리가 알고 있는 이야기들이다.
- 단지 수치적으로 해석하는(Numerical Analysis) 과정을 거쳐 소프트웨어 공학의 한 분야로 불리운다.
+ 피할 수 없는것은 즐겨라.
- 피할 수 있는 것은 피하란 소리일 것이다.
- 이데올로기에 현혹되어선 안된다.
C/C++ 언어는 지난 37년간 개발자들을 먹여살려 왔습니다.
Java 는 11년째이지만, 이미 개발자 포화 상태에 이른 것으로 보입니다.
(C/C++ 을 하면서 Java를 할 줄 모른다는 건 Language가 가지는 문법적 Entropy의 한계상 불가능한 것이므로)
(Assembly나 Pascal은 보다 더 오랜 시간 개발자들을 먹여 살려 왔죠.)
(사족을 덧붙여 이런 Language들은 오랜 시간, 스스로도 그 개념을 잘 설명할 수 없는
비 개발자 교수들을 먹여살려왔습니다)
Terminal 환경의 커뮤니티 기술은 90년대에 10여년간 사업적인 성과를 거두고 물러났습니다.
Web 환경의 커뮤니티 기술 또한 향 후 몇 년간 혹은 몇 십년간 사업적인 성과를 거두겠죠.
솔직히, Pearl이니 PHP니 JSP니 ASP니, Servlet이니 Applet이니 하는 것들 몇 가지만 부여잡고
스스로를 개발자라 칭하는 사람들을 보면 안스럽습니다.
박지훈님이 Native 라 표현한 개발자들은,
실제, 개발 환경에 종속되지 않은 개발자를 의미한다고 생각합니다. 저 역시 동감하구요.
아무런 소프트웨어의 도움을 받지 않고도 모든것을 만들어 갈 수 있는 마인드와 능력을 갖춘 사람만이
사상누각이 아닌, 난공불락의 성을 쌓은 사람이겠지요.
물론 성을 쌓는데에는 기중기의 도움이 필요하고, 학문적 체계화가 바로 성을 얼마나 조밀하게 쌓느냐의
관건이 될 것임은 자명하므로, 개념없이 코딩만 잘 하면 돼 라는 이야길 하고 싶은건 아닙니다.
병원과 학교는 필요한 사람에게만 필요한 것이고,
스스로가 가진 재미난 생각들을, 개성있게 표현해 나가는게 중요하다고 생각합니다.
성취를 위한 시간을 아끼기 위해서는, 자신의 몸이 어디가 아픈지, 자신의 머리가,
자신의 가슴이 어디가 아픈지...
스스로를 찬찬히 들여다 보는 시간들이 필요한 것이겠죠.
또한 많은 실수를 통해 배워가는 것들일 테구요.
|
별 생각없이 머릿속을 떠돌던 제 단편적인 생각 조각들을 좀 잘 정리하고 며칠 정도는 수도를 하면서 고찰을 거듭했다면, 아마 열씸!님의 의견과 같은 결론이 나왔을 거 같기도 하네요. 진담입니다. 제 머리의 수준은 열씸!님이 글로써 쓰신 정도의, 좀 더 깊고 이면을 돌아보는 '고찰'의 수준에는 잘 도달하지 못하거든요. (비꼬는 것은 절대로 아니고 진담입니다)
너무 높게 봐주신 거 같고.. 제가 썼던 글은 단지 그냥 현실에서 어떻게 될 것인가를 짧은 생각으로 쓴 것 뿐입니다. 겸손하는 척하는 것도 아니고 말 그대로 짧은 생각입니다. 짧은 생각인 줄 알면서도 쓴 것은, 그보다도 더 짧게 생각하는 개발자들이 의외로 많다는 것을 우연히 알게 되어서입니다.
5년후쯤에 뭘로 밥먹고 살 것인지, 5년후에도 그 업무로 고용해줄 직장이 있을 것인지, 5년동안 지금 일하는 것처럼 일하면 기술적으로 얼마나 성장할 수 있을지, 5년후에도 지금 받는 페이만 받고 먹고 살 수 있을 것인지, 이런 것은 복잡하고 깊은 생각까지 하지 않아도 직장인이라면 가장 기본적으로 고민해보는 것이 당연한 현실적인 문제들입니다.
제가 인용했던 그 기사를 인용했던 이유도 딱 그거죠. 뭐 IT 엔지니어에게 전반적으로 40대를 넘겨서도 계속 직장 생활을 하는 것이 그리 쉽지 않기는 하지만, 웹 개발자에게는 정말로 지옥이 될 겁니다. 웹 개발자라는 어휘가 생긴 것도 채 7~8년밖에 안되었습니다. 단순하거나 반복적인 업무만 개발해온 개발자가 절대 다수인 웹 개발자에게, 40대 이후에 어떤 미래가 기다릴지는, 제가 당면한 일이 아니긴 하지만 생각만해도 아찔합니다.
적어도, 문이 좁고 아직 개척 상황이긴 해도 네이티브 개발자, 열씸님이 친절하게(그리고 감사하게) 넓게 생각해주신 '개발 환경에 종속되지 않는 개발자', 더 진취적인 개발자, 이런 개발자들에게는 미래가 있기는 하거든요. 아직 국내에선 흔히 보기 힘든, 오랜 경험을 통해 말초적(?) 지식의 한계를 뛰어넘은 아키텍트의 미래 말입니다. 그리고 이미 무시할 수는 없을 정도로 적지 않은 40대 개발자분들이 이미 길을 넓혀가고 있고, 그 길에 다가가는 저나 저 또래의 다른 개발자들이 그 길을 더 넓혀놓겠죠.
제가 반복해서 비슷비슷한 말을 쓰면서 강조하는 것은 (제가 글솜씨가 한참 모자라서이기도 하지만) 적어도 네이티브 개발자가 단지 구인 광고가 더 많다는 이유로 웹 개발자로 전향하는 어이없는 상황은 줄여보고 싶기 때문이랍니다. 뭐... 기우일지도 모르겠습니다만.
사실 웹 개발 뿐만 아니라 정규직에 비해 계약직이 압도적으로 많은 분야들은 공통적으로 실제 인력 소요보다 가시적인 규모가 더 커보일 수밖에 없는데요. 그건 단지 자주 자르고 자주 뛰쳐나가기 때문에 횟수가 늘어날 수밖에 없기 때문이죠. 정규직 한명이 평균 3년을 일한다고 했을 때 같은 잡에 계약직을 쓰면 한 사람이 6개월씩 일한다고 할 때, 같은 업무에 대해 계약직 구인광고는 정규직보다 6배가 더 많이 나올 수밖에 없겠죠. 그래서 웹 개발쪽 인력 시장이 실제보다 더 커보이는 착시 효과가 생기는 거죠.