2004년 4월 29일 목요일

Computer Engineer분야에서 하고 싶은 일들 - 추상적

내가 잘 할 수 있을 것 같은 일들 또는 하고 싶은 일.
1. 나의 경험들을 잘 모아서 정리하는 일
2. 다른 사람들이 겪고 있는 문제들을 알아보고
   서로 토론해보는 일.


내가 잘 하기 어려워 보이는 일들
1. 사람들을 manage하는 일
   - 다른 사람들을 가르치는 일은 잘 할 수 있을 것 같으나
     그들을 관리하기는 어려워 보임.


목표
기반이 되는 platform이나 framework을 설계하는 전문가(expert, super).


구체적인 예)
1. MFC나 ACE 같은 framework(?)
2. GOF의 Design pattern
   - 완전한 Product보다는 경험적인 것들의 모음
   - 하지만 완전한 Product를 만들어본 경험이 많이 있어야 함.
3. Extreme Programming 같은 개발 방법론
4. POSIX 같은 표준 제정
5. Knuth의 The Art of Computer Programming 같은 저술
6. Stevens의 TCP/IP, APUE 같은 저술
7. Generic Programming library 개발


당장 사용가능한 것 : 1, 7, 6 > 2, 3
학문적인 것들 : 4, 5
추상적인 것들 : 2, 3, 4
관리 역량이 많이 필요한 것들 : 1, 3
많은 사람이 필요한 일 : 1, 4
오랜시간(10년 이상) 걸리는 일 : 6 < 1 < 4 < 5


이 6가지 중 어떤 방향일지는 아직 구체적이지 않음.
더 많은 경험이 필요할 것 같음.


분야
구체적으로 어떤 분야가 될지는 모르겠음.
Network, Information Retrieval, 또 다른 새로운 분야...
어느 분야에 그런 것이 부족하고 어떤 것들이 필요한지
찾아나가야 할 것임.


필요한 것
1. 특정 분야에 대한 많은 경험
2. 때로는 많은 경험(코딩, 설계, Test 등..)을 해야 하고
   때로는 현업에서 벗어서 좀 더 크게 봐야할 필요도 있음.


구체적으로 해나가기 위한 초기 단계들
1. 뉴스그룹 같은 곳에서 많은 토론을 한다.
2. Cookbook, tutorial, handbook, manual 같은 문서들을 만들어본다.
3. Open source의 library, framework들 중 간단한 것들부터 참여해 본다.
4. 다른 사람들의 프로그램을 나의 초보적 수준의 framework을 적용하여
   refactoring도 해본다.
5. 대가(maestro)들의 어려운 책들을 쉽게 해석한 책들을 쓴다.
   - 번역이 될 수도 있고 해설서일 수도 있음


대가(expert)가 되어 내가 얻는 것들
1. 한 분야의 명성
2. 책을 많이 팔아서 인세를 받음
3. 특정 프로젝트에 급하게 쫓기지 않게 됨
   - 조언자 역할 (대가가 되기 전까지는 많은 프로젝트에 경험이 필요)

댓글 없음:

댓글 쓰기