파이썬공부

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS

1) 프로그래밍 경험이 없는 경우

미국 콜비 대학의 앨런 다우니 교수가 만든 카피레프트 책 「컴퓨터 과학자처럼 생각하기」"How to Think Like a Computer Scientist"의 파이썬판(http://www.ibiblio.org/obp/thinkCSpy/) 과 헤트랜드의 인스턴트 해킹(Instant Hacking http://www.idi.ntnu.no/~mlh/python/programming.html) 을 보고, 마소 2000년 6월부터 진행된 이강성 교수님의 파이썬 강좌를 탐독한다.
("비프로그래머를 위한 파이썬" http://www.honors.montana.edu/~jjc/easytut/easytut/ 이나, 이번 1월달에 출간된 Alan Gauld의 "파이썬으로 프로그램하기"Learn to Program Using Python http://www.crosswinds.net/~agauld/ 의 온라인 버젼도 괜찮다)

이제는 파이썬 인터프리터로 여러 가지 장난도 쳐보고 남이 작성한 간단한 코드를 이해하려고 노력한다. 가능하면 자신에게 필요한 어떤 프로그램 하나를 작성해 보는 것이 좋다 -- 컴퓨터를 위해서가 아니라 자신을 위해 프로그램하라는 이 시대의 爲己之學(자신을 위한 학문)론이다. 컴퓨터를 사용하면서 반복되는 기계적 작업이라고 생각이 들면 파이썬으로 하여금 이를 대신하도록 하라. 이런 작업들을 하면서 동시에 www.python.or.kr에 있는 파이썬 튜토리얼을 읽는다.

2) 유경험자

각종 잡지의 기사를 빠르게 훑는다. 썬월드에 난 기사(http://www.sunworld.com/swol-02-1998/swol-02-python.html) 나 리눅스 저널의 소개글(http://linux.kreonet.re.kr/python/doc/lj21.html DeadLink), 헤트랜드의 인스턴트 파이썬(http://www.idi.ntnu.no/~mlh/python/instant.html), 마소의 이전 기사 정도를 추천한다. 역시 귀도가 직접 쓴 파이썬 튜토리얼과 라이브러리 레퍼런스를 베개 곁에 두고 늘 참고한다.
C 언어 프로그래머가 파이썬을 배운 경우 초기에는 C 냄새나는 파이썬 코드를 만들기 쉽다. 소위 "파이썬적인 관용어구"를 익히지 못해서 그렇다. 파이썬적으로 생각하고 코딩하는 방법에 익숙해져야 한다. 인터넷을 통해 소위 유명인들이 만든 파이썬 코드를 읽고 공부하고 흉내내도록 하라 -- 파이썬 라이브러리가 훌륭한 자료가 될 것이다. 예일대 알런 펄리스 교수의 "당신이 프로그래밍에 대해 생각하는 방식을 변화시키지 않는 언어란 도무지 알 가치가 없다"(A language that doesn't affect the way you think about programming, is not worth knowing)는 말을 늘 기억하면서.

3) 서적류

파이썬 관련 서적에서 필자가 최고로 생각하는 것은 SWIG로 유명한 비즐리(David M. Beazley) 교수의 Python Essential Reference(New Riders, 1999)이다. 작은 판형에 300쪽이 채 되지 않는, 컴퓨터 책으로서는 경량급에 속하는 레퍼런스 서적인데, 파이썬에 관한한 거의 모든 자료가 매우 압축적이면서도 명쾌하게 잘 정리된 점이 압권이다. 어딜 가든지 이 책 한 권만 들고 다니면 마음이 든든하다. 참고서적이기 때문에 이 책으로 파이썬을 공부한다는 것은 무리일 수 있다. (타 언어 전문가일 경우 이 책으로 파이썬을 단기간에 공부한 사람도 꽤 많음) 초보자나 중급자들에게 권하고 싶은 책이 데릴 함스의 The Quick Python Book(Manning, 1999)와 오라일리의「러닝 펄」스타일을 흉내낸 듯한 Learning Python(O'Reilly, 1999)인데, 전자의 경우 JPython, Zope, COM, C 확장 등의 다양한 설명이 함께 있는 것이 후자와의 차이점이다. 후자는 파이썬 언어 자체에 대한 설명이 너무 친절하다 싶을 정도로 잘 되어 있고, 전자는 파이썬 자체에 대해서는 상대적으로 간결하게 처리하면서 각종 응용을 함께 싣고 있는 점이 좋다. 러닝 파이썬은 국내 번역본Aladdin:[ISBN-8979140959]이 출간되어 있다.



외국어 공부와 파이썬 공부


컴퓨터 언어는 인공언어라서 다른 언어와는 차이점이 있긴 하지만 외국어 공부에 적용되는 것들이 여전히 유효할 수 있다고 봅니다.

일정 수준을 넘어선 이상, 영어를 배우는 최고의 방법은 영어에 대해 공부하는 것보다(문법책 수백권을 읽는다든지, 어휘집을 디벼 판다든지) 영어로 공부하거나 영어를 사용하는 것이라고 생각합니다.

또한 듣기, 말하기, 읽기, 쓰기의 수용적 기술, 생산적 기술 양자를 고루 '사용'하고 늘 훈련해야 합니다. 특히 듣기와 읽기를 할 때에는 집중적intensive이면서 포괄적extensive이어야 합니다. 하나의 자료에 깊이 천착하다가도 다양한 자료들을 접해야 하는 것입니다.

이런 입력 자료를 소화할 때에는 세계적인 언어학자 크라센Krashen이 말하는 i+1 입력을 기억해야 합니다. 효과적인 학습은 자신의 수준을 i라고 했을 때 자신이 아는 것과 모르는 것의 접경인 i+1 단계에서 이루어진다는 거죠.

파이썬 공부에 이를 적용한다면 가능하면 파이썬을 위해 공부하기 보다는 파이썬을 다른 공부에 이용하거나, 파이썬으로 쓰인 다른 것을 직접 읽고 흉내내 보는 것이 역설적으로 더 효과적이라는 것입니다. 또, 수용적 훈련 이외에도 생산적 훈련을 항상 병행해서 괜찮은 프로그램을 보면 처음에는 여기 저기 고쳐보다가 나중에는 자기의 필요를 반영하는 프로그램을 새로 만들어 보는 것이 좋습니다. i+1 입력은, 소스 분석을 할 때 가능하면 "아예 이해 안되는 것"을 대상으로 하는 것 보다는 "알 듯 모를 듯 한 것"을 대상으로 하는게 좋다는 이야기가 됩니다.

저는 개인적으로 파이썬 라이브러리와 파이썬 소스 코드를 보면서 공부가 많이 되었습니다. 그리고 어떤 일을 해줄 프로그램이 필요할 때 이 일을 해주는 파이썬 프로그램이 이미 있는가 찾아보고, 있다면 그것을 가져와서 어떤 식으로 되어 있는지 소스를 구경하고 분석하고, 제 필요에 맞게 변경했죠.

결국은 직접 짜보고, 항상 고민하고, 남들이 만든 '좋은 소스'를 공부하고 흉내내보고, 수정하고 하는 것 외에는 별다른 묘책이 없을 겁니다.

아, 그리고 많은 사람들이 외국어 공부에서 오해하는 것이 있는데 영어 작문 공부가 따로 있다고 생각하는 것입니다. 물론 형식이나 구두점 표기, 수사적 표현 등 공부하고 몸에 익혀야 할 것들이 있습니다만 그런 것들만으로는 절대 좋은 영문을 써내지 못합니다. 글쓰기라는 것은 결국 생각의 표현이고, 이는 사고의 훈련 없이는 사상 누각과 같습니다. 한글로도 신문 사설류의 글을 쓰지 못하면서 영어로 아카데믹한 에세이를 잘 쓸 수 있을 것이라 생각하고 영작 교재를 후벼파는 것은 아무 의미가 없습니다.

파이썬 공부는 파이썬 공부만으로 되지 않습니다. 사고의 공부와 논리적 훈련이 뒷받침 되어야 할 것입니다. 다른 컴퓨터 언어들을 (functional, imperative, logic) 공부하고 새로운 기술들을 접하고 외면적이고 피상적인 '일시적 지식' 외에도 그 근저에 자리한 원리와 이론을 익히는 것, 항상 세상에 대해 열린 자세와 지적 호기심을 유지하는 것 등이 모두 '궁극적으로는' 파이썬 공부와 분리될 수가 없을 겁니다.

Python 설치하기

[http]python.org에서 각 환경에 맞는 Python 프로그램을 받을 수 있다. (윈도우즈, 맥캔토시, 리눅스 등)

호스팅 받는 계정에서 사용하고 싶다면 관리자에게 잘 얘기하면 설치해 준다. ;) 최근에는 기본으로 설치되어 있는 경우가 많이 있다.

[http]한국 파이썬 사용자 모임을 뒤져보면 한글 파이썬과 영문 파이썬, 관련 자료 등을 얻을 수 있다.



See Also PythonLanguage


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>