빌 게이츠의 인용문을 우연히 발견했습니다. "모든 내용을 읽을 수 있다면 반드시 이력서를 보내야합니다." 그는 The Art of Programming 서적에 대해 이야기하고있었습니다. 그래서 저는 매우 궁금해서 책을 읽고 싶지만 솔직히 이해하지 못합니다 I'm really not that highly
intellectual being
. 그래서 .. 이것이 이해할 수없는 이유입니다. , 그러나 배우고 싶어합니다 .. 나는 현재 기초적인 알고에 관한 1 권을 읽고 있습니다. 저와 같은 초보자 / 느린 사람들에게 친숙한 책이 있습니까? Knuth의 책을 편하게 읽을 수 있기를 바랍니다.
자신을 not a highly intellectual being
다음 과 같이 정의 하면 기대치가 낮아집니다. 문제가 될만한 일을하고 싶다면 그 정신을 빼야합니다. 무언가를 성취 할 수 있다는 것은 의심 할 여지가 없습니다. 또한 그것을 달성한다고해서 쉽게 달성한다는 의미는 아닙니다.
추구 할 가치가있는 것은 어렵고 진부한 것이 아닙니다. 소프트웨어, 엔지니어링, 일반적으로 인생에서 무언가를 달성하려면 어려운 일, 사람들이 피하는 일, 가장 낮은 공통 분모에 대해서는 정착하지 않아야합니다.
먼저, CS 배경이 무엇인지 명확하지 않습니다. 크 누스의 책은 어느 정도 성숙해야합니다. CS 학위를 가진 사람들은 쉽게 통과 할 수 없습니다. 방금 알고리즘에서 첫 번째 과정을 마친 CS 학생이 실제로 Knuth의 책 중 하나를 통과 할 것으로 기대하지는 않습니다. 그것을 얻는 데 필요한 성숙은 거기에 없으며 학생의 정신 능력과는 아무런 관련이 없습니다.
기본 알고리즘은 차갑고 명확해야하며, 벨트 아래에 상당한 양의 프로그래밍 (작업 및 / 또는 학력)이 있어야합니다. 또한 CS 수학을 확고한 기반에 두어야합니다.
이산 수학 (및 계산 이론)을 잘 이해하지 않고는 앞으로 나아갈 수 없습니다.
Knuth의 문제를 해결하기 위해 지식이 필요하지는 않지만 그러한 유형의 자료를 살펴볼 수있는 성숙도가 필요합니다.
먼저 한 권의 책과 한 권의 책만 선택하십시오 (이전에 제안 된 CLRS의 책). 처음부터 끝까지 작업하십시오. 가능하면 알고리즘을 구현하는 프로그램을 수행하십시오. C ++이 아닌 Java 또는 C #을 사용하지 마십시오. 베어 본 C로 가서 베어 본 금속 스크랩으로 물건을 짓는 느낌을 얻으십시오.
이산 수학과 계산 이론을 배우지 않은 경우 "콘크리트 수학"에 대한 Knuth의 책을 얻으십시오. 그 책을 살펴 보는 것도 좋을 것입니다.
그런 다음 Knuth의 백과 사전, 하나의 주제, 한 번에 하나의 장을 다루십시오. 첫 번째 장을 잘 이해하지 않고 다른 장으로 가지 마십시오.
먼저 볼륨 I (기본 알고리즘), 볼륨 III (검색 및 정렬)을 수행하는 것이 좋습니다. 그것들은 당신의 즉각적인 목표가되어야합니다. 그런 다음 나중에 (더 나중에) 볼륨 IV (Combinatorial Algorithms), 볼륨 II (Semi-Numerical Algorithms)를 다룹니다.
처음에 이해가되지 않으면 기분 나빠하지 마십시오. 나는 몇 년 동안 (지금 10 년 동안) 볼륨 I과 III을 통과하려고 노력해 왔습니다.
그리고 당신은 그것에 너무 많은 무게를 두어서는 안됩니다. 누군가 나 자신에게 무언가를 증명하기 위해하지 마십시오. 당신이 있기 때문에 그것을 지적 그렇게 관심. CLRS의 서적 (또는 훌륭한 고급 서적 중 하나)을 사용하여 알고리즘에 능숙해질 수 있습니다.
실용적으로 휴식을 취하십시오. Knuth의 책을 훑어 보는 것은 CS 자료라는 즉각적인 증거가 아니라 장기적인 개인적인 야심으로 취급하십시오.)
;) 자신을 죽일 다른 중요한 것들이 있습니다 ()