엔지니어처럼 팔자가 편한 사람들을 본 적 없다. 실력만 좀 있으면 정말 살아가기 편한 것이 엔지니어다. 인문학 박사 학위를 가지고 십년 동안 고려사를 연구하던 사람과 학사 졸업하고 현업에서 십년 굴러 먹은 엔지니어와 연봉을 payopen.co.kr 가서 비교해 봐라.

이공계 논란, 학문적 위기 등의 얘기는 술자리에서나 할 얘기라 생략하고, 실무 차원에서;

이공계 졸업하고 자바 프로그래밍을 1-2년쯤 취미삼아 이런 저런 프로젝트 몇 번 해본 사람을 기업에서 뽑아줄까? 나라면 안 뽑는다. 외국에서 박사 학위 따고 특정 분야의 전문성을 확보했으며 C 프로그래밍을 5년쯤 한 사람 역시 마찬가지다. 안 뽑는다. 특정 프로그래밍 기술은 2-3개월 노력하면 누구나 할 수 있는 것이다. 나라면 엔지니어 마인드가 있는 사람을 뽑겠다. 엔지니어 마인드를 정확히 꼬집어서 설명하기가 어렵다. 다만 그들에게 엿보이는 몇 가지 특징은 요약할 수 있다;

1. 논리적이다. 논쟁을 두려워하지 않고 똥고집을 부리며 개처럼 싸우지만 결과에 승복한다.
2. 어떻게? 보다는 왜?에 약간 더 관심이 많다.
3. 자나깨나 공부 한다. 그 자신이 기술적 다형성의 표상같다. 달리 말해 여러 부문을 넘나든다.
4. 자기 만족과 기술적 성취에 혈안이 되어 있다.
5. 4항에 힘입어 실험과 모험을 두려워 하지 않는다.
6. 현실의 제 문제를 엔지니어링 측면에서 접근한다.
7. 혼자서도 잘 한다.

그리고, 기술한 항목을 통합해 마지막으로 -- 온갖 잡소리가 다 나오겠지만,

8. 선천적+후천적으로 여지없는 기술자다.

2항의 어떻게?는 프로젝트를 책임지고 팀장질 하는 작자나 윗분들에게 맡겨두면 저절로 해결된다. 윗 사람이 무능력하면? 프로젝트를 위해 그가 짤리게 공작한다. <-- 긴 얘기가 되므로 생략.

사람들을 면접할 기회가 잦아 얘기를 나누다 보면 기술한 내용 중 적어도 2-3항목이 일치하는 사람들이 프로그래밍에서 성취도가 높다는 것을 경험적으로 알게 되었다. 엔지니어가 가지고 있는 경험이나 경력은 저들 항목과 무관해 보인다. 십 년 이상 C 프로그래밍을 했는데도 문제 해결 능력이 형편없고 아이디어가 잘 안 나오는 사람들이 있는 반면, 한달 전에 프로그래밍을 시작한 사람이 BSP 트리를 지극히 독창적으로 응용하는 흔치 않은 경우도 있다. 프로그래머의 성격, 기질, 생활상의 난잡스러움 등등의 문제는 1항을 충족하면 얘기 자체가 부질없다.

아까는 안 뽑는다고 심하게 씹었는데, 사실은 면접을 볼 때 먼저,

1. 관상을 보고 (이해할 수 없는 자부심과 고집불통은 확실히 얼굴에 드러난다)
2. 자질구레한 대화를 나눠본다. (광범위한 분야의 잡담이다)

면접볼 때 이력서 내용을 거의 보지 않는다. 이력서에는 '본의 아니게' 뻥이 즐비하기 때문이다. 1-3년은 어리버리 지나갔고, 4-7년차는 프로젝트를 할 만큼 해 봐서 자신감이 붙는 시기다. 그래서 제일 말이 많은 작자들이 보통 경력 5년차에서 7년차 사이다. 경력 5-7년차면 뭔가 대단한 기술자처럼 보이겠지만 그렇지도 않다. 프로그래머 답게 하루 12-18시간 일하면서 낮밤 모르고 살아왔지만 기술한 다섯 항목을 인터뷰 중에 평가하다 보면 의외로 재미없는 사람들이 많다.

제대로 걸리기만 하면 값싼 1-3년차를 쓰는 것이 여러 면에서 현명하다. 어떤 프로그래밍이든 1년 이상 하면 전문가 된다. 못할 것이 없다. 못한다고? 역으로 말해 저 항목들은 훌륭한 프로그래머들이 되기 위한 조건(어쩌면 천연적인)이기도 하다. 조건+자극+노력이면 안되는 것은 없다.

훌륭한 프로그래머는 2항과 7항 처럼 자신이 레퍼런스와 매뉴얼을 뒤적이고 1항처럼 알고리즘 효율성이니 뭐니 해서 동료들과 박 터지게 싸워대고 3항처럼 프로그래밍과 관계없이 여러 분야에 관해 기술적인 교양을 쌓고 프로젝트에서는 4항과 5항처럼 도전적이다. 6항은 항목중 유일하게 기질과 관련된 것인데, 개인적으로는 가장 좋아하는 것이다. 설명 생략.

내가 보고 싶은 것은 '프로그래머'다. 그런 사람들이 있고, 보았고, 함께 일하면 재미있다.
,