Я натрапив на цю цитату від Білла Гейтса: "Ви обов'язково надішліть мені резюме, якщо зможете прочитати всю справу". Він говорив про «Мистецтво програмування книг». Тому я був досить цікавий і хотів прочитати це все, але чесно, я його зовсім не розумію .. I'm really not that highly
intellectual being
.. Тому це повинно бути причиною, чому я не можу його зрозуміти , але я прагну дізнатися .. Зараз я читаю 1-й том про фундаментальне альго. Тож чи є там книги, привітні для початківців / повільних людей, як я? Тож я можу створити себе, і, сподіваюся, в майбутньому я можу легко прочитати книгу Кнут ..
якщо ви визначаєте себе як not a highly intellectual being
тоді, ви налаштовуєте себе на низькі очікування. Ви повинні зламати цей менталітет, якщо хочете зробити щось варте неприємностей. У вас не повинно бути сумнівів, що ви можете чогось досягти. Крім того, її досягнення не означає, що ви цього легко досягнете.
Речі, які варто переслідувати, - це ті, які важко ... і це не кліше. У галузі програмного забезпечення, інженерії, в житті взагалі, якщо ви хочете чогось досягти, ви повинні піти на важкі речі, на те, що люди уникають, а не на найменші загальні знаменники речей.
По-перше, незрозуміло, яким є твій фон CS. Книзі Кнут потрібна ступінь зрілості. Мало хто з ступенем CS може пройти через це з легкістю. Я не очікував, що студент CS, який щойно закінчив свій перший курс алгоритмів, насправді зможе пройти навіть одну книгу Кнута. Зрілості, необхідної для його отримання, просто немає, і це не має нічого спільного з розумовими можливостями студента.
Потрібно мати основні алгоритми, щоб вони були холодними і чіткими, і вам потрібно мати досить багато програмування (робочого та / або схоластичного) під поясом - я б сказав, 40 кредитів на програмування принаймні. Ви також повинні мати свою математику CS на твердій основі.
Ви не можете піти вперед, не розуміючи дискретної математики (і, можливо, теорії обчислень.)
Справа не в тому, що вам знадобляться ці знання, щоб працювати над проблемами Кнута, але вам потрібен зрілість, щоб можна було пройти цей тип матеріалу.
Спочатку виберіть лише одну книгу та одну книгу (книга CLRS, як було запропоновано раніше), і працюйте над нею від початку до кінця. Коли це можливо, робіть програми, що реалізують алгоритми. Не використовуйте Java чи C #, навіть C ++. Перейдіть до голих кісток С і отримайте відчуття, як будувати речі з металевих клаптів голих кісток.
Також отримайте книгу Кнут на тему "Конкретна математика", якщо ви ще не пройшли курс дискретної математики та теорії обчислень. Було б добре, щоб ви також пройшли книгу.
Потім торкніться енциклопедії Кнута, один том, одна глава за раз. Не переходьте до іншої глави, не розуміючи першої.
Я б запропонував вам спершу ознайомитися з томом I (основні алгоритми), потім з томом III (пошук та сортування). Це повинні бути вашими найближчими цілями. Потім, пізніше (значно пізніше), займіться томом IV (комбінаторні алгоритми), а потім томом II (напівчислові алгоритми.)
Не відчувайте себе погано, якщо спочатку ви цього не отримаєте. Я намагався пройти через томи І та ІІІ років (зараз 10 років).
І не варто також наносити на нього стільки ваги. Не робіть цього, щоб довести щось комусь або собі. Зробіть це, тому що ви інтелектуально зацікавлені в цьому. Ви можете бути досвідченими в алгоритмах, просто скориставшись книгою CLRS (або будь-якою з тонких книг на рівні градацій).
Будьте прагматичними і відпочити собі. Ставтесь до книги Кнут як до довготермінової особистої амбіції, а не як до безпосереднього підтвердження того, що ви є матеріалом CS;)
Є й інші важливіші речі (для кар’єри), за що потрібно вбити себе;)