프로그램하는법을 배우기

by Alan Gauld

출간 중단!

그 책에 대하여 (인쇄물 버젼- 진짜 책)

나의 책은 이제 두번째 판이 인쇄되어 책으로 볼 수가 있다. 이 책은 첫 번째 판에 있는 대부분의 에러들이 수정되었므로 나는 여러분에게 여러분이 산 책이 두번째 판인지 꼭 확인하기를 권한다. (봉헌부 맞은 편에 있는 출판인의 정보 바로 아래에서 여러분은 그것을 찾아 볼 수 있다). (인쇄된 버젼의) 이 책은 의미심장하게 진일보하여 설명을 하고 있으며, 더 많은 예제들을 가지며 웹사이트의 이 책과 비교하여 완전히 새로운 몇개의 장들을 가진다. 이 장들에는 객체지향 게임의 개발틀을 위해서 새로이 재작된 사례연구가 있다. (완전히 주석이 달아진 그 개발틀은 이제 Useless Python 웹사이트에서 사용가능하다.) 이 사이트가 유용하다고 생각하는 여러분 모두가 그 책도 역시 그렇다는 것을 발견하기를 나는 희망한다.

The 출판자의 웹 페이지에는 최근의 상세한 정보가 있다. 여러분은 아마존(서점)에서 그것을 구입할 수 있다. 바로 여기에서. 다른 모든 온라인 서점에서도 이 책이 역시 준비 되어 있다.

나는 지금 나의웹사이트에서 정오표를 발간하고 질문과 제안사항들을 보낼수 있는 기회를 제공하고 있다. 한번 방문하세요, 특히나 나의 인쇄된 책을 사셨다면!

웹 선생님

이 사이트는 그 책이 발간된 이후이지만 여전히 유지되고 개선되고 있다 오히려 몇개의 새로운 주제가 추가 되었다.(자세한 사항은 아래를 보시오).

영어가 아닌 판이 지금 나왔다!

마틴 포찌가 가장 처음으로 웹교사를 (스페인어로) 번역하였다. 그리고 이제 여러 사람들이 그를 따르고 있는 중이다. 다음의 버젼들이 사용가능하다:

LanguageTranslator
Spanish Martin Pozzi
Portuguese Wilson Edgar
German Bruno Schaefer
Czech Lada Reisner
Korean johnsonj

위의 웹튜터들은 거의 온전하다. 한 두장 정도는 여전히 번역되어야 하지만 번역된 모든 장은 유익할 것이다. 나는 이것을 하나로 묶어주는데 자발적 노력을 해준 모든 번역자들이 당연히 감사를 받을만 하다고 생각한다. 만약 누군가가 번역을 원하시는 분이 계시다면 단지 나에게 전자메일 하나만 보내시면 된다.

새로운 것 #1

한층 진전된 주제가 새로이 추가되었다: Tkinter이용한 GUI프로그래밍 . 이 부분의 의도는 공식적인 Tkinter 지침서를 이해시키기 위하여 단지 충분한 배경지식을 제공하는 것이다.

새로운 것 #2

또 하나의 진전된 주제가 새로이 추가 되었다: 기능적 프로그래밍. 이 부분의 의도는 FP에 대한 참조사항들을 이해시키기 위하여 충분한 지식을 제공하고 동시에 파이썬의 그 강력한 FP 함수들을 소개하는 것이다.

다운로드 압축화일 포멧을 변경

리눅스 사용자들이 웹 튜터의 집화일로 부터 파일을 추출하는데 문제가 있었다. 그 결과로 나는 새로이 tar/gzip version을 만들었으며 나는 이제부터 그 포맷을 쓰기로 했다. 왜냐하면 winzip과 프리웨어류인 존 사바스의 Zip Central 모두가 tgz포멧을 잘 다룰수 있기 때문이다. 나는 또한 tgz포멧을 비 영어권 버젼을 위하여 사용할 생각이며, 아래 표의 링크들을 보시라. 이렇게 해서 여러분 모두가 행복하기를 - 나는 희망한다!

그리고 Palm 사용자들 역시...

Palm 사용자 한분께서 Palm doc file을 만드셨다. 나는 아직 그것을 시험해 보지 않았으나 필요하신분을 위해 여기에 제공한다. 만약 어떤 문제가 있다면 여러분 자신의 책임이며, 해결이 지원되지 않는다. 그렇지만 그래도 누군가에게는 유용하기를 빈다.

전자 메일 문제

나는 여전히 가끔씩 크로스 윈드 메일에 문제가 있다. 여러분이 나에게 연락하기를 원한다면 그리고 링크가 동작하지 않는다면 여러분은 다음을 백업 주소로 사용할 수 있다. 그러나 주의 하실 것은 나는 일주일에 한번이나 그것을 볼 뿐이다 (나는 보통 거기에 스팸메일을 받는다): alan.gauld@yahoo.co.uk


소 개 - 무엇, 왜, 누구 등등.

왜 나는 이것을 쓰고 있는가?

내가 이 지침서를 쓰는 이유는 웹상에서 완전히 쌩초보자가 프로그래밍에 접근할 기회가 거의 없다는 것이다. 그렇지만 인터넷과 웹에서 컴퓨터에 흥미를 느끼게 되고 그 흥미는 자연적으로 "제어하고" 싶은 욕망으로 이끌려 진다. 그것이 뜻하는 것은 프로그램하는 것을 배우는 것이다!

나는 왜 ? 음 나는 전문 프로그래머이며 전자공학을 배경으로 하고 프로그래밍 분야로 들어왔다. 나는 몇 개의 컴퓨터 언어를 사용했으며 계속 사용할 것이다. 다른 특별한 도구나 혹은 언어를 발전시키는데는 어떠한 개인적 관심도 없다. 이런, 다른사람도 그런데는 관심을 두지 않는 것 같군요!

나는 무엇을 다룰 것인가

최선을 다해, 나는 컴퓨터 프로그래밍의 기본적 이론을 다루려고 한다.- 무엇인고 하면, 문제를 해결하는데 필요한 기본적 기술들과 그에 관한 이야기등. 나는 희귀한 이론이나 혹은 어떤 특별한 프로그래밍언어의 상세한 면에 관해서는 다루지 않겠다. 사실 나는 몇개의 서로 다른 언어들을 사용할 것이다, 그러므로 나는 서로 다른 언어들이 서로 다른 일들을 한다는 것을 깨닫는 것이 중요하다고 믿고 있다. 다시 말하면, 이 강좌의 많은 부분이 파이썬이라도 불리우는 언어가 될 것이다.

누가 이것을 읽어야 하는가?

다른 말로 하면 : 독자가 무엇을 읽어야 하는지 이미 예상하고 있는가?

나는 이 지침서의 독자가 한 컴퓨터 시스템에, 아마도 MS DOS, Windows 또는 Unix 에 숙련된 사용자라고 예상한다. 그렇지만 다른 사람들도 역시 극복할수 있어야만 한다. 나는 또한 그들이 기본적인 수학적 개념 예를 들어 해석학, 집합론, 기본적 대수등을 이해한다고 예상한다. 이러한 것들은 모두 오늘날에는 중요한 프로그래밍 환경들이며, 그리고 많은 프로그래밍의 개념들이 이러한 아이디어에 기초하고 있다.

나는 파일을 생성하거나 또는 텍스트파일을 복사하거나, 소프트웨어를 설치하는 법, 또는 한 컴퓨터 저장 시스템에서의 파일의 조직법등과 같은 주제는 확실하게 다루지는 않을 것이다. 솔직히 여러분이 이러한 것들을 알 필요가 있다면 여러분의 수준은, 여러분이 간절히 원할지라도 프로그램을 배울 수 있는 단계가 아닐 것이다. 여러분의 컴퓨터를 위한 지침서를 먼저 찾아라, 그리고 위에 기술한 개념들에 자신감이 생길때 다시 방문하라.

왜 파이썬인가?

파이썬은 배우기에 정말 괜찮은 언어이다. 구문은 간결하고 대단히 강력한 사양들이 그 언어에 내장되었다. 파이썬은 대단히 단순한 것으로부터 예술의 경지인 객체지향 기술의 단계에 이르기까지 많은 프로그래밍 스타일을 제공해준다. 파이썬은 많은 플랫폼에서 실행된다 - Unix/Linux, MS Windows, Macintosh 등등. 또한 대단히 친숙하고 도움이 되는 사용자 공동체까지 가지고 있다. 이러한 모든 것들은 초보자의 언어로서 중요한 사양이다.

그렇지만 파이썬은 단순히 초보자의 언어만은 아니다. 여러분은 경험이 더해감에 따라서 여러분은 파이썬을 목적지로 삼든가 혹은 원형 개발 언어로서 사용하게 될 것이다. 파이썬이 잘 맞지 않는 분야가 여럿 있지만, 그러나 이것들은 다른 언어들과 비교해서는 적든가 아니면 다른 언어 하나와 비교한다면 아주 적은 것이다.

나는 또한 BASIC를 초반부의 예제들에 사용할 것이며 TCL을 대안으로 소개 할 것이다. 왜? 음, 역시 초보자인 대부분의 웹 서퍼들이 마이크로 소프트 윈도우가 설치된 PC를 사용하고 있다고 가정한다면, ( NT 혹은 Win 95/98)시디안에는 이미 베이직(QBASIC)버전이 사용가능하기 때문이다. Tcl은 파이썬 1.5.2 버젼에 함께 딸려온다.( 여러분은 효과적으로 두 언어를 하나의 가격으로 가질 수 있다. - 이건 공짜!) 버전 2.0이후에는 여러분은 Tcl의 최소설치만 가지고 있으므로, 예제들을 실행시켜 보기 위해서는 공식적인 Tcl 설치기를 Scriptics로 부터 내려받을 필요가 있다.

다른 자원들

다른 언어로 이러한 시도를 하는 웹 사이트들이 있다. 또한 이미 프로그래밍하는 법을 알고 있지만 새로운 언어를 배우고자 하는 사람들을 위한 많은 지침서들이 있다. 이 섹션은 내가 생각하기에 가치가 있다고 생각되는 것중 약간을 링크해 놓은 것이다!


Next  Contents

여러분이 이 지침서를 개선하는 방법에 관한 아이디어를 가지고 계신다면
부담없이 나에게 연락하라