IT в Чехии - зарплаты, работы, споры и все, что около

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

Пару-тройку лет назад мне попалось что-то вроде этого: https://www.hackerrank.com/challenges/matrix-rotation-algo/problem

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

 

Ещё как-то раз в одной лотерейной компании вообще попалась математическая задача.

В общем - всякое бывало.

А вот с Java на Kotlin, пожалуйста.

У нас аналогично. Я и сам недавно попробовал Kotlin - понравилось.

А вы в Пражской компании работаете?

Пару-тройку лет назад мне попалось что-то вроде этого: https://www.hackerrank.com/challenges/matrix-rotation-algo/problem

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

.

 

Вполне решабельная задача, не вижу криминала, после такой я бы точно не стал компанию в черный список вносить

 

Ещё как-то раз в одной лотерейной компании вообще попалась математическая задача.

Для них это нормально, у них математики много на самом деле

Вполне решабельная задача, не вижу криминала, после такой я бы точно не стал компанию в черный список вносить

Всё решабельно.

Решили? И за сколько времени?

Без гугла и обсуждений, конечно же.

 

У нас аналогично. Я и сам недавно попробовал Kotlin - понравилось.

А вы в Пражской компании работаете?

Звучит как попробовал кокс) Шучу)

А так Котлин как глоток свежего воздуха после Java.

Рассматривали так же Scala, но в итоге отказались.

 

Я сам в Праге, но работаю не на чешскую компанию.

Всё решабельно.

Решили? И за сколько времени?

Без гугла и обсуждений, конечно же.

Примерно полчаса отвлекаясь от основной работы

Честно говоря она оказалась проще чем я даже думал

 

336125069_Screenshot2020-09-24at16_55_36.thumb.png.78c28609417b7d56520f5bddf3d6a59a.png

 

Кстати отличный кандидат для обсуждения на доске.

 

Всё решабельно.

Ну тогда в чем проблема =) все зависит от того насколько хочеться в ту или иную компанию :)

 

Знаю людей у которых есть мечта работать в компании A или F например, и они стучаться туда раз в полгода, и пробуют и пробуют и пробуют :D

Остаётся поверить вам на слово что вы не мухлевали) Благо это легко.

 

Я потратил около 20 минут и пока повернул только внешний слой и первый внутренний слой демонстрационного массива. Все переменные надо теперь сделать динамичными, ибо они захардкодены.

 

Мечты работать в каком-нибудь гуголе или амазоне у меня вообще нет. Кстати амазон приглашал меня на собес, но ну его нафиг.

 

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

 

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

 

И ладно бы если это были алгоритмы вроде того что вы привели (время в строки).

Остаётся поверить вам на слово что вы не мухлевали) Благо это легко.

Зачем мне это, я уже слишком стар для такого, тем более я люблю иногда чтото решить для удовольствия

 

Ну там же все просто, идем по слоям как по верхним левым уголкам

Общий смысл:

0,0; 1,1; 2,2 ... Ограничивая m/2, n/2, размер каждого круга при этом будет меньше на -2 в обоих направлениях

Определяем "длинну" круга в шагах и "сокращаем" количество полных оборотов чтобы не крутить лишнего

Дальше цикл по оставшемуся колиству поворотов

Запоминаем точку угла текущего круга (0,0; 1,1; 2,2) и начинам цикл по "длинне" круга. Меняем местами запомненое значение со следующим

Тут я слегка сфилонил - изменение направления сделано через несколько if :rolleyes:

 

Делал на Javascript, функция поворота получилась в 30 строк включая скобочки

 

Но задача хороша именно на обсуждение - вариантов ее решения много. Мой вариант в ЛОБ, и далеко не самый эффективный.

Уверен что можно не "крутить обороты" а просто вычислять новую позицию по количеству оборотов

 

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

Это входной фильтр на профпригодность, как правило потом другие интервью еще. Если нет - печально - в черный список :D

Ну там же все просто, идем по слоям как по верхним левым уголкам

Я почти сразу понял что ключ в том что надо идти слой за слоем, сторона за стороной. И что стартовый индекс при каждом круге становится 0,0 - 1,1 - 2,2 и т. Д и что также при каждом круге ширина и высота уменьшаются.

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

Но задача хороша именно на обсуждение - вариантов ее решения много. Мой вариант в ЛОБ, и далеко не самый эффективный.

Обсуждать не только можно, но и нужно.

Только вот если скрининг на том же hackerrank то обсуждать не с кем.

Да и на физических интервью попадались такие что - никаких обсуждений, дай мне решение.

Да, задачу наверняка можно решить ничего не крутя. Но это уже больше математика.

Это входной фильтр на профпригодность ... Если нет - печально - в черный список :D

Всё - я официально профнепригоден.

Завтра же спрошу в конторе почему меня наняли и почему не уволили нахрен ещё на испытательном сроке. А также почему мне вообще доверяют новые проекты. Самому интересно стало.

Да, задачу наверняка можно решить ничего не крутя. Но это уже больше математика.

Сделал и так, но с выделением пямяти под новый массив, примерно в 3 раза быстрее, ну и кода чуть больше получилось

Всё - я официально профнепригоден.

Ну я ни это имел ввиду :D

Например плотник освоивший крутые современные инструменты не должен забывать как пользоваться молотком

Например плотник освоивший крутые современные инструменты не должен забывать как пользоваться молотком

Тут вот что получается.

Если бы эта задача попалась мне на собесе, я бы, скорее всего, с наскока его не решил бы.

И тут вижу такие варианты:

- Собеседующий слушает мой опыт работы и он его устраивает по всем пунктам (ну или не устраивает и фильтрует сразу). В случае если его всё устраивает, то он даёт эту задачу как бонус (подчёркиваю как бонус), а не как активный фильтр. То есть он оценивает глобально. И если он адекватный, то он помог бы, если видит что на каком-то моменте я застрял.

- Вариант - алгоритм boolean. То есть true или false. Даже если собеседующего мой опыт более чем устраивает, я бы собеседование тупо не прошёл из-за задачи. То есть он оценивает исключительно знание алгоритмов.

С вашей позиции все так

 

С точки зрения компании не свовсем

Если у компании много кандидатов (крупная компания, много платит, интересный проект)

То начинать с такого очного интервью очень дорого, гораздо проще отсеить 2/3, 4/5, 5/6 любым способом. Например как в анекдоте - пол-пачки резюме в урну - "нам не нужны неудачники". Или с помощью задачек - которые как правило автоматизированы.

Прошедших во второй тур все равно будет много чтобы было из кого выбрать с подходящим опытом.

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

Если кто-то не может решить задачку из-за стресса - ну очевидно он хуже точно такого же у которого стресса нет.

 

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

 

Бывают и локальные перекосы, когда проводящий интервью с завышеным ЧСВ или начитался про опыт гугла и амазона

 

- Вариант - алгоритм boolean. То есть true или false

Как я уже говорил - все такие более типичен проходной бал, требования 100% бывает крайне редко. Может у них 10 тыс человек на место конкурс, могут позволить выбирать только супер звезд

Если вы про крупные компании с конвеерным способом рекрутинга, где на одно место 100500 человек - то спасибо, вы меня успокоили.

У меня уже было "счастье" работать в крупной компании. Такого "счастья" больше не надо.

Особенный смак был когда в этой компании нам приходилось трогать код принадлежщий другой команде с очень развитым чувством собственности. Это было нелегко, да и вообще было очень много токсичности.

Может это косяк именно этой компании, но с меня этого хватило.

Мала вероятность что в крупной компании будет интересный проект и что у тебя будет свобода действий. И высока вероятность вышеописанной херни.

Проходить фильтры только для того чтобы попасть в подобную среду - очень странно и очень нелогично.

 

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

Если вы про крупные компании с конвеерным способом рекрутинга, где на одно место 100500 человек - то спасибо, вы меня успокоили.

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

 

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

Ну они имеют право нанимать как хотят

Вы имеете право выбирать идти в такое или нет

 

Рынок все уравняет

Ну они имеют право нанимать как хотят

Вы имеете право выбирать идти в такое или нет

 

Рынок все уравняет

Да, пусть нанимают как хотят. Хоть и не вижу в этом логики.

 

Я и сам периодически оказываюсь по ту сторону баррикад.

И процесс происходит так:

- Говорю о компании, команде, стэке и т. д.

- Даю слово кандидату.

- Начинается беседа/диалог (я задаю ему вопросы, он мне).

- Задаю совсем уж лёгкие вопросы на всякий случай вроде что такое final в java, чем отличается интерфэйс от абстрактного класса и т. д.

- Задаю стандартные вопросы про транзакции и тому подобное.

- Даю более-менее реальный кусок кода и спрашиваю что бы он в нём улучшил. И ожидаю ответов в духе:

- Эта переменная плохо названа, её надо переименовать.

- Эта штука никогда не меняется, её лучше извлечь в константу.

- Этот ресурс открыт, но потом не закрыт - потенциальная утечка памяти.

- Здесь мутируется параметр функции или какая-нибудь переменная вне функции. Мутабельность - плохо, так как здорово затрудняет понимание кода. Хотя в редких случаях мутабельность необходима.

- Эта функция слишком длинная, её надо разбить.

- Функцию мы разбили, но теперь в классе стало слишком много функции. Вероятно класс делает слишком много вещей (нарушает SRP) и её тоже надо разбить.

- И так далее.

 

В общем, что-то вроде реального Merge Request. Всяко полезнее чем менять массив.

В общем, что-то вроде реального Merge Request. Всяко полезнее чем менять массив.

А потом окажется что человек не может сам ничего написать, только поддерживать

Интервью в таком фрмате это 2-3 часа. Если у вас 100 хороших кандидатов - это займет 1.5 работы фул-тайм только на собеседованиях

А потом окажется что человек не может сам ничего написать, только поддерживать

Никак не окажется. Как человек до всего этого догадается если он сам не писал код?

Напомнило "Чукча не читатель, чукча — писатель" ) Только наоборот.

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

 

А вот обратное вполне может быть верным. Это когда человек, с успехом изменивший массив, пишет нечитабельный и плохо сопровождаемый код. Вот это уже настоящий "Чукча не читатель, чукча — писатель".

Никак не окажется. Как человек до всего этого догадается если он сам не писал код?

А вот обратное вполне может быть верным. Это когда человек, с успехом изменивший массив, пишет нечитабельный и плохо сопровождаемый код. Вот это уже настоящий "Чукча не читатель, чукча — писатель"

Если он не в состоянии решить алгоритмическую задачу, то:

* либо у него отсутствует алгоритмической мышление,

* либо он "видит" алгоритм в голове, но не способен перенести его в код

* либо он может но ему надо неадекватно много времени на это

 

Все из этого минусы кандидату относительно других

При этом не вижу противоречий со знаниями о том какой код хороший, а какой плохой, эти знания ортогональны алгоритмической подготовке

 

Изменение массива - один из фильтров, умение писать код тоже нужно проверять, до или после каждая компания решает сама. Если для компании оба фактора равнозначны - то начинать надо с того на чем сыпется большая часть кандидатов по статистике. Это банальная оптимизация

 

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

Сколько вы отсобеседовали людей чтобы нанять этих нескольких человек.

 

К тому же это логично что в компании набираются люди под свое видиние хороших людей.

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

 

Я лет 5-10 назад думал примерно как вы, и в целом считал что я сам задачки плохо решаю, и мой конек это архитектура высоконагруженных систем. И собеседования проводил примерно по тому же сценарию что у вас с небольшими вариациями

 

Два года назад вынуждено пошел в Топтал. Там достаточно жесткий отбор, сначала 3 задачи на leetcode за 1 час, потом общий разговор, потом опять задачи, но при этом еще с sharescreen, и экзаменатор смотрит как ты фигачишь, потом тестовое задание прикладного характера на пару недель где нужно показать реальные навыки проектирования приложений, и еще одно финальное интервью

 

После этого я поменял отношение к задачкам :). Возможно если бы не прошел этого не случилось бы, или даже еще больше их возненавидел :)

Все из этого минусы кандидату относительно других

Если это исключительно фильтр, а не всесторонняя оценка, то ради бога. Могу понять что нанимают сотнями и времени на каждого нет и что компания без проблем может позволить себе false negatives. Только вот чтоб не было стереотипа - не решил задачу = плохой разраб.

 

Хотя тут есть элемент везения, если попадётся задача вроде "время в строки", то без проблем, а если matrix rotation, то можно споткнуться на жонглировании индексами (недаром он указан как hard - задача может и не самая-самая сложная, но и не самая-самая простая точно). Но опять же, если это только скрининговый фильтр, а не полноценная оценка - то всё ОК.

 

Мы массово не нанимаем - заинтересовал резюме, приглашаем на собес. И в таких категоричных фильтрах вроде "matrix rotation" необходимости нет. Собеседования провожу не только я, но и несколько других разрабов. Чередуемся.

 

Два года назад вынуждено пошел в Топтал. Там достаточно жесткий отбор, сначала 3 задачи на leetcode за 1 час, потом общий разговор, потом опять задачи, но при этом еще с sharescreen, и экзаменатор смотрит как ты фигачишь, потом тестовое задание прикладного характера на пару недель где нужно показать реальные навыки проектирования приложений, и еще одно финальное интервью

 

Очень-очень жестко. 2 недели? Попробую угадать - неоплачиваемые?

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

Только вот чтоб не было стереотипа - не решил задачу = плохой разраб.

Не плохой, просто хуже чем другой, который справился с другими тестами примерно также

 

Хотя тут есть элемент везения, если попадётся задача вроде "время в строки", то без проблем, а если matrix rotation, то можно споткнуться на жонглировании индексами (недаром он указан как hard - задача может и не самая-самая сложная, но и не самая-самая простая точно). Но опять же, если это только скрининговый фильтр, а не полноценная оценка - то всё ОК.

Запутывание в жонглировании тоже о чем то говорит, например к склонности к сложным решениям

У меня негде особо было запутаться в индексах:

function matrixRotation(matrix, r, m, n) {
   for ( let layerM=m, layerN=n, layerOffset= 0; layerM >=2&& layerN>=2; layerM-=2, layerN-=2, layerOffset++){
      let totalLength = (layerM-1)*2 + (layerN-1)*2;
      let effectiveRotation = r % totalLength;
       for ( let round = 0;round<effectiveRotation;round++) {
           let  next = matrix[layerOffset][layerOffset]
           let localPosition = [0,0]
           let direction = [1,0]
           for (let i = 1; i <= totalLength; i++) {
               if (i >= (layerM)) {
                   direction = [0, 1]
               }
               if (i >= (layerM + layerN - 1)) {
                   direction = [-1, 0]
               }
               if (i >= (2 * layerM + layerN - 2)) {
                   direction = [0, -1]
               }
               localPosition[0] += direction[0]
               localPosition[1] += direction[1]
               let current = matrix[layerOffset + localPosition[0]][layerOffset + localPosition[1]]
               matrix[layerOffset + localPosition[0]][layerOffset + localPosition[1]] = next;
               next = current
           }
       }
   }
}

 

Очень-очень жестко. 2 недели? Попробую угадать - неоплачиваемые?

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

2 недели не фултайма. Это дедлайн, по их оценке это примерно 20-30 часов.

Неоплачиваемые.

Я не пожалел что прошел это

Ну в моем случае "вынужден" - это не то чтобы есть нечего, просто никто из местных компаний не хотел давать столько сколько я хочу :)

Не плохой, просто хуже чем другой, который справился с другими тестами примерно также

Нужно добавить одно условие - если этот человек накануне не зашёл на hackerrank и по чистой случайности не решил ту же или похожую задачу (возможно с большой помощью гугла или вообще решения).

например к склонности к сложным решениям

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

Нужно добавить одно условие - если этот человек накануне не зашёл на hackerrank и по чистой случайности не решил ту же или похожую задачу (возможно с большой помощью гугла или вообще решения).

Это тоже кое что покажет, как минимум что память хорошая :)

 

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

Самом себя оценивать сложно.

Это тоже кое что покажет, как минимум что память хорошая :)

И также что капец везучий.

 

Самом себя оценивать сложно.

Я сейчас же переписываю свой спагетти код который проходит ревью несколькими людьми и на который все жалуются.

И также что капец везучий.

Да большинству супер успешных людей в жизни очень везло.

 

Я сейчас же переписываю свой спагетти код который проходит ревью несколькими людьми и на который все жалуются.

Я запутался, это стеб такой или...?

  • 1 месяц спустя...

Рнбята всем привет, подскажите пожалуйста, будьте добры:)

 

Есть молодой человек, который сейчас учиться на android разработчика. Ищет стажировку, работу, наставника. Очень хочет развиваться в этом направлении. Сейчас ждет собеседования с рэдхэт, на интерншип позицию. Но так как это еще все "туманно", продолжает искать работу еще. Языки kotlin, java. Может кто подскажет, где можно еще поискать начинающему разработчику? Человек находится в Праге, гражданство чешское. Языки английский, чешский, русский. Спасибо большое за помощь и ответы.

где можно еще поискать начинающему разработчику?

jobs.cz

linkedin.com

jobs.cz

linkedin.com

 

Спасибо большое за ответ, каждый день там ищет. Пока кроме рэдхэта были отказы :( видимо т. К. Без опыта. А trainee программ пока нигде особо нет. В любом случае спасибо :)

Еще очень важно, чтобы резюме каждый раз "затачивалось" под конкретную позицию. Обычно это сильно повышает шансы получить приглашение на интервью.

Спасибо большое за ответ, каждый день там ищет. Пока кроме рэдхэта были отказы :( видимо т. К. Без опыта. А trainee программ пока нигде особо нет.

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

Не отчаивайтесь! В Чехии трудоустройство - это неспешный процесс, даже в IT.

Наверх
  • Создать...