2005년 5월 13일 금요일

범용성(General purpose)

프로그래머라는 직업이 왜 professional하지 못하게 인식되는 지,
모든 것을 잘해야 하고, 언제든지 다른 사람으로 교체될 수 있다고
생각되는 것인지.


프로그래머가 쓰는 도구 때문인 것 같다.
프로그래머는 흔히 '컴퓨터를 다루는 사람'으로 인식되기 때문에
세상 대부분의 컴퓨터가 General purpose라서
그것을 다루는 사람도 general하다고 생각하는 것 같다.


각자 책임과 전문분야를 구별하지 못하고
모두 한 부류로 모아서 같은 사람으로 만들어버리고 있다.


시계 제작자, 하수도 전문가, 자동차 안전 전문가, 자동차 수리기사,
자동차 설계 전문가, 타이어 전문가, 크레인 제작자, 건축 설계사, 건축 시공자
이런 많은 직업을 몽땅 모아서 "기계 전문가"라고 부르는 것과 똑같다.


프로그래머라고 해도 각자의 전문분야는 사실 다양하다.
경력 20~30년 이상의 사람이라고 해도 모든 분야를 다 알 수는 없다.


프로그래머를 세부적으로 나눠보면
Hardware, AI, Network, Language, SE, architecture 등 학문적으로 구분할 수도 있고
EECS, Computer Science, Computer Engineering, Applied Math 등 전공으로 구분할 수도 있고
Instructor, Researcher, Coder, Tester, Designer, Architect 등 목적으로 구분할 수도 있다.
Embedded, Unix, Windows, Realtime 등 시스템에 따라 구분도 가능하다.
C, C++, Java, Fortran, COBOL, SQL 등 사용 언어에 따라 구분할 수도 있다.
모니터링 요원, A/S 담당자, 운영자, 개발자, 기획자, Manager, Director 등 운영 측면에서 구분할 수도 있다.


한 사람이 복수개의 분야에 능력과 경험을 가졌을 수도 있고
다른 aspect를 통해 그 사람을 정의할 수도 있겠지만
모든 것을 다 할 수 있는 사람은 아무도 없다.
특히나 CS, CE 학부에서 많은 분야를 다루는 것은 소개를 위해서이지
모든 것에 전문이라는 뜻이 아니다.
마치 경영학과에서 미적분, 미시경제, 심리학, 문학 이런 걸 다 배우지만
세부적으로는 하나의 분야의 전문가가 되는 것처럼 말이다.
(미시 경제 전문, 전산 경제 분석 전문)

댓글 없음:

댓글 쓰기