요새 듣고 있는 팟캐스트 중 지대넓얕(지적 대화를 위한 넓고 얕은 지식)이라는게 있다. 평소 궁금하고 잘 알지 못했던 내용들을 쉽게 설명도 해주고 토론도하고 아주 재밌게 듣고있는데, 문득 내가 몸담고 있는 IT 세계에서도 이렇게 지대넓얕 들이 많다는 생각이 들었다.
처음 C 로 Hello 프로그램을 빌드했던 중학생(1995년?)때에 비하면 20년이 흐른 2015년 현재는 정말 많은 IT 기술들이 세상을 뒤덮고 있다. 그때만 하더라도 DOS, C 만 알면 대부분이 가능했다. 리눅스도 대중화되어 있지 않아 몇몇 대형 서버에만 국한되는 얘기로 만져 볼일이 있을까 라는 생각도 들었다. 하지만 시간이 지나면서 인터넷을 통해 정말 많은 용어들이 여기저기서 튀어나오기 시작했다. 처음에는 별로 관심을 끌지 못했던 기술들이 인터넷이라는 미개척 황금시대를 배경으로 그 가치를 인정 받아 갔다. 급변하는 시대에 기술이 늘어가는 만큼 프로그래머로써 알아야 할것들도 그만큼 많아졌다.
대학교 학과 공부가 모든것인 시대는 끝난지 오래다. 대학 컴퓨터공학과 교육에서 배우는 과목들은 분명 프로그래머로써 기본을 튼튼하게 해주는데는 틀림없는 사실이지만 당장 현장에서는 그닥 힘을 발휘하지 못한다. 회사에 취직한 신입들은 학교에서 컴퓨터 구조를 파악하고 컴파일러가 어떻게 동작되는지를 배웠지만 구글, 네이버의 검색, 메일, 클라우드 등의 서비스에 바로 투입하기에 어려움이 있다. 오픈소스를 통해 나오는 많은 라이브러리와 툴들을 두루두루 섭렵해야 하고 회사 자체 기술에도 익숙해져야 하기 때문이다. 물론 요즘 대학 교과 과정도 실무에 많은 중점을 두고 커리큘럼도 변경되었고 기타 개인적으로 오픈소스에 관심을 갖고 공부하는 학생들도 많아 예전 만큼 회사 업무와 거리가 멀지는 않을 것이다. 하지만 지금봐도 어려운 운영체제, 네트워크, 컴퓨터그래픽등... 정말 컴퓨터공학의 근본을 배우면서 매년 발생하는 기술들을 모두 따라 가기에는 벅차다는 생각이 든다.
학교를 졸업해 취업을 준비하거나 이직을 할때 프로그래머 구직란 내용을 보면 보통 C++ , Java 등을 할 줄 아는 사람들을 뽑는다라고 표현을 쓴다. 할줄 아는 프로그래밍 언어로 사람을 뽑고 말고 한다는건데, 과연 C++ 만 할줄 아는 사람 또는 C++ , Java , Python, PHP, Perl 등 모두 다 할줄 아는 사람이 정해져 있을까? 프로그래밍은 기본적으로 공통된 논리 제어 개념을 가지고 있어 공통점이 많아 마음만 먹으면 프로그래밍 언어는 얼마든지 배울 수 있다. 물론 주로 사용하는 기술에 비해 많이 미숙하겠고 언어 컨셉이 객체지향에서 함수형으로.. 와 같이 패러다임이 바뀐 경우등은 그리 쉽게 익혀지지는 않을 것이다. 하지만 개인의 노력에 따라 프로그래머의 스킬은 얼마든지 변경되고 높일 수 있다.
지난 포스트에 프로그램머들은 한 영역을 집중적으로 파고 들어 전문가(Specialist) 되는 경우와 깊게는 아니지만 여러 기술들을 두루두루 섭렵하는 만능인(Generalist)이 있다고 했는데, 보통 제너릴 리스트의 경우 전문가에 비해 그리 좋은 케이스는 아닌것 같다는게 요즘 생각이다. 프로젝트를 진행할때 여러가지 기술들을 많이 아는 것은 확실히 좋은데 실제 중심이되는 기술을 얼마나 전문성있게 풀어내느냐가 성패를 많이 좌우하기 때문에 한분야에서 내공있는 고수가 되는것이 더 매력적으로 보인다. 이런 고수가 되는것은 결코 쉽지 않을 것이다. 여기저기 기웃거리면서 간만 본다면 결국 아무것도 이룰 수 없기에 자신에게 중요한 기술을 우선으로 깊이있는 공부를 해보는 것이 좋을 것 같다.
요즘 GoLang 과 함께 뜨고 있는 Docker 프로젝트를 보면서 알게된 리눅스의 컨테이너라는 개념이 있는데, 정말 밀접하게 관계가 있는 리눅스 영역에서 정작 리눅스의 아버지인 리누스 토발즈 본인은 잘모른다라고 말하고 있어 의외였다.(아래 기사 참고)
리누스 토발즈 "컨테이너? 잘 모른다" (http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150820115820)
여태껏 이기술 저기술 얇게 발담그며 아는척 했던 자신이 부끄러워지는 순간이였다. 단순하게 몰라서 조금 해보고 공부하는 과정까지는 좋은데, 이것이 마치 다아는듯 허새가 몸에 섞여있었다. 프로그래머들은 자존심이 강해 모르는 용어가 나오면 이미 알고 있었다는듯 아무렇지 않게 넘겨버리는 경우가 있는데 모른다 말 하면 왠지 상대가 나를 낮게보고 무시할 것 같은 걱정이 앞서기 때문이다.(모른다고 나를 나무라는 상대는 그리 좋은 프로그래머가 아닐것이다.) 많이 알고 있으면 좋겠지만, 그렇다고 모른다는 것에 너무 겁먹지 말았으면 한다. 모르면 공부해서 언제든지 내것으로 만들 수 있다는 마인드를 갖는게 더 중요하지 않을까. 그리고 너무 기술 트렌드에 민감해 모든것을 놓치지 않고 따라가려 한다면 결국 깊이 있는 공부를 하지 못하고 남는것은 껍데기에 불과할 수 있다는 생각을 해본다. 모른다고 쫄지마~ㅋ
comments:
댓글 쓰기