���문 : http://www.norvig.com/21-days.html (Peter Norvig 는 AI ����������� ������ ���명��� ���람. LISP ���로그래머로�� ���명)
���본��� - http://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html
밑���꺼는 �����기 �����.
문맥��� 따른 ������ ������.
밑���꺼는 �����기 �����.

Contents
[-]1. Teach Yourself Programming in Ten Years ¶
Peter Norvig (E-mail: peter@norvig.com)
������ 공개: 2001�� 07��� 02���, ������ ��������: 2002�� 03��� 29���
������ 공개: 2001�� 07��� 02���, ������ ��������: 2002�� 03��� 29���
1.1. ��������� 모두 그렇게 ���두르는 ������? ¶
���느 ���방��� 발길��� ���겨��,「7��������로 배���는 Java(Teach Yourself Java in 7 Days)」라고 ���는 방법������ 보기 ���������고, 그 곁���는 Visual Basic 나 Windows 나 �������������� 대������, 똑같��� 몇������나 ����������� 배��� ��� ������면(���) ���는 ������, 무������ 바리������������로 나란������고 ���다.Amazon.com 그리고 ��������� ���������로검������ 보���는데,
{{|
{{|
pubdate: after 1992 and title: days and
|}}(title: learn or title: teach yourself)
(������������ 「날」���라고, 「배���다」���가 「독���」���라고 ���는 단���를 ���������,1992�� ��������� ������된 ���)
248������ ������가 ������다.그 ��� ���로부��� 78권��� ��������� 관련��� ������������다(79�����는「30������ 배���는 벵골���」).「날」���「�����」��� ���겨놓��� 보���는데, 매��� ��� 닮��� 결과를 ������ ��� ������다.253권��� ������ ���, ���로부��� 77권��� ��������� 관련��� ���������로, 78�����는「24�������� 배���는 문법과 문���」���다.������ 200권 가���데,96%가 ��������� 관련 ������������다.
결론���로���는, ���구나가 ������������ 대��� 배���는데 ��������가, �����면 ���������라는 것���, 다른 ���떤 것보다, 배���는 것��� ������ 된 ���문������ 믿��� ��� ������ ����� ���다고 ���는 것��� 된다.���냐���면 몇������나 ����������� 배���는 베���벤���든���, 료��� 물리든���, 개��� ���교라고 ���는 ������ ���무������.
「3������ 배���는 Pascal」라고 ���는 ������������ ���미���는 곳(���)��� �������� 보면:
배���다:3�����������는, ���미가 ���는 ���로그램��� �����든��� ������나 그 과������������ ���공���나 ������로부��� 배���는 ����� �� ������ ���다.경������ ������ ���로그래머��� ���께 ��������� ���������, 그러��� ���경������������ ��������� ���떤 것���가를 ���������는 ����� 되��� ���다.빠른 ������기, 대단��� ������ 배��� �������� ���다고 ���는 것���다.따라��� 그러��� ���������, ���관만 ���������는 것��� 대������ 말��� 뿐���로, 깊��� ���������는 ���결되��� ���는다.���렉���더���가 말��� 것���럼, ������른 병법��� ��������� ������다.
Pascal:3��������로, Pascal ��� 문법��� 배���는 것��� 가능�������� 모르는(��������� ������를 ���미 ���고 ������면)가, 그 문법��� ������법까���는 ��������는 배��� ��� ���다.���, ���를 들면 당������ Basic ���로그래머���다고 ������, Basic ���������로 Pascal ��� 문법��� ��������� ���로그램��� ���는 법��� 배��� ��� ����������� 모르���만, Pascal 가 ��������� 곳, 무������ ������고 ������까(��������� ������가)를 배��� ��� ���다.그런데 ���기������ ���������는 무������까? Alan Perlis(������1) ��� ������기, 「���로그래밍��� 대��� ���각��� ��������� ������ ���는 것 같��� ������는, ���는 가���는 ���다」라고 말���다.���기��� ���각되는 ���������는, 당������ Pascal(그것보다 ���느 ������까���고 말���면 Visual Basic 나 JavaScript ����� (��)������ ���������는 많��� 것���다)를 그��� ����� 배������ ������면 ��� 된다고 ���면(���), 그것��� ��������� ���무를 ���������기 ���������(때문���), 기������ ������ ��������� ������가 ���기 때문��� 것���다.그러나, 그러면 ���로그래밍��� 배���는 것���로는 되��� ���는다.그 ���무��� 방������ 배���고 ������ 뿐���다.
3�����:���감���럽���만, ���것���로는 ����������� ���다.다��� 방������로 ���������다.
Pascal:3��������로, Pascal ��� 문법��� 배���는 것��� 가능�������� 모르는(��������� ������를 ���미 ���고 ������면)가, 그 문법��� ������법까���는 ��������는 배��� ��� ���다.���, ���를 들면 당������ Basic ���로그래머���다고 ������, Basic ���������로 Pascal ��� 문법��� ��������� ���로그램��� ���는 법��� 배��� ��� ����������� 모르���만, Pascal 가 ��������� 곳, 무������ ������고 ������까(��������� ������가)를 배��� ��� ���다.그런데 ���기������ ���������는 무������까? Alan Perlis(������1) ��� ������기, 「���로그래밍��� 대��� ���각��� ��������� ������ ���는 것 같��� ������는, ���는 가���는 ���다」라고 말���다.���기��� ���각되는 ���������는, 당������ Pascal(그것보다 ���느 ������까���고 말���면 Visual Basic 나 JavaScript ����� (��)������ ���������는 많��� 것���다)를 그��� ����� 배������ ������면 ��� 된다고 ���면(���), 그것��� ��������� ���무를 ���������기 ���������(때문���), 기������ ������ ��������� ������가 ���기 때문��� 것���다.그러나, 그러면 ���로그래밍��� 배���는 것���로는 되��� ���는다.그 ���무��� 방������ 배���고 ������ 뿐���다.
3�����:���감���럽���만, ���것���로는 ����������� ���다.다��� 방������로 ���������다.
1.2. ���로그래밍��� 독������려면 10�� ���린다 ¶
���구��� (Hayes, Bloom)��� ������면, ������, ���곡, ���묘, ������노 ������, ������, ��������, 그리고 ���경 ���리������나 ������ 기��������� ���구를 ���������, 광범������ �������� 머������������ 대��������, ���문 기������ 몸��� ������려면 대략 10�� ���린다고 ���다.�����길 �� ������������ ���는 것 같다.4���로 ��� ��������� ���동������던 모���르���������, ����������� ���곡��� 만들��� 내기까��� 13�� ��������� �������� ������로 ���던 것���다.���뮤���·������(������2)는, 「���떤 �������� ��������, ��������� ������는 노력 ������ ������난 것���는 달��� ��� ���다.그것보다 ��� 대������로 ������ ������ ��� ���는 것���다」라고, ���기���는 10�� ������ ���린다고 ���각���다.
���기��� ���로그래밍���로 ���공���기 ������, 나나����� ��������를 ���개���면(���):
���로그래밍��� ���미를 가���, 그것��� ������������ ���������(때문���) ��� 것.그것��� �������� ��������� ����� 것���면 , 10�����라�� 기꺼��� �������������까.
다른 ���로그래머��� ������기를 ���, ��������� ���로그램��� ���는 것.���것��� ���떠��� ���������나 ��������닝·������보다 ��������� ������다.
���로그램��� ���는 것.���������는 ���고��� 방법���,��������� ������ ���������다.보다 기���������로 ���������다면, 「������ ��������� ������ 개������ ���대������ ������먼���를 발������는 것���, ���기��� ������는 경������ ������면 ���동������로 ������된다고 ���는 것��� �����고, 매��� 경������ ������ ���람��������, ������������고 ���는 ��������� 노력��� ���기 때문���, ������먼���는 늘���날 ��� ���다」(p. 366) 것���며, 「가��� ���과������ ��������� ��������� 것���, 그 ��������� 개������게 ������ ���당��� ���렵고, ��������� ���드����� ������, 게다가 반복������나 ���못��� ������������나 ��� 기���가 ���는, 명������ ���������다」(p. 20-21)���다(������3).Cambridge University Press 로부��� 나��� ���는 J. Lave ���「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(������4)라고 ���는 ������, ��� 관������ 대��� ���미로��� ���고 문������다.
만��� 그러��� ���고 것���라면, 4���� 대���������(������ 대��������� 가, 더���) 배���는 것.그러면 ������ ���명���를 ������로 ���는 ������리��� ���근���고, 그 �������� ��������보다 깊��� ������를 ���게 된다.������만, ���교를 ���길 ��� ���다고 ���다면, (������가 ������면) ������ ���는 과��������� 같��� ��������� ������ ��� ���다.���느 경������든, ������ ������ ������만���로는 ����������� ���다.「���������·��������������� 교������로 ���군가를 ���로��� ���로그래머로 ���려고 ���는 것���, 브러���나 그림��구��� 대��� 배���게 ��� ���로��� ���가로 ���는 것 같��� ����� ���렵다」라고 The New Hacker's Dictionary(������5) ��� ��������� Eric Raymond 는 말���다.내가 �����까��� 고������ ��������� ���고��� ���로그래머��� ��� 명(������6)���, 고�����교까��� 밖��� 나������ ������다.그렇���만, 그는 많������륭������������������를 만들���, �������� ���������뉴���·그룹까��� 가���고 ������, ������������ 덕�����, ���림������ 내가 ������ ���려 벌 ��� ���는 것보다 ��� 더 부���다.
���로������로, 다른 ���로그래머��� ���께 ������는 것.몇개��� ���로������로, ��������� ���로그래머가 되는���, 그렇��� ������면 맨뒤��� ���로그래머가 되는 것.당������ ���������라면, ���로������를 ���������, 다른 ���람들���게 당������ �������� 닦��� ���는 능력��� ���������게 된다.당������ 맨뒤라면, 달������ ��� 것��� 배���, 그들��� ���떤 말���는 것��� ���고 ������ ������ 것������ ���게 된다(그러��� ������ 당������게 ������려고 ���기 때문���).
다른 ���로그래머가 ������ 끝낸���������로��������� ������는 것.���람��� ��� ���로그램��� ��������� ���������는 것.���래��� ���드를 ��� ���로그래머가 근������ ���는 경���, 그 ���로그램��� ������������나 고������나 ���려면 무������ ���������가 ���각���는 것.당������ ���로그램���, 다������ 다른 ���람��� 메������������ ���기 ���게 ���려면 ���떻게 디���������면 ������가 ���각���는 것.
�������� 반다������ ���로그램 ������를 배���는 것.그 ������ ���나는 ���래��� ��������� ������������는 것(���를 들면 Java 나 C++), ���나는 ������ ��������� ������������는 것(���를 들면 Lisp 나 ML), ���나는 구문 ��������� ������������는 것(���를 들면 Lisp), ���나는 ��������� 기������ ������������는 것(���를 들면 Prolog 나 C++ ������릿), ���나는 coroutine 를 ������������는 것(Icon 나 Scheme), 그리고 ���나는 병렬���리를 ������������는 것(���를 들면 Sisal)��� 것.
「���������·������������」������, 「���������」가 ���는 것��� ���������는 ���된다.���������가 ���나��� 명령��� ������������나 메모리로부��� 1 ���드 ������내���나(��������� 들���가 ���는 경������ 그렇��� ������ 경������), 디������로부��� ��������� 데������를 ������내���나 디������������ ���로��� ��������� ������나 ���는데 ���느 ����� �������� ���릴까 ������ 두는 것.(대답��� ������)
������ ������������ �������� ���가���는 것.ANSI C++ ���������라면 그것��� ���길 것���고, 가������������ ���딩·������������ 대���, ���덴������ 공����� 2 문���로 ���까 4 문���로 ���는가 ��� ��벨��������, 결������게 될 ��� ���다.��������� �����, 다른 ���람��� ���로그램 ��������� ���떤 곳��� ���������는가, �����나 깊고 ���������는가, 그리고 �����, ��� 그렇게 ���������는가는 ����� �����, 배���게 된다.
가능��� ��� 빨리, ������ ���������로부��� 멀������는 ������� 가���는 것.
������ 모든 것��� 고려���면(���), ������로 배���는 것 만���로는, ���디까��� ���득��� ��� ������까 ���������러��� 것���로 ���다.��������� ������가 ������나기 ������, 나는 방법������ ���부 ������ ��������, ��������� ���무것�� ������ ������ ������������게 ���각된 것���다.30개��� ���, 두�������� ������가 ������나게 되������ 때, 나는 ������로 복������는���라는? 그렇��� ������다.그렇��� ���고, 나는 ��������� 개��������� 경������ 믿��� ���문가��� ������ ��������� 몇��� ���������보다, ��� ���모������ ���, ��������� 가���고 ������다.
다른 ���로그래머��� ������기를 ���, ��������� ���로그램��� ���는 것.���것��� ���떠��� ���������나 ��������닝·������보다 ��������� ������다.
���로그램��� ���는 것.���������는 ���고��� 방법���,��������� ������ ���������다.보다 기���������로 ���������다면, 「������ ��������� ������ 개������ ���대������ ������먼���를 발������는 것���, ���기��� ������는 경������ ������면 ���동������로 ������된다고 ���는 것��� �����고, 매��� 경������ ������ ���람��������, ������������고 ���는 ��������� 노력��� ���기 때문���, ������먼���는 늘���날 ��� ���다」(p. 366) 것���며, 「가��� ���과������ ��������� ��������� 것���, 그 ��������� 개������게 ������ ���당��� ���렵고, ��������� ���드����� ������, 게다가 반복������나 ���못��� ������������나 ��� 기���가 ���는, 명������ ���������다」(p. 20-21)���다(������3).Cambridge University Press 로부��� 나��� ���는 J. Lave ���「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(������4)라고 ���는 ������, ��� 관������ 대��� ���미로��� ���고 문������다.
만��� 그러��� ���고 것���라면, 4���� 대���������(������ 대��������� 가, 더���) 배���는 것.그러면 ������ ���명���를 ������로 ���는 ������리��� ���근���고, 그 �������� ��������보다 깊��� ������를 ���게 된다.������만, ���교를 ���길 ��� ���다고 ���다면, (������가 ������면) ������ ���는 과��������� 같��� ��������� ������ ��� ���다.���느 경������든, ������ ������ ������만���로는 ����������� ���다.「���������·��������������� 교������로 ���군가를 ���로��� ���로그래머로 ���려고 ���는 것���, 브러���나 그림��구��� 대��� 배���게 ��� ���로��� ���가로 ���는 것 같��� ����� ���렵다」라고 The New Hacker's Dictionary(������5) ��� ��������� Eric Raymond 는 말���다.내가 �����까��� 고������ ��������� ���고��� ���로그래머��� ��� 명(������6)���, 고�����교까��� 밖��� 나������ ������다.그렇���만, 그는 많������륭������������������를 만들���, �������� ���������뉴���·그룹까��� 가���고 ������, ������������ 덕�����, ���림������ 내가 ������ ���려 벌 ��� ���는 것보다 ��� 더 부���다.
���로������로, 다른 ���로그래머��� ���께 ������는 것.몇개��� ���로������로, ��������� ���로그래머가 되는���, 그렇��� ������면 맨뒤��� ���로그래머가 되는 것.당������ ���������라면, ���로������를 ���������, 다른 ���람들���게 당������ �������� 닦��� ���는 능력��� ���������게 된다.당������ 맨뒤라면, 달������ ��� 것��� 배���, 그들��� ���떤 말���는 것��� ���고 ������ ������ 것������ ���게 된다(그러��� ������ 당������게 ������려고 ���기 때문���).
다른 ���로그래머가 ������ 끝낸���������로��������� ������는 것.���람��� ��� ���로그램��� ��������� ���������는 것.���래��� ���드를 ��� ���로그래머가 근������ ���는 경���, 그 ���로그램��� ������������나 고������나 ���려면 무������ ���������가 ���각���는 것.당������ ���로그램���, 다������ 다른 ���람��� 메������������ ���기 ���게 ���려면 ���떻게 디���������면 ������가 ���각���는 것.
�������� 반다������ ���로그램 ������를 배���는 것.그 ������ ���나는 ���래��� ��������� ������������는 것(���를 들면 Java 나 C++), ���나는 ������ ��������� ������������는 것(���를 들면 Lisp 나 ML), ���나는 구문 ��������� ������������는 것(���를 들면 Lisp), ���나는 ��������� 기������ ������������는 것(���를 들면 Prolog 나 C++ ������릿), ���나는 coroutine 를 ������������는 것(Icon 나 Scheme), 그리고 ���나는 병렬���리를 ������������는 것(���를 들면 Sisal)��� 것.
「���������·������������」������, 「���������」가 ���는 것��� ���������는 ���된다.���������가 ���나��� 명령��� ������������나 메모리로부��� 1 ���드 ������내���나(��������� 들���가 ���는 경������ 그렇��� ������ 경������), 디������로부��� ��������� 데������를 ������내���나 디������������ ���로��� ��������� ������나 ���는데 ���느 ����� �������� ���릴까 ������ 두는 것.(대답��� ������)
������ ������������ �������� ���가���는 것.ANSI C++ ���������라면 그것��� ���길 것���고, 가������������ ���딩·������������ 대���, ���덴������ 공����� 2 문���로 ���까 4 문���로 ���는가 ��� ��벨��������, 결������게 될 ��� ���다.��������� �����, 다른 ���람��� ���로그램 ��������� ���떤 곳��� ���������는가, �����나 깊고 ���������는가, 그리고 �����, ��� 그렇게 ���������는가는 ����� �����, 배���게 된다.
가능��� ��� 빨리, ������ ���������로부��� 멀������는 ������� 가���는 것.
������ 모든 것��� 고려���면(���), ������로 배���는 것 만���로는, ���디까��� ���득��� ��� ������까 ���������러��� 것���로 ���다.��������� ������가 ������나기 ������, 나는 방법������ ���부 ������ ��������, ��������� ���무것�� ������ ������ ������������게 ���각된 것���다.30개��� ���, 두�������� ������가 ������나게 되������ 때, 나는 ������로 복������는���라는? 그렇��� ������다.그렇��� ���고, 나는 ��������� 개��������� 경������ 믿��� ���문가��� ������ ��������� 몇��� ���������보다, ��� ���모������ ���, ��������� 가���고 ������다.
Fred Brooks 는, ���������「No Silver Bullets」 (IEEE Computer, 20. p. 10-19) (������7)������ ������난 ���������������·디���������를 기르는 3단��를 ��명��� ���고 ���다.
가능��� ��� ���기��� ��� 디���������를 �����������로 ���������다.
���망��� ��������� ��������� ��������� 가���고 ���������는 ���리��� ���드바������를 ���명���, 면밀��� ���리��� ��������� 보관 ���������다.
������������ 디���������가 ���로 교류·���로 ���극��� 기���를 ���다.
���������, ���미 ������난 디���������가 되는데 ��������� ��������� 가���고 ���는 ���람��� ���������다고 ���는 것��� ������로 ���고 ���다.���기��� ������ ���다 (���)것���, 그들��� ��������� ����� ��� ���는 것���다.Alan Perlis 는 그것��� 보다 ��결���게 ���������고 ���는:「���구라�� 가르��� ���면, ���각��� ��� ��� �����록(듯���)는 된다.미���란���로는, 방물���라고�� ���각��� ���고 ��������� 것���다.������난 ���로그래머�� �����가���다」
���망��� ��������� ��������� ��������� 가���고 ���������는 ���리��� ���드바������를 ���명���, 면밀��� ���리��� ��������� 보관 ���������다.
������������ 디���������가 ���로 교류·���로 ���극��� 기���를 ���다.
���������, ���미 ������난 디���������가 되는데 ��������� ��������� 가���고 ���는 ���람��� ���������다고 ���는 것��� ������로 ���고 ���다.���기��� ������ ���다 (���)것���, 그들��� ��������� ����� ��� ���는 것���다.Alan Perlis 는 그것��� 보다 ��결���게 ���������고 ���는:「���구라�� 가르��� ���면, ���각��� ��� ��� �����록(듯���)는 된다.미���란���로는, 방물���라고�� ���각��� ���고 ��������� 것���다.������난 ���로그래머�� �����가���다」
��� ������, 그 Java ��� ������ ���������.그것���, 무������가��� �������� 될����� 모른다.그렇���만, 그래��� 당������ ��������� 변������고, ���로그래머로������ ������ 기능 �������� 그렇다.24��������나 몇������나 ���개��� 그럼.
1.3. ���고 문��� ¶
Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.
Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.
Hayes, John R., Complete Problem Solver Lawrence Erlbaum, 1989.
Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.
Hayes, John R., Complete Problem Solver Lawrence Erlbaum, 1989.
Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
1.4. 대답 ¶
������������ 1GHz ��� PC로 2001����� �������� ���������, ���러가��� ��������� ������ �����
execute single instruction 1 nsec = (1/1, 000,000,000) sec
L1 ������·메모리로부��� 1 ���드를 ������내는 2 nsec
메��� 메모리로부��� 1 ���드를 ������내는 10 nsec
��������� 디������·로������������로부��� 1 ���드를 ������내는 200 nsec
디������로부��� ���롭게 ������를 ������ 1 ���드를 ������낸다 8,000,000nsec = 8msec
L1 ������·메모리로부��� 1 ���드를 ������내는 2 nsec
메��� 메모리로부��� 1 ���드를 ������내는 10 nsec
��������� 디������·로������������로부��� 1 ���드를 ������내는 200 nsec
디������로부��� ���롭게 ������를 ������ 1 ���드를 ������낸다 8,000,000nsec = 8msec
1.5. ������ ¶
- ������ 1 - ACM ��� ���대 ��������� 맡��� ���링������ ���1������ ������������기�� ��� ���명��� ��������� 과������(1922-1990).그가 남긴 ������그램���, �������� ���러가��� 곳������ ������된다.Google �����로 그��� �������� 검������는 것만���로, 본문��� ������가 링������ ��������� ����������� 동��������� ���������가 다��� ������ ���다.
- ������ 2 - ���국��� 문������(1709-1784).������ ���������로��� ������������ 발������ 기������ 것���로 ���명���, 그�� 또 남긴 ������그램���로 ���려���다.
- ������ 3 - ��� 두 개��� ��������� 대������는, 링������를 더듬�����, ���������게 ���느 문���때문��������� ���������나 ��������� ��� ������다.��������� ��� ���는 국������ ������는 바라면, 부디 ���락 ���������.
- ������ 4 - ���������로부��� 「��������������� ������ ���동 ���람��� ��������������� ���떻게 ��������, ���������까」(무�� ���������·����������� ������미·나���노 ���게루·나���무라 미���������)로��� 국������ 나��� ���다.
- ������ 5 - ASCII BOOKS 로부��� 「��������� 대������」(������������ ���������로���)로��� 국������ 나��� ���다.덧붙��� 본문��� ������되고 ���는 ESR ��� 문������ ���느 문������로부������ ���������가는 몰랐다.본문������는 ESR 는 The New Hacker's Dictionary ��� ������로��� �������� 들 ��� ������만, ��������� Jargon File ���는 ���당 문������ ������다.
- ������ 6 - 말��� �������� ������,Jamie Zawinski ���다.
- ������ 7 - MythicalManMonth ��� NoSilverBullet.