Кнут — «Искусство программирования», как осилить?

Добрый день! Небольшой отступ: имею опыт в веб-верстке более 6 лет, после начал изучать javascript, после перешел на jquery (уж больно нравится селекторы в нем), после был год практики на php, после чего заменил его на python, так и продолжаю уже третий год заниматься веб-разработкой на питоне. Суть данного сабжа вот в чем- мне бы хотелось опробовать освоить в свободного время труды Кнута, но проблема в том, что я туп на точные науки, в школе и среднем заведение я не любил не математику, не алгебру, не геометрию и тд, сейчас, наверное, и в столбик-то не смогу посчитать, настолько я бездарный в этом плане, однако, сама и математика не была нужна как-то (хотя, было пару моментов, когда б она очень пригодилась). Насколько я понимаю: труды Кнута изучать без знаний математике- глупо, по сему вопрос- можете посоветовать с чего начать? хоть с учебников от 5 класса по математике и дальше по годам. Имеется интерес подтянуть знания в этой области, вот только на сегодняшний момент этих учебников пруд пруди, как бы на лишнее не наткнуться... Заранее благодарен за советы)
  • Вопрос задан
  • 17323 просмотра
Пригласить эксперта
Ответы на вопрос 6
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Да как же это смешно... Звучит примерно так: имеется интерес освоить хирургию, да только я туп на анатомию и биологию, да и руки кривые, ещё и дрожат. Если не в ладах с математикой, то Кнут не поможет. И вообще, веб-программирование так же относиться к математике, как балет к кулинарии. Сидите смирно и не парьтесь на этот счёт, вероятность того, что Кнут вам чем-то поможет в работе исчезающе мала, тогда как навредить он может на раз-два: можно запросто поймать себя на создании велосипедов.

Впрочем, варианты есть. Первое, что надо осознать - это дискретная математика. Начинается с арифметики, но вполне можно освоить её параллельно. Тут подойдёт что угодно, хоть учебник за первый-второй курс почти любой технической специальности. Алсо, у самого Кнута есть КонКретная математика. Вполне себе годная писанина, правда для того чтобы проще читалось таки надо иметь хотя бы базовые понятия из дискретной математики: поля с кольцами, да пару свойств. Глубоко копать не стоит. И если что, я предупреждал.

Впрочем, вместо кнута рекомендую Кормена. Очень даже вещь в себе: её читают как на первом курсе, так и диссертации по ней пишут. И читается проще, и зубодробительной математики в ней нет.
Ответ написан
@GreenElephant
Тоже задавался подобными вопросами. И здесь в том числе. В итоге решил проблему просто - поднял свою ленивую пятую точку с дивана, и перестал задавать глупые вопросы. А начал действовать. Нашел отличного репетитора, который мне накидал примерный списочек:
1. 2-3 аля "дискретная математика для программистов". 2 точно знаю, третью не нашел :) Советую начать с автора Хагарди, доступно излагает.
2. Параллельно с этим раскуриваем "дискретная математика, графы, матроиды"
3. Посыпаем все это книгой "структуры данных и алгоритмы" Никлауса Вирта.
4. Далее можно накидывать важную книгу Кнута - конкретная математика.
5. Потом уже можно потихоньку начинать читать Искусство Программирования.

Собственно я такому курсу и придерживаюсь, только помимо книжек из 1 пункта, я еще накинул замечательный курс на степике по дисктерным структурам - ссылочка Там же есть курс введение в матанализ.
Ну а Вам, коллега, могу еще порекомендовать в качестве разминки школьные книги по математике автор которых - Виленкин. У него еще есть книга "Популярная комбинаторика", что тоже будет полезным. Вообще школьный курс нагоняется учебниками с 5 по 11 класс. От корки до корки вдумчивое чтение с последующим решением задач. Как-то так.
Еще полезным будет почитать о мат индукции и как решают нестандартные задачи
Ответ написан
@asd111
Не нужно осиливать Кнута — это справочник. Возьмите самую маленькую книжку по алгоритмам и хватит вам.
Ответ написан
Комментировать
thestump
@thestump
программист PHP
Начни с первой страницы и продолжай до тех пор пока не закончишь том. После завершения первого тома переходи ко второму. Дальше сможешь такой простой алгоритм составить самостоятельно.
Ответ написан
Комментировать
@Gems
Вот тут интерактивный курс математики. Наверняка есть еще в сети материалы.

Кнута читать не надо, лучше Сейджвика. Вам нужно с самых азов алгоримтизации начинать. В учебниках информатики должно быть. Рекомендую также этот материал.

Бумажные учебники - да, вариант. Выкидывают часто и оставляют во всяких пунктах для раздачи книг.
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Думаю без систематического образования вы споткнетесь на второй главе Кнута. Систематическое образование - это годы труда.
Инженер с хорошей алгоритмической подготовкой должен быть способен объяснить, что такое 'relaxed red black b-tree', зачем они нужны и как их готовить неотстающему школьнику.
Просто поработайте над серьезными проектами, в сильной команде с хорошим лидом(если повезет). Классические алгоритмы и структуры данных очень даже постигаемы без высшей математики. Здравого смысла и смекалки вполне достаточно. Математическая подготовка необходима лидам и архитекторам(проект серьезней домашней веб страницы не обходится без алгоритмической оптимизации), разработчикам она только желательна.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы