Как стать автором
Обновить

Комментарии 170

Вам прислали подробный разбор, а Вы ещё чем-то недовольны? Ну и зачем такого сотрудника брать в команду?

У меня сложилось впечатление, что они и не наймут даже при 100% попадании скиллсета.

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

Разбор туфта. Сделай x, и ответ, вы не сделали y, могли догадаться. Это тупизм, а не разбор.

Чаще всего даже таких отзывов не получаешь на тестовые.

Поддерживаю. Ты всё сделал объективно правильно. Тестовое задание сделал, навыки продемонстрировал. На Джуна уж точно. Говорю тебе как разработчик с 20-летнем стажем, из них не менее 10 лет коммерческого опыта.

Успехов в развитии и не позволяй себя газлайтить;)

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

Согласен с вами)

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

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

Как итог: всё это такой идиотизм. Понабрались зарубежных приёмов для организации производства, а про обычный человеческий подход забыли... Это я уже молчу про то, что некоторые "умники" не понимают как пользоваться этими приёмами на практике.

QT

после этого бежишь

А по заданию, ну давать тестовое задание на неделю это любимое занятие всех фирм где занимаются QT, это уже красный флаг

QT действительно ужас-ужас, а вот Qt вполне неплох в качестве графического фреймворка

Да ладно, вы документацию этого qt видели? Если да, то пойдите почитайте у Гугла про jetpack compose, вот где документация графического фреймворка.

Плюс в qt целая куча не очевидных вещей, о которых даже зная C/Cpp можно поспотыкаться на ровном месте.

Я видел его документацию, у меня к ней и раньше претензий не было, а на контрасте знакомства с Unreal Engine, я так и вообще руку пожал бы лично каждому кто ее написал.

Мне искренне интересно узнать что-же там за такие неочевидные вещи

Так, ну давайте начнем рассказ про мое хождение по граблям - qt может сам освобождать часть элементов, если они переданы в qt класс, а потом при ручном освобождении мы падаем в runtime, qt painter может рисовать path двумя способами (мне это вообще в голову не приходило, зачем оно такое надо?) draw path, drawstrokepath. Ну про нагенеренную moc компилятором рефлексию и автор упомянул, я что-то для начинающих про нее тоже ничего не нашел :)

qt может сам освобождать часть элементов, если они переданы в qt класс

Ну так в этом случае в доках пишут "takes ownership": https://doc.qt.io/qt-6/qmainwindow.html#setCentralWidget. Ну либо вы удалили какой-то QObject у которого есть parent, но про это тоже подробно расписано: https://doc.qt.io/qt-6/objecttrees.html

drawstrokepath

Если вбить это в Гугле, находится только ваш комментарий в этом посте. А про рисование паинтером есть вот такая простыня с компилируемыми примерами: https://doc.qt.io/qt-6/qtwidgets-painting-painterpaths-example.html

нагенеренную moc компилятором рефлексию

https://doc.qt.io/qt-6/metaobjects.html
https://doc.qt.io/qt-6/properties.html

Я не буду ничего писать про два остальных примера, будем считать это моей невнимательностью, я все же не изучал qt отдельно никогда. Остановимся на path и painter.

Вы конечно молодец, прислали мне пример из доки, он там и правда есть, ставится вместе с creator. Но есть одно большое но, там не рассматривается пример работы stroke path (я ошибся, написал по привычке drawstrokepath, на самом деле надо установить сначала stroke path, а потом draw path), а обычный, как оказалось работает не так как ожидается. Причем очееень неожиданно. И такое везде, где я начинаю погружаться в qt

У Qt шикарная документация, зачем брешете?

Вы видимо шикарную документацию не видели. Я ещё раз пишу, зайдите на jetpack compose, вот где шикарная документация

Зашёл, хоть и не шарю в котлине (на примере слайдера):

  • Тот же бриф в начале страницы, то же краткое описание member-ов, что и в доках qt

  • Те же примеры использования

  • То же подробное описание класса, его поведения и нюансов на отдельной странице (в qt просто листануть ниже, не суть)

  • Те же quick start гайды по разным частям библиотеки, best practices и все дела

Разверните, пожалуйста, свою мысль вида "вы документацию этого qt видели?" и "зайдите на jetpack compose", а то я лично не понимаю, что вы хотите сказать.

Для примера вот qml slider: мне вот больше нравится, там в брифе сразу типы member-ов и аргументы функций указаны, в отличие от вашего примера. А ещё доки qt доступны оффлайн в qtcreator по F1, не нужно ждать, пока грузятся страницы, которые у вашего примера в несколько мегабайт размером (не проверял, еcть ли оффлайн версия)

О, это вы хорошо зашли) можете посмотреть как раздел guides вообще выглядит - там все аккуратно разложено и все можно понять и легко начать что-то делать человеку далёкому от фреймворка. Так же даны примеры!!! реализации.

Вот к примеру про картинки и их кастомизацию, у qt ничего похожего и рядом нет. Примеров архитектурных компонентов вообще не найти. Примеры мобильных приложений тоже не найти. И все как-то сложно. Аналогов codelabs тоже нет. И так куда не пойти...

Qt creator это отдельный вид садизма, там даже автоимпорт qt классов не реализован до сих пор. Документация кстати и в Android studio доступна, т.к. есть исходники с комментариями, чего тот же qt может быть лишён (как я понял исходники qt Cpp добавить как-то можно, но по умолчанию из нет)

https://developer.android.com/jetpack/compose/graphics/images/customize

как раздел guides вообще выглядит - там все аккуратно разложено и все
можно понять и легко начать что-то делать человеку далёкому от
фреймворка

То же самое в доках Qt. И те же примеры использования (реализовывать не нужно, оно же в библиотеке уже). Вообще мне чёт лень с вами спорить, да и аргументы у вас все спорные, я сливаюсь.

Недавно делал тестовое в Crytek, там похардкорнее, и да, тоже на неделю (хотя по мне так нужно около 3 недель чтобы на 99% хорошую архитектуру сделать). На самом деле не вижу в этом проблемы, если вам действительно хочется именно на этот конкретный проект. Без примеров кода очень сложно понять, насколько человек может связывать в единое целое штучные классы (проектировать архитектуру). Думаю что джун в любом случае получил ценный опыт.

З.Ы. А Qt элементарно ставится без впн практически через любой менеджер пакетов.

IMHO любое тестовое на неделю - это красный флаг

Красный флаг только после ответа на два вопроса:

  1. Действительно ли вы хотите именно на этот проект

  2. Оплачивается ли такое тестовое (но это огромная редкость)

    Если хотя бы на один из вопросов ответ «да», то who not?

Ну лично скажу, если первый и второй пункт «да», то тогда почему нет, денег лишних не бывает, вопрос лишь в цене и времени.

Опять кто-то молча минусует все подряд комменты, без каких-либо аргументов. Видимо кому-то я насолил =\

Иногда попадаются интересные задания. Не так давно делал тестовое на позицию performance engineer в HFT фонд. Нужно было покодить на C/x86 assembly под Линукс с упором на низкое лейтенси. Несмотря на то, что по результатам дальнейших собеседований получил отказ, вполне интересно провел время за выполнением такого задания.

Когда же дают тестовые типа «Напиши сервис по перекладыванию джейсона из Кафки в Монгу и положи в докер», то как правило вежливо отказываюсь от дальнейших этапов, если не интересны проект, компания и компенсация.

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

  • Надо платить за тестовое

О, на Хабре с год назад была статья, что компания платит* за тестовые задания...Но был нюанс.

Ну почему. Мы когда давали тестовое, срок вообще не ограничивали. Я называл срок в две недели как ориентировочный, типа, мы перестаём ждать, но присылать можно и позже. Это ж просто вежливость, кому сколько времени нужно, у кого сколько времени свободного есть.

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

Надеюсь, вам эти тестовые хотя бы оплатили.

Подпишусь под каждой буквой. У меня 26 лет коммерческого опыта. Переодически бампаю свои резюме на соответствующих ресурсах с целью посмотреть где предложат поработать и над чем. Иногда даже хожу на собеседования и вот что я понял за все свои три места работы. Тратить время на тестовые задания - величайшая глупость кроме ситуации когда ты очень хочешь здесь работать либо ситуация безвыходная(к этому конечно же я пришел не сразу). Причина такого банальная. Ты не в курсе какой код от тебя ждет другая команда. Ну серьезно, вы еще не знакомы, а уже любить друг друга собрались. Опять же тестовое это время которое крайне редко потенциальный работодатель соглашается оплатить. А иногда бывают лулзы в фидбеке после которых работать в данной компании уже не хочется.

У меня единственный стимул выполнять тестовое - прикольная задача ,которую мне интересно выполнить независимо от результата, чисто по фану. Делать это ради работы - ну его нахрен.

Это да. Но как раз такие задачи даже одного целого вечера не требуют. Уж точно не две недели.

Вот потому обычно и отказываюсь от тестовых. Последний раз когда делал - получил фидбек плана "Нет". С тех пор даже время на все это тратить не хочу. У меня на тестовое тогда ушел целый день (хотел получше сделать), у ревьювера на ответ ушло три секунды, уверен что код он даже не смотрел. К черту все это.

Ну пару часов-то можно.

НЛО прилетело и опубликовало эту надпись здесь

И задание вида «сделайте в точности как вот в этих продуктах», а потом «ой, а мы думали, в них по-другому работает, переделывайте».

НЛО прилетело и опубликовало эту надпись здесь

Зависит от формулировки:
вот вам тестовое, которое мы оцениваем как "работы на неделю"
или
вашу работу мы будем ждать до конца недели

НЛО прилетело и опубликовало эту надпись здесь

Они ещё и фидбек присылать не любят )

Я когда на джуна устраивался, получил тестовое задание на неделю, и да, делал его целую неделю. Правда через полгода, когда стал миддлом, мог сделать его за 2-3 часа. Все зависит не от срока, а от сложности тестового задания

Если тестовое задание занимает больше 2х часов - забываешь контору и идёшь дальше.

В 2017 году я делал тестовое С++ в одну из импортозаместительных контор на Эл начинается, на кс заканчивается.

Написал там что-то элементарное типа std::unique_ptr или auto, а они мне - ваше задание не компилируется. И показывают лог 4го или 6го GCC.

Как-то не получилось с ними поработать.

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

Поясните шутку не плюсовикам? 4/6 GCC насколько древний?

4й GCC это середина 2000х годов. Разница между стандартами C++03 и C++11, например, колоссальна. А в наше время уже и C++11 кажется древностью.

В этот момент STM-щики начали ронять скупую мужскую слезу...

У STMщиков есть GCC, им чего горевать то? И IAR.

Даже TI весьма давно поддержали 11й стандарт в Dsp 6000й серии.

В том и дело, что для 6000, а для 5510 нет. В любом случае, на МК всё это приходит с сильным опозданием.

На дворе 17й год, а у них в компиляторе не включена поддержка 11го стандарта. Причём, они даже не знают, базовые вещи, что в него входят.

А, так вот почему Элтекс настолько сырые прошивки для своего оборудования клепает.

Дыа) и зарплаты у них очень грустные.

Зато они хорошо экономят на отделе тестирования! Все тесты выполняют пользователи на собственном оборудовании. И это не шутка.

ваше задание не компилируется. И показывают лог 4го или 6го GCC.

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

Мне кажется, это они должны писать в требованиях: хотим GCC 126 версии с перламутровыми пуговицами.

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

Они ещё в задании написали, "поддерживать подключение нескольких клиентов' а потом такие: ой, а вы многопоточность не показали. Я грю - вы написали, поддерживать несколько клиентов - я поддерживаю. По очереди. Те такие - ну да, как-то не очень сформулировали ?

Леста?))

В контору абсолютно неквалифицированных рукопопов? Тестовое на неделю? Ты посмотри какой важный птиц))

Не, я всё понимаю, но есть же вещи которые не продаются - уважение к себе, например))

Вы бы ещё в ВК (которые мэйлру) резюме отправили))

А в мейле, наверное, хорошо работать. Судя по результатам - чтобы в мейле хорошо работать, нужно очень плохо работать...

Откуда знаешь, что в лесте рукожопы?

по отделу балансировки

Я, при желании, конечно, могу насобирать вам тучу багов из клиента, которые не правятся годами - только на это никто не реагирует. Балансировку, "pay to win" и т.п. даже не трогаем.

Вот мне кажется, характерный пример - год назад Леста и ВГ решили окончательно разделить сервисы на "независимые". И корабельную вики решили перенести на другой домен. Вот, по вашему - сколько надо времени на подобную задачу для компании масштаба Лесты? Пара часов? День? А несколько месяцев не хотите? Потому что ну не быстрое это дело - вручную копипастить контент с одного ресурса на другой...

которые не правятся годами

Но ведь это наследе вг, нет? Если 10 лет пилить костыли по указке, то когда указка пропадает, вполне себе может оказаться, что убрать костыли уже очень тяжело. Да и леста поддержкой цистерн же вообще не занималась, по сути.

Балансировку, "pay to win" и т.п. даже не трогаем.

Это тоже наследие вг. Да и народ не поймёт, если резко начать нерфить сильный премы, пусть их там и немного совсем.

Вы странный. Я же специально в качестве примера привёл кораблики, хотя с танчиками всё было бы ещё нагляднее.

Минус за то,что я просто поинтересовался, на основе чего человек составил такое мнение?

Хороший разбор того, почему с тестовыми заданиями на дом не надо связываться вообще. Оценить как человек пишет код можно за пятнадцать минут дав ему небольшой live coding прямо на собеседовании. А делать задание дома это из сферы "пойди туда не знаю куда" - никогда не будешь знать что от тебя на самом деле хотят и никаких уточняющих вопросов не задать в случае чего.

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

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

Да да, задания в духе «я загадал в этом коде ошибку, найди её». Проходили, знаем.

Нет. Речь не обязательно о поиске ошибок, а о "поиске", например, "пахнущего кода". Сам код может быть формально и без ошибок. Хотя, впрочем почему бы и нет. Если там какие-то не глубоко запрятанные ошибки логики, а, какие-нибудь достаточно типичные ошибки связанные с неправильным использованием языка или платформы (ну, например, передача по значению вместо передачи по ссылке и т.п.) - если человек действительно имеет опыт разработки, то он такие вещи должен распознавать сразу же с одного взгляда.

Если это код на проверку какой то конкретной ошибки по какой то конкретно одной теме - то ладно. Но, я не раз попадал в ситуацию, когда ты уже назвал 10 ошибок в блоке кода, а тебе говорят "А что еще?", либо "Это всё?". И ты сидишь и гадаешь, что именно задумал интервьюер, нашёл ли ты все ошибки, либо он хочет от тебя что-то конкретное.

Меня другая тема выбешивает. Когда показывают кусок кода такой, что непонятно чем надо удолбаться, чтобы такое написать (например дюжину как-то хитровложенных try-catch-finally) и спрашивают: "Что он будет делать". Мля, да ничего он не будет делать, потому что тот, кто такое притащит на ревью с ревью уже живым не уйдет :))

А сказать это пробовали? Можно вместе с ответом.

Оценить как человек пишет код можно за пятнадцать минут

Нельзя.

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

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

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

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

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

Вот, представим, я все-таки решил делать тестовое. Если я стану писать код "по студенчески", то

  1. Мне это неинтересно.

  2. Я это уже просто не умею, потому что у меня голова и руки уже под другое заточены.

Если же я стану писать код как будто он "боевой" для продакшена, то, даже учитывая наличие кучи готовых заготовок у меня минимум час уйдет только чтобы создать пустой скелет проекта (логирование, CA/SA/CI и т.п.). Плюс добавим к этому покрытие юнит- и интеграционными тестами, плюс хоть какое-то документирование тех же API. Вот и выйдет, что создать самый обычный (и в данном случае, в итоге, никому не нужный) CRUD надо будет пару вечеров потратить, а на это времени уже жалко.

Это же Lesta, неужели вы хотите работать 9-и часовой рабочий день и получать вычеты из зп за опоздания на минуту?

А бесплатные ужины?!(

Я когда в середине 2000 работал в одной конторе, то когда сидели на работе до 11-12 вечера, то присылали на всех пиццу, а потом еще такси до дома оплачивали :) На самом деле овертаймов там не было - просто из-за часового пояса клиента (US) часто приходилось рабочий день сдвигать, что в силу халявной пиццы и халявного такси было даже выгодно :))

А можно выложить тестовое на гитхаб? Почитать, посмотреть.

Могу отправить в ЛС

Выкладывайте ваше задание и тестовое. Вы nda не подписывали. Не надо оберегать неадекватных ревьюверов. Просто уже интересно, что там надо было такое предугадать.

Могу прислать свое на "Trainee QA Automation", если надо.

Делал как раз недавно, потратил часов 5 чисто из-за того что пытался сделать все идеально (а в одном задании вообще не очень верно сначала понял и даже перевыполнил)

Мне пришлите, если не сложно :)

Мне пришлите, если не сложно :)

Не стоит исключать вариант, что причины отказа просто высосаны из пальца, чтобы они смотрелись как-то болеменее осмысленно, хотя причина отказа совсем в другом. Вообще хорошо, что посмотрели код. Мой любимый случай - выполненое тестовое устроило, пригласили еще раз. Чета там про паттерн какой-то спросили, я сослался на тестовое, что мол вот там как раз этот подход и применил. Мне ответили: а мы, честно говоря, тестовое не смотрели, но паттерны вы не знаете, досвидос.

Прекрасно

Всегда можно отказаться брать тестовое, сославшись на собесы с другими конторами. Вы же работу ищите, а не тестовые.

Вокруг Лесты сейчас столько инфо-шума за последнее время.. Бро, понимаю твою обиду по поводу потраченного времени. Но потом судьбе только спасибо скажешь, что не взяли. Я сам как-то работал с этой шарашкой, там половину штата набрали на автобусной остановке, и этот сброд тащит компанию на дно. P.S. я так понимаю, вакансия по плюсам вообще никак не связана с QT?

Враньё, был я на автобусных остановках, нет их там

Ну так набрали уже)) по этому и нет))

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

Что забавно, если начать спрашивать на собесах "Зачем?" - то легко отказывают. По логике, не ну человек, который слишком душнит.

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

Придет время и вывод будет другой - не делать тестовые.

А пока оно не пришло, выкладывать на свой гитхаб с целью в будущем тыкнуть туда.

Тестовые делать можно, если они занимают 2-3 часа.

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

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

Было когда, я сфокусировался на бэк-енде, а надо было на фронте. Меня похвалили за бэк-енд, но не взяли из-за того, что я на скорую руку скопипастил фронт из интернета и не подчистил код.

И было еще одно - "нам некогда проверять, вы нам не подходите".

Проблема лишь в том, что у меня уже была работа, и я вёл себя на ней не так

То есть на момент полного погружения в тестовое на неделю вы забили на основную работу? Взяли отпуск? Отгулы? Как это работает?

нет, я уволился примерно пол года назад, потому что меня полностью посадили на C, хотя я приходил на вакансию "С++\С" всеми любимую :)
До этого были проекты на С++, а потом перевели на микроконтроллеры, вот я и решил уйти. В вакансии о них ничего не было сказано, когда приходил устраиваться..

Опять же, на Habr есть прекраснная статья о том, что С и С++ это разные языки. Вот это мой случай, я полностью разделяю такую точку зрения: https://habr.com/ru/articles/676816/

И я не хотел с 0 учить ту сферу, которая мне не инетресна на инструменте, который мне не нравится тупо из-за бабок. Всё же я глуп и наивен, и хочу, чтобы работа нравилась :)

Да, C это подмножество C++, но одно дело, когда основной язык это C++ и лишь иногда приходится считать байтики, а другое дело, когда из твой жизни полностью выпиливается С++, и остаются лишь микроконтроллеры с typedef-ами и операционкой в форме бесконечного цикла while в основе.

МК тоже разные бывают у нас в AKCP на CortexM3 без доп памяти был и SSL и SNMP и вэбморда и 3 десятка типов кастомных датчиков.

Сейчас под приличные микроконтроллеры пишут под операционной системой типа freertos и подобных. Другое дело что писать на С это сейчас глупость даже для микроконтроллеров. Код под С++ получается значительно компактнее по использованию флеш памяти просто потому что многие вещи, допустим интерфейсы spi можно делать наследованием от однократно написанного базового класса, а не тупо копировать. Но проблема в том что если в компании разработано много совта на С то разработчикам нужно переписывать под С++, но они его или не знают или нет времени на это или есть наработки, которые можно быстро использовать от проекта к проекту.

Проблема в том, что на с++ способов выстрелить себе в ногу в 3000 раз больше. Программисты для с++ нужны квалифицированнее. А они просят больше денег. А там, где МК, этих денег не платят.

Зависит от. Есть компании, где платят нормальные деньги (меньше конечно, но не драматично и в целом в рынок вписывается) и на С и работу с МК. Но насчет квалификации, вы правы.

Хотелось бы конечно, чтобы квалифицированных программистов на С становилось все больше.

Глупость это думать, что С++ решит все проблемы, просто потому что это С++. ООП для многих вещей спорный кроме GUI, а уж ООП в виде С++ это далеко не самое приятное, что могло получиться (Это еще мягко говоря).

НЛО прилетело и опубликовало эту надпись здесь

Если вы про обширное кол-во доступных библиотек, то для С большая часть того что требуется повседневно, так же существует.

НЛО прилетело и опубликовало эту надпись здесь

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

Я окунулся в пару больших проектов на С++, до этого купил и прочитал много серьезных книг по С++ (Скотт Мейерс, Райнер Гримм, и т.п., а главное - книга Федора Пикуса) чтобы быть "в курсе современного С++" и ООП в целом, естественно была так же изучена книга "Банды четырех" про шаблоны проектирования. Общался в процессе работы с другими коллегами, С++-программистами, которые были намного опытнее меня. Но одним из первых звоночков было, как мне помнится, когда один из таких действительно хорошо разбирающихся в С++ коллег смотрел мой код на ревью, нашел алиасинг в одном из методов, а потом сам же после штудирования стандарта и бог весть там чего еще, сказал спустя четыре час, что "Походу я был неправ, алиасинга там нет ".

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

Главное, что у меня на осознание этого заняло не так много времени, как бывает у многих, потратил всего около двух лет. Теперь только С и ассемблеры при необходимости, возможно, какой-нибудь Python в ограниченных объемах.

The cake is a lie.

НЛО прилетело и опубликовало эту надпись здесь

Rust конечно представляется неплохим вариантом, но лично я сейчас не могу смотреть на его синтаксис (код выглядит страшновато), ну и в целом пока хватает С.

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

Насчет Си и dead end пока не соглашусь (Не буду исключать варианта, что потом в будущем приду к вашим же выводам). Потому как я видел и участвовал в довольно больших проектах на С, где подобных проблем (Гибкость и надежность) не было, с точно такой же длительной историей.

НЛО прилетело и опубликовало эту надпись здесь

Существуют.

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

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

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

У меня не хватает никаких ментальных сил все это помнить и учитывать, где я или компилятор С++ поставил в код UB или нет.

C это подмножество C++

Неверно.

void foo();

Это совсем разные функции в этих двух языках. В C++ это функция без параметров, а в C это varargs функция.

В С есть ключевые слова, отсутствующие в C++. Массивы переменной длинны в C++ появились лишь недавно (хотя gcc отходил от стандарта и позволял их использовать).

Можно перечислять бесконечно долго.

По статье насчёт качества кода трудно судить. Там действительно мог быть гавно-код.

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

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

Нанимать нужно нормально. Всё остальное дичь.

Если предлагают тестовое, то надо сразу отказываться. Это время потраченное зря. Лучше постучать в ещё одну компанию. Пускай возьмут на меньшую вилку, а потом спустя полгода уходим на х2. Повторять n лет.

Если предлагают тестовое, то надо сразу отказываться

Надо писать везде крупными буквами. Особенно когда не указывают срок сдачи работы, и ты пытаешься работать 24\7, чтобы его выполнить, а потом тебе напишут страницу ерундовых замечаний.

Ну ОК, установил Qt на комп (это заняло больше суток, ибо установщик работает лишь через VPN, а все бесплатные жесть какие медленные).

В текущих реалиях Qt лучше скачать с торрента в готовом виде или собирать самому из нужной версии. Архив можно скачать с их сайта. Без VPN не пускает, но можно отменить загрузку, отключить VPN-расширение в браузере и начать скачивать заново, скорость будет намного выше.

Конечно, есть и минусы: build занимат несколько часов, потому что с j или parallel возникают определённые проблемы. Об этом даже писали в комментариях статье про кросс-компиляцию Qt.

О да, я думал об этом. Но раз уж поставил на скачку, то пускай стоит, зато не придётся потом со сборкой мучить и поиском зависимостей.

У меня проблем с распараллеливанием сборки Qt не было - я просто брал пребилт бинарник jom :)

Автор сделал тестовое, ревьюверу не зашло потому, что он не предвосхитил, функционал тестового задания, в котором данного функционала не было описано?

Что-то дичь. Почему нельзя просто взять и проверить тестовое, по требованиям тестового задания?

Автор, наниматель неадекватен. И не нужно копаться в себе. Вы сделали задание, наниматель начал выдумывать претензии о функционале, который не описан в тестовом. Занавес.

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

Но всё же в реальной жизни ТЗ тоже не имеет всех деталей и указаний к реализации, поэтому задача программиста выяснить их. Одна из причин, почему нас никогда не заменит ИИ, кстати (но это отдельная тема)

И то, что человек способен делать, пока не получил ответ: сидит без дела или пытается решить доступным способом -- это ведь тоже показатель, разве нет?

Такую точку зрению сегодня дал мой дипрук. И я могу согласиться как и с вами, так и с ним.

Если вам так легче понимать, тогда не буду настаивать. Просто я не люблю такое жопное отношение. Если мне нужно узнать о софт скилла, я спрошу о работе, как проходит ревью, что делаете как общаетесь и т. д Этого достаточно. ТЗ это уже проверка не личности, а конкретного задания, сделал, не сделал и как сделал.

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

Прошло уже более 10 лет и с самого начала, я принял для себя решение никогда таким не становиться.

Мне кажетя такая позиция уместна, когда ты мидл и выше.

У нас тут на дне мы говорим спасибо, если вообще дали тестовое :)

Требование "задавать вопросы по ТЗ", может быть и валидное, но, имхо, совсем не на джуна. Так как джунам обычно достаются задачи попроще, не требующие задавания вопросов и/или навыков гадалки.

Согласны\не согласны? Что думаете?

То, что автор нормально не спал - сам виноват. Правда если для того чтобы устроиться на работу нужно не спать, то страшно представить что будет когда начнётся сама работа)

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

По моему, автору повезло туда не устроиться. Адекватные работодатели минимально фильтруют соискателей при приёме, отсеивая совсем неадекватных, берут сотрудника на испытательный срок на 0,5...1 месяц и его оценивает, фактически, его будущий руководитель. Но такой подход похоже уже давно вышел из моды.

Но такой подход похоже уже давно вышел из моды.

Походу всё не в моде.

  1. Быстрый софт, не в моде.

  2. Адекватное интервью и ТЗ, с последующей адекватной оценкой, не в моде.

  3. Нормальное человеческое отношение, не в моде.

Работал у них почти 15 лет назад. Моё тестовое задание было написать рендер шариков и кубиков в стакане с физикой ( столкновения и вращения ). Справился за 4 дня. Взяли сразу. Никаких HR не было. Собеседовал сразу лид ( Олег Федоров респект ?)

Два шикарных года. Команда атмосферная.

Как сейчас там не знаю. Большая часть команды 2007-2009 разбежались

Ну ОК, установил Qt на комп (это заняло больше суток, ибо установщик работает лишь через VPN, а все бесплатные жесть какие медленные).

ох уж эти сложности в недооперационках.. хорошо что у белых людей есть `sudo apt/dnf/zypper/pacman install`...

Фраза, которую вы никогда не услышите от пользоваетелй Linux:
- Я не привык рассказывам всем подряд, какую операционную систему использую :D

Ok, поставить winget/choco и через него ставить. Альтернативы есть и не одна, а не страдания. Просто для кругозора полезно;)

незнаю как вингет, а чоко притащит официальный инсталлер qt и запустит его, и тут мы снова упрёмся в необходимость vpn.

vcpkg install qt

Согласны\не согласны? Что думаете?

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

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

Во второй части после получения ТЗ от эйчара незамедлительно подать список уточняющих вопросов, на которые эйчар точно не сможет ответить. Далее, если ответ от эйчара не поступит в тот же день, то предъявить ей за воровство сроков назначенных на решение. Если будет отмазываться, что она "не в теме" и вынуждена вопросы пересылать технарям, то задать вопрос: "Какой **** уполномочил ее ставить ТЗ, а необходимыми навыками для закрытия уточняющих вопросов не снабдил? И вообще, кем она себя возомнила?"

P.S.: Вторую часть не пишите. А если напишете, не публикуйте, а то минусов насобираете. Просто имейте ввиду, что вот такие диалоги, возможно, следующему за вами рекрутеру окажут помощь.

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

Самая жесть, которая время от времени попадается - откликаешься на вакансию, а тебе в ответ ни "здрасте", ни "как живете", а просто молча берут и на почту тестовое задание сразу присылают. В топку сразу же, без разговоров :)

Ох. Я похожим образом тестовое в Кефир проходил.

Написать аналог Asteroids. Логика независима от представления. Время неограничено. Ок, потратил часов 10.

Ответ: примененные вами подходы не работают в случае большого количества объектов и большого разнообразия логики. И вообще присмотритесь к ecs. Приходите через пол года.

Чего!? Строить ecs для приложения где по ТЗ и не предполагается не то что тысяч, даже сотен объектов? И как я должен был понять что им надо расширяемое приложение? Есть четкое ТЗ, с четкими требованиями. Оно готово.

Аа, я тоже для Кефира делал тоже самое тестовое задание) Отдельно игровой движок, 2 отдельные игры, чтобы продемонстрировать возможности движка. Учитывая, что я был только с универа и вообще без опыта - я тогда считал, что получилось здорово. Увы, но Кефиру тестовое не понравилось. Уж не помню причин, давно было.

Зато потом в другой конторе эту игру приняли в качестве тестового, а на собесе интервьюер её даже похвалил и сказал, что немного погонял в неё. Было приятно)

А офис Питерский или Минский?

Если отбросить тестовые на неделю, Лесту и т.п, то меня смущают два момента. 1. В любом рассказе про алгоритмические секции или лайвкодинг на собесах всегда обожают отдельно выделять насколько собеседуюшие любят уточняющие вопросы если условия сформулированы неоднозначно. 2. Я НЕ выдающийся программист. Поэтому каждый раз, когда я оказывался в ситуации "дедлайн через 2 дня, а еще ничего не готово и непонятно как, поэтому нет времени на сон" на выходе через эти два дня со сломанным режимом в качестве кода оказывался в лучшем случае кусок уг. Очень плохо пахнущего. И было такое как правило либо если вовремя не задал правильных вопросов, ограничивающих требования. Либо скилл не дотягивал до нормальной реализации требований.

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

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

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

Я из 1С и пришел :)

Как-то там еще меньше нравилось, может просто отдохнуть надо, уже не знаю даже.

А что в 1С не нравилось? То, что постоянно надо меняющуюся нормативку изучать? Или у вас там тоже руководство требовало херачить код в супер сжатые сроки?

А что, для работы в 1с разрабом надо нормативку? Консультанты для тебя переводят бизнес постановку на понятный тебе язык... Во всяком случае в разработке для sap так.

Можно, конечно, знать это все, но для работы разрабом - ни к чему. Консультантом - да, отлично. Знаешь и как код писать и в предметной области шаришь

А что, для работы в 1с разрабом надо нормативку?

Как правило, да. Серьезный спец по 1С он уже наполовину бухгалтер, а не чистый кодер.

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

И во многом по этому SAP значительно дороже в сопровождении, а многих вещей которые в 1Ске искаропки в нем нет в принципе.

Но все же тут надо учитывать, что SAP и 1C довольно разные продукты решающие несколько разные задачи.

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

Дедлайнов особо не было, но задачи в основном, помню, были довольно скучные, правка типовых процентов в 80 случаев, какие-либо отчеты допиливать, это просто скучно.

Честно говоря для меня чем дальше, тем меньше я испытываю какой-то кайф от программирования.

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

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

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

Побуду капитаном очевидность.

Вот 99% что под фразой "срок - неделя" подразумевали, что в течении недели найди вечерок когда тебе удобно и сделай задание за пару часов. Ну потому что тестовых заданий на 40 раб. часов никто в здравом рассудке ни давать, ни делать не будет. Даже за деньги это что-то странное. Может они чуть и виноваты, что не разъяснили это, но кажется тут сам себе злобный буратино, мог бы и спросить.

Собеседование - штука абсолютно без гарантий и обязательств, причем для обоих сторон до момента подписания договора. Это не так работает, что сделал тестовое и обязаны взять. Обычно в простейшем случае алгоритм работы - это "прособеседовали 5-10 человек, взяли кто больше понравился". Да, в больших компаниях многоуровневые собеседования и с каждым этапом шансы повышаются, но никаких обязательств брать если сделал задание нет и быть не может даже в них. Более того, страшную тайну открою, даже по ТК РФ на испытательном сроке (до 3 мес.) тебя вполне могут уволить в 3 дня без особых объяснений. На то он и испытательный срок. (нет, за просто так увольнять тебя не будут - это ж сколько денег и времени уже потрачено).

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

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

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

НЛО прилетело и опубликовало эту надпись здесь

У одной из российских игровых студий тестовое задание на джуниора C# состоит из самописного игрового движка с реалтаймовой самописной физикой (в том числе коллизии) и последующем создании на этом движке своей игры (благо, придумывать что-то новое тут не надо, просили клон одной ретро игры). В идеале - игровая логика должна быть сделана на самописной реализации ECS. Сомневаюсь, что это возможно сделать с нуля за пару часов.

Движок 2d или 3d?

2d

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

Вас никто палками делать это не заставлял. Не хотите - не делайте. А они не хотят - и не берут вас. Свобода воли. Радуйтесь, что пока так можно, а не по распределению вас отправили.

Более того, страшную тайну открою, даже по ТК РФ на испытательном сроке (до 3 мес.) тебя вполне могут уволить в 3 дня без особых объяснений

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

Просто забудь. Ну и порадуйся что не попал в эту команду. У меня был похожий случай. Меня завернули поэтому что в задании я использовал самый строгий уровень изоляции, а это бьёт по производительности. Так что ...вы получили свой технический опыт. Наслаждайтесь. И не расстраивайтесь!

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

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

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

Если основная функциональность не будет работать или будет работать криво - однозначно отказ.

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

Вспомнился конкурс от вконтактика:
В ТЗ конкурся отдельным пунктом вот в этом месте делаем поведение Х, ни в коем случае не У!
В резолиции жюри, этот победил потому что у него в отличии от остальных реализован У!

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

Чёто я не понимаю плач. Контора прособеседовала и протестировала кандидата, кандидат не устроил, все пошли дальше. О чём слёзы?

У меня единственный стимул выполнять тестовое - прикольная задача ,которую мне интересно выполнить независимо от результата

Неплохо флешбекнуло

Шёл 2019 год, его начало. предваряя: у леслы не поменялось ничего за 5 (пять!) лет.

Прошёл базовое собеседование, предложили задачу на дом. хоть и 5 лет прошло, но навскидку там было (c++ и qt):

  • реализовать 2д редактор

  • редактор отображает 2д карту с объектами

  • объекты умеют отображаться различным образом, в зависимости от конфига

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

  • редактор умеет создавать карту, загружать, сохранять + есть средства редактирования

  • конфиг умеет управлять свойствами и типами объекта, поэтому редактор может вести себя по-разному

Героически собравшись, реализовал всё вышеуказанное, обошлось это в 2 недели труда и в 2-3к строк кода. Туда же минимальная дока, красивый читаемый код, запускаемая сборка.

Фидбека не было без запроса. После запроса буквально было "реализовано всё верно, но не совсем так как хотелось бы нам". Наверно бОльшую степень удивления мне уже никогда в жизни не испытать. На всякий случай показал на ревью спецу, который в этом намного больше собак съел: он предложил несколько улучшений но в целом оценка в проделанной задаче была высокая.

Почитав про подобные кейсы я сделал выводы почему такое возможно:

  • все плевали на кандидатов и на их время. правильно сделанное задание не гарантирует даже что его посмотрят, не говоря уже о фидбеке или даже о том, что этап собеса будет пройден

  • на вакансию параллельно рассматривается много кандидатов, из нескольких хороших выберут кого-то 1 и всё.

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

  • hr может крутить собеседования 24/7 даже в условиях, когда никого не ищут на вакансию. видимо чтобы когда кто-то понадобится, уже будет несколько человек, которые прошли несколько этапов. т.е. hr быстрее закроет позиции. если позиций не оказалось - кандидаты просто свободны и всё. т.е. найм проходит 24/7 в независимости от того, нужен кто-то или нет.

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

Бесценный вывод я тогда сделал: больше никаких домашний тестовых заданий. Они не гарантируют ничего, они съедают много времени и сил, никто не скажет как будут оценивать (тогда как фактор субъективности в данном случае влияет на всё), высоковероятно не дадут нормальную обратную связь.

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

Но всё же, вызывает удивление, что там всё осталось также практически 1 в 1.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории