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

Недавно успешно завалил собеседование на вакансию фронтэнд разработчик. Меня программист сначала загрузил реализацией map и reduce, а потом вообще вопросы по функциональщине стал задавать и я поплыл. Тем не менее кодер который проводил собеседование дал "хороший" совет "Прочти структуру и интерпретацию компьютерных программ" если поймёшь хотя бы 50 страниц - поговорим снова". Скачал, бегло просмотрел и сейчас в недоумении - каким боком нужна вся эта математика и алгоритмы во фронтенде? Зачем это это надо при разработке сайтов? В чём польза?
ps: может программист решил постебаться таким образом?
  • Вопрос задан
  • 1390 просмотров
Решения вопроса 1
По порядку:

каким боком нужна вся эта математика и алгоритмы во фронтенде?


На начальном и зачастую даже среднем уровне - никаким. На более высоком понадобится понимание алгоритмов, потому что постоянно придется строить многоходовки.

Зачем это это надо при разработке сайтов? В чём польза?


Практически ни в чем. Тем более, что книжка довольно старая. Не то, чтобы это сказалось на ее качестве, но, скажем так, появились другие задачи.

ps: может программист решил постебаться таким образом?


Вряд ли. Скорее он чистосердечный и искренний новичок в бизнесе и собеседованиях. Так бывает, когда люди придают своим представлениям слишком большое значение.

На собеседованиях часто задают вопросы об алгоритмах. Вот книжки, которые мне представляются хорошими:
- Бхаргава А. Грокаем Алгоритмы.
- Р. Седжвик. Фундаментальные алгоритмы на C++
Это вопрос личных предпочтений, не более. На главном нашем трекере таких книг много. Я считаю, что лучше читать современную литературу и обращаться к классике по мере возникновения экзистенциальных вопросов, не чаще, - жизнь коротка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@asd111
Такие вопросы задают неадекваты. sicp довольно общая книга, можно не читать. Даже в MIT эту книгу больше не читают. https://habrahabr.ru/post/282986/
Не обращай внимания на такие собеседования, неадекваты на собеседованиях большая редкость.
В целом вопросы на собеседовании соответсвуют тому что указано в вакансии.
Если спрашивают дичь, которая не имеет отношения к твоим обязанностям, значит коллектив так себе и заставят писать фронтенд на лиспе или что то в таком духе.
Ответ написан
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
SICP учит думать по-программерски. Учит находить решения в программерском мире. Есть огромная разница между программистом знающим как использовать фреймворк1, фреймворк2, ..., фреймворкN и другим программистом, который может даже и не знать как использовать эти фреймворки, но сможет отличить что вон тот код очень похож на работу за O(n) , а вон тот вроде как за O(1) и сможет сделать более правильный выбор. Грубо говоря есть некий базис, который одному позволяет создавать решения более стабильные, более эффективные, а другому из-за не хватки приходится городить костыли.

К примеру общеизвестная задачка на программирование "банерокрутилка". Когда имеется банер1, банер2, ..., банерN и нужно вывести "псевдослучайно" каждый банер по одному разу. Один программер может применить массив и указвать в нем какие номера он уже выводил, а другой применит математику и при этом решение будет одно проходным и не потребует выделения массива. И таких задачек в программировании хватает!
Ответ написан
batyrmastyr
@batyrmastyr
каким боком нужна вся эта математика и алгоритмы во фронтенде?

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

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

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

Войти через TM ID
Похожие вопросы
19 авг. 2018, в 00:49
600 руб./в час
18 авг. 2018, в 17:54
6000 руб./за проект
18 авг. 2018, в 16:00
60000 руб./за проект