Sunday, March 18, 2007

Windows system programming

Windows 시스템 프로그래밍 제3판 (정보문화사, Johnson M. Hart)

간만에 괜찮은 윈도우 시스템 프로그래밍 책을 찾았다.
가지고 있던 책들이 이미 발간된지 한참지나 최신 경향들을 반영하지 못해서 새로운 책을 찾았었는데 마음에 드는 책을 구할 수가 없었다.
GUI 와 MFC 를 배제한 그러면서도 너무 커널 내부에 초점을 맞추지 않는 즉, Win32 API 와 Shell, Registry, Service, Security 그리고 ADSI 등 실제 프로젝트에 도움이 될만한 내용의 책을 찾고 있었는데 이 목적에 딱 맞는 책이다.

사실 책을 산지는 한달이 넘었는데 바쁘다 보니 이제서야 겨우 다 읽었다.
위의 개별적인 항목 하나하나가 책 몇권 분량이 될 수 있기 때문에 이 책 한권만으로 충분치는 않지만 Starting Guide로서는 썩 괜찮은 책이다.

Saturday, March 03, 2007

Teach Yourself Programming in Ten Years

다음은 피터 노빅이 자신의 블로그에 올린 프로그래밍을 배우는 방법이다.

[Teach Yourself Programming in Ten Years]

- 프로그래밍에 관심을 가져보고 정말 재미가 있다고 생각해야 10년 정도를 기꺼이 쏟아 부을 수 있다.

- 다른 사람의 프로그램을 읽어보고 다른 사람과 이야기해야 하는데 이 과정은 어떤 책이나 교육과정보다 중요하다.

- 가장 좋은 배우기는 실제로 해보면서 배우는 것이고 이 방법을 더 적극적으로 체계화해야 한다는 것이다. 최고의 성취는 오랜 기간 경험을 쌓으면서 생기는 것이 아니라 노련한 사람의 경우에 있어서도 끊임없는 개선으로 이루어지기 때문이다.

- 컴퓨터 학과가 가르쳐주는 것이 전부가 아니며 일을 하면서 배울 수도 있다.

- 프로젝트를 다양하게 해보면서 어떤 프로젝트에서는 최고의 프로그래머가 되어 다른 사람들을 리드하고 비전을 제시해 보기도 하고 어떤 프로젝트에서는 다른 사람으로부터 지도 받을 필요가 있다.

- 다른 사람이 이끄는 프로젝트에 참여하여 다른 사람의 프로그램을 이해한 후 원래의 작성자가 놓친 부분을 고쳐보기도 하고 자기의 프로그램을 관리할 다른 사람들이 쉽게 작업할 수 있는 프로그램을 작성하기도 해야 한다.

- 다양한 프로그래밍 언어를 배워라.

노빅이 제시한 것은 "10년"이라는 긴 시간이었다. 10년이라는 시간을 잡은 데에는 이유가 있다. 보통 한분야에서 정통하거나 대가가 되기까지 일반적으로 10년 정도의 세월이 걸린다는 연구결과를 인용한 것이다. 지름길이나 단축코스는 없다.

(주: 피터노빅은 작년까지 구글의 Search Quality의 책임자였다가 요즘은 연구책임자로 있다.)

출처 : 시간의 경제학 - 10년 동안 프로그래밍 배우기 (안윤호) ZDNet 컬럼

-------------------------------------------------------------------------------

나는 벌써 프로그래밍을 시작한지 10년이 지났다.
피터 노빅은 10년이면 대가가 될 수 있다고 했지만 아직은 아는 것보다는 모르는 게 더 많은 것 같다. 다만 내가 무엇을 알고 무엇을 모르는 지 정도는 알게 된것 같다. 구루 소리를 들으려면 앞으로도 10년은 더 필요하지 않을까...

프로그래밍을 배우는 방법으로 피터 노빅의 의견에 전적으로 동의하며 몇 가지 의견을 첨부하고자 한다.

- 10%의 성능 향상을 위해 100%의 추가적인 노력을 들일 각오를 하라.
- 한가지 문제를 최대한 여러가지 방식으로 풀어보라.
- 다양한 프로그래밍 언어를 배우되 하나에 정통하라.
- 문제를 풀기위해서 키보드부터 두드리기 보다는 종이위에 펜으로 아이디어를 정리해보라.
- 새로 배운 것은 반드시 프로젝트에 적용해 써먹도록 하라.