TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #1113 · 28.06

Mindbox #interview#dev Вакансия тимлида .NET, откликнулся через hh, единственная вакансия, где был указан доход: до 500 на руки. Mindbox — это крупнейший в России софт для автоматизации маркетинга. Среди клиентов известные торговые сети и бренды (Комус, Петрович, Делимобиль, Афиша, даже бигтех, например Сбер Еаптека и Мегафон). Когда я готовился к другим собеседованиям, в моём пуле был очень хороший доклад по микросервисной среде от сотрудника Mindbox с конференции DotNext. В общем, не стартап-однодневка, а вполне серьёзная организация, просто известная больше в бизнесовых, а не потребительских кругах. А ещё Mindbox — это «бирюзовая» компания. С этим термином я столкнулся впервые. Таким способом называют компании, у которых внутренняя организационная структура отвергает классические подходы с жёсткой иерархией и согласованиями. Теоретически любой человек может принять любое решение, если готов за это решение отвечать. Прозрачность зарплат внутри — все знают, кто сколько зарабатывает. Многие вопросы решаются голосованием, системой вето, дебатами с аргументацией. Принято давать не анонимную обратную связь коллегам, и в компании специально обучают, как это делать так, чтобы тебе в челюсть не прилетело человека такая обратная связь развивала, а не обижала. Короче, мечта зумера. Как в современных смешных роликах, где вчерашние школьники на звонке говорят что-то типа «Сегодня я не в ресурсе работать, пойду выпью лавандовый раф и помедитирую». Давайте честно скажу: я сам не верю, что такая структура работает. Но, во-первых, как-то всё-таки она работает. Организация успешно функционирует, ребята делятся интересными технологиями, доходы есть. И Mindbox не единственная «бирюзовая» компания в России, на самом деле их довольно много: ВкусВилл, Буше, Qiwi, Точка итд. Во-вторых, я уверен, что есть подводные камни, но выявить их с помощью вопросов на собеседованиях у меня не получилось. Например, с моей точки зрения при открытости зарплат всегда будут люди, которые считают, что кто-то с более высоким доходом на самом деле менее компетентен и получает такой доход незаслуженно. И даже в ряде случаев эти люди будут правы. Это создаёт негативное эмоциональное напряжение. Хуже открытой неприязни только скрытая: когда человек в лицо мило с тобой общается, а потом в кулуарах будет тебя поливать грязью. Но, когда я спросил на собеседовании, как они справляются с такого рода конфликтами, мне ответили, что у них так не бывает. Система повышения зарплаты тоже голосованием: на некотором внутреннем портале ты публикуешь свои достижения и желаемую новую цифру, а люди апрувят или нет. Вот тут уже, как я понял, не все подряд апрувят, а, условно, руководители. То есть, иерархия всё-таки есть в разрезе количества власти и влияния на компанию и людей в ней. Да и в других голосованиях у разных сотрудников разные веса. Должно было быть три секции: 1. Скрининг с эйчаром и обсуждение моих пожеланий 2. Встреча с техлидом, решение технической задачи, вопросы от меня по команде и продукту 3. Финальная встреча, фит, софтскиллы На скрининге действительно больше, чем в других местах, интересовались моими пожеланиями. Не только по зарплате, но и, например, с задачами какого типа я люблю работать. Основная секция Начинается с моих вопросов команде. Тут как раз я больше спрашивал про оргструктуру, чем про проект. Затем дали задачу: элементарный обход дерева. Я спросил, нужен ли им обход в ширину или в глубину, ответили, что не важно. И ещё момент — разрешили пользоваться гуглом, нейросетями (!), и даже не шарить экран на время решения (я всё-таки пошарил). Ну, то есть, идея была такая: в настоящей работе мы всё-таки сидим с гуглом, нейронками и без надзора, поэтому вот решай в условиях, приближенных к естественным. Не понимаю, что именно оценивалось, и кто мог с такими вводными не решить. Хотя потом эйчар сказала, что некоторые кандидаты решают по 50 минут (я написал за 10 на yield'ах). Когда смотрели решение, поспрашивали совсем чуть-чуть по простым вещам. И погоняли по кейсам из моего тимлидского опыта по системе STAR (situation, task, action, result).

Резултати

Намерени 1,022 подобни публикации

Общо глобално търсене

Пришло уведомление от Whoosh: "Годовая подписка за 990р". Захожу в приложение, а там её нет. Стандартные недельная и месячная. Пишу в саппорт: так и так, прорекламировали — предоставляйте. Посоветовали обновить приложение — и правда, подписка появилась. Если бы я не поленился в саппорт написать, у них могло бы быть на одного платного клиента меньше. Это хорошая задачка на архитектуру и проектирование приложений: такие элементы нужно отрисовывать динамически по данным из БД. Создаётся абстрактный компонент, у которого есть свойства типа title, subtitle, caption, рисуются стили. При необходимости данные меняются на сервере, и все пользователи получают новый список. А тут, вероятно, захардкожено в клиенте. Нехорошо. #dev

Hashtags

Мой новый любимый тип задач на собеседованиях: даём кандидату кусок кода и просим провести ревью. Во-первых, это из тех задач, которые нельзя строго либо решить, либо не решить. Разные кандидаты находят разное количество ошибок, оценка получается более гибкой. Во-вторых, проверяется сразу несколько компетенций: и работа с базами данных, и многопоточность, и оптимизация, и кодстайл и куча всего ещё. Увидит ли кандидат ошибку в SQL? Сделает ли необязательное, но ценное замечание по именованию переменных? А может даже даст комментарий на тему архитектуры? Ещё и софтскиллы сразу проверяются: каким способом человек сообщает о чужих ошибках. Но нашу задачку я вам не покажу. Вдруг будете у нас собеседование проходить, хехе ) Ещё из недавнего: соискатель указал в резюме английский B2 и особо подчеркнул, что очень силён в алгоритмах. Я скинул ему скриншот ниже и попросил объяснить задание и поразмышлять над решением. К сожалению, и задание и решение в итоге объяснял я. Кстати, кто занимается разработкой, можете под спойлерами предложить свои варианты. Вообще, проведение собеседований помогает хорошо бороться с синдромом самозванца. У меня прям сильный был, пока я на постоянную работу не пошёл. Сейчас тоже есть (думаю, все разработчики этим страдают, кроме самых плохих: у них эффект Даннинга-Крюгера), но меньше. #dev

Hashtags

Am Neumarkt 😱

@amneumarkt · Post #546 · 01.03.2024 г., 10:57

#dev https://substack.com/redirect/4af1baf3-a4d7-48d1-9592-5ea0971a056a?j=eyJ1IjoiNHowa3gifQ.QnwKDJ1CRSD1ToSPhPzIWMi45g-Rid7OgDj8cqSear0 Sounds good but please DO NOT USE upper cases. It is not only about PEP8 but more about consistency and cognitive load. We solve this problem by writing down the dimensions in the docstrings and also include the math expressions there. But it is already obvious that writing down the dimensions in the var names makes things much easier.

Hashtags

Я порешал немного задачи на leetcode и остался не слишком доволен сервисом. Leetcode — это онлайн-сайт с задачами по программированию. Даётся описание (какие данные приходят на вход, и что нужно получить). Можно отправить код на любом актуальном языке программирования, и ваше решение будет оценено по двум показателям: скорость и память. Что не понравилось в сервисе: 1. Встроенный редактор кода поленились делать нормальным, это по сути блокнот без каких-либо хинтов и проверок. Проще сразу писать в IDE, а потом копировать. Но это мелочь, куда серьёзнее второй пункт. 2. Система оценки, о которой я упомянул выше, крайне неточная. Разброс по времени бывает в 1.5-2 раза у одного и того же кода. И, наоборот, почти не показывает важную разницу между разными решениями. По памяти то же самое: цифры плюс минус одинаковые, как бы вы ни решали задачу. Это выражается в том, что легко словить результат типа "Ваше решение лучше, чем 33.33% остальных", причем, много раз подряд. Это значит, что в точности треть решений попадает в какой-то один кластер оценки (либо что решений отправлено очень мало, но сайт популярный, так что не знаю даже). При этом подобная оценка — единственный показатель успешности вашего решения, поэтому она важна, но при таком разбросе теряет смысл. Хотя сама идея, например, ежедневной новой задачи мне нравится — позволяет разминать мозги и держать себя в тонусе в некотором смысле. Впрочем, тут тоже есть нюанс: эффективное решение задач редко пересекается с правильным и реалистичным решением, которое требовалось бы от программиста в любом практическом сценарии. Допустим, вам нужно наполнить ведро водой. В обычной жизни вы отнесёте его в ванну, откроете кран и наполните. А вот подход на Leetcode заставляет использовать извращения типа "вытащить из холодильника бутылку воды и разрезать её над ведром". И вот в какой-то момент вы понимаете, что быстрее всего выбросить ведро в окно, потому что под окном глубокая лужа, оно там утонет и технически станет наполненным водой мгновенно. О реальной жизненной применимости такого решения, думаю, говорить не стоит. Но иногда буду решать. Сегодняшняя задача уровня Hard, такие дают за собеседованиях на middle и senior: поиск максимальной суммы прямоугольника внутри матрицы. #dev

Hashtags

Один из легальных способов для программистов бороться с жадностью корпораций — писать open source аналоги проприетарного софта. Да, к сожалению, мы всё ещё вынуждены покупать (или незаконно качать) Photoshop, After Effects, AutoCAD и даже Microsoft Office, до которых свободные аналоги пока не дотягивают. Но тот же Blender очень сильно подвинул баланс сил на рынке 3D-моделирования. Да, возможно те, кто когда-то учился на 3D Max, Cinema 4D или Maya, скорее всего, всё ещё на них остались, но вот новое поколение 3D-художников очень активно учится на Blender и делает в нём шедевральные вещи, абсолютно ничем не уступающие коммерческим гигантам. В близкой мне области тоже есть свежий пример: для экшен-камер GoPro долгое время единственным хорошим решением был платный и дорогой стабилизатор под названием ReelSteady. За софтину просят что-то около $200 единоразово, но только она могла дать стабилизацию на основе гироскопа, которая на три головы превосходила любые алгоритмы на основе анализа картинки. Однако, несколько лет назад вышел кривой и неудобный open source проект, а буквально в этом году, если я не ошибаюсь, другой разработчик допилил его до прямого и удобного. Называется GyroFlow: кроссплатформенный софт с открытым кодом, который тоже умеет стабилизировать картинку на основе гиро-данных, причём, с кучи разных камер, включая все современные модели GoPro. Он абсолютно бесплатный, выдаёт результат ничуть не хуже, чем ReelSteady, да ещё и работает быстрее и содержит больше настроек. Просто flawless victory, как по мне. Надеюсь, такого будет появляться всё больше. В конце-концов, комьюнити уже прогибает корпорации на выпуск вещей вроде VS Code. #dev

Hashtags

Написал большущую статью о том, как проходил AtomSkills. Это был очень интересный и необычный опыт, даже с учётом моих предыдущих поездок на хакатоны. Если вам интересна разработка и соревнования по программированию, велкам :) #dev https://vk.com/@denisnp-kak-my-vyigrali-sorevnovanie-dlya-stroitelei-i-svarschikov?v=4

Hashtags

Я участвую в конкурсе разработчиков «Код Петербурга», проводимом совместно VK и городом. По условиям нужно сделать или VK-приложение или чат-бота для VK/Маруси с какой-то важной для жителя или гостя города функцией, и с использованием одного из предоставленных внешних API. Я попробовал воплотить свои давние мысли по семантическому поиску по текстам, в чем мне помог @wooferclaw. Что-то подобное мы пытались соорудить на хакатоне в Салехарде, но сейчас я пошёл дальше. Бот для Маруси, который ищет мероприятия в Петербурге с сайта KudaGo. При этом к боту подключён морфологический словарь и тезаурус, который умеет определять домены и ассоциативные связи между словами. Работает вроде неплохо. Во-первых, довольно точно ищет по прямым связям. Например, хорошо понимает, что слова «научный» и «наука» одинаковые, хотя в словаре словоформ они разные. Во-вторых, умеет находить связи по области: допустим, если попросить что-то про пришельцев, предлагает экспозицию о внеземных цивилизациях, хотя ни в описании, ни в ключевых словах этой экспозиции нет слова «пришелец» однокоренных с ним. Но этот поиск приводит и к забавным последствиям, которые лично я не считаю недостатком, а скорее щепоткой соли в работе алгоритма. Так, при запросе о пришельцах может выдать выставку о коммунальных квартирах (что действительно близко по смыслу, но человеку, который ищет пришельцев, скорее всего нужно не это). А ещё на слово «крокодилы» предлагает экскурсию по рекам и каналам, мне очень нравится :) Потестить можно, открыв Марусю (в приложении ВК или в отдельном) и сказав «Запусти навык Куда Пойти в Петербурге». А результаты конкурса будут в октябре. Там ещё второй этап, на него тоже что-нибудь подам. #dev

Hashtags

Хочу немного похвалить Copilot — у него обнаружилась удивительно неплохая способность писать комментарии к коду! На этом скриншоте я написал только первые полтора слова у каждого комментария, остальное дополнила нейросеть, и в одном месте я сделал после этого небольшую правку. Во-первых, это действительно подразгружает, потому что ошибки в комментариях не так страшны, можно доверить такое дело генератору. Во-вторых, есть интересное неочевидное свойство: нейросеть может попытаться объяснить вам чужой код таким способом. Вы как бы спрашиваете компьютер о том, что написал другой человек на языке компьютера. Это довольно прикольно, и даже может быть как-то использовано в целях обучения, как по мне. #dev

Hashtags

Попробовал Github Copilot. Это проект, в рамках которого Гитхаб обучил нейросеть на миллионах строк программного кода, загруженного людьми, и теперь она вроде как способна предлагать автоматическое дополнение к тому, что вы пишете. В теории, если вы напишете название функции, например public int Fibonacci(int n), то она сразу предложит вам автоматически подставить всё остальное. Конкретно с этим примером система действительно справляется, но в целом впечатления у меня от неё смешанные, и на мой взгляд она пока что не стоит тех $10 в месяц, которые за неё просят после тестового двухмесячного периода. Я уже писал ранее о своём отношении к нейросетям. В задачах дополнения данных они работают средненько: значимый процент решений будет с ошибками. Вот и здесь — сначала я подумал, что Copilot сможет за меня копипастить популярные однотипные куски кода из интернета. Например, я не помню алгоритм Вагнера-Фишера, постоянно его копирую из своих других проектов, часть из которых выложена на Github и наверняка была передана в обучение Copilot. Я предложил нейросетям мне этот алгоритм написать, они написали что-то отдалённо похожее. Внешне выглядело убедительно и даже компилировалось, но работало неправильно, и при ближайшем рассмотрении оказалось, что там просто случайно надёрганные строчки из настоящего алгоритма. Некоторые проверки по 2 раза, а часть нужной логики упущено совсем. Об оформлении кода вообще говорить не стоит: пока всё, что мне выдавалось, оформлено плохо, и на ревью я бы написал разработчику несколько замечаний. Однако, в других местах работает, как задумано. Если у вас есть дуальные функции, оно умеет предлагать дописать остаток (пример на скриншоте ниже). Но из того, что я попробовал, только процентов 20 случаев реально были полезны. Остальные 80% или вообще неверный код, или правильный, но такой неаккуратный, что лучше самому написать. Есть ещё проблема: массовый копипаст довольно опасен, потому что легко пропустить какую-то мелочь. В идеале нужно весь вставленный код проверять построчно, но по когнитивной нагрузке это близко к тому, чтобы создать его самостоятельно. И человеческое внимание совершенно точно будет расслабляться и размываться при работе с такими средствами автодополнения, а, значит, неизбежны ошибки. На месте чувствительной к багам энтерпрайз-разработки я бы вообще запрещал бы своим сотрудникам применять Copilot. С другой стороны, возможно, подобная утилита хорошо зайдёт для прототипирования, на хакатонах, на стримах с демонстрацией разработки чего-нибудь. У меня будет возможность проверить на соревновании через месяц, но в работе скорее всего отключу. #dev

Hashtags

Поговорим про ML. Пару дней назад вышла новость о том, что в продажу поступила первая русскоязычная книга, половину текста в которой написала нейросеть ruGPT-3. А до этого вы все наверняка натыкались на очень яркие записи про Dalle и Imagen, где нейросеть по описанию рисует картинку, и получается очень любопытно. Такими темпами скоро нейросети превратятся в крипту: высокотехнологичную вещь, о которой, однако, в среде приличных технарей лучше не упоминать. Потому что то, каким образом это используется, и то, какой образ этому создают в массах, расходится не только с реальностью, но и с определённым уровнем вменяемости. Кстати, ML ещё и может ярко демонстрировать эффект Даннинга-Крюгера. Мем про "Ты чё, пёс, я математик!" нифига не шутка. Человек может считать себя крутым программистом, если научился комбинировать чужие библиотеки на питоне. Хотя на самом деле простейшую практическую задачу решить не способен -- я с такими сталкивался лично. ML-щики вообще пихают свои нейросети куда ни попадя, считая, что это волшебная таблетка и швейцарский нож для любых ситуаций. Мне рассказывали случай, когда на хакатоне по работе с данными выиграл человек, который просто аккуратно вручную подобрал нужные зависимости в Excel :) Глобально же нейросетями пытаются решать три вида задач: 1. Информации в вопросе много, а в ответе нужно мало. Например, распознавание образов и символов. Подбор значений каких-нибудь коэффициентов. Приложение "Хотдог или не хотдог" из сериала Кремниевая Долина. Обычно нейросети справляются с таким очень хорошо. Рукописный ввод распознают шикарно, по фото могут назвать породу собаки, математические формулы читают. Но важно понимать, что под капотом даже у такой нейросети не возникает никаких понятных вам символов. Например, при распознавании рукописного ввода случайный набор пикселей, не имеющий для человека смысла, может быть с той же степенью уверенности интерпретирован нейросетью, как совершенно чёткая буква А. Просто мы на такой случайный набор не попадаем почти всегда, и поэтому всё ок. 2. Информации в вопросе средне, и в ответе нужно средне. Как правило, это предсказание, восстановление недостающих данных, улучшение качества фото, раскрашивание ч/б. С такими задачами нейросети справляются уже средненько. Улучшенный нейросетью снимок сразу видно. Предсказание лишь ненамного точнее, чем случайный выбор. Польза в том, что в обращении такие сети просты, а результат всё-таки дают. Но не стоит их переоценивать. Например, сюда можно отнести задачу суммаризации текста (по большому объёму текстов тебе печатают выжимку). Мои товарищи в одном чате несколько дней игрались с ботом-суммаризатором, и в основном половина написанных им фраз это просто мусор и ерунда для ржача. Но в другой половине всё-таки какой-то совсем небольшой смысл проглядывался. Недостаточный для того, чтобы задалбывать этим ботом участников чата (привет, ребята :) ), но не абсолютный рандом. 3. Информации в вопросе мало, а в ответе нужно много. Это генерация данных: вот как раз написание текстов, составление рисунков, логотипов и так далее. Так вот, по моему скромному, но всё-таки хоть немного компетентному мнению, в таких вопросах нейросети выдают полную херню. И хвалёная логотипная нейросетка Лебедева — тоже полная херня. И распиаренная GPT ничего толкового не пишет. Когда читаешь примеры в новостях-анонсах, сразу думаешь: "Вау, как круто!". Но когда пробуешь сам: ruGPT-3 по уровню осмысленности где-то чуть ниже "Яндекс.Рефератов", если помните такой сервис и суть его работы. Я не знаю, будут ли сети по созданию изображений работать так круто (сейчас доступа к ним ни у кого нет), но книга в соавторстве с человеком стала возможна только по той причине, что в качестве человека взяли Павла Пепперштейна, который берёт случайные комбинации словосочетаний и выдаёт это за литературу. Поверьте: человечество пока что в безопасности касательно захвата машинами. #dev

Hashtags

Но здесь проявляется важный нюанс. На самом деле, он есть везде. Чтобы скомандовать компьютеру что-то сделать, ты должен понимать, хотя бы на общем уровне, как работает компьютер — а это уже часть мышления программиста. Для хорошей работы с экселем тебе придётся использовать формулы, в которых есть не только обычная алгебра, но и, например, логические выражения. Для работы в конструкторах алгоритмов тебе нужно понимать, что такое цикл и условный переход. В какой-то момент понадобятся и структуры данных, например, индексированные массивы (просто вы не будете их так называть, но работать с ними придётся). Даже чтобы собрать что-то в Tilda, нередко нужно хотя бы в общих чертах понимать, как работает вёрстка, допустим, на экранах разных размеров. Что такое пиксель, чем отличается внешний отступ от внутреннего и так далее. В итоге изначальная цель — совсем отказаться от программистов — выполняется лишь частично. Для хорошей работы с nocode-сервисами нужно в некоторой степени программистское мышление. Не получится любой домохозяйке за пару минут натыкать себе подборщик рецептов, если только она уже не является человеком, который при желании и программирование бы мог выучить. Появление специальных вакансий только подтверждает это: если бизнесу нужен условный Senior Tilda Developer, значит, не может любой уборщик в компании набивать лэндинги. Впрочем, это, конечно, дешевле, чем нанять разработчика, и в этом смысле nocode задачу выполняет (с поправкой на то, что сами по себе сервисы могут быть дорогими, а ещё ты к ним навечно привязываешься). В итоге nocode сервисы это в некотором смысле сервисы для ленивых программистов, а не для всех без исключения, как им хотелось бы быть. Естественно, к полному отказу от программистов это тоже не приведёт — как я уже упомянул, немало работы всё ещё требует большой гибкости. Создание собственного уникального продукта, которым потом будут пользоваться другие — один из таких видов работы — и именно она нужна очень многим бизнесам. #dev

Hashtags

12•••5•••10•••1213141516•••20•••25•••30•••35•••40•••45•••50•••55•••60•••65•••70•••75•••80•••8586