Coding assignment

nyekimov
Уже с Приветом
Posts: 2749
Joined: 11 Jul 2015 19:01
Location: Chicago

Re: Coding assignment

Post by nyekimov »

Если специалист нанимается на жаву Спринг и будет делать только это. То оно и понятно.

Про процентаж ответивших, совершенно не показательно. Те люди, кто работает уже в Гугл, наврятли пойдёт не в фаанг. В фаанг спрашивают литкодовские задачи, потому что проекты живут часто не долго. Например даже у меня не на фаанг был модуль, который индусы писали 2.5 года и постоянно что то чинили. Причём каждый релиз какой то новый затык в старом коде, ну или на стыке нового и старого. Я пришёл и переписал им это чудо юдо. Вдруг оказалось, что столько людей и не надо. Освобождённым ресурсам надо будет заниматься чем то ещё.
deev_a_v
Уже с Приветом
Posts: 4660
Joined: 07 Apr 2018 15:16

Re: Coding assignment

Post by deev_a_v »

nickb wrote: 24 Mar 2021 20:31 90% не знают что такое EXPLAIN PLAN
Это чисто оракловая штучка. Странно ожидать от рядового java программера знакомства с ней
nickb
Уже с Приветом
Posts: 3207
Joined: 08 Aug 1999 09:01
Location: Tampa, FL

Re: Coding assignment

Post by nickb »

В той или иной форме explain plan существует для основных RDBMS. Я обычно спрашиваю не ИМЕННО буквально оракловский синтакс.

Если dev не понимает, где затык, то приложение будет страдать.
По мне, так умение читать explain plan полезнее, чем умение быстро написать обход бинарного дерева. Где-то, конечно, другие приоритеты
Ignorance is bliss
nickb
Уже с Приветом
Posts: 3207
Joined: 08 Aug 1999 09:01
Location: Tampa, FL

Re: Coding assignment

Post by nickb »

nyekimov wrote:Если специалист нанимается на жаву Спринг и будет делать только это. То оно и понятно.

Про процентаж ответивших, совершенно не показательно. Те люди, кто работает уже в Гугл, наврятли пойдёт не в фаанг. В фаанг спрашивают литкодовские задачи, потому что проекты живут часто не долго. Например даже у меня не на фаанг был модуль, который индусы писали 2.5 года и постоянно что то чинили. Причём каждый релиз какой то новый затык в старом коде, ну или на стыке нового и старого. Я пришёл и переписал им это чудо юдо. Вдруг оказалось, что столько людей и не надо. Освобождённым ресурсам надо будет заниматься чем то ещё.
У нас обычно нет задач ЧИСТО для ТОЛЬКО Java. Много намешано, и понимать БД нужно.
Не везде задачи алгоритмически сложные, у нас нужно знать всего понемногу.
Я же не спрашиваю их КАК там внутри работает какая-то БД фича.
Ignorance is bliss
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Coding assignment

Post by valchkou »

deev_a_v wrote: 24 Mar 2021 21:44
nickb wrote: 24 Mar 2021 20:31 90% не знают что такое EXPLAIN PLAN
Это чисто оракловая штучка. Странно ожидать от рядового java программера знакомства с ней
уже нет. Но на счет жавы и не только кстати жавы вы правы.
Не всем посчастливилось поработать с такими товарищами которые поделились сакральным.

Я бы рекомендовал включить EXPLAIN PLAN в курс колледжа по computer science, так как он замечательно ложится на структуры данных и алгоритмы.
Особенно если учесть что современные IDE имеют эту фитчу.
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Coding assignment

Post by Херовимчик »

А мне вот что интересно. Как люди относятся к тому, что кандидат в каком-нибудь codepad использует отладчик? А сами вы пользуетесь?
nyekimov
Уже с Приветом
Posts: 2749
Joined: 11 Jul 2015 19:01
Location: Chicago

Re: Coding assignment

Post by nyekimov »

Херовимчик wrote: 24 Mar 2021 22:52 А мне вот что интересно. Как люди относятся к тому, что кандидат в каком-нибудь codepad использует отладчик? А сами вы пользуетесь?
Не совсем понял вопроса. Типо писать код на бумажке или в ide? Как по мне писать что то посложней чем элементарное на бумажке без отладчика немного издевательство.
Мы например в coderpad разрешаем кликать запуск ровно столько, сколько хочется. И это тоже показательно, кто то напишет большинство и кликнет раз, извинится и тут же исправит что нить мелкое. А есть те, кто напишет строчку и лезет нажимать на запуск. Потом ещё ошибку блин распознать не может, начинают править не то вообще. Это тоже хороший тест на адекватность, особенно в элементарных и около элементарных вещах.
User avatar
mikeG
Уже с Приветом
Posts: 8470
Joined: 02 Aug 2003 01:32
Location: SPb->SFBA

Re: Coding assignment

Post by mikeG »

nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Всегда был уверен, что в джаве параметры только по ссылке передаются. Разница в mutable/immutable.
Остальные пункты - я вообще не знаю о чем это. Очевидно, дальше фон скрина я у вас не пройду.
nickb
Уже с Приветом
Posts: 3207
Joined: 08 Aug 1999 09:01
Location: Tampa, FL

Re: Coding assignment

Post by nickb »

Интервьюировал один раз парня, который в apple перед этим работал. Он отвечал прямо не задумываясь, вот реально, ни секунды.
Но тут уж мы ему не подошли :(
Ignorance is bliss
User avatar
Big W
Уже с Приветом
Posts: 920
Joined: 22 Jun 2007 20:41
Location: Santa Rosita

Re: Coding assignment

Post by Big W »

mikeG wrote: 25 Mar 2021 00:11
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Всегда был уверен, что в джаве параметры только по ссылке передаются. Разница в mutable/immutable.
Остальные пункты - я вообще не знаю о чем это. Очевидно, дальше фон скрина я у вас не пройду.
Че-то тоже не соображу, как на примере String/Stringbuffer предполагается продемонстрировать разные варианты передачи параметров по ссылке и по значению :pain1:
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Coding assignment

Post by Херовимчик »

nyekimov wrote: 24 Mar 2021 23:38
Херовимчик wrote: 24 Mar 2021 22:52 А мне вот что интересно. Как люди относятся к тому, что кандидат в каком-нибудь codepad использует отладчик? А сами вы пользуетесь?
Не совсем понял вопроса. Типо писать код на бумажке или в ide? Как по мне писать что то посложней чем элементарное на бумажке без отладчика немного издевательство.
Мы например в coderpad разрешаем кликать запуск ровно столько, сколько хочется. И это тоже показательно, кто то напишет большинство и кликнет раз, извинится и тут же исправит что нить мелкое. А есть те, кто напишет строчку и лезет нажимать на запуск. Потом ещё ошибку блин распознать не может, начинают править не то вообще. Это тоже хороший тест на адекватность, особенно в элементарных и около элементарных вещах.
В codepad теперь есть встроенный gdb
vdfs
Уже с Приветом
Posts: 667
Joined: 24 Dec 2015 07:50
Location: Madison, WI

Re: Coding assignment

Post by vdfs »

Какая статистика! Красивая, и детальная. Неужели количество кандидатов у вас кратно десяти? Иначе как получить такие ровные проценты. Или вы считаете статистику, как в том советском мультике про полтора землекопа?
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Coding assignment

Post by Сабина »

Krys-Krys wrote: 24 Mar 2021 20:50
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Возможно ты знаешь его как execution plan. Любая distributed system имeет свои правила как он строиться и и свои rules, но суть в том как твой SQL будет проинтепретирован и как engine будет его выполнять (join through sort merge etc). Скажем в Spark UI есть tab SQL when you run SparkSQL job. Redshift has similar "explain SQL" functionaly, Hive, BigQuery, you name it
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Krys-Krys
Уже с Приветом
Posts: 12119
Joined: 15 Feb 2010 10:32
Location: Pacifica, CA

Re: Coding assignment

Post by Krys-Krys »

Сабина wrote: 25 Mar 2021 03:37
Krys-Krys wrote: 24 Mar 2021 20:50
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Возможно ты знаешь его как execution plan. Любая distributed system имeет свои правила как он строиться и и свои rules, но суть в том как твой SQL будет проинтепретирован и как engine будет его выполнять (join through sort merge etc). Скажем в Spark UI есть tab SQL when you run SparkSQL job. Redshift has similar "explain SQL" functionaly, Hive, BigQuery, you name it
Execution plan знаю и давно, а вот такой термин 1й раз слышу.
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Coding assignment

Post by alex_127 »

Сабина wrote: 25 Mar 2021 03:37
Krys-Krys wrote: 24 Mar 2021 20:50
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Возможно ты знаешь его как execution plan. Любая distributed system имeет свои правила как он строиться и и свои rules, но суть в том как твой SQL будет проинтепретирован и как engine будет его выполнять (join through sort merge etc). Скажем в Spark UI есть tab SQL when you run SparkSQL job. Redshift has similar "explain SQL" functionaly, Hive, BigQuery, you name it

не путайте compiled plan with execution plan (или estimated vs actual). это для начало совсем разные объекты с разным временем жизни (может быть 10 execution plans for one compiled as an example)
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Coding assignment

Post by Сабина »

alex_127 wrote: 25 Mar 2021 06:49
Сабина wrote: 25 Mar 2021 03:37
Krys-Krys wrote: 24 Mar 2021 20:50
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Возможно ты знаешь его как execution plan. Любая distributed system имeет свои правила как он строиться и и свои rules, но суть в том как твой SQL будет проинтепретирован и как engine будет его выполнять (join through sort merge etc). Скажем в Spark UI есть tab SQL when you run SparkSQL job. Redshift has similar "explain SQL" functionaly, Hive, BigQuery, you name it

не путайте compiled plan with execution plan (или estimated vs actual). это для начало совсем разные объекты с разным временем жизни (может быть 10 execution plans for one compiled as an example)
Я объясняла Крыси идею, а не Оракловскую имплементацию. Последнее ей сильно вряд ли понадобится
https://www.youtube.com/watch?v=wOwblaKmyVw
rtogan
Уже с Приветом
Posts: 1558
Joined: 13 Dec 2011 11:24

Re: Coding assignment

Post by rtogan »

Херовимчик wrote: 22 Mar 2021 18:28 Смотря на некоторый код, я очень даже «за» задачки на дом. Простые и понятные, но чтобы можно было получить представление о стиле и способности к нормальному дизайну...

Когда человек не понимает как получить количество элементов в глобальном массиве без использования глобальной перемены count - вот это печаль! Зато задачки с LC умеет решать )))
О каком языке речь? Что за глобальная переменная count? Которую нужно апдейт, чтобы не считать заново кол-во элементов? Или вы имеете в виду использовать property (размер) самого массива, которые есть в некоторых языках?
rtogan
Уже с Приветом
Posts: 1558
Joined: 13 Dec 2011 11:24

Re: Coding assignment

Post by rtogan »

vdfs wrote: 22 Mar 2021 19:02 Задачки на дом такая же инвестиция времени в возможность быть нанятым, как и задачки на доске. Я б сказал, в задачки на доске надо вложить много больше времени (загодя). Вон тут народ месяцами надрючивается на литкоде. Следуя логике "должны платить за вложенное время", надо высылать счет за предварительный литкодинг, тоже.
Неправильная логика :) Тренируясь на литкоде, вы готовитесь к интервью в любой компании, в то время, как задание на дом может быть специфичным. Ну и на литкоде у вас более гибкий график.
nyekimov
Уже с Приветом
Posts: 2749
Joined: 11 Jul 2015 19:01
Location: Chicago

Re: Coding assignment

Post by nyekimov »

rtogan wrote: 26 Mar 2021 07:23
vdfs wrote: 22 Mar 2021 19:02 Задачки на дом такая же инвестиция времени в возможность быть нанятым, как и задачки на доске. Я б сказал, в задачки на доске надо вложить много больше времени (загодя). Вон тут народ месяцами надрючивается на литкоде. Следуя логике "должны платить за вложенное время", надо высылать счет за предварительный литкодинг, тоже.
Неправильная логика :) Тренируясь на литкоде, вы готовитесь к интервью в любой компании, в то время, как задание на дом может быть специфичным. Ну и на литкоде у вас более гибкий график.
Задания на дом как правило касаются напрямую того, чем придётся заниматься. Если какие то затруднения выполнить или задачка «левая», то вполне можно и пропускать, либо подтягивать уровень, что будет готовить к работе будущей.

С литкодом как раз таки потом на работе он мало кому нужен, хотя и не мешает.
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Coding assignment

Post by Albert_al »

nickb wrote:
Krys-Krys wrote:
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Когда ваша query выполняется медленно, и вам нужно понять, где затык, может, missing indexes, full table scans, etc
Это вообще то для людей моего профиля, я не знаю ваших autowired, зато про квери могу весь день бухтетьImage
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Coding assignment

Post by Albert_al »

alex_127 wrote:
Сабина wrote: 25 Mar 2021 03:37
Krys-Krys wrote: 24 Mar 2021 20:50
nickb wrote: 24 Mar 2021 20:31 Я прямо читаю и дивлюсь. Периодически меня просят провести интервью к кандидатами.
70% не понимают передачу параметров по ссылке или по значению на примере String/Stringbuffer
80% не знают, как работает @Autowired
90% не знают, как работает @Transactional и public/private methods
90% не знают что такое EXPLAIN PLAN
Я тоже не знаю что такое EXPLAIN PLAN. А что это?
Возможно ты знаешь его как execution plan. Любая distributed system имeет свои правила как он строиться и и свои rules, но суть в том как твой SQL будет проинтепретирован и как engine будет его выполнять (join through sort merge etc). Скажем в Spark UI есть tab SQL when you run SparkSQL job. Redshift has similar "explain SQL" functionaly, Hive, BigQuery, you name it

не путайте compiled plan with execution plan (или estimated vs actual). это для начало совсем разные объекты с разным временем жизни (может быть 10 execution plans for one compiled as an example)
Коллега!
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
caltrain
Уже с Приветом
Posts: 658
Joined: 27 Feb 2013 10:51
Location: SFBA

Re: Coding assignment

Post by caltrain »

nyekimov wrote: 24 Mar 2021 21:31 Я пришёл и переписал им это чудо юдо. Вдруг оказалось, что столько людей и не надо.
А детушек малых по лавкам кто теперь кормить будет? Теперь то вы осознали свою венценосную вредоносность? :)
vdfs
Уже с Приветом
Posts: 667
Joined: 24 Dec 2015 07:50
Location: Madison, WI

Re: Coding assignment

Post by vdfs »

rtogan wrote: 26 Mar 2021 07:23
Неправильная логика :) Тренируясь на литкоде, вы готовитесь к интервью в любой компании, в то время, как задание на дом может быть специфичным. Ну и на литкоде у вас более гибкий график.
Depends. Если не тренироваться на литкоде, то задания на дом лучше. Потому что на 3 месяца заданий просто не наберешь, как ни старайся, а потому задания выгоднее.
У нас тут ваш литкод особо и не спрашивают, и я это одобряю. Люди нужны не алгоритмы решать на доске.

А вообще меня уже второй раз цитируют не понимая контекста, в котором я это написал. Больше не буду отвечать :razz:
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Coding assignment

Post by Херовимчик »

rtogan wrote: 26 Mar 2021 07:20
Херовимчик wrote: 22 Mar 2021 18:28 Смотря на некоторый код, я очень даже «за» задачки на дом. Простые и понятные, но чтобы можно было получить представление о стиле и способности к нормальному дизайну...

Когда человек не понимает как получить количество элементов в глобальном массиве без использования глобальной перемены count - вот это печаль! Зато задачки с LC умеет решать )))
О каком языке речь? Что за глобальная переменная count? Которую нужно апдейт, чтобы не считать заново кол-во элементов? Или вы имеете в виду использовать property (размер) самого массива, которые есть в некоторых языках?
Язык С. Но что-то мне подсказывает что разделить размер массива на размер первого элемента можно в любом языке...
rtogan
Уже с Приветом
Posts: 1558
Joined: 13 Dec 2011 11:24

Re: Coding assignment

Post by rtogan »

Херовимчик wrote: 26 Mar 2021 22:36
rtogan wrote: 26 Mar 2021 07:20
Херовимчик wrote: 22 Mar 2021 18:28 Смотря на некоторый код, я очень даже «за» задачки на дом. Простые и понятные, но чтобы можно было получить представление о стиле и способности к нормальному дизайну...

Когда человек не понимает как получить количество элементов в глобальном массиве без использования глобальной перемены count - вот это печаль! Зато задачки с LC умеет решать )))
О каком языке речь? Что за глобальная переменная count? Которую нужно апдейт, чтобы не считать заново кол-во элементов? Или вы имеете в виду использовать property (размер) самого массива, которые есть в некоторых языках?
Язык С. Но что-то мне подсказывает что разделить размер массива на размер первого элемента можно в любом языке...
А разве размер массива и размер элементов массива - это одно и то же? Массив - не обязательно заполнен, правильно?
Да и получить, сколько занимает массив в памяти, наверно, можно не в любом языке. Это - что-то типа sizeof()? Но опять таки, это даст размер всего массива, а не заполненного элементами. Определите задачу четче :)

Return to “Работа и Карьера в IT”