Who are some of the best programmers in the world?

“세상에서 제일 최고인 프로그래머들이라면 누가 있을까요? “
Quora에 올라온 질문이다.

당연히 답변에는 Computer Science 계를 뒤흔든 숱한 천재들의 이름이 나온다. 알고리즘 책과 크립토그래피 관련 책 좀 읽은 사람이라면 누구나 들어봤을  스탠포드 교수이자 수학자 Donald Knuth(학부 때 이 할아버지 때문에 머리 좀 아팠을 사람이 많았으리라),  MIT 논문 해킹 사건의 수사 압박으로 생을 마감한 천재 해커 Aron Swartz, Unix의 아빠이자 B Langauge에서부터 Go Language까지를 만든 Bell Lab의 Ken Thomson, Linux와 Git을 개발한 Linus Torvalds, C++의 아빠 비야네 (Bjarne Stroustrup), 울펜슈타인과  Doom, Quake의 메인 개발자이자 오큘러스 VR CTO이자 이제는 Facebook 소속인 게임 업계의 전설적 개발자 John Carmack, jQuery의 John Resig, NodeJS의 아빠이면서 어느날엔가 툴툴 털어버리고 홀연히 NewYork으로 사라진 Ryon Dahl, Python의 아버지 Guido van Rossum, Javascript계의 거두 Douglas Crockford, Computer Graphics계의 거두들인 Jim Blinn과  Ed Catmull 등 수도 없이 많은 개발 거장들의 아름다운 이름들이 나온다.

그들 뿐이랴, MS의 Bill Gates나 Java의 아버지 James Gosling, C의 아버지 Dennis Ritchie 도 빠지지 않고 Turing Machine으로 유명한 컴퓨터의 근간을 만든 Alan Turing,  천재 개발자이자 Unix와 vi 개발 핵심인 Bill Joy, Google 검색 기술의 근간을 만든 전설적 개발자 Jeff Dean, 현재 Quora의 CTO이자 Facebook의 핵심 개발자였던 Adam D’Angelo도 빠지지 않고 거론되었다.

그 중 한개의 답변에 올라온 리스트다.

knuth_news
Bjarne
1398391371178-0 (2)

그러고 보면 최고인 프로그래머들이 참 많다. 거론된 대부분의 사람들이 아직 살아있는 사람들임을 볼 때 내가 지금 이 순간에도 어머어마한 거장과 같은 동시대에 숨쉬고 살아있음에 새삼 놀라게 된다.

이와 비슷한 질문은 Stackoverflow에서도 올라왔었다.  Link
최고의 어마어마한 개발자들 누가 있을까? 라는 질문에 SO에서의 10위까지의 랭킹은 대락 아래와 같다.

1. John Carmack (울펜슈타인 3D, 퀘이크)
2. Steve Wozniak (애플 컴퓨터의 근간을 만든 개발자)
3. Richard M. Stallman (Emacs, gcc 및 GNU 프로젝트 창시자)
4. Chris Sawyer (RollerCoaster Tycoon의 개발자 이자 Assembly의 마술사)
5. Linus Torvalds (Linux, Git)
6. Bill Joy (vi, csh, rcp)
7. Ada Lovelace (중세말 영국 여자 수학자이자 최초의 프로그래머)
8. John Resig (jQuery)
9. Guido van Rossum (Pyhton)
10. Larry Wall (Perl)

Quora와 Stackoverflow의 답변들에서 공통적으로 나온 이름들 중에 개인적으로 주목했던 사람은 Jon Skeet이다.
Google London에서 일하고 있는 Jon은 위에 거론된 많은 천재들과는 달리 새로운 언어를 개발하지도, 유명한 Product을 만들지도 않았다. 그런데, StackOverflow에서 좀 놀았다는 사람 치고 이 사람을 모르면 간첩이다. 2003년부터 쭉 매년 MS MVP 였고, C# in Depth 라는 책으로 C# 계에선 유명하다. StackOverflow에서는 사이트 오픈 초기부터 C# 및 개발 관련 답변들로 인해 736,269점으로 현재까지 독보적인 1위 Score를 기록하고 있다. 그가 SO 사이트에서 지난 6년간 답변한 답변 수만 해도 29,897 개이고, 이걸 어림 잡아 계산하면 하루에 83개의 답변 글을 작성하여 올린 것이 된다. StackOverflow가 그리 만만하게 답변을 달 수 있는 사이트가 아니고, 허접한 답변에는 가차없이 마이너스 점수를 주기 때문에 대단한 열정과 수고를 들였음을 인정하지 않을 수 없다. 또한 그가 달아 놓은 답변들을 살펴 보면 거의 레퍼런스 수준의 질높은 답변들이 대부분이다. Cambridge Alumni이고 구글에서 개발자로 근무하는 것을 보면 그가 Smart하다는 것은 증명되었지만, 그가 또한 매우 Passionate한 개발자임도 틀림 없다.

JonSkeet-Headshot

좋은 개발자란 어떤 사람일까? 누구보다 Smart하고 맡은 일에 Passionate하며, 성실한 사람일 것이다.
그러나 그 모든 것 위에 나에게 좋은 개발자란 누구인가? 라는 질문을 했을 때 나는 서슴없이 “본인이 좋은 개발자라고 믿는 사람이 좋은 개발자이다” 라고 말한다.

본인의 Smart함과 실력, 본인의 열정과 성실에 대한 믿음이 시간이 지나면서 그 안에 싹터서 자라있는 사람이 좋은 개발자가 된다. 이것이 나의 좋은 개발자 지론이다. 비록 그 믿음이 작고 여릴 지라도 결국 그 믿음이 있는 사람이 좋은 개발자가 된다. 시간이 지나고 업계 경력이 흐르면서 본인에 대한 신뢰와 믿음이 완전히 깨져버린 사람과, 반면에 끊임없이 정진하고 노력하여 혹은 본인의 실력만으로도 계속 그 안에 자신의 능력에 대한 믿음이 자라고 있는 사람이 있다면 결국 좋은 개발자는 후자라는 것이다. 이건 어느 자리에 있건 어느 회사에 있건 크게 상관은 없지만 대게는 환경적인 영향과 주변의 사람들의 영향, 그리고 본인의 bakcground와 커리어 history 등의 외부적인 영향이 큰 것이 사실이다.

Stanford 대의 심리학 교수인 Carol Dweck의 Ted 강연에서 이 생각과 비슷한 강연을 한다. 자라나는 아이들을 대상으로 한 구체적 장기 심리학 실험을 통해서 실패자로 낙인 찍는 것 대신, 아직 성장하지 않았음을 보고 ‘not yet’의 마음으로 기다려주는 믿음이 얼마나 더 좋은 아이들을 만들어 내는지를 증명한다.(Link) 결국 아이들이 실력있는 사람으로 좋은 사람으로 자라는 것은 그 안에 그 믿음을 심는 일이라는 것이다. (이 분 강연 정말 빨려 들어간다. ㅎ)

그러나, 세상은 그리 호락호락하지 않아서 맡은 프로젝트를 몇번 실패하면 실패한 개발자로 낙인 찍히는 경우가 많다. 그리고 업계 경력이 상당히 많이 되었음에도 이름있는 타이틀을 내지 못하는 개발자는 그저 그런 개발자로 평가 받는다. 아무리 SKP 출신 개발자들이라 할지라도 신입 때에 떵떵 거리며 업계에 안정적인 회사로 시작하여 발을 내딛지만 그들 또한 스스로의 실력을 오랜 기간 증명하지 못하면 냉정하게 실패자로 낙오되는 경우가 많다. 또한 지방대학교나 낮은 학력의 졸업자들은 본인 스스로의 한계적 사고틀에 갖혀서 더 높이 날 수 있음에도 더 높이 날아가려고 하지 않는 아쉬운 경우를 많이 보았다.

그러므로 어떤 면에서 좋은 개발자는 자신의 실패에 대해서 세상과는 달리 자기 스스로에게는 너그러워야 한다. 그리고 결국은 정말 최고의 개발자가 될 수 있다는 믿음을 끊임없이 붙잡고 놓지 말아야 한다. 마치 파도에 의해서 배가 이리 갔다 저리 갔다 하지만 배위에 달아 놓은 작은 돛 하나가 결국은 항구로 배를 인도하는 것과 같다. 그리고 Never, Ever, No, Nay Never 세상이 재단하는 한계와 실패자라는 거짓 틀에 같혀서는 안된다.

눈은 높은 곳에, 가슴은 작은 믿음에, 그리고 발은 앞으로 한걸음 한걸음 내 딛을 때 우리는 우리가 바라던 이들이 살고 있는 좋은 개발자의 항구에 다다를 수 있다.

GetBoatImage.ashx_-640x420