Есть ли практическая польза от книги sicp?

Недавно успешно завалил собеседование на вакансию фронтэнд разработчик. Меня программист сначала загрузил реализацией map и reduce, а потом вообще вопросы по функциональщине стал задавать и я поплыл. Тем не менее кодер который проводил собеседование дал "хороший" совет "Прочти структуру и интерпретацию компьютерных программ" если поймёшь хотя бы 50 страниц - поговорим снова". Скачал, бегло просмотрел и сейчас в недоумении - каким боком нужна вся эта математика и алгоритмы во фронтенде? Зачем это это надо при разработке сайтов? В чём польза?
ps: может программист решил постебаться таким образом?
  • Вопрос задан
  • 4543 просмотра
Пригласить эксперта
Ответы на вопрос 5
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
SICP учит думать по-программерски. Учит находить решения в программерском мире. Есть огромная разница между программистом знающим как использовать фреймворк1, фреймворк2, ..., фреймворкN и другим программистом, который может даже и не знать как использовать эти фреймворки, но сможет отличить что вон тот код очень похож на работу за O(n) , а вон тот вроде как за O(1) и сможет сделать более правильный выбор. Грубо говоря есть некий базис, который одному позволяет создавать решения более стабильные, более эффективные, а другому из-за не хватки приходится городить костыли.

К примеру общеизвестная задачка на программирование "банерокрутилка". Когда имеется банер1, банер2, ..., банерN и нужно вывести "псевдослучайно" каждый банер по одному разу. Один программер может применить массив и указвать в нем какие номера он уже выводил, а другой применит математику и при этом решение будет одно проходным и не потребует выделения массива. И таких задачек в программировании хватает!
Ответ написан
@asd111
Такие вопросы задают неадекваты. sicp довольно общая книга, можно не читать. Даже в MIT эту книгу больше не читают. https://habrahabr.ru/post/282986/
Не обращай внимания на такие собеседования, неадекваты на собеседованиях большая редкость.
В целом вопросы на собеседовании соответсвуют тому что указано в вакансии.
Если спрашивают дичь, которая не имеет отношения к твоим обязанностям, значит коллектив так себе и заставят писать фронтенд на лиспе или что то в таком духе.
Ответ написан
batyrmastyr
@batyrmastyr
каким боком нужна вся эта математика и алгоритмы во фронтенде?

Многие инженерные специальности опираются на математику, как на фундамент. Одним из базовых навыков для программиста (который инженер, а не специально обученная обезьяна) является умение оценить вычислительную сложность программы и написать эффективный алгоритм. Из-за медлительности яваскрипта и операций с DOM, а также разбухания объёма клиентского кода вопрос эффективности стоит очень остро.
Вместо sicp можно взять любую другую книгу развивающую мышление + дающую понимание «сколько эта операция будет стоит» - хоть «Искусство программирования» Кнута, хоть «Алгоритмы и структуры данных» Вирта, хоть «Структуры данных и алгоритмы» Ахо, Ульмана и Хопкрофта, хоть кого другого.

Вот несколько примеров, что случается если не оценивать сложность, а то и вовсе «сперва кодить, потом думать»:
24-ядерный CPU, а я не могу сдвинуть курсор,
Один разработчик чуть не «сломал» пакетный менеджер NPM,
Facebook и Google выпустили Yarn, новый менеджер п... (npm писали клинические дебилы - грузить десятки раз один и тот же пакет!),
Ещё на новый год многие любят повесить на сайт падающий снег и почти у всех он отжирает целое ядро процессора, в каждой открытой вкладке, Карл! 8 вкладок и у тебя висит даже Core i7. Но если настольные компы просто подвисают, то ноутбуки и телефоны ещё и аккумы разряжают со страшной скоростью.
Ответ написан
Комментировать
@artemt
Full-stack developer
Судя по собеседованию, полезней будет прочитать "Функциональное программирование на JavaScript"
Ответ написан
Комментировать
Это он так зачмырил
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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