В каких задачах по веб-разработке вам требовались знания алгоритмов?
Как ни пытался вникнуть в суть алгоритмов из книг Кормена, Вирта и др. авторов, так ничего и не получилось. Максимум могу понять суть рекурсии и типы сортировок. Видимо, не стать мне профессиональным программистом) Но веб-разработкой могу заниматься вполне сносно - по моим прикидкам, 90% задач мне вполне посильны. С шаблонами проектирования особых проблем нет - могу понять и воспроизвести.
Соответственно, вопрос - в каких задачах по веб-деву вам требовалось знание алгоритмов из вышеупомянутых книг? Спрашиваю, что бы не соваться туда куда не надо)
Разумеется обычно никто их не пишет (есть готовые протестированные библиотеки), но знать что эти алгоритмы есть необходимо. И разобрать их тоже необходимо.
Проведу очень отделенную аналогию. Вы обычный охранник, и ваш коллега Вася тоже охранник. Вы делаете одно и тоже, стоите и наблюдаете. Но зарплата у Васи больше. Почему такая несправедливость? Ведь вы делаете все одинаково. Но в свободное от работы время Вася ходит в спортзал и в тир. И в случае ЧП Вася будет более подготовлен. За это его и ценят.
Ну так вот, "покачка тела" ни у кого не вызывает сомнений. Её легко формализировать, пощупать. Но "прокачка мозга" точно так же существует. И тщательный разбор книг условного Вирта даст вам именно это. И хоть вы не сможете увидеть увеличившийся вес на штанге, следующую книгу вы поймете быстрее.
Знание алгоритмов требуется в первую очередь в бек-энд разработке. При этом писать новый алгоритм придётся не то что бы часто. Довольно часто приходится просто делать выбор, например какую структуру данных использовать.
Если вам нужен конкретный пример. давайте возмём для примера сайт тостер. На сайте тостер зарегистрировано больше 25 тысяч пользователей, задано почти 100 тысяч вопросов, по 300 разным тегам. У каждого пользователя есть свой список тегов на которые он подписан. Предлагаю реализовать алгоритм генерирующий для пользователя страничку n в его ленте. (То есть выбирающий вопросы на которые пользователь подписан, с n * 20 по n * 20 + 20) Для этого соответственно определить как и с помощью каких структур данных будет хранится список вопросов.
Вот тут как раз широкий простор для применения алгоритмов из вышеупомянутых книг.ь
Единственное что, я пока что мало встречал людей действительно выучивших алгоритмы по вышеупомянутым книгам. Большинство всё же учится у преподавателей, а книги используют как вспомагательный материал.
Алгоритмы из этих книг это как шаблоны проектирования из GOF. Советы бест-практиса по решению общих задач. На деле же вам придется придумывать "свои" алгоритмы под конкретную задачу.
В фриланс-вебе и в обычном пхп-магазинном вебе вооообще никак. Вы это сами уже написали.
На хабре была статья по собеседование в Twitter и задачку про водопады или здания, что-то такое. Та задача называется что-то вроде "Задача разгрузки коммуникационных каналов". И является сферической задачей в вакууме, которыми занимаются вовсяких яндексах, фейсбуках, амазонах и прочее. Её решения нету в книгах. Она решается тупа мат-аппаратом вашего мозга и бреинштормом. Когда у вас 100500кк посетителей в день и простой в 2-3 часа наносит убытки в миллионы долларов.
2-3 часа? Вы заблуждаетесь. Тут минуты играют роль. Особенно в часы пик.
Работал в интернет магазине, не большом по меркам амазона. На уровне связного. Так в новогодние дни продаж, простой пары минут, слизывал десяток миллионов рублей. И это при посещалки на пиках в такие дни, всего около 20к уников в секунду.
Даже если не возникает задач связанных напрямую с алгоритмами, подобного рода знания необходимы для понимания каким образом функционируют встроенные в язык средства + программист должен решать любые возникающие задачи, в этом и заключается такое понятие как профессионализм. Например вам нужно будет написать элементарную рекомендательную систему либо не классическую сортировку каких либо сложных объектов... (как частные примеры)
Во всех. От веб-морды для работы с накопленными метеорологическими данными до 3D-интерфейса на webGLU.
Даже если веб-морда элементарная, серверная часть отнюдь не такая! Скажем, простая "панелька" для управления парой ШД занимает несколько строк кода html и жабоскрипта, а на сервере это с полторы тысячи сишных строк!
Crash: так алгоритмы и нужны для реализации логики работы чего угодно.
А уж сколько алгоритмов используется подчас в реализации системы конечных автоматов...
Попробуйте написать что-нибудь без использования библиотек и встроенных языковых функций, т.е. только синтаксическими средствами языка. Думаю придётся много чего подсмотреть в книгах упомянутых авторов)