2009년 04월 29일
An Interview with Bjarne Stroustrup
http://www.ddj.com/에 있는 아티클 중 Bjarne Stroustrup 과의 인터뷰(2008.03)를 번역해봤습니다. Educating the Next Generation 파트 입니다. 잘 이해가 안가거나 중요하지 않다고 생각되는 부분은 임의로 제외했습니다.
- 원문 : http://www.ddj.com/cpp/207000124
- History 파트 번역 : http://tinyurl.com/deuhb6
- Bjarne의 다른 인터뷰 : http://msdn.microsoft.com/ko-kr/magazine/cc500572.aspx
Q : 대학에서 디버거, 에디터 등의 개발툴에 대한 것 까지 가르쳐야 한다고 생각하시나요
A : 그렇습니다. 그런 기본툴을 사용해보지도 않고 졸업하는 것은 불가능하다고 봅니다. 하지만 어떤 유명한 대학에서는 그런 것들을가르치지 않기도 하죠. 알고리즘, 데이터 구조, machine architecture가 기본이 되어야 한다고 봅니다.
Q : 자리에 앉아 코딩을 하기전에 무엇을 해야 할까요
A : 일단 생각을 해야죠. 동료 혹은 잠재적인 유저들과 토의를 해야 합니다. 가능하면 이미 사용되고 있는 비슷한 시스템의 유저가되어 보세요. 그리고 기본적인 디자인으로 시스템을 간단하게 만들어보는 겁니다. 그 "간단한 시스템"은 그냥 버릴수도 있고,완성된 시스템의 핵심이 될수도 있겠죠. 저는 간단한 것 혹은 완성되지 않은 것에서 점점 발전시켜나가는 것을 좋아합니다. 하지만(미완성 단계에서도)작동해야 하고 테스트 되어야 합니다. 어떻게 하면 기초가 되는 설계 아이디어를 얻을 수 있을까요. 비슷한시스템, 툴, 라이브러리에 대한 지식과 경험이 좋은 답변이 될 것 입니다.
Q : 어떤 종류의 프로그램을 작성하는 것을 즐기시나요 / 최근에 작성하는 프로그램은 무엇인가요
A : 요즘 코딩할시간이 별로 없기는 하지만 라이브러리를 만드는 것이 재미있죠. C++0x에 있는 정규식 라이브러리를 사용하는 것을즐깁니다. 요즘은 N차원 배열에 대해 일반 수학연산을 수행하는 작은 라이브러리를 만들었습니다. 또한 (프로그래밍)언어를테스트하는 관점에서 작은 프로그램도 작성하는데 그다지 재미는 없네요.
Q : C++ 초심자들이나 가르치는 사람들을 위한 조언 부탁합니다
A : 약간의 시도와 에러는 피할 수 없고, 오히려 초심자들에게 좋을수도 있습니다. C++을 잘 사용하려면 테크닉을 섞어서 사용해야하고, C++를 쉽게 배우려면 언어의 패러다임을 이해해야 합니다. 어플리케이션의 컨셉을 클래스로 보는 것을 시도해보세요. 클래스hierarchy나 템플릿 같은 것은 꼭 필요해 지기 전까지는 너무 걱정하지 않는것이 좋습니다. 많은 프로그래머들이 다중상속때문에 혼란스러워 하지만, 나는 다중상속이 그렇게 자주 필요하다고 보지 않습니다. 생성자와 소멸자, 복사 연산자 같은 것이더 중요합니다. 더 유용하면서도 어렵지 않죠.
Q : Accelerated C++: Practical Programming by Example 과 같은 책에서는 STL의 vector나 string 같은 것을 초반에 가르치는데, 이런것이 바람직하다고 보시나요
A : 저는 Texas A&M 대학에서 1학년에게 프로그래밍을 가르치는데, string / vector / sort 같은STL feature를 첫주부터 사용합니다. STL을 강조하는 것은 아니고, 그냥 그 기능을 사용하는 겁니다.
Q : 요즘 학생들에게 부족한 기초 스킬에는 무엇이 있을까요. 이런 것을 보완하기 위해 당신의 프로그래밍 강의에는 어떤 항목을 넣으실 건가요?
A : 구조와 correctness를 강조할 겁니다. 그리고 강의의 목적을 "다른 사람이 쓰기에도 충분한 코드를 생산하는 프로그래머가 되기" 라고 정의할겁니다.저는 학생들이 string, vector, 클래스 설계에 대해 충분히 이해한 후에 pointers, arrays, casts 를가르칩니다. mechanism 만큼이나 machine에 대한 이해도 중요합니다. 실제 현장에서는 이런 이야기를 항상 듣습니다."machine과 system에 대해 잘 이해하는 개발자는 항상 부족합니다."
Q : "문제를 해결하기전에 문제에 대해 명확하게 이해하는 것이 중요하다"라는 견해에 대해서는 어떻게 생각하십니까
A : 저는 "생각하는 법"에 대해 가르치는 것을 지양합니다. 여러 예제로 부터 배우는 것이 가장 좋다고 봅니다. 그래서 초기의 미완성 버젼에서 차근차근 개발해 나가는 예제를 많이 제시합니다.
# by | 2009/04/29 20:46 | 기타 | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]