본문 바로가기

바게의 개인공간/일기장

2008.11.10 컴퓨터 개발자의 등급

지금까지 개발해오면서, 생각해본 IT 계열 개발자들의 등급이다.
지극히 개인적인 의견이기 때문에 태클은 사양한다.


선구자
시대의 흐름을 파악하고 있다.
자신의 분야와 관련 분야에 대한 동향, 최신 기술과 그것의 장단점, 사회적 이슈와의 상호 관계등을 모두 고려할 수 있다.
대부분 큰 IT회사를 운영하는 CEO 또는 CTO 이다. 

연구자(이론가)
특정 분야의 알고리즘을 개발한다.
수학, 통계, 물리등의 기초학문 분야세 석박사 수준 이상의 지식을 갖고 있다.
프로그래밍은 간단한 테스트용으로만 사용하며, 대부분의 시간을 관련 논문 학습과 새로운 이론 개발에 투자한다.

설계자(아키텍쳐)
소프트웨어공학은 기본이고 여러가지 프로그래밍언어와 시스템환경, DB, 웹 등의 다양한 분야의 지식을 갖고 있다.
많은 프로젝트 경험을 통하여, 각 프로젝트마다 필요한 언어, 환경등을 결정할 수 있으며, 비용적인 측면도 고려할 수 있다.
모든 프로그램을 성능, 재사용적인 측면에서 고려하며, 위험요소를 개발 전에 미리 판단할 수 있다.

프로젝트 매니저
프로그래머들의 능력을 파악할 수 있으며, 효율적으로 개발자를 배치할 수 있다.
프로젝트의 진행을 관리할 수 있으며, 자신의 분야에 있어서 체계적으로 소스 및 관련 자료를 관리한다.
임원진과 개발자사이의 의사소통을 대행하며, 때로는 비기술자들을 설득하는 능력이 있다.
프로그램과 관련된 문서 뿐만 아니라 프리젠테이션용 문서도 제작할 수 있다.

프로그래머
어떤 함수가 필요한지 관련 모듈은 어떻게 구하고 어떻게 사용할 지 판단할 수 있다.
프로그램의 성능을 높이기 위한 방법을 알며, 컴퓨터학과의 기초과정에 해당하는 운영체제, 알고리즘, 자료구조등을 이해한다.
자신이나 팀을 위해서 재사용할 수 있는 방법을 안다.
프로그램과 관련된 UML등의 문서를 통해 다른 프로그래머나 코더에게 프로그램의 구조를 설명할 수 있다.

코더
프로그래밍언어의 문법을 알며, 함수 단위거나 비교적 작은 프로그램의 코딩이 가능하다.
효율이나 재사용을 염두하지 않으며, 프로그래머가 정의해 준 방법에 따라서 함수 또는 간단한 프로그램을 코딩할 수 있다.


이미 이해했겠지만 가장 높은 등급부터 낮은 등급 순서로 적어봤다.
대부분의 코더들이 스스로 프로그래머라고 생각하는데, 그것은 프로그래밍 문법만 알면 개발은 가능하기 때문에 자신이 제대로 개발하고 있다고 착각하기 때문이다.
프로그래머의 등급은 사실 경력에 관계없다. 외국과 같은 경우 프로그래머로서 노년까지 종사하는 경우가 많기 때문이다.
프로젝트 매니저는 개발자라기 보다는 관리자라고 보는 것이 맞다. 왜냐하면 기술적인 능력보다는 대인관계 능력이 중요하기 때문이다.
설계자와 연구자는 순위를 정하기가 애매하다. 하지만 개인적으로 희소성의 원칙에 따라 연구자가 더 위대하다고 생각한다. 왜냐하면 설계자는 대신할 수 있지만 연구자는 대신할 수 없기 때문이다. 예를 들어 특정 압축기술을 개발할 때, 개발도중 설계자는 다른 사람으로 대체가 가능하지만, 연구자는 대체할 수도 없거니와 구하기도 힘들다.
선구자는 스티브잡스, 빌게이츠, 손정희와 같은 사람들이다. 일반인이 생각하는 단계를 넘어 10년 이상의 미래를 예상하고 있으며, 자신의 회사 또는 세계가 그것을 위해서 무엇을 해야할 지 안다.

정리해 보면서 과연 나는 어느 단계에 와 있을까하는 생각을 해봤다.
아마도 프로그래머 단계쯤에 있는 것 같다. 프로젝트 매니저는 몇 번 해보긴 했지만 아직 부족하다고 생각한다.
1-2년 전까지는 대학교 교수님처럼 유능한 아키텍쳐가 되고 싶었다. 소프트웨어공학에서 멋들어져 보이는 기술들에 혹했다.
지금은 생각이 많이 바뀌어서 연구자가 되고 싶다. 남들이 못하는 것을 하고 싶다. 내 이론에 대해서는 우리나라에서 3 손가락 안의 사람이 되고 싶다.