제 소견으로는 컴퓨터를 전공한다면 아마도 다음 세가지는 기본적으로 갖춰야 하지 않을까 합니다.
- 모국어로서의 프로그래밍 언어 최소 하나
- 계산 이론
- 소프트웨어 공학적인 교양
두번째는 "필로소피"이고, "사이언스"에 해당합니다. 도대체 컴퓨터로 무엇이 가능하고 무엇이 불가능한 것인가를 묻는 것이지요. 컴퓨터 공부중에서 가장 이론적이고 학문적인 성격이 강한 것입니다. 이게 없고서는 컴퓨터공"학"(보다 적절히는 전산"학")을 했다는 말하기가 좀 그렇죠.(그렇다고 그 효용이 큰 건 아닙니다. 컴퓨터 전공자들의 끊을 수 없는 딜레마기도 하죠.)
두번째가 "무엇을"이었다면, 세번째는 "어떻게"에 해당합니다. 같은 일을 해도 어떻게 하면 효과적/효율적으로 할 수 있느냐를 공부하는 것이죠. 어차피 실용기술적인 측면에서 컴퓨터를 본다면 이 소프트웨어 공학을 지나칠 수 없을 겁니다. 그런데, 이 SE라는 것은 단순히 어떤 "거대 프로세스 모델"만을 일컫는 것은 아닙니다. 궁극적으로는, 계획을 잘 짜는 법, 사람을 잘 관리하는 법, 정보를 잘 정리하는 법 등이 모두 포함됩니다.
근데 정말 중요한 건 이런 것들을 단순히 "아는 수준"에서 끝나지 않는 것이겠죠. --김창준