Что нужно и на каком уровне знать в математике чтобы читать Дональда Кнута?
Подскажи кто уже читал или готовится читать книги "Искусство программирования" Кнута, какие темы и на каком уровне нужно изучить в математике? Без математической базы я уверен что браться за его труды даже можно не пытаться, будет впустую потраченное время. Хотелось бы овладеть той математической базой чтобы +- свободно ориентироваться в книге и понимать ее, чтобы знания откладывались а не просто страницы переворачивались.
Если честно, думаю, что искусство программирования читают только, чтобы выпендриться. Практически же, никаких особых навыков книга не даёт. Да, как академический труд можно почитать, иногда даже интересно, горизонты расширяет, в целом. Но вот как программисту лично мне эта книга абсолютно ничего не дала.
Но вот как программисту лично мне эта книга абсолютно ничего не дала.
Программист понятие растяжимое.
Одно дело когда идет программирование простейшей логики из блочных конструкций, другое дело когда вы решаете какие-то сложные задачи.
В названии книги не зря слово "искусство"
Основы живописи, для маляра-отделочника с практической точки зрения малополезны.
Например? Я за 20+ лет каких только задач не решал. Просто интересно, что является "сложной задачей" в вашем понимании. Есть трудоёмкие задачи, есть - не очень. А вот "сложные"... знаете, здесь Кнут не поможет. Если надо хитро извернуться в конкретно-заданных условиях, вы и изворачиваетесь. И не по книжке, а по собственному разумению.
Ну здесь, возможно, соглашусь - чем больше кругозор, тем больше вариантов решений приходит в голову, но помогает ли тут Кнут - не знаю. Это просто один из кирпичиков, причём не самый крупный из них.
вы и изворачиваетесь. И не по книжке, а по собственному разумению.
Вот вот и я о том же. Впервые "Искусство программирования" прочитал когда уже лет 20 занимался программированием сначала как любопытный школьник/студент, потом профессионально (за деньги). Когда прочел думаю "Эх, мне бы эту книгу лет 15 назад, изворачиваться не пришлось по собственному разумению и времени сэкономил бы туеву хучу"
Это просто один из кирпичиков,
Вообще-то это не кирпичик, целый фундамент
На кирпичики Кнута растащили другие авторы, чтобы каждый из них в отдельности попримитивнее разжевать стремительно деградирующему среднепотолочному программюги
evgeniy_lm, Знаете, вот здесь не соглашусь. Главный фундамент выстраивается в голове. И он у всех свой. А книжку, даже самую распрекрасную, вы можете заставить человека вызубрить, но толку от этого может никакого и не получиться.
Это ваша проблема. У вас есть большая сложная задача которую вы банально делите (хоть в голове, хоть на бумаге или в компе) на более мелкие, а те еще на более мелкие и т.д. пока вы не придете к комплекту стандартных алгоритмов которые описал Кнут много лет назад. Вопрос зачем изобретать велосипед?
Тех кто очень хочет, но не умеет писать программы и в принципе не имеет понятия как это делать (говнокодеров) мы обсуждать не будем. Мы ведь с вами программисты, правда?
У вас есть большая сложная задача которую вы банально делите (хоть в голове, хоть на бумаге или в компе) на более мелкие
Приём известен древним, хорошо задокументирован древними греками.
пока вы не придете к комплекту стандартных алгоритмов которые описал Кнут много лет назад.
В математике Кнут тоже не открыл ничего нового. А книга хорошая - но это лишь компиляция разрозненных знаний, в этом есть её главная ценность, но никак не "библия".
Понимаете, в чём дело, когда я читал Кнута, у меня очень много где вообще не возникало ощущения, что я читаю что-то новое. Почти всё прочитанное уже было мне либо известно, либо я об этом хотя бы слышал или где-то что-то уже читал, за небольшими исключениями. Для кого-то, возможно, Кнут и "фундамент", но не стоит обобщать, возводить в абсолют и говорить, что Кнут - наше всё.
Например? Я за 20+ лет каких только задач не решал.
Например, задачи линейного и, в целом, выпуклого программирования, задачи комбинаторной оптимизации, задачи из теории массового обслуживания. Периодически решаю (прототипизирую алгоритмы на python) эти задачи. Программист – понятие крайне растяжимое. Есть html-верстальщики, которым не нужна даже школьная математика, а есть люди, которые мониторят академические статьи по оптимизации и переносят идеи в алгоритмы и код.
cicatrix, Кнут - это не учебная литература. Это скорее чтиво для профи по алгоритмам, которые хотят систематизировать знания и получить энциклопедическиую широту взгляда, что полезно архитекторам или людям из академической среды. А учить Кнута в универе, чтобы потом зарабатывать деньги программистом - пустая трата времени чуть менее, чем полностью.
Хотелось бы овладеть той математической базой чтобы +- свободно ориентироваться в книге и понимать ее, чтобы знания откладывались а не просто страницы переворачивались.
ну так следи за изложением и углубляйся в соответствующую математику когда становится непонятно, а не листай страницы просто так.
Условно говоря, для понимания алгоритмов особого знания математики не требуется. Серьёзная математика применяется для доказательств типа "этот алгоритм имеет вычислительную сложность порядка n*log(n)". Но если Вы готовы принять утверждения без доказательств, то Вам проще.
Кроме того, такие книги имеет смысл читать несколько раз. В первый раз Вы не поймёте много, но понятное будет полезно. А дальше Вам станет ясно, какие знания следует прокачать.