Re[3]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 20.12.18 01:23
Оценка: +10
Здравствуйте, Тёмчик, Вы писали:

Тё>рокируй значения first и last без временной переменной...тут он стал двигаться в нужном направлении, но не догадался про XOR.


Артёмка, ты повторяешь понравившиеся тебе задачки из интернетов совершенно не понимая их смысла.

Тё>незнание XOR с битами — это мелкий недочёт на основном фоне.

"Недочёт", млять... К людям тебя нельзя подпускать.
XOR это хипстерский гиммик, за такое в продакшен коде положено бить лопатой и заставлять убрать ибо нехрен!
Спросить такое у кандидата можно только из категории "+0.5 балла если знает, полностью нейтрально если не знает".
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: ужасно тормозные программы
От: Lazy Bear Канада  
Дата: 21.12.18 04:18
Оценка: +2 -1 :)))
Здравствуйте, Тёмчик, Вы писали:

Тё>>>А потом не может развернуть строку за O(n).

В>>Это примерно никому не надо.

Тё>Вот из-за таких "программистов" мы имеем ужасно тормозные программы.


Зато разворачиватели строк спроектируют тебе такую write-only архитектуру, где всё будет ужасно тормозить, глючить и еще ужаснее поддерживаться и масштабироваться. Но вот строки там будут разворачиваться со свистом.
Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 19.12.18 20:07
Оценка: :))) :))
Коллеги, у вас бывало что gut feel совпал с результатом теста, в хорошем смысле? Т.е. при первом взгляде стало очевидно, что кандидат smart и потом он решил все важные подброшенные задачки. Задачки несложные, и в манипулировании битами пробел, но знает про Big O и правильно определил временную сложность и требования по памяти для предлагаемых им алгоритмов решения.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re: Когда gut feel совпал с результатом тестирования
От: Aquilaware  
Дата: 19.12.18 23:55
Оценка: 5 (2) +2
Здравствуйте, Тёмчик, Вы писали:

Тё>Коллеги, у вас бывало что gut feel совпал с результатом теста, в хорошем смысле?


Постоянно. Для интереса, я пробовал использовать два подхода к найму по отдельности:

  1. Простые и сложные формальные вопросы. Средняя продолжительность собеседования 50 минут
  2. Gut feel + простые формальные вопросы. Средняя продолжительность собеседования 25 минут

Результат пункта 2 феноменально положительный. Пункт 1 всегда в проигрыше. Не знаю почему, но для меня это работает так.
Отредактировано 19.12.2018 23:56 Aquilaware . Предыдущая версия .
Re[6]: Когда gut feel совпал с результатом тестирования
От: Sharov Россия  
Дата: 20.12.18 13:09
Оценка: :))) :)
Здравствуйте, CreatorCray, Вы писали:


Тё>>это знание полезно в Merkle Tree.

CC>Зачем там менять два значения местами именно через XOR?

Я про такие трюки слышал, что-то вроде "это будер быстрее на уровне процессора(транзистрово), чем обычное присвоение" (как-то так, не факт, что про xor).
А вообще в нагруженном коде, в critical path самое то для таких оптимизаций. Там где люди за нс бьются, типа гугла, амазона, фб и т.д.
Кодом людям нужно помогать!
Re[6]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 22:14
Оценка: :))) :)
Здравствуйте, Ватакуси, Вы писали:

Тё>>А потом не может развернуть строку за O(n).

В>Это примерно никому не надо.

Вот из-за таких "программистов" мы имеем ужасно тормозные программы.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[8]: ужасно тормозные программы
От: StandAlone  
Дата: 22.12.18 00:38
Оценка: 1 (1) :))
Здравствуйте, Lazy Bear, Вы писали:

LB>Зато разворачиватели строк спроектируют тебе такую write-only архитектуру, где всё будет ужасно тормозить, глючить и еще ужаснее поддерживаться и масштабироваться. Но вот строки там будут разворачиваться со свистом.


Со свистом? Скорее, вот так.
String.prototype.reverse = (src)=>MonkeySort(src).forEach().reduce().map().fold().concat()...youNameThatCoolTrendyFunctionMathod().


Как раз сейчас препарирую подобное крутое поделие с кучей звезд на гитхабе. Зажав нос, ныряю в самые глубины d3. Залежи дерьма, отложенного чукчами-нечитателями слой за слоем.
Re[4]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 01:47
Оценка: :)))
Здравствуйте, CreatorCray, Вы писали:

CC>Артёмка, ты повторяешь понравившиеся тебе задачки из интернетов совершенно не понимая их смысла.

Какой в них смысл кроме как проверить наличие мозга?

Тё>>незнание XOR с битами — это мелкий недочёт на основном фоне.

CC>"Недочёт", млять... К людям тебя нельзя подпускать.
CC>XOR это хипстерский гиммик, за такое в продакшен коде положено бить лопатой и заставлять убрать ибо нехрен!
Если у тебя сложности с такой простой операцией- это твоя проблема.

CC>Спросить такое у кандидата можно только из категории "+0.5 балла если знает, полностью нейтрально если не знает".

Ну почему же. Не знает XOR- это минус. На фоне остального- незначительный. Например, это знание полезно в Merkle Tree.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[7]: Когда gut feel совпал с результатом тестирования
От: CodeMonkey  
Дата: 20.12.18 16:22
Оценка: +3
Здравствуйте, Sharov, Вы писали:

S>Там где люди за нс бьются, типа гугла, амазона, фб и т.д.



Очередные новости из альтернативной реальности.
Re[5]: Когда gut feel совпал с результатом тестирования
От: Ватакуси Россия  
Дата: 20.12.18 21:18
Оценка: +3
В>>Если он толково всё рассказал, ответил на разные уточнения не путаясь в показания, то он на 99% понимает что к чему.
Тё>А потом не может развернуть строку за O(n).
Это примерно никому не надо.
Коо иу-то дзиман-о суру ё-ни наримас га...
Re[8]: ужасно тормозные программы
От: Ночной Смотрящий Россия  
Дата: 23.12.18 11:46
Оценка: +2 :)
Здравствуйте, Lazy Bear, Вы писали:

LB>Зато разворачиватели строк спроектируют тебе такую write-only архитектуру


Последнее время "архитектура" это одно из тех слов, при виде которых у меня рука тянется к маузеру. Уж лучше код вообще без намеков на структуру, нежели код с Архитектурой.
Буквально на той неделе прилетел код на проверку. О там архитектура, да! Ради 4 осмысленных примитивных строк, вызываемых ровно один раз, создан класс-стратегия, к нему привинчен отдельный интерфейс, а потом все это запихнуто в IoC контейнер.
Re[5]: Когда gut feel совпал с результатом тестирования
От: elmal  
Дата: 24.12.18 11:09
Оценка: +3
Здравствуйте, Тёмчик, Вы писали:

Тё>А потом не может развернуть строку за O(n).

Если соответствующий код является узким местом, то разворачивать в нем строку за O(n) — это охрененный удар по производительности. Перед исполнением высокооптимизированного кода данные должны быть максимально хорошо подготовлены, чтобы лишних операций не требовалось бы делать вообще. И нормальноая асимптотика будет только константа, в крайнем случае будет логарифм, связанный с тем, что тебе приходится еще и экономить память, потому придется жертвовать быстродействием в обмен на экономию памяти. И вообще, высокооптимизированный код — он не об алгоритмах. Он об оптимальном размещении данных. Соответственно строка должна быть уже развернута, она должна храниться именно в развернутом виде, если скорость важна. А как ты будешь ее разворачивать на этапе подготовки данных — в 99 процентов случаях пофиг, достаточно чтоб сложность разворота была бы полиномиальной. Ибо если это какая утилита преобразования данных из одного формата в другой, узким местом будут файловые операции и парсинг. По сравнению с которым любые обращения списка будут занимать доли процента. И в высокооптимизированном коде в узких местах никогда не будет структур типа связанного списка как минимум в классическом понимании. Ибо память сравнительно медленная, прыганье по случайным адресам означает что проц у тебя будет простаивать, дожидаясь пока подгрузятся данные из памяти и постоянно будет перетираться кеш. Потому если у тебя будет реально код, который должен быть быстрый, у тебя будет так называемый coalesce memory access.

И твой список вопросов, на основании которого ты пытаешься определить квалификацию программиста, говорит о том, что сам ты никогда не занимался тем, чтобы из железа выжать максимум. Скорее всего даже профайлер никогда в жизни не запускал. Ибо если бы хотя бы раз приходилось бы таким заниматься, список вопросов был бы ну совсем другой.
Re[3]: Когда gut feel совпал с результатом тестирования
От: Somescout  
Дата: 22.12.18 04:04
Оценка: 1 (1) :)
Здравствуйте, Тёмчик, Вы писали:

Тё> Тогда подкинул "а рокируй значения first и last без временной переменной"- тут он стал двигаться в нужном направлении, но не догадался про XOR.


И где такое может понадобиться? Я сначала про ассемблер подумал, но вспомнил что есть инструкция XCHG, которая делает то же самое, но без извращений. То есть этот прикол хорошо смотрелся на школьных олимпиадах, но упаси Кришна встретить такое в современном коде.
ARI ARI ARI... Arrivederci!
Re: Когда gut feel совпал с результатом тестирования
От: _ABC_  
Дата: 19.12.18 23:05
Оценка: +2
Здравствуйте, Тёмчик, Вы писали:

Тё>Коллеги, у вас бывало что gut feel совпал с результатом теста, в хорошем смысле? Т.е. при первом взгляде стало очевидно, что кандидат smart и потом он решил все важные подброшенные задачки. Задачки несложные, и в манипулировании битами пробел, но знает про Big O и правильно определил временную сложность и требования по памяти для предлагаемых им алгоритмов решения.


Если бы у тебя было другое первое впечатление о кандидате, то выделенное ты бы в шоу стопперы записал, а так оправдываешь. Если кандидат нравится — ты ему пробелы прощаешь и не углубляешься в детали. Если не нравится — валишь по максимуму. Вот и вся "магия".
Re[5]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 20.12.18 04:03
Оценка: +2
Здравствуйте, Тёмчик, Вы писали:

CC>>Артёмка, ты повторяешь понравившиеся тебе задачки из интернетов совершенно не понимая их смысла.

Тё>Какой в них смысл кроме как проверить наличие мозга?
Артёмка, чтобы проверить наличие мозга проверяющий сам должен в первую очередь этот мозг иметь.
Чтобы проверить это с помощью задачи надо понимать про что эта задача. Ты уже неоднократно тут показывал что в этих задачах за деревьями в упор не видишь леса.

Тё>Если у тебя сложности с такой простой операцией- это твоя проблема.



Тё>Не знает XOR- это минус.

Вопрос "рокируй значения first и last без временной переменной" никак не проверяет понимание работы операции XOR.

Тё>это знание полезно в Merkle Tree.

Зачем там менять два значения местами именно через XOR?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 20.12.18 09:35
Оценка: +1 :)
Здравствуйте, Тёмчик, Вы писали:

Тё>Ты б строку не развернул- это понятно по попыткам оскорбить.

Артёмка, тебя оскорбить даже пытаться бесполезно — ты это сам делаешь куда профессиональнее.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Какая цель?
От: Lazy Bear Канада  
Дата: 20.12.18 22:46
Оценка: +2
Здравствуйте, Тёмчик, Вы писали:

Тё>Мой начальник подкинул кандидату задачку


Чем кандидат в итоге должен будет заниматься? Суровой оптимизацией всего на свете или ковыряться в легаси-коде унылого клиентского софта?
Отредактировано 21.12.2018 4:19 Lazy Bear . Предыдущая версия .
Re[9]: Когда gut feel совпал с результатом тестирования
От: elmal  
Дата: 26.12.18 12:22
Оценка: +2
Здравствуйте, Тёмчик, Вы писали:

Тё>Забавно, за собственное непонимание азов программирования, меня успели обвинить в куче грехов. Может быть, лучше почитать Кормена?

В 99% реальные проблемы производительности не имеют ничего общего с тетой от n. А является банальной невнимательностью. Например дернул ленивую функцию там, где ее дергать не нужно (реальный недавний случай, кстати). Соответственно если проблема возникает — быстро находится результат, быстро фиксится в одном месте кода, и все работает с нужной скоростью. А когда просто банальная проблема в одной функции оказывается важной и критичной — это будет как раз следствием того, что в проекте внутри царит спагетти и копипаст. Вот это да, быстро в случае обнаружения хрен поправишь, зачастую за месяц это хрен поправишь. Плюс при одной и той же тета от n время выполнения может различаться на порядки. За счет боксинга, работы сборщика мусора в результате лишних аллокаций объектов и тому подобной хрени.

Короче, попробуй прочитать про dry принцип, про инкапсуляцию, принцип единственной ответственности и т.д. И постепенно приводи проект в порядок. И настанет время, когда в случае проблем с производительностью вы быстро в одном месте поправите и продолжите пилить дальше, а не будете иметь кучу проблем, как сейчас (иначе бы ты на этом внимание не акцентировал вообще). И погугли про закон амдала еще. И про правило 80 20. Это основы азов программирования, а не развороты списков. И несоблюдение реальных основ на практике гораздо более дорого обходится, чем неправильный разворот списка. А то пипец, прочитал одну книжку по алгоритмам, и на основании одной книжки без опыта считаешь что стал мегагуру программирования. Там вообще то до черта книг нужно помимо читать, причем до алгоритмов. И потом хотя бы лет 5 практически поработать, желательно в разных областях.
Re[10]: Когда gut feel совпал с результатом тестирования
От: Faland США  
Дата: 26.12.18 16:33
Оценка: +2
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, Тёмчик, Вы писали:


E>В 99% реальные проблемы производительности не имеют ничего общего с тетой от n. А является банальной невнимательностью. Например дернул ленивую функцию там, где ее дергать не нужно (реальный недавний случай, кстати). Соответственно если проблема возникает — быстро находится результат, быстро фиксится в одном месте кода, и все работает с нужной скоростью. А когда просто банальная проблема в одной функции оказывается важной и критичной — это будет как раз следствием того, что в проекте внутри царит спагетти и копипаст. Вот это да, быстро в случае обнаружения хрен поправишь, зачастую за месяц это хрен поправишь. Плюс при одной и той же тета от n время выполнения может различаться на порядки. За счет боксинга, работы сборщика мусора в результате лишних аллокаций объектов и тому подобной хрени.


+100, чинил много перфоманса в разных проектах и в разных компаниях, в подавляющем числе случаев в том или ином виде причиной был бардак в коде а не "неоптимальный" алгоритм.
Re[7]: Когда gut feel совпал с результатом тестирования
От: Somescout  
Дата: 22.12.18 04:07
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Я про такие трюки слышал, что-то вроде "это будер быстрее на уровне процессора(транзистрово), чем обычное присвоение" (как-то так, не факт, что про xor).


Гуглите операцию XCHG.
ARI ARI ARI... Arrivederci!
Re[8]: Когда gut feel совпал с результатом тестирования
От: Masterspline  
Дата: 23.12.18 23:49
Оценка: 3 (1)
S>>Я про такие трюки слышал, что-то вроде "это будер быстрее на уровне процессора(транзистрово), чем обычное присвоение" (как-то так, не факт, что про xor).
CC>Дык не будет же

Это щас не будет. А вот в 80-х годах прошлого тысячелетия...

Я вот помню на Спектруме была такая оптимизация обнуления памяти для стирания с экрана (когда нужно быстрее, чем обнуление в цикле или копированием массива нулей специальной строковой операцией): берешь указатель стека располагаешь в экранной памяти и делаешь push в цикле. Самый быстрый способ.
Re[2]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 01:00
Оценка: :)
Здравствуйте, _ABC_, Вы писали:

_AB>Если бы у тебя было другое первое впечатление о кандидате, то выделенное ты бы в шоу стопперы записал, а так оправдываешь. Если кандидат нравится — ты ему пробелы прощаешь и не углубляешься в детали. Если не нравится — валишь по максимуму. Вот и вся "магия".


Мой начальник подкинул кандидату задачку про разворот строки (понравилось она чем-то ). Он сходу написал. Я подкинул усложнить- сделать рекурсивно, он сразу написал. Тогда подкинул "а рокируй значения first и last без временной переменной"- тут он стал двигаться в нужном направлении, но не догадался про XOR. И потом, в числе прочего, подкинул ему про вычислить значение из reverse notation. Которое тут обсуждалось- он сходу сделал. Тогда усложнил ему, чтобы переписал за меньше строк- тоже сделал.
Пускай я ничего сложного не спросил, но 95% народа стали бы громко и медленно скрипеть ржавыми шестеренками в голове, а этот чел быстро сделал все как надо и не налажал с O(n). Ещё другая простая задачка на radix sort- сходу ответил. Так что незнание XOR с битами — это мелкий недочёт на основном фоне.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Отредактировано 20.12.2018 1:02 $$ . Предыдущая версия .
Re[2]: Когда gut feel совпал с результатом тестирования
От: msorc Грузия  
Дата: 20.12.18 07:31
Оценка: +1
Здравствуйте, Aquilaware, Вы писали:

A>

    A>
  1. Простые и сложные формальные вопросы. Средняя продолжительность собеседования 50 минут
    A>
  2. Gut feel + простые формальные вопросы. Средняя продолжительность собеседования 25 минут
    A>

A>Результат пункта 2 феноменально положительный. Пункт 1 всегда в проигрыше. Не знаю почему, но для меня это работает так.


Балаболы никогда не попадались? Бывает поёт складно о своем участии в проектах, SOLID и прочие мемы знает, а выбрать четные числа из [1,2,3,4,5] не может (мы не звери, строки разворачивать не просим)
Re[6]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 08:04
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>Артёмка, чтобы проверить наличие мозга проверяющий сам должен в первую очередь этот мозг иметь.

CC>Чтобы проверить это с помощью задачи надо понимать про что эта задача. Ты уже неоднократно тут показывал что в этих задачах за деревьями в упор не видишь леса.
Ты б строку не развернул- это понятно по попыткам оскорбить.

Тё>>Если у тебя сложности с такой простой операцией- это твоя проблема.

CC>

Тё>>Не знает XOR- это минус.

CC>Вопрос "рокируй значения first и last без временной переменной" никак не проверяет понимание работы операции XOR.
Так прочитай в учебнике про операцию XOR, не позорься.

Тё>>это знание полезно в Merkle Tree.

CC>Зачем там менять два значения местами именно через XOR?
Там online hash.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[3]: Когда gut feel совпал с результатом тестирования
От: Ватакуси Россия  
Дата: 20.12.18 18:06
Оценка: +1
A>>

    A>>
  1. Простые и сложные формальные вопросы. Средняя продолжительность собеседования 50 минут
    A>>
  2. Gut feel + простые формальные вопросы. Средняя продолжительность собеседования 25 минут
    A>>

A>>Результат пункта 2 феноменально положительный. Пункт 1 всегда в проигрыше. Не знаю почему, но для меня это работает так.


M>Балаболы никогда не попадались? Бывает поёт складно о своем участии в проектах, SOLID и прочие мемы знает, а выбрать четные числа из [1,2,3,4,5] не может (мы не звери, строки разворачивать не просим)


Мне никогда. Самое интересное, что в 99% случаев задачи на собеседовании не совпадают с тем, что ты потом будешь делать. Смысл их давать?
Если человек не может объяснить толком что именно он делает на нынешней (предыдущей) работе, какой именно его вклад, что конкретно он привнёс туда, каких достижений достиг — то зачем ему давать задачи?
Если он толково всё рассказал, ответил на разные уточнения не путаясь в показания, то он на 99% понимает что к чему.

Я помню меня в одном месте собеседовали 7 раз!!!
Задавали правда одни и теже вопросы :D
Так оказалось очень раздолбайным местом.

PS: задачи могут быть полезны тебе, на самом деле. Ибо становится сразу видно, насколько контора (люди, с которыми ты потом станешь работать) вообще в состоянии внятно поставить задачу.
Я неоднократно натыкался на сильное затруденение со стороны конторы понтяно и чётко изложить задачу. А это почти 100% шанс, что в работе будет тоже самое. Т.е. нужно сильно задуматься, стоит ли туда идти.
Коо иу-то дзиман-о суру ё-ни наримас га...
Re: Когда gut feel совпал с результатом тестирования
От: StandAlone  
Дата: 22.12.18 00:31
Оценка: :)
Здравствуйте, Тёмчик, Вы писали:

Тё>gut feel совпал с результатом теста, в хорошем смысле? Т.е. при первом взгляде стало очевидно, что кандидат smart


Надеюсь не rectum gut feel?
Re[7]: Когда gut feel совпал с результатом тестирования
От: Ночной Смотрящий Россия  
Дата: 23.12.18 11:39
Оценка: :)
Здравствуйте, Sharov, Вы писали:

S>Там где люди за нс бьются, типа гугла, амазона, фб и т.д.


В фю за наносекунды в коде? Какой
Re[7]: Когда gut feel совпал с результатом тестирования
От: aik Австралия  
Дата: 23.12.18 11:56
Оценка: +1
Здравствуйте, Sharov, Вы писали:

Тё>>>это знание полезно в Merkle Tree.

CC>>Зачем там менять два значения местами именно через XOR?
S>Я про такие трюки слышал, что-то вроде "это будер быстрее на уровне процессора(транзистрово), чем обычное присвоение" (как-то так, не факт, что про xor).

Экономится 1 переменная, т.е. регистр (которых минимум 16) или кэш (много). Команд что так, что эдак — будет 3 штуки, и уж если какая то из них внезапно быстрее, то это глупое копирование регистра в регистр (но вряд ли).

S>А вообще в нагруженном коде, в critical path самое то для таких оптимизаций. Там где люди за нс бьются, типа гугла, амазона, фб и т.д.


Это для микроконтроллеров разве что годится, когда — ни регистров, ни памяти, ни кэша. Только и их не осталось чтоб настолько убогих.
Re[9]: ужасно тормозные программы
От: Lazy Bear Канада  
Дата: 23.12.18 17:36
Оценка: +1
Здравствуйте, Ночной Смотрящий, Вы писали:

LB>>Зато разворачиватели строк спроектируют тебе такую write-only архитектуру


НС>Последнее время "архитектура" это одно из тех слов, при виде которых у меня рука тянется к маузеру. Уж лучше код вообще без намеков на структуру, нежели код с Архитектурой.


Не соглашусь. Лучше иметь хоть дурацкое, но единообразие в построении проекта. По крайней мере тогда, когда лезешь в неизведанную его часть, понятно чего ожидать и как с этим бороться (см. далее)

НС>Буквально на той неделе прилетел код на проверку. О там архитектура, да! Ради 4 осмысленных примитивных строк, вызываемых ровно один раз, создан класс-стратегия, к нему привинчен отдельный интерфейс, а потом все это запихнуто в IoC контейнер.


Вам попалась архитектура курильщика.
Плавали, знаем. Я работал на проекте, где предшественники были просто одержимы использованием design patterns. Даже вокруг простого чтения/записи файла была навернута Мощная Инфраструктура с фабриками, стратегиями, адаптерами и прочим добром. Можете себе представить, что там было в более сложных компонентах! Видимо, на собеседовании у кандидатов в жесткой форме требовали знания и применения design patterns. В общем, после рефакторинга были снесены нафиг несколько сотен бесполезных классов и все стало просто и понятно.
Re[10]: ужасно тормозные программы
От: CodeMonkey  
Дата: 23.12.18 22:32
Оценка: +1
Здравствуйте, Lazy Bear, Вы писали:

LB>Вам попалась архитектура курильщика.


Насколько я помню, Хант писал, что любовь к ненужным переусложнениям обычно просыпается у программистов, когда они переходят от стадии "новичок" к стадии "продвинутый новичок". С переходом на стадию "компетентный" это проходит, но есть одна проблема — большинство программистов навсегда застревают на стадии продвинутого новичка.
Re[11]: Когда gut feel совпал с результатом тестирования
От: CodeMonkey  
Дата: 26.12.18 23:12
Оценка: +1
Здравствуйте, Faland, Вы писали:

F>+100, чинил много перфоманса в разных проектах и в разных компаниях, в подавляющем числе случаев в том или ином виде причиной был бардак в коде


А если точнее — код со многими-многими уровнями абстракции, построенными по принципу "выливаем воду из чайника и таким образом сводим задачу к предыдущей".
Re[3]: Когда gut feel совпал с результатом тестирования
От: kaa.python Сингапур http://sysdev.me/
Дата: 20.12.18 03:41
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Мой начальник подкинул кандидату задачку про разворот строки (понравилось она чем-то ). Он сходу написал. Я подкинул усложнить- сделать рекурсивно, он сразу написал. Тогда подкинул "а рокируй значения first и last без временной переменной"- тут он стал двигаться в нужном направлении, но не догадался про XOR. И потом, в числе прочего, подкинул ему про вычислить значение из reverse notation. Которое тут обсуждалось- он сходу сделал. Тогда усложнил ему, чтобы переписал за меньше строк- тоже сделал.


Это вы веб-мордочки писать людей ищите? Хм, как же у вас кандидатов-то много, аж завидно
Re[4]: Когда gut feel совпал с результатом тестирования
От: Sharov Россия  
Дата: 20.12.18 13:05
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>XOR это хипстерский гиммик, за такое в продакшен коде положено бить лопатой и заставлять убрать ибо нехрен!


Ну полно те. Полно продакшн кода с хитрыми низкроуровневыми оптимизациями, типа графики и т.д. Просто на яве или ts, чем ТС занимается, это совсем редко когда нужно.
Вы же Си разработчик, лучше меня это знаете.
Кодом людям нужно помогать!
Re[4]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 18:35
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Если он толково всё рассказал, ответил на разные уточнения не путаясь в показания, то он на 99% понимает что к чему.

А потом не может развернуть строку за O(n).
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Отредактировано 20.12.2018 18:59 $$ . Предыдущая версия .
Re[4]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 20.12.18 18:52
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Это вы веб-мордочки писать людей ищите? Хм, как же у вас кандидатов-то много, аж завидно


Так можно сказать про 99% работы, включая твою. Или ты уже работаешь в Boston Dynamics?
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[7]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 20.12.18 19:52
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Я про такие трюки слышал, что-то вроде "это будер быстрее на уровне процессора(транзистрово), чем обычное присвоение" (как-то так, не факт, что про xor).

Дык не будет же

S>А вообще в нагруженном коде, в critical path самое то для таких оптимизаций. Там где люди за нс бьются, типа гугла, амазона, фб и т.д.

Это не даёт никакого прироста в скорости.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 20.12.18 19:52
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Вы же Си разработчик, лучше меня это знаете.

И потому буду бить лопатой, потому что от этого выпендрёжа практической пользы ноль а код стал запутаннее.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Когда gut feel совпал с результатом тестирования
От: kaa.python Сингапур http://sysdev.me/
Дата: 20.12.18 23:49
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Так можно сказать про 99% работы, включая твою. Или ты уже работаешь в Boston Dynamics?


Конечно можно и нужно. Может именно поэтому мне кажется что то, чем ты тут хвастаешься можно спрашивать либо на позицию где требуется проводить учу микрооптимизаций, либо от избытка кандидатов.
Re[6]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 21.12.18 01:50
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Конечно можно и нужно. Может именно поэтому мне кажется что то, чем ты тут хвастаешься можно спрашивать либо на позицию где требуется проводить учу микрооптимизаций, либо от избытка кандидатов.


Элементарная обработка сравнительно небольших объемов данных (типа справочника), а перед этим было обработка биржевых транзакций. И что я сложного спрашиваю? Развернуть строку или (это даже не довелось спросить) внешнюю сортировку? Там нет никаких микрооптимизаций, но из-за одного неправильно выбранного алгоритма эта самая обработка вместо 5-30 минут займёт >24 часов, это реальные примеры из жизни.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[7]: Когда gut feel совпал с результатом тестирования
От: Ватакуси Россия  
Дата: 21.12.18 11:13
Оценка:
Тё>>>А потом не может развернуть строку за O(n).
В>>Это примерно никому не надо.

Тё>Вот из-за таких "программистов" мы имеем ужасно тормозные программы.

Из-за примерно всех программистов?
Коо иу-то дзиман-о суру ё-ни наримас га...
Re[8]: Когда gut feel совпал с результатом тестирования
От: CodeMonkey  
Дата: 21.12.18 18:16
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Из-за примерно всех программистов?


Главным образом из-за тех, которые занимаются всякой фигней, которая в реальной работе не нужна и/или вредна. А еще хуже — те, которые других принуждают заниматься такой фигней.
Re[7]: Когда gut feel совпал с результатом тестирования
От: iriska2  
Дата: 21.12.18 22:10
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Здравствуйте, CreatorCray, Вы писали:


CC>>Артёмка, чтобы проверить наличие мозга проверяющий сам должен в первую очередь этот мозг иметь.

CC>>Чтобы проверить это с помощью задачи надо понимать про что эта задача. Ты уже неоднократно тут показывал что в этих задачах за деревьями в упор не видишь леса.
Тё>Ты б строку не развернул- это понятно по попыткам оскорбить.

Тё>>>Если у тебя сложности с такой простой операцией- это твоя проблема.

CC>>

Тё>>>Не знает XOR- это минус.

CC>>Вопрос "рокируй значения first и last без временной переменной" никак не проверяет понимание работы операции XOR.
Тё>Так прочитай в учебнике про операцию XOR, не позорься.

Тё>>>это знание полезно в Merkle Tree.

CC>>Зачем там менять два значения местами именно через XOR?
Тё>Там online hash.
Эх всё тебя эти XOR не отпускают, сходил бы на пляж, попил бы кофе, потрахался бы с серфершей, глядишь жизнь бы и наладилась
Re: Какая цель?
От: StandAlone  
Дата: 22.12.18 00:33
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

LB>Чем кандидат в итоге должен будет заниматься? Суровой оптимизацией всего на свете или ковыряться в легаси-коде унылого клиентского софта?


Вот тоже, судя по описанию, показалось что работой там никто не занимается, поэтому рабочих вопросов и не спрашивали. Концентрируются на gut life.
Судя по вопросам, ищут студентов. Что логично, студенты значительно активней и симпатичней в силу возраста.
Re[9]: ужасно тормозные программы
От: CodeMonkey  
Дата: 22.12.18 01:03
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Со свистом? Скорее, вот так.

SA>String.prototype.reverse = (src)=>MonkeySort(src).forEach().reduce().map().fold().concat()...youNameThatCoolTrendyFunctionMathod().
SA>

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


Начинаешь понимать
Re[2]: Какая цель?
От: Lazy Bear Канада  
Дата: 22.12.18 03:43
Оценка:
Здравствуйте, StandAlone, Вы писали:

LB>>Чем кандидат в итоге должен будет заниматься? Суровой оптимизацией всего на свете или ковыряться в легаси-коде унылого клиентского софта?


SA>Вот тоже, судя по описанию, показалось что работой там никто не занимается, поэтому рабочих вопросов и не спрашивали. Концентрируются на gut life.

SA>Судя по вопросам, ищут студентов. Что логично, студенты значительно активней и симпатичней в силу возраста.

Ответа на этот простой вопрос мы, к сожалению, пока не видим.
Re[4]: Когда gut feel совпал с результатом тестирования
От: CodeMonkey  
Дата: 22.12.18 16:31
Оценка:
Здравствуйте, Somescout, Вы писали:

S>То есть этот прикол хорошо смотрелся на школьных олимпиадах, но упаси Кришна встретить такое в современном коде.


Первый шаг к пониманию сделан, молодец
Re[9]: ужасно тормозные программы
От: CodeMonkey  
Дата: 23.12.18 15:14
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Буквально на той неделе прилетел код на проверку. О там архитектура, да! Ради 4 осмысленных примитивных строк, вызываемых ровно один раз, создан класс-стратегия, к нему привинчен отдельный интерфейс, а потом все это запихнуто в IoC контейнер.


Всего навсего?
Re[10]: ужасно тормозные программы
От: Ночной Смотрящий Россия  
Дата: 23.12.18 19:40
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

НС>>Буквально на той неделе прилетел код на проверку. О там архитектура, да! Ради 4 осмысленных примитивных строк, вызываемых ровно один раз, создан класс-стратегия, к нему привинчен отдельный интерфейс, а потом все это запихнуто в IoC контейнер.


CM>Всего навсего?


Там таких стратегий десяток точно наберется. В итоге код на пару классов с несколькими статическими методами раздут до целого проекта.
Re[10]: ужасно тормозные программы
От: Ночной Смотрящий Россия  
Дата: 23.12.18 19:40
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

НС>>Последнее время "архитектура" это одно из тех слов, при виде которых у меня рука тянется к маузеру. Уж лучше код вообще без намеков на структуру, нежели код с Архитектурой.

LB>Не соглашусь. Лучше иметь хоть дурацкое, но единообразие в построении проекта. По крайней мере тогда, когда лезешь в неизведанную его часть, понятно чего ожидать и как с этим бороться

Сложно с этим бороться. Рефакторить такое порно очень тяжело. Хуже только копипаста.0

LB>Вам попалась архитектура курильщика.


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

LB> Видимо, на собеседовании у кандидатов в жесткой форме требовали знания и применения design patterns.


Нет, просто кто то ему рассказал про то, что архитектура это такая серебряная пуля.
Re[11]: ужасно тормозные программы
От: CodeMonkey  
Дата: 23.12.18 22:26
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Там таких стратегий десяток точно наберется. В итоге код на пару классов с несколькими статическими методами раздут до целого проекта.


Это еще не так страшно. Я видел экземпляры куда хуже.
Re[11]: ужасно тормозные программы
От: Lazy Bear Канада  
Дата: 23.12.18 22:28
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Сложно с этим бороться. Рефакторить такое порно очень тяжело. Хуже только копипаста.0


Никто не обещал что будет легко.

НС>Нет, мне попалось черезмерное увлечвение архитектурой. Архитектура ради архитектуры, та, которая идет впереди кода и требований.


Архитектура курильщика и есть. Смотришь и думаешь: что они курили?

LB>> Видимо, на собеседовании у кандидатов в жесткой форме требовали знания и применения design patterns.


НС>Нет, просто кто то ему рассказал про то, что архитектура это такая серебряная пуля.


Просто они пока не умеют ее правильно готовить
Re[9]: ужасно тормозные программы
От: Masterspline  
Дата: 23.12.18 23:59
Оценка:
НС>Буквально на той неделе прилетел код на проверку. О там архитектура, да! Ради 4 осмысленных примитивных строк, вызываемых ровно один раз, создан класс-стратегия, к нему привинчен отдельный интерфейс, а потом все это запихнуто в IoC контейнер.

Ну, о чем на собеседовании спрашивали — то и в production применили.
Re[10]: ужасно тормозные программы
От: Lazy Bear Канада  
Дата: 24.12.18 00:39
Оценка:
Здравствуйте, Masterspline, Вы писали:

M>Ну, о чем на собеседовании спрашивали — то и в production применили.


Как заказывали!
Re[12]: ужасно тормозные программы
От: Ночной Смотрящий Россия  
Дата: 24.12.18 08:16
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

НС>>Там таких стратегий десяток точно наберется. В итоге код на пару классов с несколькими статическими методами раздут до целого проекта.

CM>Это еще не так страшно. Я видел экземпляры куда хуже.

Дело не в том что это самый плохой код, который я видел. Дело в том что это было специально подобрано как образчик самого лучшего кода для оценки. Архитектура головного моска в запущенной форме.
Re[6]: Когда gut feel совпал с результатом тестирования
От: CreatorCray  
Дата: 24.12.18 12:04
Оценка:
Здравствуйте, elmal, Вы писали:

E>И твой список вопросов, на основании которого ты пытаешься определить квалификацию программиста, говорит о том, что сам ты никогда не занимался тем, чтобы из железа выжать максимум. Скорее всего даже профайлер никогда в жизни не запускал. Ибо если бы хотя бы раз приходилось бы таким заниматься, список вопросов был бы ну совсем другой.


Он ж их надёргал из местных срачей, совершенно не понимая что эти вопросы должны выявлять.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[13]: ужасно тормозные программы
От: CodeMonkey  
Дата: 24.12.18 16:10
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Архитектура головного моска в запущенной форме.


Так и я о том же. Как образец архитектуры головного моска, этот — еще довольно умеренный.
Re[14]: ужасно тормозные программы
От: Lazy Bear Канада  
Дата: 24.12.18 23:17
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

CM>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Архитектура головного моска в запущенной форме.


CM>Так и я о том же. Как образец архитектуры головного моска, этот — еще довольно умеренный.


Интересно что люди, которые это все наваяли, оказываются вполне себе адекватными, логично рассуждающими и вообще приятными в общении. Но как садятся программить, то как будто их подменили
Re[15]: ужасно тормозные программы
От: CodeMonkey  
Дата: 25.12.18 00:14
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

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


YMMV. Последний любитель чудо-архитектур, с которым я пересекался на работе, оказался редким м№№№ком.
Re[15]: ужасно тормозные программы
От: Ночной Смотрящий Россия  
Дата: 25.12.18 20:17
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

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


А при чем тут люди? Дело не в людях, а в том какой у них опыт. Пока на серьезных проектах не соберут себе шишек на задницу — хипста стайл превалирует.
Re[6]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 25.12.18 23:56
Оценка:
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, Тёмчик, Вы писали:


Тё>>А потом не может развернуть строку за O(n).

E>Если соответствующий код является узким местом, то разворачивать в нем строку за O(n) — это охрененный удар по производительности. Перед исполнением высокооптимизированного кода данные должны быть максимально хорошо подготовлены, чтобы лишних операций не требовалось бы делать вообще. И нормальноая асимптотика будет только константа, в крайнем случае будет логарифм, связанный с тем, что тебе приходится еще и экономить память, потому придется жертвовать быстродействием в обмен на экономию памяти. И вообще, высокооптимизированный код — он не об алгоритмах. Он об оптимальном размещении данных. Соответственно строка должна быть уже развернута, она должна храниться именно в развернутом виде, если скорость важна. А как ты будешь ее разворачивать на этапе подготовки данных — в 99 процентов случаях пофиг, достаточно чтоб сложность разворота была бы полиномиальной. Ибо если это какая утилита преобразования данных из одного формата в другой, узким местом будут файловые операции и парсинг. По сравнению с которым любые обращения списка будут занимать доли процента. И в высокооптимизированном коде в узких местах никогда не будет структур типа связанного списка как минимум в классическом понимании. Ибо память сравнительно медленная, прыганье по случайным адресам означает что проц у тебя будет простаивать, дожидаясь пока подгрузятся данные из памяти и постоянно будет перетираться кеш. Потому если у тебя будет реально код, который должен быть быстрый, у тебя будет так называемый coalesce memory access.

E>И твой список вопросов, на основании которого ты пытаешься определить квалификацию программиста, говорит о том, что сам ты никогда не занимался тем, чтобы из железа выжать максимум. Скорее всего даже профайлер никогда в жизни не запускал. Ибо если бы хотя бы раз приходилось бы таким заниматься, список вопросов был бы ну совсем другой.


В 99% случаев «запуск профайлера» показывал на такую вот функцию, условно переворота строки, где была O(n^2) или хуже.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[7]: Когда gut feel совпал с результатом тестирования
От: elmal  
Дата: 26.12.18 08:28
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>В 99% случаев «запуск профайлера» показывал на такую вот функцию, условно переворота строки, где была O(n^2) или хуже.

И в чем проблема? Эта функция быстро переписывается и оптимизируется (за счет снижения читабельности кода, как цена за скорость) и работаем дальше. Проблема будет только в том случае, если эта функция разошлась тысячью экземпляров по всему проекту, причем она каждый раз писалась с нуля с вариациями. Но в этом случае проблема не в тормозном коде, проблема что у вас за строчки кода платят, а повторяющиеся куски кода разработчики выделять в функции не умеют.
Re[8]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 26.12.18 11:43
Оценка:
Здравствуйте, elmal, Вы писали:

Тё>>В 99% случаев «запуск профайлера» показывал на такую вот функцию, условно переворота строки, где была O(n^2) или хуже.

E>И в чем проблема? Эта функция быстро переписывается и оптимизируется (за счет снижения читабельности кода, как цена за скорость) и работаем дальше. Проблема будет только в том случае, если эта функция разошлась тысячью экземпляров по всему проекту, причем она каждый раз писалась с нуля с вариациями. Но в этом случае проблема не в тормозном коде, проблема что у вас за строчки кода платят, а повторяющиеся куски кода разработчики выделять в функции не умеют.

Забавно, за собственное непонимание азов программирования, меня успели обвинить в куче грехов. Может быть, лучше почитать Кормена?
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[10]: Когда gut feel совпал с результатом тестирования
От: Тёмчик жж
Дата: 26.12.18 20:59
Оценка:
Здравствуйте, elmal, Вы писали:

E>Короче, попробуй прочитать про dry принцип, про инкапсуляцию, принцип единственной ответственности и т.д. И постепенно приводи проект в порядок. И настанет время, когда в случае проблем с производительностью вы быстро в одном месте поправите и продолжите пилить дальше, а не будете иметь кучу проблем, как сейчас (иначе бы ты на этом внимание не акцентировал вообще). И погугли про закон амдала еще. И про правило 80 20. Это основы азов программирования, а не развороты списков. И несоблюдение реальных основ на практике гораздо более дорого обходится, чем неправильный разворот списка. А то пипец, прочитал одну книжку по алгоритмам, и на основании одной книжки без опыта считаешь что стал мегагуру программирования. Там вообще то до черта книг нужно помимо читать, причем до алгоритмов. И потом хотя бы лет 5 практически поработать, желательно в разных областях.


Про SOLID я спрашиваю, но мне это некритично- говорунов много и все про SOLID заучили, а как строку развернуть, так meltdown.

https://www.youtube.com/watch?v=Q-vn3rf2ZOk
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Отредактировано 26.12.2018 21:09 $$ . Предыдущая версия . Еще …
Отредактировано 26.12.2018 21:04 $$ . Предыдущая версия .
Развернуть хоть что-нибудь
От: Lazy Bear Канада  
Дата: 27.12.18 15:03
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>а как строку развернуть, так meltdown.


Зачем нужно разворачивать строку?
Отредактировано 27.12.2018 16:03 Lazy Bear . Предыдущая версия .
Re: Когда gut feel совпал с результатом тестирования
От: a7d3  
Дата: 27.12.18 17:35
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Коллеги, у вас бывало что gut feel совпал с результатом теста, в хорошем смысле? Т.е. при первом взгляде стало очевидно, что кандидат smart и потом он решил все важные подброшенные задачки. Задачки несложные, и в манипулировании битами пробел, но знает про Big O и правильно определил временную сложность и требования по памяти для предлагаемых им алгоритмов решения.


Ветку не читал, сразу отвечаю.
Теперь ты научился видеть, когда человек вот-вот и станет «рыбой лазающей по деревьям».
А лет чере пять-шесть, у тебя появится уже реливантный опыт какого работается с такими вот «рыбами».
Именно после этого, поменяешь подход к собеседованию, чтобы как раз таки эти самые «рыбы» и отваливались.
Re: Развернуть хоть что-нибудь
От: Ночной Смотрящий Россия  
Дата: 28.12.18 07:54
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

Тё>>а как строку развернуть, так meltdown.

LB>Зачем нужно разворачивать строку?

А SOLID зачем?
Re[2]: Развернуть хоть что-нибудь
От: Lazy Bear Канада  
Дата: 28.12.18 19:14
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

Тё>>>а как строку развернуть, так meltdown.

LB>>Зачем нужно разворачивать строку?

НС>А SOLID зачем?


Зачем?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.