개발자의 진화 :: 2009/06/16 17:42
|
|
개발자는 어떻게 성장하는 걸까요? 대략 주변에서 보고 들은 걸 종합해 보자면...
1. 프로그래밍 언어의 시기
프로그래밍 언어를 죽자고 배우는 시기. 아직 매뉴얼이나 참고서 없이는 한 줄의 코드 짜기가 버겁다.
2. 초보 개발자의 시기
프로그래밍 언어 한 두개를 능숙하게 쓸 줄 아는 시기. 매뉴얼이나 참고서도 구글로 대신하는 수준. 하지만 본인이 제대로 된 코드를 작성하고 있는지는 장담을 못한다
3. 중급 개발자의 시기
진정한 개발이 무엇인지를 고민하는 시기. 왜 프로젝트 막바지에 더 바쁜지를 고민한다거나, 어떻게 하면 버그의 수를 획기적으로 줄일 수 있을지를 고민한다거나, 가장 최적의 클래스 설계는 어떤 모습일지를 고민한다거나 하는 개발자가 이에 해당. 그에 따라 읽는 책도 많아진다. 어떤 한 가지 믿음에 경도되기 쉬운 시기이기도 하다. 이 시기의 개발자가 가장 꼬장꼬장하다. 하지만 아직도 performance profiling에는 게으르다.
4. 고급 개발자의 시기
남을 가르치거나 홀릴 줄 알게 된 시기. 문제가 주어지면 기존 해법을 Survey하고 좀 더 나은 해결책이 무엇일지를 고민할 줄 알게 된 시기. 필드에서 자주 발견하는 문제에 대해서는 꿰고 있는 해결책도 두어가지 되는 수준. 버그가 나타나면 디버거 대신 머리를 굴려 발견하는 경지이나, 정작 코딩을 하는 시간은 점점 줄어든다. 어떻게 하면 좀 더 적은 코드로 좀 더 많은 일을 할 수 있을지를 항상 고민한다. 테스트와 코딩, 그리고 결과물의 배치 문제 뿐 만 아니라 최적화의 문제에도 항상 관심을 갖는다. 프로그래밍 언어는 이제 더 이상 주된 관심사가 아니다. 가끔은 그토록 찾아 해메던 문제의 답을 먼지를 뒤집어쓴 대학 교재 안에서 발견하고는 절망하기도 한다. 그 책의 이름은...
5. 초고급 개발자의 시기 (추가)
이 쯤 되면 이 개발자는 (1) 자기 회사를 차렸거나 (2) 끝내주는 회사에 다니고 있거나 (3) 책을 썼거나 (4) 좋은 논문을 썼거나 (5) 멋진 공개 소프트웨어를 작성했거나... 어쨌든 '세상에 뭔가 보탬이 되는 일'을 하고 있다. 고급 개발자와 초고급 개발자를 나누는 가장 결정적인 기준은, 좀 어이 없긴 하지만, 바로 그것이다. '세상에 뭔가 보탬이 되는 일을 하고 있느냐' 하는 것. 고급 개발자들은 먹고 살기 위해 코딩을 하지만, 초고급 개발자들은 세상을 보다 낫게 바꾸기 위해 코딩을 한다. 그렇기 때문에 그들이 하는 코딩은 본질적으로 자발적이며, 그들 내면의 충동으로부터 발원하는 것이다. 이런 사람들이 모이는 회사라면 분명 끝내주는 회사일 것이고, 이런 사람이 차린 회사라면 설사 성공하진 못하더라도 끝내주는 회사일 것이다. 이런 사람들이 만드는 SW나 논문도, 분명 끝내 줄 것이다.
보통 우리는 이런 사람들의 의식 깊은 곳에 자리한, 그들의 개발을 추동하는 내적 원리를
'프로그래밍의 도'라고 부른다.
프로그래밍의 도를 깨칠수 없다고 할지라도 절망하지는 말자.
세상의 모든 도는 그 본류가 하나로 이어져 있다.
세상에 좋은 일을 할 수 있는 기회는 의외로 다양하다는 뜻.
프로그래밍이 버겁게 느껴지고 때로 망망대해같은 코드의 심연에서 외로움을 느낀다면,
지금 당장 자선단체의 번호를 눌러 단돈 만원이라도 기부를 하도록 하자.
그 작은 행위가 여러분의 프로그래밍에 기쁨을 되찾아 줄 것이다.
좋은 프로그래머가 되면, 초고급 개발자가 될 확률도 덩달아 높아진다.
- - -
몇 줄 요약:
개발자의 경력이 늘어가면 갈수록, 개발자는 코딩 그 자체에서는 자유로와진다.
정작 중요한 것은 코딩이 아니라 Domain Knowledge라는 사실을 깨닫는다.
그러면서 '자신을 키운 것은 99%가 삽질'이었다는 사실을 서서히 잊는다.
왜냐하면, 이미 그는 삽질과 하나가 되었기 때문이다.
여러분은 지금 어디에?
-
개발자의 진화
Tracked from siva6 - virtue of Laziness | 2009/06/16 18:14 | DEL재미있네요.'왜냐하면, 이미 그는 삽질과 하나가 되었기 때문이다.' 라는 말이 멋있네요...^^그런데, 4번째 단계를 넘는 단계가 있을 것 같다는 생각이어렴픗 드네요.