🎄 С Новым годом!
В 2024 году я вам желаю:
1️⃣ Каждый день жить полной жизнью, наслаждаться тем, что с вами происходит
2️⃣ Встретить 2025-й в полном здравии
3️⃣ ... кажется, это главное 👆
В 2024 году я вам желаю:
1️⃣ Каждый день жить полной жизнью, наслаждаться тем, что с вами происходит
2️⃣ Встретить 2025-й в полном здравии
3️⃣ ... кажется, это главное 👆
Пост хейта к Яндекс Лавке
В программировании и в IT в целом есть такое явление как "протекающие абстракции". О них хорошо написано в статье 20-летней давности.
Суть в том, что люди создают абстракции, которые должны упростить и ускорить процесс разработки. Но когда что-то идёт не так, разработчик вынужден лезть под капот этой абстракции, разбираться, как она работает, и только так можно исправить проблему.
👉 Классическим примером протекающей абстракции является SQL. Это декларативный язык, на котором программист описывает, какие данные он хочет извлечь. Процесс извлечения данных и способ их хранения перекладывается на СУБД. Всё работает хорошо до тех пор, пока база не станет слишком большой и запросы к ней не начнут тормозить. И вот тогда абстракция протекает: нам приходится добавлять индексы и переписывать запрос, чтобы он выполнялся быстрее.
Есть ещё одно абстрактное утверждение: "Интернет-бизнесы существуют, чтобы решать проблему пользователя и зарабатывать деньги". Сегодня эта абстракция у меня протекла на примере Яндекс Лавки.
Я был проездом в Москве, и у меня было несколько часов между поездом и самолётом. Ещё находясь в метро, я сделал заказ в Лавке. Ехать мне оставалось 20 минут, а заказ пообещали привезти через 25 минут — идеально.
Когда мне оставалось ехать 2 станции, мне позвонил курьер и спросил, почему я не открываю ему дверь 🤷♂️. Из-за шума я не стал ему отвечать, а тут же написал в поддержку, что меня надо подождать. Мне подтвердили, что курьер подождёт 👍
Выйдя из метро, я с двумя чемоданами в руках быстро направился к подъезду. Когда я зашёл в дом, мне навстречу шёл курьер Лавки. Я его остановил и быстро выяснил, что он как раз ко мне.
Дальше, кажется, всё должно быть просто: он отдает мне заказ, я его благодарю, и мы расходимся. Но не тут-то было 🥴 Он говорит, что заказ уже отменили, поэтому он мне его не отдаст, а отнесет обратно. Я достаю свой телефон и вижу, что пока я шёл от метро, мне звонила Лавка. Из-за того, что я не ответил, они отменили мой заказ 🛑
И я, и курьер одновременно пишем в поддержку, но там нет никакой реакции. Потом у курьера на экране что-то изменилось, он сказал, что ему надо возвращаться, и ушёл... С моим заказом 🤯
С точки зрения цикла обработки заказа, всё сработало чётко. С точки зрения здравого смысла, это просто комедия: курьер минут 15 шёл до меня по 20-градусному московскому морозу, он принес мне продукты, он стоял рядом со мной. Но он не отдал мне заказ, потому что он не может доставить отменённый заказ. И он ушёл обратно.
В итоге моя задача не решена — я голодный и злой 🤬, — и Лавка не заработала денег — мне вернули деньги за отменённый заказ 🤦
Я понимаю, что мой кейс суперредкий и вряд ли для него сделают фикс. Но в моменте было очень неприятно.
Вот так вот абстракция в виде жизненного цикла заказа и модели действий курьера протекла и сработала против здравого смысла.
А у вас бывали подобные истории?
P.S. Вообще Яндекс Лавка клёвая...
В программировании и в IT в целом есть такое явление как "протекающие абстракции". О них хорошо написано в статье 20-летней давности.
Суть в том, что люди создают абстракции, которые должны упростить и ускорить процесс разработки. Но когда что-то идёт не так, разработчик вынужден лезть под капот этой абстракции, разбираться, как она работает, и только так можно исправить проблему.
👉 Классическим примером протекающей абстракции является SQL. Это декларативный язык, на котором программист описывает, какие данные он хочет извлечь. Процесс извлечения данных и способ их хранения перекладывается на СУБД. Всё работает хорошо до тех пор, пока база не станет слишком большой и запросы к ней не начнут тормозить. И вот тогда абстракция протекает: нам приходится добавлять индексы и переписывать запрос, чтобы он выполнялся быстрее.
Есть ещё одно абстрактное утверждение: "Интернет-бизнесы существуют, чтобы решать проблему пользователя и зарабатывать деньги". Сегодня эта абстракция у меня протекла на примере Яндекс Лавки.
Я был проездом в Москве, и у меня было несколько часов между поездом и самолётом. Ещё находясь в метро, я сделал заказ в Лавке. Ехать мне оставалось 20 минут, а заказ пообещали привезти через 25 минут — идеально.
Когда мне оставалось ехать 2 станции, мне позвонил курьер и спросил, почему я не открываю ему дверь 🤷♂️. Из-за шума я не стал ему отвечать, а тут же написал в поддержку, что меня надо подождать. Мне подтвердили, что курьер подождёт 👍
Выйдя из метро, я с двумя чемоданами в руках быстро направился к подъезду. Когда я зашёл в дом, мне навстречу шёл курьер Лавки. Я его остановил и быстро выяснил, что он как раз ко мне.
Дальше, кажется, всё должно быть просто: он отдает мне заказ, я его благодарю, и мы расходимся. Но не тут-то было 🥴 Он говорит, что заказ уже отменили, поэтому он мне его не отдаст, а отнесет обратно. Я достаю свой телефон и вижу, что пока я шёл от метро, мне звонила Лавка. Из-за того, что я не ответил, они отменили мой заказ 🛑
И я, и курьер одновременно пишем в поддержку, но там нет никакой реакции. Потом у курьера на экране что-то изменилось, он сказал, что ему надо возвращаться, и ушёл... С моим заказом 🤯
С точки зрения цикла обработки заказа, всё сработало чётко. С точки зрения здравого смысла, это просто комедия: курьер минут 15 шёл до меня по 20-градусному московскому морозу, он принес мне продукты, он стоял рядом со мной. Но он не отдал мне заказ, потому что он не может доставить отменённый заказ. И он ушёл обратно.
В итоге моя задача не решена — я голодный и злой 🤬, — и Лавка не заработала денег — мне вернули деньги за отменённый заказ 🤦
Я понимаю, что мой кейс суперредкий и вряд ли для него сделают фикс. Но в моменте было очень неприятно.
Вот так вот абстракция в виде жизненного цикла заказа и модели действий курьера протекла и сработала против здравого смысла.
А у вас бывали подобные истории?
P.S. Вообще Яндекс Лавка клёвая...
Простой разраб
Я учился в вузе на специальности «Программное обеспечение вычислительной техники и автоматизированных систем». Если по-простому, то на программиста. Многие преподаватели говорили, что мы — "элитная специальность" 🤟На старших курсах университета я устроился на свою первую работу программистом в game dev и получал в 3 раза больше моих знакомых-сверстников 🤑 Когда я устроился в Яндекс, знакомые смотрели на меня как на голливудскую звезду 🕺 Наконец, когда я впервые выступил с докладом на конференции как спикер от Яндекса, я был на вершине гордости за себя.
Если коротко — я много лет жил в уверенности, что быть разработчиком — это ох🤬енно, и я кайфовал от того, чем занимался. Мне нравилась моя ежедневная деятельность, я гордо произносил слова «Я разработчик в Яндексе», и меня окружало уважительное отношение к моей работе.
Но с годами tone of voice вокруг меня стал меняться. То в очередном IT-подкасте, то вкоридоре офиса каком-то Zoom-звонке я стал слышать фразы типа «он ведь простой разраб 😵». Звучало это всегда слегка свысока и немного презрительно. Знакомые говорили: «Ого! Ты уже так много лет в Яндексе! Чем ты там руководишь?» И я, смутившись, отвечал: «Не, я разработчик»
Вокруг меня стало модно быть тимлидом, мериться количеством подчинённых и стремиться стать CTO. Ну и последнее — это слова руководителей: «Ну ты же просто делаешь свою работу... 👎» во время обсуждения результатов ревью.
Мы на прошлой неделе закончили очередной тренинг «Выше вилки» (следующий стартует 13 февраля 😉), и там участники, игравшие роль руководителя, использовали эту фразу, отказывая поднять зарплату. И я тогда почувствовал — они тоже регулярно слышат это обесценивающее дерьмо в свой адрес 🤮
В своё время от всего этого я сильно приуныл. Мне казалось, что я в жизни где-то свернул не туда: многие из тех, кто пришёл в Яндекс позже меня, уже руководители служб/отделов/направлений, а я всё так же простой разраб 😔
Но знаете что?! «Простой разраб» — это всего лишь чьё-то оценочное мнение. Я думаю о десятках тысяч людей, которые каждый день работают над собой, чтобы «войти в IT» и стать, наконец, «простым разрабом». Я думаю о том, что за 23 года, которые прошли с моей первой строчки кода, я вложил в себя-разработчика так много сил и времени, что могу «просто делаю свою работу» так, что потом за неё не стыдно. Я хочу сказать, что быть разработчиком — ох🤬енно! (Тимлидом — тоже, но это совсем другая работа).
Разработчики, которые подписаны на этот канал! Когда в следующий раз услышите в свой адрес что-либо, обесценивающее ваши навыки и достижения, вспомните этот пост, а вместе с ним — всё, что умеете, и объём проделанной работы. Распрямите плечи, поднимите голову, посмотрите в глаза своему собеседнику и скажите ... что посчитаете нужным.
Я учился в вузе на специальности «Программное обеспечение вычислительной техники и автоматизированных систем». Если по-простому, то на программиста. Многие преподаватели говорили, что мы — "элитная специальность" 🤟На старших курсах университета я устроился на свою первую работу программистом в game dev и получал в 3 раза больше моих знакомых-сверстников 🤑 Когда я устроился в Яндекс, знакомые смотрели на меня как на голливудскую звезду 🕺 Наконец, когда я впервые выступил с докладом на конференции как спикер от Яндекса, я был на вершине гордости за себя.
Если коротко — я много лет жил в уверенности, что быть разработчиком — это ох🤬енно, и я кайфовал от того, чем занимался. Мне нравилась моя ежедневная деятельность, я гордо произносил слова «Я разработчик в Яндексе», и меня окружало уважительное отношение к моей работе.
Но с годами tone of voice вокруг меня стал меняться. То в очередном IT-подкасте, то в
Вокруг меня стало модно быть тимлидом, мериться количеством подчинённых и стремиться стать CTO. Ну и последнее — это слова руководителей: «Ну ты же просто делаешь свою работу... 👎» во время обсуждения результатов ревью.
Мы на прошлой неделе закончили очередной тренинг «Выше вилки» (следующий стартует 13 февраля 😉), и там участники, игравшие роль руководителя, использовали эту фразу, отказывая поднять зарплату. И я тогда почувствовал — они тоже регулярно слышат это обесценивающее дерьмо в свой адрес 🤮
В своё время от всего этого я сильно приуныл. Мне казалось, что я в жизни где-то свернул не туда: многие из тех, кто пришёл в Яндекс позже меня, уже руководители служб/отделов/направлений, а я всё так же простой разраб 😔
Но знаете что?! «Простой разраб» — это всего лишь чьё-то оценочное мнение. Я думаю о десятках тысяч людей, которые каждый день работают над собой, чтобы «войти в IT» и стать, наконец, «простым разрабом». Я думаю о том, что за 23 года, которые прошли с моей первой строчки кода, я вложил в себя-разработчика так много сил и времени, что могу «просто делаю свою работу» так, что потом за неё не стыдно. Я хочу сказать, что быть разработчиком — ох🤬енно! (Тимлидом — тоже, но это совсем другая работа).
Разработчики, которые подписаны на этот канал! Когда в следующий раз услышите в свой адрес что-либо, обесценивающее ваши навыки и достижения, вспомните этот пост, а вместе с ним — всё, что умеете, и объём проделанной работы. Распрямите плечи, поднимите голову, посмотрите в глаза своему собеседнику и скажите ... что посчитаете нужным.
Воскресный #юмор
Программист на приёме у глазного врача
— Прочтите эту строку таблицы (показывает "КНШМЫБИ")
— Доктор, у Вас неправильно настроена кодировка!
Программист на приёме у глазного врача
— Прочтите эту строку таблицы (показывает "КНШМЫБИ")
— Доктор, у Вас неправильно настроена кодировка!
Собес без единой строчки кода
Давненько у нас не было историй про прохождение собеседований.
Напомню дисклеймер всех постов с тегом #реалити ❗️Моя цель — показать, какие знания и навыки действительно пригождаются при прохождении технических собеседований на позицию разработчика. При этом я стараюсь рассказывать об этом максимально этично по отношению к компаниям — я знаю, сколько сил нужно, чтобы подготовить хорошие задачи для собеседования разработчиков. Поэтому я либо называю компанию, но тогда про задачи рассказываю максимально расплывчато, либо даю больше деталей про задачи, не называя компанию.
👉 В ноябре прошлого года я был гостем на митапе компании Ядро. Как только мы договорились о моём участии, мне написала их рекрутер (говорят, что это совпадение 😉). Мы пообщались, и я согласился пройти техническое собеседование.
Ядро гордится тем, что в отличие от Яндекса их процесс найма состоит максимум из 3 секций: технической, менеджерской и общения с основателями. Это правда круто — можно быстро понять, насколько мы друг другу подходим 👍
Техническое собеседование проходило в формате «двое на одного»: два интервьюера связались со мной по видео из переговорки. Прям как в до-COVID'ные времена. Из-за того, что это был не Zoom, а именно ВКС из переговорки, я очень плохо запомнил, как их зовут и как они выглядят 😔
Для начала меня попросили рассказать о своём карьерном пути, и я выдал годами отработанную историю о своих пяти больших этапах в Яндексе и ключевых достижениях каждого из них 😎 Дальше меня застали врасплох вопросом, какое своё достижение в Яндексе я считаю самым значительным. «Врасплох», потому что по уровню влияния на окружающий мир «Пояса по С++»🥋, безусловно, сильно опережают всё остальное. Но мне показалось странно рассказывать именно о них, проходя собеседование на разработчика 🤔.
Так что я рассказал о проекте, который делал в Поиске Яндекса в далёком 2015 году и на котором очень сильно вырос как разработчик. Это было моё первое знакомство с миром распределённых систем. Чтобы подтянуть матчасть, я взял в библиотеке книгу Таненбаума «Распределённые системы» и читал её в метро по пути на/с работы. К слову, это огромная книга весом в 1 кг. С нею было очень неуютно в метро 😆
Дальше интервьюеры стали задавать вопросы про разные глубинные аспекты моего проекта: какое было главное осознание в процессе знакомства с распределёнными системами, как обеспечивал отказоустойчивость, как было устроено кеширование и т.д., и т.д. Мне кажется, такие вопросы задают, чтобы убедиться, что кандидат действительно сам делал то, о чём говорит. Ну и мне было приятно осознать, что спустя 8 лет, я помню этот проект, как будто закончил его вчера.
Дальше был блок, на котором интервьюеры рассказали о своих проектах, и на этом отведённый час подошёл к концу. Когда у меня спросили, какие есть вопросы, я сказал: «А код мы сегодня будем писать?». Мне ответили: «Иногда в написании кода нет никакой необходимости» — считаю это комплиментом 😉
На этом мы завершили звонок, а через пару дней ко мне вернулась рекрутер с вопросом, когда мне удобно провести менеджерскую секцию. О ней в следующий раз...
А у вас бывали тех. собесы без написания кода?
#реалити Давненько у нас не было историй про прохождение собеседований.
Напомню дисклеймер всех постов с тегом #реалити ❗️Моя цель — показать, какие знания и навыки действительно пригождаются при прохождении технических собеседований на позицию разработчика. При этом я стараюсь рассказывать об этом максимально этично по отношению к компаниям — я знаю, сколько сил нужно, чтобы подготовить хорошие задачи для собеседования разработчиков. Поэтому я либо называю компанию, но тогда про задачи рассказываю максимально расплывчато, либо даю больше деталей про задачи, не называя компанию.
👉 В ноябре прошлого года я был гостем на митапе компании Ядро. Как только мы договорились о моём участии, мне написала их рекрутер (говорят, что это совпадение 😉). Мы пообщались, и я согласился пройти техническое собеседование.
Ядро гордится тем, что в отличие от Яндекса их процесс найма состоит максимум из 3 секций: технической, менеджерской и общения с основателями. Это правда круто — можно быстро понять, насколько мы друг другу подходим 👍
Техническое собеседование проходило в формате «двое на одного»: два интервьюера связались со мной по видео из переговорки. Прям как в до-COVID'ные времена. Из-за того, что это был не Zoom, а именно ВКС из переговорки, я очень плохо запомнил, как их зовут и как они выглядят 😔
Для начала меня попросили рассказать о своём карьерном пути, и я выдал годами отработанную историю о своих пяти больших этапах в Яндексе и ключевых достижениях каждого из них 😎 Дальше меня застали врасплох вопросом, какое своё достижение в Яндексе я считаю самым значительным. «Врасплох», потому что по уровню влияния на окружающий мир «Пояса по С++»🥋, безусловно, сильно опережают всё остальное. Но мне показалось странно рассказывать именно о них, проходя собеседование на разработчика 🤔.
Так что я рассказал о проекте, который делал в Поиске Яндекса в далёком 2015 году и на котором очень сильно вырос как разработчик. Это было моё первое знакомство с миром распределённых систем. Чтобы подтянуть матчасть, я взял в библиотеке книгу Таненбаума «Распределённые системы» и читал её в метро по пути на/с работы. К слову, это огромная книга весом в 1 кг. С нею было очень неуютно в метро 😆
Дальше интервьюеры стали задавать вопросы про разные глубинные аспекты моего проекта: какое было главное осознание в процессе знакомства с распределёнными системами, как обеспечивал отказоустойчивость, как было устроено кеширование и т.д., и т.д. Мне кажется, такие вопросы задают, чтобы убедиться, что кандидат действительно сам делал то, о чём говорит. Ну и мне было приятно осознать, что спустя 8 лет, я помню этот проект, как будто закончил его вчера.
Дальше был блок, на котором интервьюеры рассказали о своих проектах, и на этом отведённый час подошёл к концу. Когда у меня спросили, какие есть вопросы, я сказал: «А код мы сегодня будем писать?». Мне ответили: «Иногда в написании кода нет никакой необходимости» — считаю это комплиментом 😉
На этом мы завершили звонок, а через пару дней ко мне вернулась рекрутер с вопросом, когда мне удобно провести менеджерскую секцию. О ней в следующий раз...
А у вас бывали тех. собесы без написания кода?
О чём спрашивать на собеседовании основателей компании?
#реалити
🤔 В некоторых компаниях основатели проводят собеседование с большинством кандидатов, чтобы проверить их на совпадение по ценностям. И не всегда понятно, как себя на таких секциях вести.
Я считаю, что нужно делать то же, что и основатели — проверять, что их ценности совпадают с вашими. Далее расскажу, как это делаю я.
Недавно я рассказывал, как у меня была секция без единой строчки кода в компанию Ядро. После неё меня пригласили как раз на встречу с то̀пами компании. Это снова было общение с переговоркой по ВКС, и снова я не запомнил имена своих собеседников 😕
Во второй половине интервью меня попросили задать свои вопросы. Я решил, что со столь большими начальниками странно говорить про процесс разработки и расспрашивать, есть ли у них ежедневные стендапы (🤮) Поэтому стал расспрашивать о ценностях.
Я искреннее считаю, что истинные ценности компании проявляются, только когда что-то идёт не по плану. Когда всё хорошо — все друг друга любят и вместе воодушевлённо идут к светлому будущему. Но что происходит во время факапа❓ Знаю я одну компанию, которая заявляет, что её главная ценность — люди. Только один мой друг 😉 говорит, что там бурно процветают пассивная агрессия и постоянное обесценивание заслуг...
Ну ладно, вернёмся к моему собесу. Я стал выяснять ценности компании через неудобные вопросы:
— Расскажите, пожалуйста, за что в вашей компании увольняют?
— Что происходит с людьми, которые допустили инцидент на проде?
Честно говоря, мне непросто задавать такие вопросы. Я чувствую, как будто копаюсь в чужом грязном белье. Но не знаю, как по-другому вытащить из людей, а что им правда важно в их деятельности.
Ответ ребят из Ядра был классным. Если коротко — в случае факапа разбираются в причинах и предпринимают действия по их устранению; увольняют, если человек проявил безответственное отношение к результату своей работы 👍
А важны ли вам ценности компании, в которую вы собеседуетесь? Как вы их для себя выясняете?
#реалити
🤔 В некоторых компаниях основатели проводят собеседование с большинством кандидатов, чтобы проверить их на совпадение по ценностям. И не всегда понятно, как себя на таких секциях вести.
Я считаю, что нужно делать то же, что и основатели — проверять, что их ценности совпадают с вашими. Далее расскажу, как это делаю я.
Недавно я рассказывал, как у меня была секция без единой строчки кода в компанию Ядро. После неё меня пригласили как раз на встречу с то̀пами компании. Это снова было общение с переговоркой по ВКС, и снова я не запомнил имена своих собеседников 😕
Во второй половине интервью меня попросили задать свои вопросы. Я решил, что со столь большими начальниками странно говорить про процесс разработки и расспрашивать, есть ли у них ежедневные стендапы (🤮) Поэтому стал расспрашивать о ценностях.
Я искреннее считаю, что истинные ценности компании проявляются, только когда что-то идёт не по плану. Когда всё хорошо — все друг друга любят и вместе воодушевлённо идут к светлому будущему. Но что происходит во время факапа❓ Знаю я одну компанию, которая заявляет, что её главная ценность — люди. Только один мой друг 😉 говорит, что там бурно процветают пассивная агрессия и постоянное обесценивание заслуг...
Ну ладно, вернёмся к моему собесу. Я стал выяснять ценности компании через неудобные вопросы:
— Расскажите, пожалуйста, за что в вашей компании увольняют?
— Что происходит с людьми, которые допустили инцидент на проде?
Честно говоря, мне непросто задавать такие вопросы. Я чувствую, как будто копаюсь в чужом грязном белье. Но не знаю, как по-другому вытащить из людей, а что им правда важно в их деятельности.
Ответ ребят из Ядра был классным. Если коротко — в случае факапа разбираются в причинах и предпринимают действия по их устранению; увольняют, если человек проявил безответственное отношение к результату своей работы 👍
А важны ли вам ценности компании, в которую вы собеседуетесь? Как вы их для себя выясняете?
Главная ошибка на coding interview 💦
По моему опыту, эта штука чаще всего приводит к провалу на алгоритмической секции.
Вернёмся к теме coding interview, которой изначально был посвящён этот канал.
➡️ За время работы в Яндексе я в качестве интервьюера провёл более 200 секций с написанием кода.
➡️ Как кандидат я прошёл порядка 50 таких секций, завалив 3-4 из них.
➡️ Сейчас я индивидуально работаю с несколькими людьми, и в рамках этой работы мы регулярно проводим mock-interview.
❗️Во всех этих случаях я вижу, что самая частая причина неудачи на интервью — это преждевременнаяимплемента ция 😉
Кандидат придумал идею решения, в его голове сложился алгоритм, и он со словами «ну тут всё понятно» бросается писать код. Я даже понимаю, какое чувство в этот момент рождается внутри — нетерпение и щемящий грудь энтузиазм поскорее закодить то, что ты только что придумал.
Человек начинает писать код и ... минут через 5-10 вязнет, понимая, что не придумал, как он обработает крайние случаи. Или просто раз за разом переписывает условие главного цикла в своём решении 🥵 Или вдруг осознаёт, что не «всё тут понятно» и просто впадает в ступор.
Что происходит дальше? Человек так и остаётся в этом ступоре, пытаясь локальными правками и костыльными if'ами исправить все ошибки 🩼 Такие исправления обычно приводят к новым багам, и это затягивается до конца секции.
Я видел это так много раз, что когда сейчас слышу «ну тут всё понятно», просто останавливаю кандидата и заставляю самым подробным образом рассказать мне, какой алгоритм он собрался писать. Обычно это заставляет его задуматься о том, что ещё не успело прийти в голову.
Как же избежать преждевременной имплементации? 💦
Очень просто — перед написанием кода продумать структуру всей вашей программы. Какие входные данные будут у главной функции? Что вы с ними сделаете сначала, что потом? Как сформируете ответ? И т.д.
Лучше всего прямо вслух проговорить что-то вроде: «Сначала я отсортирую входной массив, потом поставлю один указатель в его начало, а другой — в конец. Буду двигать первый, пока ... Потом сдвину второй на ... Этот процесс завершится, когда первый станет больше второго. Затем, чтобы получить ответ я ...»
Это занимает около минуты, но потом экономит вам десятки минут на реализацию. И это всегда можно сделать, потому что решения алгоритмических задач на собеседованиях довольно маленькие и всегда целиком помещаются в голову.
А с вами случалась преждевременная имплементация? Как справляетесь с нею? 😃
По моему опыту, эта штука чаще всего приводит к провалу на алгоритмической секции.
Вернёмся к теме coding interview, которой изначально был посвящён этот канал.
➡️ За время работы в Яндексе я в качестве интервьюера провёл более 200 секций с написанием кода.
➡️ Как кандидат я прошёл порядка 50 таких секций, завалив 3-4 из них.
➡️ Сейчас я индивидуально работаю с несколькими людьми, и в рамках этой работы мы регулярно проводим mock-interview.
❗️Во всех этих случаях я вижу, что самая частая причина неудачи на интервью — это преждевременная
Кандидат придумал идею решения, в его голове сложился алгоритм, и он со словами «ну тут всё понятно» бросается писать код. Я даже понимаю, какое чувство в этот момент рождается внутри — нетерпение и щемящий грудь энтузиазм поскорее закодить то, что ты только что придумал.
Человек начинает писать код и ... минут через 5-10 вязнет, понимая, что не придумал, как он обработает крайние случаи. Или просто раз за разом переписывает условие главного цикла в своём решении 🥵 Или вдруг осознаёт, что не «всё тут понятно» и просто впадает в ступор.
Что происходит дальше? Человек так и остаётся в этом ступоре, пытаясь локальными правками и костыльными if'ами исправить все ошибки 🩼 Такие исправления обычно приводят к новым багам, и это затягивается до конца секции.
Я видел это так много раз, что когда сейчас слышу «ну тут всё понятно», просто останавливаю кандидата и заставляю самым подробным образом рассказать мне, какой алгоритм он собрался писать. Обычно это заставляет его задуматься о том, что ещё не успело прийти в голову.
Как же избежать преждевременной имплементации? 💦
Очень просто — перед написанием кода продумать структуру всей вашей программы. Какие входные данные будут у главной функции? Что вы с ними сделаете сначала, что потом? Как сформируете ответ? И т.д.
Лучше всего прямо вслух проговорить что-то вроде: «Сначала я отсортирую входной массив, потом поставлю один указатель в его начало, а другой — в конец. Буду двигать первый, пока ... Потом сдвину второй на ... Этот процесс завершится, когда первый станет больше второго. Затем, чтобы получить ответ я ...»
Это занимает около минуты, но потом экономит вам десятки минут на реализацию. И это всегда можно сделать, потому что решения алгоритмических задач на собеседованиях довольно маленькие и всегда целиком помещаются в голову.
А с вами случалась преждевременная имплементация? Как справляетесь с нею? 😃
Воскресный #юмор
Земля
2050 год
Генетический программер разбирает очередной кусок генной последовательности и видит следующий комментарий
Земля
2050 год
Генетический программер разбирает очередной кусок генной последовательности и видит следующий комментарий
/* A eti geny nado by ubrat nahren. Archangel Gavriil */
Чем закончилось собеседование в Ядро?
#реалити
Завершение истории моего собеседования в компанию Ядро. Предыдущие посты:
— Собес без единой строчки кода
— О чём спрашивать на собеседовании основателей компании?
После технической секции и встречи с топами меня пригласили на секцию с потенциальным руководителем. После знакомства и рассказов о себе разговор перешёл к деньгам 🤑 Мы пустились в танец "Сколько хочешь? А сколько дадите?". Видно было, что Алексей (мой собеседник) очень опытен в таких разговорах и готов долго рассказывать, как широка их вилка и как важно, чтобы компенсация соответствовала компетенциям 😉
Когда я понял, что мы не продвигаемся, я сменил тактику и озвучил свою вилку: сумму, ниже которой я точно не готов устраиваться, и сумму, за которую я готов выйти на работу завтра. У меня эти верх и низ посчитаны заранее и относятся примерно как 3 к 1, что оставляет большой простор для переговоров.
В ответ услышал что-то вроде: «Ну это нормально, про это можно говорить», и вскоре наша встреча закончилась 🤝
Через полчаса рекрутер написала, что мне не готовы ничего предложить 😢😞🤔
Сначала было, конечно, неприятно. Но я быстро пришёл в себя, потому что понял, что это отказ лишь из-за несовпадения финансовых условий.
Забавно, что по итогам трёх секций я так и не понял, на какую позицию меня рассматривали. Видимо, они определяют позицию, отталкиваясь от финансовых ожиданий кандидата.
Мои итоги и выводы после этой истории.
👉 Первый в моей жизни процесс собеседования, на котором я не решал никакие задачи
👉 Знакомства, рассказы о себе и разговоры за жизнь заняли примерно 70% времени общения. Вот почему так важно уметь делать качественную самопрезентацию.
👉 Очень важно иметь твёрдо рассчитанный низ своей личной зарплатной вилки, чтобы вас нельзя было уболтать на меньшие деньги
👉 Все сотрудники Ядра, с которыми я общался, производят очень приятное впечатление 🤗
А как вы чувствуете себя, когда вам отказывают из-за финансовых несовпадений?
#реалити
Завершение истории моего собеседования в компанию Ядро. Предыдущие посты:
— Собес без единой строчки кода
— О чём спрашивать на собеседовании основателей компании?
После технической секции и встречи с топами меня пригласили на секцию с потенциальным руководителем. После знакомства и рассказов о себе разговор перешёл к деньгам 🤑 Мы пустились в танец "Сколько хочешь? А сколько дадите?". Видно было, что Алексей (мой собеседник) очень опытен в таких разговорах и готов долго рассказывать, как широка их вилка и как важно, чтобы компенсация соответствовала компетенциям 😉
Когда я понял, что мы не продвигаемся, я сменил тактику и озвучил свою вилку: сумму, ниже которой я точно не готов устраиваться, и сумму, за которую я готов выйти на работу завтра. У меня эти верх и низ посчитаны заранее и относятся примерно как 3 к 1, что оставляет большой простор для переговоров.
В ответ услышал что-то вроде: «Ну это нормально, про это можно говорить», и вскоре наша встреча закончилась 🤝
Через полчаса рекрутер написала, что мне не готовы ничего предложить 😢😞🤔
Сначала было, конечно, неприятно. Но я быстро пришёл в себя, потому что понял, что это отказ лишь из-за несовпадения финансовых условий.
Забавно, что по итогам трёх секций я так и не понял, на какую позицию меня рассматривали. Видимо, они определяют позицию, отталкиваясь от финансовых ожиданий кандидата.
Мои итоги и выводы после этой истории.
👉 Первый в моей жизни процесс собеседования, на котором я не решал никакие задачи
👉 Знакомства, рассказы о себе и разговоры за жизнь заняли примерно 70% времени общения. Вот почему так важно уметь делать качественную самопрезентацию.
👉 Очень важно иметь твёрдо рассчитанный низ своей личной зарплатной вилки, чтобы вас нельзя было уболтать на меньшие деньги
👉 Все сотрудники Ядра, с которыми я общался, производят очень приятное впечатление 🤗
А как вы чувствуете себя, когда вам отказывают из-за финансовых несовпадений?
Еду в отпуск в США. Раньше там ни разу не был. Буду в Сан-Франциско и Лос-Анджелесе. Рассказывать здесь, как проходит поездка?
Anonymous Poll
76%
Да, мне интересно
2%
Нет, добавлю t.me/ishfb в контакты и буду смотреть сториз
13%
Нет, хочу читать только про IT
10%
Посмотреть результаты
Как вы управляете своим вниманием?
Всё чаще слышу, что при всей важности тайм-менеджмента сейчас важнее управлять своим вниманием 🔦
Для меня это очень актуально, потому что стало всё сложнее долго концентрироваться на чём-то одном. Начинаю заниматься глубокой вдумчивой работой, и в голову тут же приходят мысли "а что там в ТГ мне пишут? 😜" или тут же вспоминаю про что-то маленькое, что давно хотел сделать. Ну и ютубчик, конечно 🙈
Ещё стало сложно проходить долгое обучение и читать книги целиком, потому что нужно месяцами регулярно уделять им внимание, когда отовсюду летят новые возможности и источники информации.
Вот что я сейчас делаю для фокусировки:
👉 отключил все уведомления Телеграма на компьютере
👉 стараюсь ограничивать количество каналов, на которые подписан
👉 во время работы отключаю все уведомления на телефоне
👉 перед началом работы составляю список дел на день и иду по нему сверху вниз
Мне стало интересно, а что ещё можно делать в этой сфере? Расскажите, пожалуйста, что делаете вы, чтобы фокусироваться на важном?
Всё чаще слышу, что при всей важности тайм-менеджмента сейчас важнее управлять своим вниманием 🔦
Для меня это очень актуально, потому что стало всё сложнее долго концентрироваться на чём-то одном. Начинаю заниматься глубокой вдумчивой работой, и в голову тут же приходят мысли "а что там в ТГ мне пишут? 😜" или тут же вспоминаю про что-то маленькое, что давно хотел сделать. Ну и ютубчик, конечно 🙈
Ещё стало сложно проходить долгое обучение и читать книги целиком, потому что нужно месяцами регулярно уделять им внимание, когда отовсюду летят новые возможности и источники информации.
Вот что я сейчас делаю для фокусировки:
👉 отключил все уведомления Телеграма на компьютере
👉 стараюсь ограничивать количество каналов, на которые подписан
👉 во время работы отключаю все уведомления на телефоне
👉 перед началом работы составляю список дел на день и иду по нему сверху вниз
Мне стало интересно, а что ещё можно делать в этой сфере? Расскажите, пожалуйста, что делаете вы, чтобы фокусироваться на важном?
Илья Шишков: код, собесы, IT
Еду в отпуск в США. Раньше там ни разу не был. Буду в Сан-Франциско и Лос-Анджелесе. Рассказывать здесь, как проходит поездка?
One night stand
77% проголосовали за рассказы про поездку, так что вот первый пост о ней.
Стамбул
Мы в Сан-Франциско летели из Стамбула. Прилетели туда за день до вылета в SF, чтобы точно успеть на самолёт. Сняли отель в посёлке рядом с аэропортом. До отеля добирались на обычном рейсовом автобусе вместе с простыми горожанами. Удивило, что в автобусе никто не уступил место моей пятилетней дочери — видимо, местная особенность. Она в итоге ехала сидя на наших двух чемоданах 😆
Отель вполне подходит для одной ночёвки, очень близко к нему кебабная, где никто не понимает ни русский, ни английский, а просто тыкают пальцем в меню и говорят: "Гут!" Всё, что они нам посоветовали, оказалось просто "супер-гут".
Наутро сразу поехали обратно в аэропорт. Специально для этой поездки я сделал себе Tinkoff Premium, чтобы иметь страховки для путешественников и бесплатные проходы в бизнес-залы.
Перелёт
Насладившись бизнес-залом, пошли на посадку. И тут начались приключения... В самолёте объявили, что возникла «little technical problem», которая задерживает наш вылет 😕 Через полчаса сказали, что надо прикатить самолёт обратно на parking position, чтобы исправить эту «little technical problem» 😨. Потом сказали, что понадобится ещё 35-40 минут, чтобы устранить «little technical problem» 😰
За это время у меня дочка успела заснуть и проснуться. Просыпается и спрашивает: «Эточто за остановка: Бологое иль Поповка уже Сан-Франциско?»
В итоге сам сказали, что technical problem не такая уж и little и надо пересесть в другой самолёт ✈️ Смена самолёта заняла ещё около часа...
В итоге с задержкой в 4 часа наш 14-часовой перелёт в Сан-Франциско всё-таки начался.
Прибытие
Перелёт прошёл без особых проблем и пролетел довольно быстро. В Сан-Франциско прилетели примерно в 19:00 по местному. Подошли на паспортный контроль... Офицер задал дежурные вопросы про цель визита и сколько времени собираемся провести в США. А потом говорит: «OK, guys. Just one more stop. Follow me», выходит и ведёт нас в какой-то кабинет 🤔😨 Заходим — там полицейских в 2 раза больше, чем пассажиров. К нам подошла приветливая policewoman и начала расспрос, держа наши паспорта в руках:
— Цель визита? Сколько собираетесь быть в США?
— Где живёте в России? А как пишется "Сочи"? А это как близко к Москве? А Украина рядом? 😳
— Чем занимаетесь? Как это self employed — в вашем visa application указана компания на букву Y?
— А как называется ваша компания? В чём состоит её деятельность?
— Родственники в США есть? Они все в России?
И вот сижу я, отвечаю на это всё и понимаю, что нас ведь сейчас могут завернуть и не пустить в страну... Весьма паршивое ощущение, но в целом я был спокоен, потому что надо было просто делать что от меня зависит — честно отвечать на вопросы.
И вот она задаёт финальный вопрос: "В каких странах вы были в последние 5 лет?" Я перечисляю и завершаю словами «and finally we had one night stand in Istanbul, Turkey before coming here». Policewoman рассмеялась, сказала: "Here these words have another meaning" и отдала нам наши паспорта ☺️. Я выдохнул, понял, что надо было сказать "one night stay", сам внутренне поржал и пошёл получать багаж.
Welcome to the USA!
77% проголосовали за рассказы про поездку, так что вот первый пост о ней.
Стамбул
Мы в Сан-Франциско летели из Стамбула. Прилетели туда за день до вылета в SF, чтобы точно успеть на самолёт. Сняли отель в посёлке рядом с аэропортом. До отеля добирались на обычном рейсовом автобусе вместе с простыми горожанами. Удивило, что в автобусе никто не уступил место моей пятилетней дочери — видимо, местная особенность. Она в итоге ехала сидя на наших двух чемоданах 😆
Отель вполне подходит для одной ночёвки, очень близко к нему кебабная, где никто не понимает ни русский, ни английский, а просто тыкают пальцем в меню и говорят: "Гут!" Всё, что они нам посоветовали, оказалось просто "супер-гут".
Наутро сразу поехали обратно в аэропорт. Специально для этой поездки я сделал себе Tinkoff Premium, чтобы иметь страховки для путешественников и бесплатные проходы в бизнес-залы.
Перелёт
Насладившись бизнес-залом, пошли на посадку. И тут начались приключения... В самолёте объявили, что возникла «little technical problem», которая задерживает наш вылет 😕 Через полчаса сказали, что надо прикатить самолёт обратно на parking position, чтобы исправить эту «little technical problem» 😨. Потом сказали, что понадобится ещё 35-40 минут, чтобы устранить «little technical problem» 😰
За это время у меня дочка успела заснуть и проснуться. Просыпается и спрашивает: «Это
В итоге сам сказали, что technical problem не такая уж и little и надо пересесть в другой самолёт ✈️ Смена самолёта заняла ещё около часа...
В итоге с задержкой в 4 часа наш 14-часовой перелёт в Сан-Франциско всё-таки начался.
Прибытие
Перелёт прошёл без особых проблем и пролетел довольно быстро. В Сан-Франциско прилетели примерно в 19:00 по местному. Подошли на паспортный контроль... Офицер задал дежурные вопросы про цель визита и сколько времени собираемся провести в США. А потом говорит: «OK, guys. Just one more stop. Follow me», выходит и ведёт нас в какой-то кабинет 🤔😨 Заходим — там полицейских в 2 раза больше, чем пассажиров. К нам подошла приветливая policewoman и начала расспрос, держа наши паспорта в руках:
— Цель визита? Сколько собираетесь быть в США?
— Где живёте в России? А как пишется "Сочи"? А это как близко к Москве? А Украина рядом? 😳
— Чем занимаетесь? Как это self employed — в вашем visa application указана компания на букву Y?
— А как называется ваша компания? В чём состоит её деятельность?
— Родственники в США есть? Они все в России?
И вот сижу я, отвечаю на это всё и понимаю, что нас ведь сейчас могут завернуть и не пустить в страну... Весьма паршивое ощущение, но в целом я был спокоен, потому что надо было просто делать что от меня зависит — честно отвечать на вопросы.
И вот она задаёт финальный вопрос: "В каких странах вы были в последние 5 лет?" Я перечисляю и завершаю словами «and finally we had one night stand in Istanbul, Turkey before coming here». Policewoman рассмеялась, сказала: "Here these words have another meaning" и отдала нам наши паспорта ☺️. Я выдохнул, понял, что надо было сказать "one night stay", сам внутренне поржал и пошёл получать багаж.
Welcome to the USA!
Воскресный #юмор
— Тяжело быть программистом. Приходишь отдохнуть к людям в гости, а тебе сразу показывают домашний компьютер и просят разобраться с его проблемами.
— Представляю, каково проктологам.
— Тяжело быть программистом. Приходишь отдохнуть к людям в гости, а тебе сразу показывают домашний компьютер и просят разобраться с его проблемами.
— Представляю, каково проктологам.
Совпадение? Не думаю!
Подходит к концу моё пребывание в США. После нескольких дней в Сан-Франциско мы уехали в Лос-Анджелес. Сегодня вернулись обратно в СФ и заселились в тот же отель, где жили в первый раз.
Он находится на Sutter street. И мне кажется это очень занятным совпадением... 😆🤣
Пояснительная бригада:
Herb Sutter - член комитета по стандартизации C++ и известнейший популяризатор этого языка программирования. И мои главные достижения в разработке тоже неразрывно связаны с C++
Подходит к концу моё пребывание в США. После нескольких дней в Сан-Франциско мы уехали в Лос-Анджелес. Сегодня вернулись обратно в СФ и заселились в тот же отель, где жили в первый раз.
Он находится на Sutter street. И мне кажется это очень занятным совпадением... 😆🤣
Пояснительная бригада:
Воскресный #юмор
Умер айтишник. Попал на страшный суд. Там его спрашивают:
— Куда сам-то хочешь: в ад или в рай?
— А посмотреть можно?
Привели его в громаднейший датацентр. Кругом машин всевозможных, сеток — видимо-невидимо.
— Вот это — рай, будешь здесь юзером.
— А ад?
— А ад здесь же — только сисадмином
Умер айтишник. Попал на страшный суд. Там его спрашивают:
— Куда сам-то хочешь: в ад или в рай?
— А посмотреть можно?
Привели его в громаднейший датацентр. Кругом машин всевозможных, сеток — видимо-невидимо.
— Вот это — рай, будешь здесь юзером.
— А ад?
— А ад здесь же — только сисадмином
Сегодня, в 19:00 мск буду участвовать в эфире на канале Доки. Дока — это проект для фронтенд-разработчиков, и во время эфира мы поговорим, насколько фронтендерам нужно владеть алгоритмами.
В очередной раз обсудим, зачем на собеседованиях дают задачки алгоритмического содержания, как наилучшим образом к ним подготовиться, и даже порешаем задачки в прямом эфире 😳.
Ведущие эфира — Полина Гуртовая и Егор Левченко. Приходите, будет интересно!
В очередной раз обсудим, зачем на собеседованиях дают задачки алгоритмического содержания, как наилучшим образом к ним подготовиться, и даже порешаем задачки в прямом эфире 😳.
Ведущие эфира — Полина Гуртовая и Егор Левченко. Приходите, будет интересно!
YouTube
Так ли страшны алгоритмы? // Илья Шишков и Полина Гуртовая // Дока
Илья Шишков и Полина Гуртовая рассказывают, зачем на собеседованиях спрашивают алгоритмы, как их полюбить и научиться решать.
Дока → https://doka.guide/
Бесплатный курс «Подготовка к алгоритмическому собеседованию», Практикум → https://clck.ru/39MKmc…
Дока → https://doka.guide/
Бесплатный курс «Подготовка к алгоритмическому собеседованию», Практикум → https://clck.ru/39MKmc…