Илья Шишков: код, собесы, IT
4.58K subscribers
141 photos
13 videos
4 files
281 links
У инженеров 2 главные проблемы: «куда дальше расти» и «нет системности в хард-скиллах». Эти сложные темы я объясняю простым языком, даю ориентиры выбора траектории — развитие в технику или дальше в лидство. Лучшее читай тут: t.me/imhired/251
Связь: @ishfb
Download Telegram
Ненавижу покупать авиабилеты ✈️

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

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

Я хорошо помню, как лет 20 назад покупка билетов в Интернете была символом прогресса 🚀 Тогда вокруг меня многие ещё ездили за железнодорожными билетами на вокзал: стояли в очередях, толкались, ругались. А самые продвинутые люди с лёгкой гордостью говорили: «А я купил билет в интернете 😎».

Это ощущалось как победа технологии над хаосом. Быстрее. Проще. Удобнее.

А потом что-то сломалось. Все эти неочевидные формы, галочки, допродажи, ловушки в интерфейсе — это же не случайность. Наверняка за ними стоят A/B-тесты, метрики, продуктовые гипотезы. В таком варианте авиакомпания зарабатывает больше. То, что пассажиру при этом хуже, — уже побочный эффект.

Когда я только заходил в IT, мне нравилась мысль, что мы создаём технологии, которые делают жизнь людей проще. А правда оказалась в том, что современные Интернет-технологии часто делают жизнь сложнее — просто потому, что так выгоднее 😔

И мне кажется, с ИИ мы сейчас проживаем очень похожий момент.

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

Примерно так же когда-то ощущался Интернет!

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

Может быть, платная подписочная модель частично от этого защищает. А может, и нет. Кто знает, что будет через 10 лет.

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

P.S. С 27 апреля по 14 мая еду в США воспользоваться туристической визой, пока она ещё действует 🇺🇸. В программе Нью-Йорк, Ниагарский водопад, Лас-Вегас, Гранд-Каньон и Лос-Анджелес. Пишу сюда, потому что в прошлую поездку удалось познакомиться и интересно пообщаться с подписчиком канала. Вдруг и в этот раз это сообщение приведёт к интересной встрече.

А как вам кажется: сейчас золотое время ИИ?
23👍12💯5
Media is too big
VIEW IN TELEGRAM
Don't even try to PG_TRY

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

Залез в код, раскрыл для вас все макросы, показал то что скрыто 😆

Что я рассказал в видео:
— для чего именно сделали исключения в PostgreSQL
— как на языке С реализовали исключения в PostgreSQL, до самых глубоких деталей
— что будет, если нарушать гайдлайны использования PG_TRY
— что будет, если не поймать выброшенное исключение
— почему в коде PostgreSQL опасно использовать C++

Таймкоды видео:
— 00:00 — начало
— 01:01 — концепция исключений в языках программирования
— 02:56 — пример использования PG_TRY в коде PostgreSQL
— 05:26 — с какой целью в PostgreSQL применяется PG_TRY
— 07:16 — что ускользает из внимания в документации
— 09:48 — как внутри устроен PG_TRY?
— 14:30 — магия функции siglongjmp
— 17:12 — почему после PG_CATCH нельзя просто продолжить?
— 24:02 — где обрабатывается исключение, если нет ни одного PG_CATCH
— 28:35 — чего нельзя делать внутри PG_TRY/PG_CATCH и причём тут C++
— 33:49 — итоги

Можно смотреть:
— тут в Телеграм
😉 на моём YouTube-канале
😄 на странице в ВК
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16
Ты сделал хорошо. Почему это никому не важно?

Я сейчас в отпуске, и мы с семьёй поехали в США, пока ещё действует наша туристическая виза. Несколько дней гуляли по Нью-Йорку: прошлись по Пятой авеню, сплавали к Статуе Свободы, посмотрели на Бруклинский и Манхэттенский мосты, сходили в Американский музей естественной истории.

И в какой-то момент я поймал себя на мысли: а почему именно эти места кажутся обязательными к посещению? 🤔

Да, Статуя Свободы — впечатляющее сооружение. Мосты Нью-Йорка — мощная инженерная работа. Музей естественной истории — огромный и очень качественно сделанный музей.

Но людей туда приводит не только качество само по себе. Людей приводят истории.

Статуя Свободы сотни раз появлялась в кино, на открытках, в заставках и новостях. Бруклинский и Манхэттенский мосты столько раз взрывали, разрушали и эффектно показывали в фильмах, что они стали узнаваемыми символами города. А музей естественной истории для огромного количества людей — это не просто музей, а место, где происходила «Ночь в музее».

Мы, например, пошли туда во многом потому, что перед поездкой показали дочке все три части фильма. И повели её смотреть «Дам-дам». Без этой истории музей был бы для неё просто ещё одним большим зданием с экспонатами. А так это место, где оживает знакомый мир.

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

И вот тут я подумал про нас, программистов.

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

Но обычно не должны.

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

Что это вообще такое? Это не обязательно маркетинг в плохом смысле. Упаковка — это ответ на вопросы:
— что именно я сделал?
— почему это было сложно?
— какую проблему это решает?
— кому от этого стало лучше?
— почему на это стоит обратить внимание?

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

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

Причём упаковка — это отдельная работа. Её нельзя нормально сделать за один вечер (даже с ChatGPT/Claude/etc 😜). Нужно думать, выбирать акценты, убирать лишнее, искать понятные примеры, переводить техническую сложность на язык ценности.

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

А вы как относитесь к упаковке своей работы: считаете это важной частью инженерного роста или всё-таки чем-то внешним и не очень нужным?
🔥2711💯4👍3😁2🎉1
Claude - уже вчерашний день

В моём информационном пузыре очень много людей говорят про Claude: "Я за 2 вечера сделал то, на что уходил месяц", "Мне больше не нужны программисты, я за выходные сам сделал себе все нужные сервисы" и т.д.

Claude и правда хорош. Но когда мы были в Нью-Йорке, меня удивило, что там рекламируют другие сервисы, указывая на недостатки Claude (см. первое фото ниже). Там вообще рекламируют очень много разных AI-сервисов, о которых я ничего не слышал.

Но ещё больше меня удивило, что их рекламируют в метро! 🤯 Там, где в Москве рекламируют вклады, кредиты и недвижку, в Нью-Йорке размещают рекламу exa.ai. Для меня выглядит крайне необычно.

Как если бы на метро Курская повесили плакат с рекламой Giga IDE...
17🔥13👏4
Я уже писал, что, по моим ощущениям, мы живём в золотое время ИИ. Сейчас он не просто подсказывает, а способен полноценно помогать.  Но помогать можно, делая за человека все, а можно — указывая путь и оставляя пространство для собственных решений, ошибок и роста. Именно по такому пути реализовали новую фичу «Кодерун AI» в онлайн-тренажёре для разработчиков CodeRun.

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

Новая фича связана с интеграцией AI-помощника, который, когда ты застреваешь на задаче, дает не готовое решение, а небольшую подсказку. Бонусом Кодерун AI объясняет примеры из условия и генерирует тест-кейсы для проверки решения.

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

Чтобы попробовать, заходите в задачи на CodeRun, открывайте вкладку «Кодерун AI» и пользуйтесь. Пока фича в бете и нужна авторизация, а лимит 20 бесплатных запросов.
🥴9👍3🔥2
Собеседование в Яндекс: где мне помог ChatGPT?

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

TL; DR

Стало гораздо лучше, быстрее и понятнее. Самое главное — у меня было три секции! Три! Не 5, не 10, не 17 — только 3, каждая по часу. Вот что на них происходило.

1. Скрининг

Дали готовый код. Там была заготовка логики и тесты. Надо было понять код, проверить, нет ли багов в тестах. Дальше надо было реализовать логику так, чтобы тесты в итоге прошли. Это всё как обычно в онлайн-редакторе без запуска кода и компиляции. Причём в коде была многопоточка — на мой взгляд, не самая простая.

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

2. Алгосекция

Здесь были старые добрые leetcode-like задачи. Решил обе, но пришлось попотеть. Перед секцией я 3-4 дня решал leetcode по часу плюс положился на прежний опыт. Этого хватило, чтобы справиться с обеими задачами в срок, но это не было прям лёгкой прогулкой. Так что настоятельно рекомендую перед такими секциями выделить побольше дней на прорешивание leetcode, просто чтобы вернуть себя в форму, если вы давно этого не делали.

Минутка AI-рефлексии

Когда я шёл в этот процесс, мне было ещё интересно узнать, насколько сейчас проще собеседоваться на разработчика, имея под рукой ChatGPT/Claude/etc. Мне показалось, что вообще не проще, потому что я не понимал, а куда в процессе секции эти GPT-воткнуть? Я всё время был в диалоге с ревьюером, постоянно вслух рассуждал и комментировал, какой код и почему я пишу. В этом потоке совершенно не понятно, как можно уйти в ChatGPT, сформулировать ему задачу, а потом ещё каким-то образом делать вид, что это ты сам из головы придумал.

У меня только на скрининге был момент, когда мне надо освежить в голове один API стандартной библиотеки C++, и я понял, что мне это проще сделать в ChatGPT, чем копаться в cppreference. Я сказал об этом интервьюеру, он кивнул, и мы пошли дальше.

3. Оценка опыта

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

Сначала я думал: «Ну я просто пишу код... Какие у меня есть проекты с ключевой ролью и понятными результатами?» Потом придумал 4 кандидата на роль таких проектов. Про каждый из таких проектов я надиктовал в ChatGPT всё, что есть в голове, и поставил ему задачу выбрать тот, который лучше всего характеризует меня как сильного специалиста. После пары итераций был отобран топ-1 кандидат для рассказа на секции. Дальше там же я сделал хорошие формулировки результатов и своего вклада, и у меня получилась хорошая презентация проекта. С ней я и пришёл на собеседование.

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

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

Итоги

В итоге я на своём опыте прошёл новый процесс собеседований разработчиков в Яндексе, и считаю, что компании правда удалось сделать его более быстрым и понятным для кандидатов. К тому же мне удалось найти win-win подход к применению AI в подготовке к собеседованиям — ChatGPT сильно помог выгодно презентовать свой опыт.

Расскажите в комментариях, как вы применяете AI для подготовки и прохождения собеседований?
👍145🔥2😁2
Пока все вайбкодят, я хожу по художественным музеям

В предыдущем посте я рассказал про собеседование в Яндекс. Дальше ещё хочу поделиться опытом нескольких собеседований, но сначала сделаю небольшое лирическое отступление.

Вокруг меня сейчас очень много разговоров о том, как искусственный интеллект поменял разработку. Из каждого утюга доносится слово «вайбкодинг». У меня пока мало в этом опыта, но AI сделал для меня интересной живопись!

Когда были в Нью-Йорке, ходили в MoMA. А сегодня выбрались с семьёй в Третьяковскую галерею. Фотографии выше как раз об этом.

Раньше художественные музеи были для меня довольно мучительным опытом. После 7-10 просмотренных картин мозг устаёт, и всё начинает сливаться в одну бесконечную площадь холстов. Подходишь к очередной картине и думаешь: «Окей, а почему она висит в музее? Что в ней такого значительного? Чем она отличается от миллионов других написанных картин?»

Но музей обычно не отвечает на этот вопрос. На табличке написано название, автор, годы создания и материал: «холст, масло». Как будто слово «масло» должно объяснить мне, почему передо мной великая работа, а не просто очередная старая картина.

И вот тут LLM внезапно оказались очень полезны. В MoMA и в Третьяковке я сначала просил ChatGPT построить мне маршрут по залам: «покажи 10–15 главных работ музея, чтобы я не распылял внимание и не пытался охватить всё сразу». Получался понятный маршрут: иди в этот зал, смотри Ван Гога; потом туда, смотри Пикассо; в Третьяковке — Васнецова, Репина, Серова и так далее.

А дальше я подходил к картине и прямо голосом надиктовывал:
«Я стою перед “Богатырями”. Объясни, как её смотреть и на что обратить внимание». И получал короткий, но ёмкий рассказ: что здесь важно в композиции, почему фигуры стоят именно так, почему это не картина про войну, хотя на первый взгляд ждёшь эпический замес. Кстати, «эпический замес» — это важная часть опыта. Я не уверен, что музейный гид использовал бы такие слова. А ChatGPT может объяснять не высоким музейным языком, а нормальным человеческим. Иногда почти разговорным. И от этого картина становится только доступнее.

Особенно интересно так смотреть Пикассо или Малевича. Например, на фотографии выше есть работа Малевича «Белое на белом». Если просто подойти к ней в музее, первая реакция довольно предсказуемая: «Ну и что это? Белый квадрат на белом фоне?»

Без объяснения я бы прошёл мимо и ничего не понял. А с пояснением становится видно, что за этим стоит целая система взглядов: супрематизм, попытка убрать из живописи предметный мир, оставить форму, цвет, пространство и само ощущение движения. Можно с этим соглашаться или не соглашаться, но хотя бы становится понятно, почему эта работа вообще попала в музей.

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

Пока все обсуждают, как AI помогает писать код, я внезапно обнаружил, что он помогает ещё и смотреть картины. Для меня это один из самых неожиданных способов применения LLM.

Всё, лирическое отступление закончил. Дальше — про собесы в HFT.
👍2313👌4🔥3😁3
Илья Шишков: код, собесы, IT
Всё, лирическое отступление закончил. Дальше — про собесы в HFT.
Позволю себе ещё продолжить лирическое отступление — выходные, в конце концов.

Я вчера был поражён огромным разрывом в уровне технологий. Я попробовал использовать Алису AI в Третьяковке — результат вы можете видеть на скриншотах ниже. Кратко диалог был такой:
— В каком зале Третьяковки Репин Стрекоза?
— Картина Ильи Репина «Стрекоза» находится в зале Репина в Третьяковской галерее
— Спасибо, кэп! А номер у зала какой?
— Я не нашла в номер зала. Посмотрите на сайте Третьяковской галереи или в отзывах на Яндекс Картах


Когда AI-ассистент поисковой компании предлагает посмотреть что-то сайте вместо того, чтобы сделать это самостоятельно, — это, на мой взгляд, epic fail 🤦🏻‍♂️

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

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

А какой AI вам помогает больше всего?
😁25💯41👍1🥴1
9 собесов в HFT — один паттерн

Первый пост этого лета — как и обещал, о моём опыте собеседований в HFT.

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

1. В 100% случаев надо писать код на C++.

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

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

2. Большинство компаний спрашивают про то, как работает компьютер.

Про процессор, кеши, виртуальную память, когерентность кэшей, false sharing. Почему одна программа тормозит, хотя асимптотически всё хорошо. И это уже не уровень «ну, есть L1, L2, L3». Там довольно быстро становится видно, понимаешь ли ты, как исполняется твой код на железе.

3. Почти везде всплывают сети

У меня опыта в сетях не так много, поэтому глубоко меня обычно не копали. Я честно говорил, что понимаю HTTP и базовые вещи, но не работал плотно на уровне TCP, kernel bypass и всего такого. Но сам вопрос возникал регулярно. И понятно почему: если компания зарабатывает на скорости, ей важно, чтобы разработчик понимал, где могут теряться микросекунды и как это исправить.

4. Глубина знания C++

Не «язык программирования вообще», а конкретно C++ со всеми его прекрасными способами выстрелить себе в ногу.

Могут дать тест. Могут показать код и попросить объяснить, что он делает. Могут попросить написать решение так, чтобы там были шаблоны, виртуальные методы, концепты или аккуратная работа с move-семантикой. И здесь снова важно не просто знать слова copy elision, std::move, virtual dispatch или cache line. Важно понимать, какой код реально получится после компиляции и как он будет исполняться.

Этот мой опыт наталкивает на интересный вывод. Если цель — устроиться в HFT, есть вполне ограниченный набор тем, которые достаточно освоить (правда достаточно глубоко и обязательно набрав реального опыта), чтобы чувствовать себя уверенно на техническом собеседовании.

Просьба

Мне стало интересно выйти за пределы личного опыта. Если вы сейчас целитесь в HFT или уже ходили на такие собесы, у меня к вам просьба — поставьте + в комментариях или напишите в личку @ishfb. Я хочу минут за 15-20 задать ряд вопросов про процесс подготовки и опыт общения с компаниями. Взамен расскажу, что сам заметил по 9 HFT, где собеседовался.
🔥5