Не на Clojure, нет. Это было собеседование по Хаскелю. Ну, немножко родственные языки, так что вполне возможно, что интервьювер черпал вдохновение из SICPа. Да, у меня тоже было ощущение, что он жестит. Наверное было много желающих на эту позицию.
Дюна не даром считается невероятно сложной по экранизации книгой. И все попытки экранизации обречены на провал в той или иной степени. Вот Тарковский бы смог экранизировать! Он, с высоты своего величия и со свойственной ему манерой, забил бы на содержание книги, и как обычно стал бы экранизировать Достоевского. Пол Атрейдес делил бы с бароном Харконеном Настасью Филипповну, а межгалактический навигатор Аркадий Иванович Свидригайлов говорил бы, что полёт со сверхсветовой скоростью похож на баньку с тараканами, и что ему надо срочно улететь в Америку. А Герцог Лето вопрошал бы «Если Шаи-Хулуда нет, то всё позволено!?» В прокате бы фильм, конечно, провалился, но критики утопили бы картину в любви и обожании, завалив призами всех кинофестивалей мира.
Компилятор действительно за 1 час не напишешь. А небольшой интерпретатор вполне можно. Мне на одном интервью дали такое задание. Я где то за пол часа написал интерпретатор, но потом меня попросили дополнить интерпретатор обработчиком ошибок, и вот это я уже не осилил за отведённое время. В итоге мне отказали (на самом деле я подозреваю, что им просто не понравился уровень моего английского языка)
Рассуждений на тему что такое ООП и ФП уже довольно много. А вот чего не хватает, так это описания какая парадигма к каким задавал лучше подходит. Всё же язык и парадигма это инструмент. А всякий инструмент хорошо справляется со своими задачами и не очень хорошо с другими.
Вот например ООП - для каких задач оно хорошо?
GUI - просто идеально! Если надо реализовывать GUI, то лучше ООП наверное ничего не существует. Как будто этот инструмент создан именно под эту задачу.
Игры - тоже очень хорошо. Игровой мир хорошо описывается с помощью ООП. Возможно это так, потому что в момент бурного развития игровой индустрии игры делали такими, чтобы их легко было реализовывать с помощью ООП. Есть такое ощущение, что в данном случае не инструмент подгоняли под задачу, а задачу под инструмент. Но как бы то ни было для описания игровых миров ООП удобно.
А вот все остальные задачи как то не очень. Для бэкэнда ООП паршиво - куча костыльных шаблонов проектирования тому подтверждение. Для фронта лучше, т.к. фронт это во многом GUI, там где начинается логика все уже не так хорошо.
Наверное многие со мной не согласятся. Многие скажут - а вот я пишу бэк на ООП и у меня все отлично, что я делаю не так? И разумеется если у человека все отлично, то он все делает так. Я всего лишь высказал свое мнение, как я вижу, для каких задач ООП отлично подходит, а для каких не очень.
Это самое универсальное объяснение работнику, почему его всё ещё не повышают: Да, Olku, ты хороший специалист, и твоя компетенция не вызывает сомнения, но тебе нужно больше ответственности!
При этом что это за ответственность такая не знает никто. Но объяснение работает на отлично. Работник уходит ковыряться в себе и изыскивать способ изменить себя, чтобы избавиться от фантомных недостатков, а босс потирает руки, довольный тем, что ещё один лопух купился на этот фокус.
В радуге сколько угодно много цветов. Но когда Ньютон разложил солнечный свет с помощью призмы в спектр, он насчитал семь, ну немного исхитрился в подсчёте, чтобы цветов получилось ровно семь. Семь нот, семь планет (тогда было известно столько), ну и цветов по мнению Ньютона, очевидно тоже должно было быть семь.
У родителей жены дом в деревне, они туда как на дачу приезжают, но многие соседи живут в той деревне постоянно. Так у них соседка майнингом отапливается. Майнит она козье молоко. Как отапливает? Да просто - зимой она своих коз в избу загоняет, чтобы они не померзли, ну а они уже теплом своих тел неплохо так греют помещение. Намайненую крипту продает по соседям и периодически ездит на автобусе до ближайшего рынка, чтобы продать там. И никакие криптобиржи не нужны, удобно!
А ещё можно лица актеров адаптировать к более привычным для регионального зрителя. Для нашего зрителя, например заменять в дублированных фильмах всех исполнителей главной мужской роли на Петрова, а всех главных женских героинь на Елизавету Боярскую. Ну классно же будет!
Да, несомненно зависит. Если вам за регулярную задержку допозна предложат такую компенсацию, которая позволит всю дальнейшую жизнь не работать, ну например предложат крупный пакет акций компании, то имеет смысл задержаться. А если же вознаграждение представлет из себя "перспективы роста", то это старый добрый лохотрон.
Как известно, каноническая форма любого уравнения это f(x) = 0. Здесь неявно предполагается, что число 0 входит в область опредения функции f(x), что в общем виде не так, более того эта функция вообще может быть определена не на числовом множестве. Тогда можно записать уравнение в другом виде f(x) = x. Это более универсальная форма, т.к. даже если нуля в области определения нет, то хоть какой то x уж точно существует)).
При этом можно заметить, что если f(x) = x, то f(f(x))=x и вообще f(f(f(...(x)...)))= x. Поэтому точка x называется неподвижной точной (fixed point), т.к. применение к ней функции f не изменяет саму x. А значит рекурсивное применение функции f самой к себе автоматически находит решение уравнения f(x)=x (либо не находит - т.к. в численных методах задача либо сходится, либо расходится))).
Как с помощью этого вычислить квадратный корень? По определению квадратный корень числа a это такое x, что x^2=a и x>=0. Запишем x^2=a в виде f(x) = x. f(x) = a/x = x. Стартуем от любой точки, например 1 и рекурсивно применяем f(x) к самой себе и... В результате выходит бесконечный цикл, в котором два значения x1=1 и x2=2 повторяются, прыгая вокруг правильного ответа. Решение расходится, печаль, бывает.
Но очевидно, что правильный ответ находится между x1 и x2, поэтому перепишем f(x) в таком виде f(x)=(x + a/x)/2. Видно, что f(sqrt(a))=sqrt(a), значит такая форма записи тоже удовлетворяет условию задачи. Попробуйте теперь рекурсивно вызывать f(x)=(x + a/x)/2, начиная с любого положительного x - сами увидите, что задача сходится очень быстро.
Я в эксельке накидал для наглядности. Уже на 4й итерации получился ответ с максимально возможной точностью:
К тому же в отличии от формулы Тейлора этот метод не накапливает ошибку вичислений. Т.к. каждый раз на вход f поступает неточное значение неподвижной точки x, и каждый раз f вычисляет её чуть точнее, тем самым автоматически подавляя ошибку.
Не сразу понял о чём идёт речь. Думал что используется метод неподвижной точки f(x) = x. И удивился, разве можно найти синус и косинус таким образом? Корень то легко, а вот тригономертические функции как!? Потом понял, что речь идёт про формат записи числа.
Такой подход был актуален в XVII-XIX веках, когда в университетах училось только аристократическое дворянство и по окончанию обучения они автоматически становились выражаясь современным языком топ менеджерами. Работа топ менеджера это как правило проектная деятельность с большим горизонтом планирования и высокой степенью личной ответственности.
Например государь ставит такому человеку задачу построить линию железной дороги от Рязани до Воронежа - вот тебе карта с указанием мартшрута и станций, вот тебе вагон денег на это предприятие, раз в пол года будешь отчитываться о том, как идёт строительство и получать следующую порцию инвестиций. И это похоже на семестр в вузе -пол года человека никто не контролирует, он предоставлен самому себе, но через пол года необходимо, чтобы были построены сколько то километров путей, сколочены пару деревянных полустанков с будками для полицмейстрера, заложен фундамент под строительство крупных станций и т.п.
А работа современного линейного персонала совсем другая, она больше похожа на школу - есть таск трекер в который выставляются задачи на пару дней вперед, так же как и в школе задается домашка. И выполнение этой "домашки" тщательно проверяется, при code review, например. Вовсе не как в вузе, гораздо ближе к школе. Даже скрам и аджайл оперирует коротким временем планирования - не по пол года, как в вузе, а по story point'ами, которые как правило меньше дня. И это взрослая жизнь! Самая что ни на есть настоящая взрослая жизнь сегодняшней реальности. Ну а вузы отстают от реальности на пару столетий, как обычно)) Вузы продолжают делать вид, что на дворе XIX век и готовят человека к жизни в то, а не в настоящее время. А в настоящем времени никто не берет выпускника вуза сразу в начальники, как это было в XIX веке. Сейчас выпускников берут на самые низкие позиции. И 99% выпускников никогда не будут топами, а тот 1%, которые станут, станут нескоро, у них ещё будет время выработать самостоятельную ответсвенность на длительном временном интервале без постоянного контроля со стороны.
Тем более, что согласно современным представлениям о человеческом мозге, отделы мозга, которые отвечают за принятие долгосрочных решений формируются только к 25 годам! У 18 летнего студента этот отдел мозга ещё не до конца сформирован. А в вузе требуют от него то, что он пока ещё не может сделать в силу физиологических факторов! А в 25 лет для него эта отвественность в плане принятия долгосрочных решений будет чем то само собой разумеющимся. Ему для даже усилий прилагать не надо будет, такие вещи будут получаться сами по себе!
По моему все это как минимум должно заставить задуматься, о том, что что-то не так и проблема есть. А вы пишите, что это личные проблемы тех, кто пришёл в вуз с сознанием школьника. Да это проблема студентов, и если вузу начхать на проблему студентов, то это вопрос в первую очередь к вузу.
Вы прослушали рассуждения, относящиеся к философскому направлению теологическая схоластика. Наиболее яркий представитель Фома Аквинский со своим трудом "Summa Theologica".
Впоследствии это направление было подвержено критике такими философами как Иммануил Кант и Дэвид Юм.
Опять таки не для всех. Все люди разные. Кого то кнут хорошо мотивирует, кто то больше предпочитает пряник. И то, что часть людей отчисляют, свидетельствует о том, что проблема существует. Глупо отрицать очевидное.
ВУЗ изначально инструмент обучения тех, кто желает учиться.
Но есть проблема. Человек желает учиться, но требуется постоянный контроль со стороны. Как в школе, например. И если существующие вузы эту проблему закрыть не могут, значит есть востребованность в другом вузе, который эту проблему решит.
Да, они самые. Такой старый колхозный сленг советского периода.
Скрытый текст
Хорошая статья. Непонятно только почему вы её написали не от собственного имени, а от блога трактористов?
Не на Clojure, нет. Это было собеседование по Хаскелю. Ну, немножко родственные языки, так что вполне возможно, что интервьювер черпал вдохновение из SICPа. Да, у меня тоже было ощущение, что он жестит. Наверное было много желающих на эту позицию.
Дюна не даром считается невероятно сложной по экранизации книгой. И все попытки экранизации обречены на провал в той или иной степени. Вот Тарковский бы смог экранизировать! Он, с высоты своего величия и со свойственной ему манерой, забил бы на содержание книги, и как обычно стал бы экранизировать Достоевского. Пол Атрейдес делил бы с бароном Харконеном Настасью Филипповну, а межгалактический навигатор Аркадий Иванович Свидригайлов говорил бы, что полёт со сверхсветовой скоростью похож на баньку с тараканами, и что ему надо срочно улететь в Америку. А Герцог Лето вопрошал бы «Если Шаи-Хулуда нет, то всё позволено!?» В прокате бы фильм, конечно, провалился, но критики утопили бы картину в любви и обожании, завалив призами всех кинофестивалей мира.
Компилятор действительно за 1 час не напишешь. А небольшой интерпретатор вполне можно. Мне на одном интервью дали такое задание. Я где то за пол часа написал интерпретатор, но потом меня попросили дополнить интерпретатор обработчиком ошибок, и вот это я уже не осилил за отведённое время. В итоге мне отказали (на самом деле я подозреваю, что им просто не понравился уровень моего английского языка)
Рассуждений на тему что такое ООП и ФП уже довольно много. А вот чего не хватает, так это описания какая парадигма к каким задавал лучше подходит. Всё же язык и парадигма это инструмент. А всякий инструмент хорошо справляется со своими задачами и не очень хорошо с другими.
Вот например ООП - для каких задач оно хорошо?
GUI - просто идеально! Если надо реализовывать GUI, то лучше ООП наверное ничего не существует. Как будто этот инструмент создан именно под эту задачу.
Игры - тоже очень хорошо. Игровой мир хорошо описывается с помощью ООП. Возможно это так, потому что в момент бурного развития игровой индустрии игры делали такими, чтобы их легко было реализовывать с помощью ООП. Есть такое ощущение, что в данном случае не инструмент подгоняли под задачу, а задачу под инструмент. Но как бы то ни было для описания игровых миров ООП удобно.
А вот все остальные задачи как то не очень. Для бэкэнда ООП паршиво - куча костыльных шаблонов проектирования тому подтверждение. Для фронта лучше, т.к. фронт это во многом GUI, там где начинается логика все уже не так хорошо.
Наверное многие со мной не согласятся. Многие скажут - а вот я пишу бэк на ООП и у меня все отлично, что я делаю не так? И разумеется если у человека все отлично, то он все делает так. Я всего лишь высказал свое мнение, как я вижу, для каких задач ООП отлично подходит, а для каких не очень.
Это самое универсальное объяснение работнику, почему его всё ещё не повышают: Да, Olku, ты хороший специалист, и твоя компетенция не вызывает сомнения, но тебе нужно больше ответственности!
При этом что это за ответственность такая не знает никто. Но объяснение работает на отлично. Работник уходит ковыряться в себе и изыскивать способ изменить себя, чтобы избавиться от фантомных недостатков, а босс потирает руки, довольный тем, что ещё один лопух купился на этот фокус.
В радуге сколько угодно много цветов. Но когда Ньютон разложил солнечный свет с помощью призмы в спектр, он насчитал семь, ну немного исхитрился в подсчёте, чтобы цветов получилось ровно семь. Семь нот, семь планет (тогда было известно столько), ну и цветов по мнению Ньютона, очевидно тоже должно было быть семь.
У родителей жены дом в деревне, они туда как на дачу приезжают, но многие соседи живут в той деревне постоянно. Так у них соседка майнингом отапливается. Майнит она козье молоко. Как отапливает? Да просто - зимой она своих коз в избу загоняет, чтобы они не померзли, ну а они уже теплом своих тел неплохо так греют помещение. Намайненую крипту продает по соседям и периодически ездит на автобусе до ближайшего рынка, чтобы продать там. И никакие криптобиржи не нужны, удобно!
А ещё можно лица актеров адаптировать к более привычным для регионального зрителя. Для нашего зрителя, например заменять в дублированных фильмах всех исполнителей главной мужской роли на Петрова, а всех главных женских героинь на Елизавету Боярскую. Ну классно же будет!
Да, несомненно зависит. Если вам за регулярную задержку допозна предложат такую компенсацию, которая позволит всю дальнейшую жизнь не работать, ну например предложат крупный пакет акций компании, то имеет смысл задержаться. А если же вознаграждение представлет из себя "перспективы роста", то это старый добрый лохотрон.
Как известно, каноническая форма любого уравнения это f(x) = 0. Здесь неявно предполагается, что число 0 входит в область опредения функции f(x), что в общем виде не так, более того эта функция вообще может быть определена не на числовом множестве. Тогда можно записать уравнение в другом виде f(x) = x. Это более универсальная форма, т.к. даже если нуля в области определения нет, то хоть какой то x уж точно существует)).
При этом можно заметить, что если f(x) = x, то f(f(x))=x и вообще f(f(f(...(x)...)))= x. Поэтому точка x называется неподвижной точной (fixed point), т.к. применение к ней функции f не изменяет саму x. А значит рекурсивное применение функции f самой к себе автоматически находит решение уравнения f(x)=x (либо не находит - т.к. в численных методах задача либо сходится, либо расходится))).
Как с помощью этого вычислить квадратный корень? По определению квадратный корень числа a это такое x, что x^2=a и x>=0. Запишем x^2=a в виде f(x) = x. f(x) = a/x = x. Стартуем от любой точки, например 1 и рекурсивно применяем f(x) к самой себе и... В результате выходит бесконечный цикл, в котором два значения x1=1 и x2=2 повторяются, прыгая вокруг правильного ответа. Решение расходится, печаль, бывает.
Но очевидно, что правильный ответ находится между x1 и x2, поэтому перепишем f(x) в таком виде f(x)=(x + a/x)/2. Видно, что f(sqrt(a))=sqrt(a), значит такая форма записи тоже удовлетворяет условию задачи. Попробуйте теперь рекурсивно вызывать f(x)=(x + a/x)/2, начиная с любого положительного x - сами увидите, что задача сходится очень быстро.
Я в эксельке накидал для наглядности. Уже на 4й итерации получился ответ с максимально возможной точностью:
К тому же в отличии от формулы Тейлора этот метод не накапливает ошибку вичислений. Т.к. каждый раз на вход f поступает неточное значение неподвижной точки x, и каждый раз f вычисляет её чуть точнее, тем самым автоматически подавляя ошибку.
Не сразу понял о чём идёт речь. Думал что используется метод неподвижной точки f(x) = x. И удивился, разве можно найти синус и косинус таким образом? Корень то легко, а вот тригономертические функции как!? Потом понял, что речь идёт про формат записи числа.
Такой подход был актуален в XVII-XIX веках, когда в университетах училось только аристократическое дворянство и по окончанию обучения они автоматически становились выражаясь современным языком топ менеджерами. Работа топ менеджера это как правило проектная деятельность с большим горизонтом планирования и высокой степенью личной ответственности.
Например государь ставит такому человеку задачу построить линию железной дороги от Рязани до Воронежа - вот тебе карта с указанием мартшрута и станций, вот тебе вагон денег на это предприятие, раз в пол года будешь отчитываться о том, как идёт строительство и получать следующую порцию инвестиций. И это похоже на семестр в вузе -пол года человека никто не контролирует, он предоставлен самому себе, но через пол года необходимо, чтобы были построены сколько то километров путей, сколочены пару деревянных полустанков с будками для полицмейстрера, заложен фундамент под строительство крупных станций и т.п.
А работа современного линейного персонала совсем другая, она больше похожа на школу - есть таск трекер в который выставляются задачи на пару дней вперед, так же как и в школе задается домашка. И выполнение этой "домашки" тщательно проверяется, при code review, например. Вовсе не как в вузе, гораздо ближе к школе. Даже скрам и аджайл оперирует коротким временем планирования - не по пол года, как в вузе, а по story point'ами, которые как правило меньше дня. И это взрослая жизнь! Самая что ни на есть настоящая взрослая жизнь сегодняшней реальности. Ну а вузы отстают от реальности на пару столетий, как обычно)) Вузы продолжают делать вид, что на дворе XIX век и готовят человека к жизни в то, а не в настоящее время. А в настоящем времени никто не берет выпускника вуза сразу в начальники, как это было в XIX веке. Сейчас выпускников берут на самые низкие позиции. И 99% выпускников никогда не будут топами, а тот 1%, которые станут, станут нескоро, у них ещё будет время выработать самостоятельную ответсвенность на длительном временном интервале без постоянного контроля со стороны.
Тем более, что согласно современным представлениям о человеческом мозге, отделы мозга, которые отвечают за принятие долгосрочных решений формируются только к 25 годам! У 18 летнего студента этот отдел мозга ещё не до конца сформирован. А в вузе требуют от него то, что он пока ещё не может сделать в силу физиологических факторов! А в 25 лет для него эта отвественность в плане принятия долгосрочных решений будет чем то само собой разумеющимся. Ему для даже усилий прилагать не надо будет, такие вещи будут получаться сами по себе!
По моему все это как минимум должно заставить задуматься, о том, что что-то не так и проблема есть. А вы пишите, что это личные проблемы тех, кто пришёл в вуз с сознанием школьника. Да это проблема студентов, и если вузу начхать на проблему студентов, то это вопрос в первую очередь к вузу.
«Да и кто из вас, заботясь, может прибавить себе росту хотя на один локоть?» (Матф. 6: 27)
Вы прослушали рассуждения, относящиеся к философскому направлению теологическая схоластика. Наиболее яркий представитель Фома Аквинский со своим трудом "Summa Theologica".
Впоследствии это направление было подвержено критике такими философами как Иммануил Кант и Дэвид Юм.
Опять таки не для всех. Все люди разные. Кого то кнут хорошо мотивирует, кто то больше предпочитает пряник. И то, что часть людей отчисляют, свидетельствует о том, что проблема существует. Глупо отрицать очевидное.
Но есть проблема. Человек желает учиться, но требуется постоянный контроль со стороны. Как в школе, например. И если существующие вузы эту проблему закрыть не могут, значит есть востребованность в другом вузе, который эту проблему решит.
Странный вопрос. Разные задачи выполнять можно по-разному, а не грести всех людей под одну гребёнку.
Как в древнем баяне 20 летней давности: Тебе плохо? Ты одинок? Нет денег? Не знаешь что делать? Не расстраивайся, просто ты неудачник.