2003년 3월 10일 출판 된 책으로 발해된지 10년이나 더 된 책이다.
본문 내용대로. 3개월전의 기술도 옜것이 되어 버리는 정보통신 분야에서
10년이나 지난 책을 읽는 것이 도움이 될지. 시간낭비는 아닐지 약간의 고민은 했지만
이런 부류의 에세이를 좋아하기에 기대를 품고 책장을 펼치게 되었다.
여기서 잠깐 에세이란?
개인의 상념을 자유롭게 표현하거나 한두가지 주제를 공식적 혹은 비공식적으로 논하는 비허구적 산문 양식. 에세이는 통상 일기·편지·감상문·기행문·소평론 등 광범위한 산문양식을 포괄하며, 모든 문학형식 가운데 가장
유연하고 융통성있는 것 가운데 하나이다. 에세이의 종류를 에세이와 미셀러니(miscellany), 혹은 공식적(formal) 에세이와
비공식적(informal) 에세이로 나누기도 하는데, 전자는 대개 지적·객관적·논리적 성격이 강하며, 후자에는 감성적·주관적·개인적 특성이
두드러진다. - 네이버 사전
각 전문 분야에서 자신들의 꿈을 펼치며 능력을 발휘하는 선배 프로그래머 들의 다양한 경험담과 조언등을 듣고
싶었지만 공교롭게도. 책 내용의 70% 정도는 정보통신, 소프트웨어 산업 혹은 방법론 등에 대한 이론등을
소개 하고 있었다. 내가 IT 전반에 대한 폭 넓은 지식이 있었으면 이러한 내용들이 생각을 정리하고
개념을 확고히 잡는데 많은 도움이 되었을 것 같다. 하지만 그렇지 못한 내게는 오히려 이론 관련 책보다도
어렵고 지루하게 다가오는 부분이 있었다.(가벼운 마음으로 펼쳤는데!!)
관련 분야에 관심있고 발을 디디려는 초년 새내기 들을 위해 글을쓴 선배 프로그래머님들 께선
간략하게나마 전반적인 지식과 체계나 주요 이론등을 전해주고 싶었을지라. 그 마음은 백번 이해한다.
가장 재미있게 읽은 부분으로는 8장 '자바 그리고 공동체', 9장 'IT 전문가의 미래' 등을 꼽을 수 있고
2장 '오픈 소스' 에서 기존에 개념 정도만 알았던 부분에 대해 관심을 갖는 계기를 얻을 수 있었다.
그리고 중간에 인터뷰 형식으로 나온 안철수씨의 이야기나 전병선님의 컬럼등도 재미있께 읽었다.
이외의 다른 장들은 해당 분야에 대한 기본 지식을 쌓고 다시한번 읽어보면 큰 도움이 될 것 같다.
비록 시간이 지난 과거 상황에서 집필한 내용일지라도 이후에 다시한번 꺼내어 가볍게 읽으며 생각을
정리할 값어치는 있을 것이다.
각 장별 간략한 내용 정리
를 하려고 했으나. 그냥 전체적인 이야기를 종합해서 적기로..
각 장에서 각자의 분야에서 활동중인 선배 프로그래머들의 이야기를 통해 해당 분야에 대한
대우나 분위기, 비전, 하는 일 등을 엿들을 수 있지만
모두가 공통적으로 하는 이야기가 있다.
첫째. 시스템 전체를 볼줄 아는 사람이 되어라.
둘째. 성실성. 끊임없는 노력으로 변화에 적응하라.
셋째. 커뮤니케이션의 중요성.
넷째. 언어는 도구일 뿐이다. 다양한 지식을 보유해라.
첫째. 시스템 전체를 볼줄 아는 사람이 되어라.
우리 나라에 전산 관련 학과가 생긴건 1970년대 후반으로 관련 분야에 농축된 경험을 가진
사람이 많지 않은 것이 현실이며 국내의 기업 구조와 인식(나이가 많아지면 창의성이 떨어진다는) 때문에
일정 나이나 경력이 되면 관리직 등으로 빠지게 되는것이 관례다. 미국에서는 50이 넘어서도 프로그램 개발자로
일하는 전문가들이 많은데 우리나라에서는 아직 그렇지 못한게 현실이다.
하지만 나이를 먹어서 떨어지는 창의성 문제는 경험을 통한 효과적인 상황 판단이나 시스템 흐름을 읽는
능력, 후배 양성등의 능력을 통해 얼마든지 덮을 수 있다.
단순 코딩과 개발을 하는 프로그래머 보다 위에 상위 개념인 '아키텍쳐'는 전체 상황을 읽고 시스템을 구성 설계
하며 적재 적소에 팀원이나 인원을 활용할 줄 아는 전문 개발자이다. 우리나라엔 아키텍쳐라 부를말한 사람이
많지 않다. 그렇기 때문에 단순 코딩이나 개발을 넘어 전체 시스템을 보고 이해하고 설계할 줄 아는 능력을
그리고 그것이 연륜과 경험에 의해 축적된다면. 훌륭한 아키텍쳐로 성장하여 나이가 50을 넘어서도
실무에서 개발자로써 보람을 느끼고 생산적으로 미래를 계획해 나갈 수 있을 것이다.
둘째. 성실성. 끊임없는 노력으로 변화에 적응하라.
정보통신 분야는 새로운 기술의 생겨나는 속도가 빠르다 특히 국내에서는 새로운 기술에 대한 도입이 빠르기
때문에 어느 한가지 기술만 가지고서는 이 분야에서 인정 받기 힘들다.
개발자에게 있어서 논리적 사고나 창의성도 중요하지만 가장 중요한 것은
성실성이다. 꾸준히 새로운 것을 공부하고 배우고자 한다면 도태 되지 않고
남들과 경쟁할 수 있는 자신의 경쟁력을 쌓을 수 있을 것이다. 정보통신 분야에는
모든걸 실력으로 말하기 때문이다.
셋째. 커뮤니케이션의 중요성
요즘 신입들을 보면 커뮤니케이션 능력이 현저히 떨어진다. 조금만 추상적인 문제를 던져 줘도
어찌 해야할지 모르며 자신의 생각을 논리적으로 말하지 못한다.
소프트웨어 개발은 결국 고객의 요구를 충족시키기 위한 것으로 끊임없이 고객이나
협업사와 과 소통해야 하며
지금의 소프트웨어는 혼자 힘으로 만들 수 있는 것이 아니므로 나누어진 각 부서의 사람들과
커뮤니케이션을 통해 서로의 생각을 말하고 의견을 부합해 나가야 한다.
그렇기 때문에 개발 능력 이상으로 커뮤니케이션 능력은 중요한 것이다.
그리고 다양한 분야에서의 활동을 통해 만들어진 인맥으로 각 분야에 대한 지식등을
습득 할 수 있고 내가 생각하지 못한(우물안 개구리처럼) 그들의 생각을 들음으로써
다양한 문제의 해결 방식등을 얻을 수도 있다.
따라서 커뮤니케이션 스킬과 인맥의 중요성은 이루 말할 수 없는 것이다.
넷째. 언어는 도구일 뿐이다. 다양한 지식을 보유해라.
흔히들 이야기 한다. 프로그래밍 언어는 도구일뿐 정말 중요한 것은 그 개념을 이해 하는 것이라고.
맞는 말이다. 특히 신기술이 만들어지고 그것을 도입하는 속도가 빠른 국내의
소프트웨어, 정보통신 분야에서는 한가지 언어만 잘해서는 자신의 입지를 유지하기 어렵다.
내가 c++을 잘한다고 회사에서 진행하는 모든 프로젝트가 c++프로젝트일 수는 없을 것이다.
언어의 종류도 수십가지이고 필요한 관련지식이 수없이 많으며 새로운 기술과 지식이 끊임없이
쏟아져 나오는 상황에서 많은 언어와 지식들을 모두 습득하는 것은 불가능할 것이다.
하지만 평소 다양한 분야에 대해 대략적인 흐름을 숙지하고 예견해봄으로써 개략적인 개념들만 알고 있더라도
나중에 관련 분야에 일을 하게 됬을때 어떠한 기술을 필요로 하고 어떠한 행동을 취해야 할지
빠르게 대처 할 수 있을 것이다.
그리고 관련 없어 보이는 다양한 분야의 기술들을 통해 상대적인 기술의 장단점을 더욱 자세히
파악하게 될 수도 있다.(구조적 프로그래밍 언어 공부를 통해 객체지향 언어의 장점을 이해하는 등)
언어는 절대적인 것이 아니다. 우리가 언어를 사용하는 것이지 언어가 우리를 사용하게 되면 그것은
집착이자 신앙인 것이다.
항상 새로운 동향을 살피며 다양한 언어나 도구 사용법, 개념등을 공부해야 할 것이다.
하지만 어느 한두가지의 언어나 툴을 자유자재로 구사할 수 있을 정도의 실력은 필요할 것이다.
하나의 언어나 툴을 완벽히 이해 한다면 다른 상관관계에 있는 공부를 할때 지식의 습득이나 이해에
더욱 도움이 될 것이다. 그리고 어느 한가지 확실한 기술이 있다면 그것이 남들과의 차별성을 둘 수 있는
무기가 될 것이다.
즉. 한두가지 자신만의 필살기는 준비하되 너무 그곳에만 매달리고 신봉하지 말라는 의미일 것이다.
개발자에서 프로젝트 관리자로, 아니면 아키텍쳐로, 아니면 사업성 부서 등으로
앞으로 어떠한 쪽으로 진로가 바뀔지 모른다. 그렇기 때문에 다양한 지식의 습득은 중요하다.
마지막으로. 책을 통해 관심이 생긴것들.
오픈소스 프로젝트에 대해 잘 알게 되었다. 관심을 갖고 참여해보는 기회를 갖어야 겠다.
그리고 CBD에 대한 이해가 부족했지만(물론 지금도) 이에 대한 공부의 필요성을 조금은 느꼈다.
그 외에 XML과 닷넷 공부도.
마지막으로 한국 개발자 컨퍼런스 등에 기회가 된다면 관심을 갖고 참여해 봐야 겠다.