컴퓨터 프로그래밍의 기술-읽거나 읽지 않겠습니까? [닫은]


63

거기에는 프로그래밍에 관한 책이 많이 있으며, Code Complete가 대부분의 사람들이 "읽어야 할 프로그래밍 책"목록의 맨 위에있는 것 같지만 Donald Knuth 의 컴퓨터 프로그래밍 기술은 어떻습니까? 나는 일과 젊은 가족 사이에 바쁜 사람인데, 나는 자유 시간이 많지 않으므로 그것을 사용하는 방법에 대해 까다로워 야합니다.

궁금합니다. 여기에 'TAOCP'을 읽은 사람이 있습니까? 그렇다면 애완 동물 프로젝트와 같은 다른 책이나 더 많은 프로그램이나 오픈 소스에 기여하는 것이 전문적인 개발 측면에서 내 시간을 더 잘 사용하는 것이 가치가 있습니까?

면책 조항- "Knuth is my homeboy"티셔츠를 좋아하는 분들을 위해 저를 잘못 이해하지 마십시오-읽어보고 싶지만 우선 순위 목록의 맨 위에 있어야하는지 궁금합니다. 다른 것이 먼저 와야한다면


나는 그것을 읽고 싶지만 지옥처럼 비싸므로 유니를 끝내고 돈을 벌기 시작하면 그것을 얻을 것이다. 또한 큰 책장이 필요합니다.
gablin

나는 그것을 3 페이지로 만들고 개를 ed 다. 6 개월 후 아마존에서 세트를 판매했습니다.
kirk.burleson

답변:


72

TAOCP는 우리가 매일 사용하는 데이터 구조와 알고리즘이 작동하는 방식과 그 이유를 이해하기 위해 매우 귀중한 참고 자료입니다.

한 가족이 다른 사람에게 자녀와 함께 시간을 보내십시오.


34
어린이를위한 +1-컴퓨터가 기다리는 데 악명이 높습니다. 아이들이 나이가들 때까지 기다릴 수 있습니다.

3
아이들을위한 +1, 당신은 당신의 인생의 언제든지 책을 읽을 수 있지만, 4 살짜리 아이는 1 년 동안 만 놀 수 있습니다. 그리고 5 살짜리 아이와도 1 년 동안 만

3
좋은 대답입니다. 우리가 더 나은 프로그래머를 만들 수있는 많은 것들이 있지만, 우리는 시간을 어디에 투자하고 현명한 프로그래머가되는 것보다 인생에 더 많은 것이 있다는 것을 기억해야합니다.
존 홉킨스

5
아직 아이가 없어서 죽기 전에 읽어보고 싶어요. 아이가 없을까요?
침몰

1
@anks 당신은 프로그래머처럼 생각하고 있습니다 ... :)
Angelin Nadar

23

TAOCP에 대한 모든 참조에 대해 귀하의 질문에 "백과 사전"을 대체하십시오. 그 대답은 분명해야한다고 생각합니다. 많은 점에서 TAOCP가 바로 그 때문입니다.

스티브 잡스가 크 누스를 만난 것에 대한 (아마도 묵시적인) 이야기가 있습니다. 잡스가 그에게 처음으로 말한 것은 "Knuth 박사님을 만나게되어 기쁩니다. 모든 일을 읽었습니다!". Knuth의 답변은 "당신은 똥이 가득합니다": http://www.folklore.org/StoryView.py?project=Macintosh&story=Close_Encounters_of_the_Steve_Kind.txt


1
백과 사전에는 엄청난 양의 것들이 있습니다. 주로 광범위한 관심사를 가진 사람들에게 흥미 롭거나 관련성이있는 것은 아닙니다. TAOCP의 내용은 소프트웨어 개발자와 적어도 관련이 있습니다.
David Thornley

4
재 : 잡스 이야기 : 그것은 이다 출처가 의심스러운 이야기. 크 누스는 랜달 먼로의 구글 기술 강연에서 많이 말했다.
greyfade

4
그럼에도 불구하고 "이야기"는 나를 웃게 만들었다. :)
MetalMikester

크 누스 박사의 유머를 증명할 수 있습니다. 그의 출판 주소로 이메일을 보냈습니다. 그가 대답 한 것에 놀랐습니다. 그의 답변은 내 이메일의 하드 카피로 표시되었으며, TAOCP의 나머지 섹션을 읽겠다고 정중하게 들었습니다. 내 이메일 서명은 미주리 출신인데 어리석은 MO 정치인에 대해 언급했습니다. 그는 "농담 만하고, 슈워제네거 주지사를 비난하지 마십시오"라고 결론지었습니다.
dbasnett

21

아니요, 우선 순위 목록의 맨 위에 있으면 안됩니다. 나는 전체 세트를 가지고 있고 모든 것을 읽지 못했습니다. 나는 (지금까지) 특정 문제에 대한 좋은 참고 자료로 사용했습니다 (예 : 무작위성 및 무작위 생성기 테스트에 대한 나의 이해에서 매우 중요했습니다). 내가 정말 잘 다루지 않는 CS 주제가 나올 때마다, 나는 TAOCP의 관련 부분을 이해의 좋은 단계로 잡는 경향이 있습니다.

당신이 그것을 읽기로 결정한다면, 당신에게 더 많은 힘을 주며, 나는 그것을 작은 덩어리로 가져가는 것이 좋습니다. 건너 뛰고 가장 흥미로운 것을 먼저 보는 것을 두려워하지 마십시오.


1
당신은 머리에 못을 쳤다.
kirk.burleson

9

TOACP는 어느 시점에서 반드시 읽어야합니다. 매일하는 일에 따라 가장 시급하지 않을 수 있습니다.

경력 초기에 읽는 것이 좋은 책 중 하나입니다. 왜냐하면 나중에는 일반적으로 얻지 못할 좋은 통찰력을 제공하기 때문입니다. 그러나 그 부분을 졸업 할 때까지 생존에 필수적이지는 않습니다. 코드 작성이 아닌 경력의 도구 상자를 선택하십시오. 이것은 실제로 알고리즘을 연구하고 싶고 언어 ​​디자인을 약간 이해하고 있으며 도구, 언어 및 시스템이 무엇인지, 각각이 가능한 생태계에 어떻게 적용되는지에 대해 매우 광범위하게 이해하고있는 시점입니다. 특정 프로젝트를 수행하십시오.

다시 말해, 그것은 큰 그림 학습입니다. 그래서 만약 당신이 제가 지금 읽은 것처럼 강박 관념이 아니라면, 당신이 그렇지 않다면, 사다리를 올라가서 큰 그림이되는 사람이되기를 갈망하기 시작할 때까지 그것을 벗는 것이 좋습니다.


6

최근에이 직무를 수행 한 후, 그가 글을 쓰는 방식이 매우 즐거우 며 문제는 난이도에 따라 적절하게 분류되어 있다고 말할 수 있습니다. 첫 번째 책을 받고 1 장과 2 장을 읽고 어떻게 좋아하는지보십시오.


6

TAOCP는 대단한 일이지만, 읽는 것은 실제 소프트웨어 개발자에게는 끔찍한 시간 투자 일 것입니다. 당신이 그렇게하면 너무 적은 것에 대해 너무 많이 배우기 위해 전문적인 자기 개선 예산의 몇 년 (그 정도의 시간이 걸릴 것)을 희생하게 될 것입니다.

알고리즘에 대한 하나 이상의 "최종"책을 통해 작업하는 것이 좋습니다.이 분야에서 내가 가장 좋아하는 것은 Steven S. Skiena의 알고리즘 디자인 매뉴얼입니다.

그런 다음 Knuth로 더 이동해야한다고 생각되면.

동시에 하나 또는 여러 권의 TAOCP를 구입할 수 있으며 Knuth가 다루는 영역을 이해하고 실제로 정보가 필요할 경우를 대비하여 라이브러리에 보관하십시오. 작업. 내 교육받은 추측은 당신이하지 않을 것입니다 그리고 그것은 내가 읽는 것을 권하지 않는 또 다른 이유입니다. 그러나 당신이 그것을 충분히 자주 참조한다면, 그것을 커버하기 위해 그것을 읽을 가치가 있다는 것을 알게 될 것입니다.


6

크 누스의 독창적 인 작품은 가장 인기있는 프로그래머가 참조가 의도 읽기, 마무리는 독서. 언젠가


2
프로그래머를위한 Hawking의 "시간의 간략한 역사"와 같습니다.
존 홉킨스

1
비트 I는 않았다 ABHIT를 참조하십시오. 호킹 방사선은 나에게 이상해 보인다. 더 많은 물건이 들어가서 블랙홀이 수축합니까? 나는 질량의 보존과 각각의 가상 쌍은 결코 파괴 할 수없는 것을 얻었지만 아이디어는 여전히 괴짜입니다.
Steve314

@ Steve314 : 더 큰 것은 매우 작은 블랙홀이 심하게 폭발한다는 것입니다. 이론적으로.
Steven A. Lowe

2
ABHOT는 짧고 일반 대중을위한 것입니다. TAOCP는 그런 것이 아닙니다.
Sean McMillan

3

가족 / 어린이 댓글에 +10 적목 현상이 지속되는 동안 고객이 가장 많이 읽는 것을 시도합니다.

하지만 ... 그렇습니다. 선형 적으로 읽을 이유가 없으며, 대충 훑어보고 관심있는 주제를 선택하십시오.


3

나는 모든 개발자가 어느 시점에서 책을 얻는 데 투자해야한다고 생각하는 사람들의 캠프에 단단히 있습니다 (그리고 지금 은 단행본 으로 다시 인쇄 되는 것처럼 보이기 쉬워졌습니다 ).하지만 같은 토큰으로, 또한 누군가가 앉아서 덮개를 모두 읽을 것이라고 믿기 어려워합니다.

당신이 앉아서 읽을 수있는 자유 시간이있는 곳에서 출퇴근 통근이 없다면, 그들에게 가장 좋은 접근 방법은 그들에게서 물건을 찾을 수있는 곳을 알기 위해 충분히 읽은 다음 언제라도 전체 장을 읽는 것입니다 주어진 문제에 대한 참고 도서로 사용하십시오. Google 및 스택 오버플로를 사용하면 참조 도서를 찾는 것이 일반적이지 않지만 경우에 따라 인터넷을 통해 추가 시간을 보내야하는 통찰력을 제공하는 책이있을 수 있습니다.


1
전체 장을 읽으시겠습니까? 그것은 약 절반의 볼륨이며 작은 볼륨이 아닙니다. 더 작은 텍스트 단위를 의미한다고 생각합니다.
David Thornley

3

처음에 Knuth는 컴파일러 작성 방법에 대해 뭔가를 쓰고 싶었다는 것을 잊지 마십시오.

예를 들어 위키 백과를 사용하여 인터넷에서 많은 정보를 얻을 수 있지만, 연구원이 아닌 경우 요약을 읽으면 만족할 것입니다.

당신은 여전히 ​​첫 번째 주제를 얻을 수 있으므로 지루할 때 읽을 수 있습니다 ...


2

책을 읽는 것보다 그 문제를하는 것이 더 중요 할 것입니다. 많은 시간이 필요합니다.

그는 4 권의 책과 5 개의 책장 (그것이 무엇이든)을 좋아하기 때문에 컴퓨터 과학의 기초에 관한 대학 과정보다 책을 완성 하는 것이 아마도 최고의 프로그래머가 될 것입니다.

나와 같은 젊은 가족이 있기 때문에 나에게 꽤 팽창 한 아이디어를 주었다. 한 번에 하나씩 책을 사서 아이들에게 가르쳐 줄 것입니다.


1
"책을 완성하는 것이 아마도 대학 과정보다 낫습니다."-제 1-3 권은 CS 학위를 받았을 때 여러 과정에서 교과서로 사용되었으며, 전체 과정을 1 권의 절반에 소비했습니다. 예를 들어 "볼륨 3 정렬 및 검색"은 두 개의 개별 코스로 진행되었습니다.
tcrosley

2
사소한 요점이지만 지금은 네 권의 출판물이 세 권에 불과합니다. 주근깨는 네 번째 볼륨이 될 사전 인쇄입니다. www-cs-faculty.stanford.edu/~uno/taocp.html
rjzii

1

호기심이 많으면 소화하되 시간이 많이 걸리므로 소화에 시간이 걸립니다.

읽을 수있는 통근이 있습니까? 완벽 할 것입니다.


편집 : 당신은 볼륨 4의 작은 부분의 미리보기가 흥미로울 수 있습니다 : http://www-cs-faculty.stanford.edu/~uno/fasc1a.ps.gz

(참고 : 압축 된 포스트 스크립트)


1
불행히도 (이 경우에는 매우 운이 좋다) 나는 재택 근무하므로 옵션이 아닙니다.
Zannjaminderson

1

대부분의 사람들이 앉아서 커버 투 커버를 읽는 것이 아닙니다. 엄청나게 귀중한 참고 자료이며, 선택하고, 흥미로운 섹션을 선택하고, 읽고, 연습을하는 것이 좋습니다. 그러나 위의 백과 사전 비교는 꽤 적당합니다 ... 그것은 크고 광범위하며 상세합니다. "운동"중 일부는 해결하는 데 몇 년이 걸릴 수있는 연구 문제입니다.

저수준 알고리즘에 대해 더 잘 알고 싶다면 Robert Sedgewick 서적 (예 : "C의 알고리즘", "Java의 알고리즘"등)으로 시작하는 것이 좋습니다.



1

크 누스의 TAOCP는 걸작입니다. 그러나 "Illiad", "War and Peace"또는 Proust의 "잃어버린 시간 찾기"와 같은 걸작과 마찬가지로 모든 사람이나 영원한 사람을위한 것은 아닙니다.

이 책은 매우 잘 쓰여졌 고 연구가 잘되어 있습니다. 문제가 크고 알고리즘에 대한 설명이 잘되었습니다.

이 책의 큰 문제는 Knuth가 가상 컴퓨터의 가상 어셈블리 언어 코드를 표시한다는 사실입니다. 나는 그가 왜 그랬는지 이해하지만, 사실은 그것이 짜증 난다.

이 책을 성경으로 사용하는 것이 좋습니다. 필요할 때 찾아보십시오. 답을 찾을 수 있습니다. 그것은 나에게 두 번 이상 일어났다!


3
IBM360 또는 PDP8에 실제 어셈블러를 사용한 경우 도움이됩니까?
Martin Beckett

1
50 년 동안 가상의 어셈블리 언어로 견딜 수 없었습니다. 그것은 모든 사람에게 동등한 불이익을줍니다!
luser droog
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.