Задать вопрос

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

Добрый день! Небольшой отступ: имею опыт в веб-верстке более 6 лет, после начал изучать javascript, после перешел на jquery (уж больно нравится селекторы в нем), после был год практики на php, после чего заменил его на python, так и продолжаю уже третий год заниматься веб-разработкой на питоне. Суть данного сабжа вот в чем- мне бы хотелось опробовать освоить в свободного время труды Кнута, но проблема в том, что я туп на точные науки, в школе и среднем заведение я не любил не математику, не алгебру, не геометрию и тд, сейчас, наверное, и в столбик-то не смогу посчитать, настолько я бездарный в этом плане, однако, сама и математика не была нужна как-то (хотя, было пару моментов, когда б она очень пригодилась). Насколько я понимаю: труды Кнута изучать без знаний математике- глупо, по сему вопрос- можете посоветовать с чего начать? хоть с учебников от 5 класса по математике и дальше по годам. Имеется интерес подтянуть знания в этой области, вот только на сегодняшний момент этих учебников пруд пруди, как бы на лишнее не наткнуться... Заранее благодарен за советы)
  • Вопрос задан
  • 20239 просмотров
Подписаться 7 Сложный 1 комментарий
Пригласить эксперта
Ответы на вопрос 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', зачем они нужны и как их готовить неотстающему школьнику.
Просто поработайте над серьезными проектами, в сильной команде с хорошим лидом(если повезет). Классические алгоритмы и структуры данных очень даже постигаемы без высшей математики. Здравого смысла и смекалки вполне достаточно. Математическая подготовка необходима лидам и архитекторам(проект серьезней домашней веб страницы не обходится без алгоритмической оптимизации), разработчикам она только желательна.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы