Thoughts2007.10.08 02:07
평판이란 무엇일까요? 평판이란 이미지이기도 합니다. 이미지는 '다른 사람에게 내가 어떤 모습으로 비추어지느냐'는 물음에 대한 대답이지요. 좋은 이미지를 싫어하는 사람은 없습니다. 프로그래머도 마찬가지입니다.

프로그래머라는 부류의 사람들을 세상은 굉장히 단순하게 파악하는 경향이 있습니다. '길고 흰 손가락을 가진 마르고 성마른 외모를 가진 20대 초반에서 30대 중반까지의 남성으로, 안경을 착용하였으며 대인관계에 어려움을 겪고, 사람과 소통하는 것 보다는 국방성 데이터베이스를 해킹하는 데 더 재미를 느낀다.' 뭐 이정도가 세상 사람들이 알고 있는 '프로그래머', 엄밀하게는 IT 업계 종사자의 이미지죠. 이런 이미지를 만드는 데는 아마 헐리우드가 단단히 한 몫을 했을 겁니다.

그래서인지는 모르겠습니다만, 대부분의 프로그래머는 '세상 사람들이 자기를 어떻게 보느냐'보다는 '관련 업게 종사자들이 자기를 어떻게 보느냐'를 더 중시합니다. 세상사람들은 어차피 모든 프로그래머를 다 똑같이 취급하므로 (그런 점에 있어서는 군대 계신 분들과도 비슷한 면이 있습니다 ㅋㅋ) 같은 직종에 있는 사람에게나 좋은 소리를 듣는 것이 여러가지로 이롭다는 것이죠. 다른 직종도 마찬가지라구요? 아니요. 그렇지는 않습니다.

* * *

그렇다면 프로그래머는 '다른 프로그래머들' 혹은 '같은 직장에 있는 다른 근무자들'에 대한 자신의 이미지를 어떻게 하면 보다 개선할 수 있을까요? 오늘은 가장 간단한 방법 하나를 가르쳐 드리겠습니다[각주:1].

사용자 삽입 이미지
많은 사람들이 책꽃이에 책을 꽂아 놓습니다. 하지만 프로그래머들에게 있어서 책은 참고서로서의 활용도가 더 높기 때문에, 가능하면 책을 꽂아놓지 않는 것이 더 좋습니다. 자주 보는 책들을 책상위에 꺼내 놓고, 위의 그림처럼 쌓아놓도록 합시다. (제목이 잘 보이도록 쌓아놓으면 더 효과적입니다.) 그러면 사람들은 당신이 프로그래머임에 틀림없다고 믿습니다.

책을 쌓아놓으면 책상에 '나름대로 의미가 있는 무질서'를 부여할 수 있을 뿐 아니라, 자리를 비운 사이에 상사가 파티션 사이를 오락가락 하는 경우에도 자신의 이미지를 긍정적으로 관리할 수 있습니다. 상사는 당신의 책상 위에 있는 책들을 보고 당신에 대한 보다 긍정적인 생각을 가지게 될 것이고, 책상 위에 부여된 무질서는 당신의 이미지를 보다 신비롭게 바꿔줄 것입니다. 프로그래머에게 있어서 너무 깔끔한 책상은 별로 매력이 없습니다.

하지만 이런 효과가 지속적으로 발생하도록 하려면, 책상 위에 쌓아둔 책들을 주기적, 혹은 비주기적으로 셔플(shuffle)하는 것이 좋습니다[각주:2]. 그래야 당신이 그 책들을 지속적으로 보고 있다는 인상을 다른 사람들에게 심어줄 수가 있습니다.

하지만 몇가지 주의할 점도 있습니다. 책의 목록이 사람들에게 노출되도록 해야 한다는 점이 중요하기 때문에, 가급적 뭔가 '있어보이는' 책을 골라야 한다는 점입니다. 당신이 만일 C++로 프로그래밍을 하는 프로그래머라면, Template Metaprogramming에 관한 책을 구매해서 쌓아두면 좋을 것입니다.

명심하세요. '널리 알려진 책'이면서 또한 '쉽게 읽히지 않는' 어려운 책일 수록 효과가 높습니다. 그런 점에 있어서는 Donald Knuth 교수의 "The Art of Computer Programming" 시리즈가 이미지 관리용으로는 최고의 도서라고 할 만 합니다.

그런데 당신이 쌓아둔 책에 대해 누가 질문을 하면 뭐라고 해야 하나요? 그럴때는 최근 널리 알려지게 된 사자성어대로, '소이부답'하면 됩니다. 씩 웃어주시고, '직접 읽어보세요'라고 해주세요. 대답하기 위해 최선을 다하는 것은 좋지만, 중간에 버버거리게 되면 당신에 대한 신뢰는 떨어지게 됩니다. '보시면 알게 됩니다'가 보다 Guru 적인 대답입니다. 그렇게 해도 상대방이 계속 미심쩍어한다거나, 질문을 해 댄다면 어떻게 해야 하나요? 그럴때는 '글쎄 저도 공부중이라서요'라고 해 주는게 가장 낫습니다. 말을 많이 하려고 하다보면 실수를 하게 되니까 가급적 이런 저런 변명은 하지 않도록 하세요.

간혹 진짜 고수가 당신의 도서 목록을 보고 이런저런 질문을 해대거나, 대화를 시도하는 경우도 생길 수 있습니다. 그런 사람들은 입을 여는 순간 당신이 이해할 수 없는 말들을 토해내기 때문에, 대화를 하는 순간 바로 알아챌 수 있습니다. 그런 사람을 만나면, 가급적 오랜 시간 대화를 하면서 그 사람이 하는 말을 잘 들어두세요. 그 사람이 하는 말을 잘 들어두고 외워두면, 나중에 다른 사람이 비슷한 질문을 할 때 대답으로 써먹을 수도 있어 좋습니다.



  1. 물론 농담입니다. [본문으로]
  2. Life is Shuffle. [본문으로]
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 완벽하군요. 이런 비법을 알고 계셨다니.

    2007.10.09 20:52 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. ssoon

    정말로 완벽합니다.

    2007.10.16 09:59 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 저는 마지막 부분을 이렇게 수정해봤습니다. ^^ 글이 참 재미나내요.
    잘 들어두세요. 그 사람이 하는 말을 잘 듣고 있으면 겸손하고 유연한 개발자라는 이미지를 보다 공고하게 할 수 있습니다.

    2009.04.14 18:19 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 낭만고양이

      재미있게 읽어주셔서 감사합니다. ^^

      2009.04.28 23:33 신고 [ ADDR : EDIT/ DEL ]

Thoughts2007.09.09 22:48

사실 개발자로서 '소통'의 문제를 전혀 고민하지 않은 채 독야청청 가끔 책이나 들여다보고 지식의 외연을 넓혀가는 데 지나치게 만족하고 살다 보니, 어느새 세상 돌아가는 꼴을 모르는 우물안 개구리가 되어 있더군요.

그래서 요즘 블로그 질이다 뭐다 해서 나름대로 열심히 하던 와중에.

"에자일 이야기"라는 블로그를 하나 발견했습니다. 알고보니 에자일 이야기의 운영자님은 꽤 유명한 분이더군요. (그런 것도 모르고 살았으니 개발자로서는 지나치게 게을렀던 셈이지요 ㅋㅋ)

그 블로그에 포스팅된 기사를 뒤적거리다보니, "야근 금지"를 모토로 하는 한 회사에 관한 기사가 눈에 들어왔습니다. 알고보니 이 회사도 꽤 유명한 회사더군요 -_-


"대체 너는 아는게 뭐냐"


라고 물으시면 할말없3 ㅜㅜ

야근 금지라... 사실 모든 개발자의 꿈이기도 하죠. 야근 금지는 다른 말로 하면 칼퇴근 정도로 바꿀 수 있겠습니다. 사실 서울에서 직장생활하던 때, 저는 칼퇴근을 해 본 적이 거의 없었습니다. 코딩도 해야하고, 때로는 전화도 받아야 하는 팍팍한 벤처에서 칼퇴근이라는 것은 언감생심 꿈꾸기 민망한 소망이었죠.

+ + +

저의 경험상, 칼퇴근은 '숙련도가 어느 수준 이상 상승한 프로그래머' 혹은 '요구사항의 변화를 엄격하게 통제할 수 있는 환경에서 근무하는 프로그래머' 또는 '을보다는 갑의 지위에 더 가까운 계약관계를 지속적으로 유지하는 회사에서 근무하는 프로그래머'라야 누릴 수 있는 특권적인 혜택입니다.

숙련도가 어느 정도 상승한 프로그래머는, 자신의 코딩 경험을 라이브러리 화 해 놓을 수 있습니다. 그 축적된 라이브러리를 바탕으로, 프로그래머는 자신의 다음 업무에 드는 코딩 시간을 배로 단축할 수 있습니다. 자, 그러면 이 프로그래머가 하게 되는 업무 영역에 큰 변화가 없다고 가정한다면, 이 프로그래머의 순수 코딩 시간은 맡는 프로젝트가 끝날 때 마다 exponential하게 감소하겠군요 :-P

물론, 그러려면 '업무 영역에 큰 변화가 없다'는 가정이 계속적으로 유지가 되어야 합니다. '업무 영역에 큰 변화가 없는' 환경에서 근무하려면, 회사가 하는 업무 형태에 일관성이 있어야 합니다. 제가 근무했던 한 회사의 업무 영역은 제가 근무하는 1년 동안 두 번 바뀌었습니다. 처음에는 웹 개발이었는데, 나중에는 네트워크 장비 개발로 업무 영역이 바뀌었죠. 게다가 근무하는 동안에 다른 업체의 용역 개발을 수행할 일도 있어서, 업무 영역에 변화가 없을래야 없을 수가 없었습니다. 거기다 개발자로서는 처음 맡아보는 업무들이 태반이었으니... 능력 부족으로 자진 퇴사한 뒤 대전으로 튀었습니다만, 지금도 그 때 좀 더 잘해볼껄 하는 후회가 남습니다. 아무튼 각설하고.

용역을 수행하더라도 그 용역의 범위에 일관성이 있으면 좀 낫습니다만, 없는 경우에는 개발자로서는 난감할 때가 많습니다. 이런 코딩도 해야하고, 저런 코딩도 해야하니까요. (심하면 서버 코딩만 전문으로 하다가 GUI 프로그래밍을 하게 되기도 합니다.) 먹고 살자면 그런 일도 생깁니다. 계약서에 명시된 역할이 '을'에 가까울 수록 이런 일은 더 자주 생깁니다. 대개의 경우 '을'은 '갑'이 요구사항을 아무리 자주 바꾸더라도 어쩔 수 없이 응해야 할 때가 많습니다. 요구사항이 바뀌면 코드를 뒤엎어야 하는 일도 늘어나고, 야근 횟수도 늘어납니다. (물론 그런 것 까지 예측하여 프로그래밍을 할 수 있는 수퍼 코더라면야 문제는 또 다르겠습니다만... ㅎㅎ)

이런 문제들을 해결하고 '칼퇴근 맨'이 되기 위해서는, 스스로 부단한 노력을 거듭해서 '자기 분야에서 숙련도가 어느 수준 이상 상승한 프로그래머'가 되거나, '요구사항의 변화를 엄격하게 통제할 능력이 있는 상사' 밑에서 일하던가, '잘 정리된 솔루션을 가지고 있고, 그런 솔루션에 대한 꾸준한 개발 계획을 가지고 있으며, 미래에 대한 비전도 있는' 회사에서 일하거나, '거의 항상 갑의 위치에서 계약을 하는 회사'에서 일하거나, 이도 저도 안되면 '출중한 개발자 및 컨설팅 그룹'에서 일하거나 해야 합니다.

+ + +

저는 대전으로 튄 후 5년간 꾸준히 칼퇴근 맨이었습니다. 저의 경우에는 '거의 항상 갑의 위치에서 계약을 하는 회사'에서 일한 탓도 있었고, 스스로 '요구사항의 변화를 칼같이 짜른' 탓도 있었고(그래서 욕도 엄청나게 얻어먹었습니다 ㅎㅎㅎ), 나름대로 5년동안 한 회사에서 굴러먹다 보니 제 분야에서 '숙련도가 어느 수준 이상 상승한' 탓도 있었습니다. 대전이라는 환경이 서울보다는 좀 살기에 널널한 탓도 있었죠. (어떻게 보면 그게 가장 지배적인 요인 같기도 하군요 ㅋㅋ)

앞서도 말했듯, 칼퇴근은 개발자의 꿈입니다만, 그만큼 성취하기 어려운 목표이기도 해요. 그래서 그런지, 야근금지를 모토로 하는 저런 회사가 참으로 신기해보이기도 하고, 대전에서 보낸 지난 5년동안의 시간이 좀 아깝기도 합니다. 서울에서 좀 치열하게 생활했었으면 아마 저런 회사나 개발자 그룹에서 좀 더 큰 꿈을 펼쳐보겠다... 뭐 이런 생각을 가지고 보다 더 열심히 공부를 했었을지도 모르겠다, 그런 생각이 들거든요.

뭐, 모로가도 서울만 가면 된다고, 어찌 어찌 해서 야근 안하는 프로그래머가 되었으니 어떻게든 목표를 달성한 셈이긴 하지만 말입니다.. ㅎㅎㅎㅎㅎ

아무튼, 제 입장에서만 보자면 야근은 안하는 게 낫습니다. 야근을 상습적으로 하게 되면 낮 동안의 업무 효율이 떨어지고, '야근하면 되지...'하는 생각에 심각한 업무를 밤에 미뤄두게 됩니다. 체력도 별로 안좋아지고요. 낮 동안에 가급적 모든 업무를 재빨리 처리하고, 밤에는 차라리 시간날때 운동을 하거나, 공부를 하거나 하는 것이 더 낫습니다.

제가 한동안 애들을 다 재운 밤 열시 이후에 회사에 나와서 야근을 하고 담날 다시 정상근무를 하는 비정상적인 생활을 한 두어달 했던 적이 있는데요 (소스코드를 날려먹는바람에 어쩔수가 없었습니다 ㅎㅎㅎㅎ 거기다 애도 봐야하고 아흑 ㅜㅜ) 일은 성공적으로 마무리했습니다만 그 뒤에 정신상태가 피폐해져서 한 한달가량은 뭘 제대로 할 수가 없더군요. 공부도 손에 안 잡히고...

그렇다면 프로그래머가 추구해야 할 길은 오직 하나로군요.

공부를 열심히 해서 숙련도를 향상시키는 거... -_-;;

사실 그 이외의 문제는 '환경'의 문제이고, '환경'의 문제는 프로그래머 맘대로 콘트롤 할 수 있는 게 아니니까요.




Posted by 이병준

소중한 의견, 감사합니다. ^^

Thoughts2007.08.31 23:50
스스로를 프로그래머로 지칭하며 살아온지도 10년이 다 되어갑니다. 10년이면 강산도 변한다는데. 그 말 마따나 세상은 빠르게 변해 CORBA가 SOAP로, OPEN API로 둔갑하더니 어느새 사람들은 SOA와 Web 2.0, Ajax를 가지고 프로그램을 짜고 있습니다.

웹은 진화했고 사람들은 이제 너무나 당연하게도 웹을 하나의 플랫폼으로 인식하고 있습니다. 이런 시대에 연구소에 틀어박혀 프로토콜 스택이나 짜다 보니, 가끔 동종업계 사람이나 친구들을 만나면 스스로가 낯설게 느껴질 때도 있습니다. 그래서, 스스로 '나는 뒤처지고 있는 것인가' 하는 질문을 자주 던져봅니다.

사실 지난 10년간 제가 보는 책은 그다지 달라지지 않았습니다. 잠깐씩 아르바이트를 위해 웹 관련 프로그래밍 서적을 보긴 했지만, 대부분의 코딩을 C++/Make/gcc의 조합으로 해 오고 있으니, 보는 책도 언제나 '그 나물에 그 밥'입니다. 사람들이 웹을 통해 연결되고 있는 동안, 저는 남들이 다 해먹고 지나간 지 오래인 프로토콜 스택같은거나 땜빵으로 만들면서 연구실 한켠에서 홀로 시간을 보냅니다. 그래서 가끔은 몹시 외롭기도 합니다. 그나마 코딩이나 걸출하게 잘 할줄 알면 스스로 기꺼워할 시간이나 있겠습니다만, 참고서나 예제 없이는 코딩 한줄이 힘든 저로서는 가끔 밀려오는 땜빵성 일거리들이 버겁기도 합니다. 그러다 보니 더 외롭습니다. 흉금을 터놓고 술이라도 한잔 같이 나눌 친구들이 없는 이 대전에서는, 더욱 더 외롭습니다. 머리가 나빠서인지, 그런 외로움을 어떻게 털어야할지도 잘 모르겠습니다.

거울을 보면, 제 눈은 아직도 20대에 머물러 있는 것 같습니다. 하지만 그런 20대의 눈에 보이는 사내는, 이제 30대 중반입니다. 아저씨 냄새도 완연하기 짝이 없습니다. 그래서 가끔 슬플 때도 있습니다. 운동도 하고 살을 빼려고 애도 써보지만, 헛 먹은 나이도 나이인지라 얼굴에서 지우기가 여간 난감하지 않습니다. 그래서 거울 보기도 가끔은 부끄러울 때가 있습니다.

앞으로 오년간을 잘 마무리 해야 멋진 사십대가 될텐데, 하는 생각이 자주 듭니다. 그리고 40대가 되는 그 순간에는, 뭔가 아는 것이 아주 많은 훌륭한 프로그래머가 되어 있어야 할텐데, 하는 생각도 자주 듭니다. 이도 저도 아니면 월급이나 많이 받게 되던지요. ㅋㅋ

하지만 제 이런 바람은 그냥 바램으로 그칠 가능성이 아주 큽니다. 삼십대 중반이 넘어선 아저씨가 갑자기 오년만에 프로그래밍의 달인으로 둔갑하는 것은 불가능에 가까운 일이거든요. 거기다, 설사 프로그래밍의 달인이 되었다고 하더라도 그걸 알아줄 사람이 거의 없을 거라는 게 또 문제에요. '나이 40이 되었는데도 프로그래밍 말고는 특별히 할 줄 아는 게 없는 사람'을 누가 취직시켜주겠어요? 쌩쌩하게 일 잘 할만한 삼십대들도 쌔고 쌨는데...

그러니, 땜빵 일거리나마 하게 되는 것을 고맙게 생각하고 지금 직장에 엉덩이 꾹 눌러붙이고 대충 대충 사는 것이 가장 나은 일일지도 모르겠어요. 하지만 그것도 사실 피곤해요. 비위 맞춰줘야 할 사람들은 왜 그렇게도 많은 것인지... 집 안이나 집 밖이나...

십년 전이나 지금이나, 제 말을 가장 잘 들어주는건 컴파일러 밖에는 없는 것 같아요.

Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. serahero

    전 컴파일러도 절 싫어 하는것 같아요.
    ㅜ_ㅜ..

    2007.11.16 22:21 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 라이언

    마지막 줄이 절 슬프게 하는군요. ㅠㅠ

    2007.11.26 16:46 신고 [ ADDR : EDIT/ DEL : REPLY ]