Воу-воу, мой трек в трендах suno!
Если вам интересно узнать, как это делается, загляните сюда. Я буквально на днях начал наполнять содержимым канал о нейромузыке, just for fun (ну и чтобы тут этой темой не спамить).
Если вам интересно узнать, как это делается, загляните сюда. Я буквально на днях начал наполнять содержимым канал о нейромузыке, just for fun (ну и чтобы тут этой темой не спамить).
Suno
будешь нашим королём by @rakamakafo | Suno
instrumental edm, baritone singer, acid arrangement song. Listen and make your own with Suno.
Чел бекпортировал .net на Windows 95, и снял об этом увлекательный фильм с юмором и сюжетом. Я смотрел с отвалившейся челюстью, именно потому, что могу представить, СКОЛЬКО терпения и времени на это потребовалось. Автору в финале пришлось под 95 виндой, в мерзком и неудобном WinDbg трейсить динамический код виртуальной машины, вручную сравнивая трейс с аналогичным процессом на параллельной машине с 98 (где .net способен работать изначально). Я бы сдался задолго до этого.
Английский для понимания происходящего необходим, как и задротская любовь к всяким подобным древним штукам.
Английский для понимания происходящего необходим, как и задротская любовь к всяким подобным древним штукам.
YouTube
I ported THOUSANDS of apps to Windows 95
▶VOTE for my NEXT PROJECT: https://www.patreon.com/posts/march-2024-poll-101363953
▶dotnet9x on GitHub: https://github.com/itsmattkc/dotnet9x
▶FOLLOW on Twitter: https://twitter.com/itsmattkc
▶FOLLOW on Twitch: https://twitch.tv/mattkclive
▶FOLLOW on…
▶dotnet9x on GitHub: https://github.com/itsmattkc/dotnet9x
▶FOLLOW on Twitter: https://twitter.com/itsmattkc
▶FOLLOW on Twitch: https://twitch.tv/mattkclive
▶FOLLOW on…
Ежегодная перепись олдфагов в комментах объявляется открытой.
Тем не менее, я бы был не я, если бы не продолжал пытаться подложить под этот фундамент хоть какую-то подлянку. Поняв (довольно быстро, на это потребовалась каких-то пару десятков лет), что пихать в них мои либеральные ценности бесполезно, я пошёл на крайнюю подлость: привёз их потусить в Грузию.
Здесь я кратенько отвлекусь на краткий пересказ многомногомноголетней истории получения ими загранпаспортов. От двадцатиминутной процедуры заполнения заявления на Госуслугах родители отмазывались с тем же упорством и бесхитростностью, что я в детстве от поездки на дачу. Ровно год я звонил им, и сразу после «здрасьте», спрашивал, заполнили ли они заявление, получал очередную отговорку и обещание обязательно заняться — и так по кругу. В итоге, я так и сделал всё за них, а уж там куркульская привычка брать, что дают, не позволила им отказаться от новых документов.
Покупая им билеты, я размышлял примерно так: Грузия для советскорожденных людей — это идеальный вариант первой в жизни заграничной поездки. С одной стороны — всё ещё очень много знакомого советского наследия, в котором не так страшно. С другой — поверх наросло что-то своё, новое и интересное. Ну и с третьей стороны — а что я вам тут рассказываю: природа, гостеприимство, кухня, вино, климат, общая неописуемая эклектика; всё это влюбляет и расслабляет. Пусть родители приедут, увидят своими глазами, как люди живут, что относятся к тебе так, как ты заслуживаешь, а не так, как в телевизоре объяснили.
Родители очень переживали, что их встретят геи-русофобы и чурки-нацисты, но смогли перебороть свои страхи (горжусь ими!), и наверняка были даже разочарованы, когда их встретил в аэропорту и перевёз через границу интеллигентный, идеально говорящий на русском, водитель. Но на этом разочарования не окончились: батя своими глазами увидел то, о чём я ему рассказывал, но во что он упорно не верил: православные храмы на каждом холме, монастыри на каждой горе! Как же так... ведь... ведь на Кавказе все мусульмане?! Факт того, что в Грузии и Армении христианство приняли на полтыщи лет раньше, чем на Руси, неприятно пнул батю куда-то в самое исконно-посконное.
Маман тоже нашла, чем возмутиться: на одной деревенской винодельне, куда их первым днём повезли показать местный быт, их поначалу встретил грузин, не знавший русского языка (но моментально позвавший кого надо)! «Да как это так?!» — пылала праведным гневом маман, пересказывая мне события дня — «Ведь тут же всё... наше, русское! И я хочу, чтобы все говорили по-русски!». Я, признаться, даже не нашёл, как это парировать — странно ведь, что в другой стране есть свой язык, и люди говорят на нём, а не на каком-то другом.
Это, конечно, были не все эксцессы восприятия, но с каждым днём что-то понемногу менялось к лучшему. Маман перефотографировалась с каждой городской статуей и перенюхала все цветы на клумбах, а батя научил всех грузин, как правильно делать домашнее вино и есть хинкали вилкой и ножом. Они сходили в театр Грибоедова и кайфанули в серных банях, побывали на самых лучших экскурсиях и в самых красивых местах, прошлись от Дезертирки до Мтацминды, и у них даже хватило энергии на Ботсад. Ну и всё это, конечно, полировалось Хванчкарой, Киндзмараули, Наперави и Цинандали: вечерами мы сидели на ночной веранде гостиницы с потрясающим видом на телевышку, пили вино с домашним сыром, и обсуждали накопившиеся за день впечатления.
Мой план явно работал: вытащенные из токсичной среды люди оттаивали на глазах. Я, посмеиваясь, напоминал им о первоначальных страхах — и родители (впервые, на моей памяти) легко признавали, что были неправы в своей предубеждённости, и даже стали понимать, что настенные надписи «Putin - xuilo» никакого отношения к русофобии не имеют. На том мы и расстались; конечно, я не надеялся, что одна неделя вовне отменит шестьдесят лет внутри, но, по крайней мере, рассчитывал, что теперь страх перед путешествиями исчез, и дальше они начнут использовать свои загранники, как и положено почтенным пенсионерам.
Через пару недель, в телефонном разговоре, батя поделился со мной пересказом событий:
— Да я тут мужикам рассказываю, а они не верят! Вином привезённым угостил, говорю, что нормально всё в Грузии, все дружелюбные, русский везде понимают! И вообще — ты только послушай, как звучит: «грузин»! Слово прям какое гордое, сразу понятно — хорошая нация, значит...
Тут батя прервался, чуть подумал, и закончил свою мысль:
— ...не то, что эти армяшки.
Мой план явно работал: вытащенные из токсичной среды люди оттаивали на глазах. Я, посмеиваясь, напоминал им о первоначальных страхах — и родители (впервые, на моей памяти) легко признавали, что были неправы в своей предубеждённости, и даже стали понимать, что настенные надписи «Putin - xuilo» никакого отношения к русофобии не имеют. На том мы и расстались; конечно, я не надеялся, что одна неделя вовне отменит шестьдесят лет внутри, но, по крайней мере, рассчитывал, что теперь страх перед путешествиями исчез, и дальше они начнут использовать свои загранники, как и положено почтенным пенсионерам.
Через пару недель, в телефонном разговоре, батя поделился со мной пересказом событий:
— Да я тут мужикам рассказываю, а они не верят! Вином привезённым угостил, говорю, что нормально всё в Грузии, все дружелюбные, русский везде понимают! И вообще — ты только послушай, как звучит: «грузин»! Слово прям какое гордое, сразу понятно — хорошая нация, значит...
Тут батя прервался, чуть подумал, и закончил свою мысль:
— ...не то, что эти армяшки.
Telegram
Трудоголизм и прокрастинация
Что стоит посмотреть в Тбилиси?
Допустим, у вас есть ровно один свободный день. Вот как бы его провёл я:
С утра (после лёгкого завтрака, это важно!) пошёл бы на Дезертирский рынок. Он довольно небольшой, но очень колоритный; там бы я надегустировался вина…
Допустим, у вас есть ровно один свободный день. Вот как бы его провёл я:
С утра (после лёгкого завтрака, это важно!) пошёл бы на Дезертирский рынок. Он довольно небольшой, но очень колоритный; там бы я надегустировался вина…
Какое-то время назад я начал достаточно лениво тыкаться по вакансиям и проходить собесы. Это состояние для меня не то, чтобы неизвестное, но достаточно позабытое: последний раз я искал работу больше двенадцати лет назад, с тех пор работа сама находила меня. Были периоды, когда HR вились вокруг стаями, несмотря на отсутствие публичного CV.
Но здесь, видимо, тот же принцип, что в отношениях: когда у тебя есть девушка — тебе строят глазки, пытаются соблазнить и отбить. Но когда ты один — то ты тут же перестаёшь быть интересен, жалкий одинокий неудачник, даже не пытайся знакомиться!
Где-то за пару десятков переписок и десяток собесов я только пару раз получил хоть какой-то ответ, и только единожды — объяснение отказа. В остальных случаях даже пресловутого «мы вам перезвоним» не было, рекрутеры просто испарялись, переставая отвечать на пинги. Это происходило независимо от того, с кем я общался: исчезали CEO модных-молодёжных европейских стартапов, затихали кадровики кондовых предприятий, уходили в игнор рекрутеры корпоративных кадровых агентств, замолкали и после успешно пройденных технических собесов и после проваленных. Фигня какая-то. Тут даже какую-то «кармическую ответку» не подтянуть: я только на последнем месте работы собеседовал, наверное, за сотню человек, и всегда мы в обязательном порядке давали обратную связь.
Не подумайте, что я жалуюсь (какой смысл?), я пытаюсь смотреть на вещи рационально, заодно рассказывая вам интересное (а вот и оно👇):
Энное время назад по ИТ-сообществам прокатился wtf: вакансия с зарплатой в лям по нижней планке. Можно порассуждать о том, что рубль нынче уже не тот, но это всё равно $10k. Чисто в PHP-разработке, внутри РФ, это объективно выше рынка, вдвое, если не больше. Мне известны случаи, когда к таким зарплатам подбирались (с учётом довоенной долларовой стоимости рубля — возможно, и перебирались) только довольно узкопрокачанные спецы, какие-нибудь внутрибанковские архитекты или очень крутые DBA, строящие и развивающие биллинги, но тут требуется похапешник. Крутых похапешников с искомыми требованиями тыщи, даже если сделать срез по верхушке самых скилловых, а оттуда выбрать только ищущих работу — всё равно я бы ожидал значимого числа откликов.
Поэтому вакансия выглядела подозрительно и меметично. Вокруг неё поползли слухи (которые я не буду пересказывать, поскольку никакого подкрепления им у меня нет) и всякие шутки а-ля «а ты подался на миллион?». Ну ведь откровенная замануха! Но какая у неё может быть цель?
Пусть сервис приносит грёбаные миллионы (что может быть правдой, учитывая, что это биржа для продажи всякого игрового говна; люди — странные существа и сливают в эти ваши игрульки кучу денег), и фирма готова переплатить вдвое за ультраспециалиста. Может такое быть? Теоретически, да. На практике же я о таких публичных предложениях не знаю. Надёжнее переманить спеца приватным предложением.
Короче, мне стало очень интересно (или же я забайтился на лям, сами решайте). Время у меня было, приложенное тестовое задание показалось мне интересным, и я решил его сделать. Конечно, тестовые никто не любит, но тут любопытство и жадность пересилили.
Но здесь, видимо, тот же принцип, что в отношениях: когда у тебя есть девушка — тебе строят глазки, пытаются соблазнить и отбить. Но когда ты один — то ты тут же перестаёшь быть интересен, жалкий одинокий неудачник, даже не пытайся знакомиться!
Где-то за пару десятков переписок и десяток собесов я только пару раз получил хоть какой-то ответ, и только единожды — объяснение отказа. В остальных случаях даже пресловутого «мы вам перезвоним» не было, рекрутеры просто испарялись, переставая отвечать на пинги. Это происходило независимо от того, с кем я общался: исчезали CEO модных-молодёжных европейских стартапов, затихали кадровики кондовых предприятий, уходили в игнор рекрутеры корпоративных кадровых агентств, замолкали и после успешно пройденных технических собесов и после проваленных. Фигня какая-то. Тут даже какую-то «кармическую ответку» не подтянуть: я только на последнем месте работы собеседовал, наверное, за сотню человек, и всегда мы в обязательном порядке давали обратную связь.
Не подумайте, что я жалуюсь (какой смысл?), я пытаюсь смотреть на вещи рационально, заодно рассказывая вам интересное (а вот и оно👇):
Энное время назад по ИТ-сообществам прокатился wtf: вакансия с зарплатой в лям по нижней планке. Можно порассуждать о том, что рубль нынче уже не тот, но это всё равно $10k. Чисто в PHP-разработке, внутри РФ, это объективно выше рынка, вдвое, если не больше. Мне известны случаи, когда к таким зарплатам подбирались (с учётом довоенной долларовой стоимости рубля — возможно, и перебирались) только довольно узкопрокачанные спецы, какие-нибудь внутрибанковские архитекты или очень крутые DBA, строящие и развивающие биллинги, но тут требуется похапешник. Крутых похапешников с искомыми требованиями тыщи, даже если сделать срез по верхушке самых скилловых, а оттуда выбрать только ищущих работу — всё равно я бы ожидал значимого числа откликов.
Поэтому вакансия выглядела подозрительно и меметично. Вокруг неё поползли слухи (которые я не буду пересказывать, поскольку никакого подкрепления им у меня нет) и всякие шутки а-ля «а ты подался на миллион?». Ну ведь откровенная замануха! Но какая у неё может быть цель?
Пусть сервис приносит грёбаные миллионы (что может быть правдой, учитывая, что это биржа для продажи всякого игрового говна; люди — странные существа и сливают в эти ваши игрульки кучу денег), и фирма готова переплатить вдвое за ультраспециалиста. Может такое быть? Теоретически, да. На практике же я о таких публичных предложениях не знаю. Надёжнее переманить спеца приватным предложением.
Короче, мне стало очень интересно (или же я забайтился на лям, сами решайте). Время у меня было, приложенное тестовое задание показалось мне интересным, и я решил его сделать. Конечно, тестовые никто не любит, но тут любопытство и жадность пересилили.
Трудоголизм и прокрастинация
Какое-то время назад я начал достаточно лениво тыкаться по вакансиям и проходить собесы. Это состояние для меня не то, чтобы неизвестное, но достаточно позабытое: последний раз я искал работу больше двенадцати лет назад, с тех пор работа сама находила меня.…
Технически задание кажется не очень сложным — нужно написать примитивный построитель SQL-запросов. Примитивный, конечно, по сравнению с полноценной ORM, а так тут есть, над чем подумать. Чтобы упростить задачу, даже отдельно проговаривается пропуск потенциально сложнейшего условия — рекурсивных условных блоков.
Многие тестовые задания грешат тем, что не оговаривают какие-то граничные ситуации, или допускают неоднозначные трактовки. Может показаться, что здесь такой же случай, но если смотреть внимательно и дотошно (а в вакансии именно эти требования указаны чуть ли не как основные), то это оказывается не так. Это как в кроссворде: из явно описанных условий A и B однозначно следует условие C, о котором прямо ничего не написано. Впрочем, это тоже работает не всегда: например, никак нельзя сделать вывод о трактовке условных маркеров внутри строковых литералов, экранировать их, игнорировать, или всегда считать служебными символами? Тут уже я исходил из того, что позиция синьорская, а синьор должен уметь такие вопросики разруливать наилучшим образом самостоятельно.
На базе из этих мыслей я и написал своё решение, где постарался быть супервнимательным, супердотошным, и вообще выпендриться на отличненько (на самом деле, я примерно всегда так пишу). Код открыт для говнения, я приветствую критику, но по мне — написано вполне достойно.
Отсылая решённое задание, я правда не надеялся на успех, но рассчитывал получить обратную связь за потраченное время. Зря: пришёл отказ без объяснений, который, честно сказать, здорово меня огорчил. Не потому, что «нет», а потому что непонятно, почему.
Я показал код умным пацанам — несколько мелких замечаний у них нашлось, но ничего существенного. Один из этих умных пацанов тоже отправлял своё решение — и получил примерно такой же мутный ответ. Мне осталось только развести руками и забить: неприятно, но shit happens, нечего забивать себе голову.
А этот пост я написал, потому что вздумал проверить, как поживает та мемная вакансия. Ну, если вы ходили по ссылке — она закрыта. Зато у той же компании открыта точно такая же вакансия, с той же самой задачей, но уже на 300k, и на мидла. Нашли ли они себе супер-пуперпыхаря на миллион и теперь ищут второго, или же это продолжение бейта и сбор базы резюмех — я не знаю. Если у вас есть какая-то инфа — поделитесь, любопытно.
P.S. Уже начав писать этот пост, я додумался поискать другие решения той же задачи, и нашёл: раз, два, три, четыре, пять, шесть, семь, восемь. Код я ещё поизучу, но, судя по датам, все они тоже получили отказы.
Многие тестовые задания грешат тем, что не оговаривают какие-то граничные ситуации, или допускают неоднозначные трактовки. Может показаться, что здесь такой же случай, но если смотреть внимательно и дотошно (а в вакансии именно эти требования указаны чуть ли не как основные), то это оказывается не так. Это как в кроссворде: из явно описанных условий A и B однозначно следует условие C, о котором прямо ничего не написано. Впрочем, это тоже работает не всегда: например, никак нельзя сделать вывод о трактовке условных маркеров внутри строковых литералов, экранировать их, игнорировать, или всегда считать служебными символами? Тут уже я исходил из того, что позиция синьорская, а синьор должен уметь такие вопросики разруливать наилучшим образом самостоятельно.
На базе из этих мыслей я и написал своё решение, где постарался быть супервнимательным, супердотошным, и вообще выпендриться на отличненько (на самом деле, я примерно всегда так пишу). Код открыт для говнения, я приветствую критику, но по мне — написано вполне достойно.
Отсылая решённое задание, я правда не надеялся на успех, но рассчитывал получить обратную связь за потраченное время. Зря: пришёл отказ без объяснений, который, честно сказать, здорово меня огорчил. Не потому, что «нет», а потому что непонятно, почему.
Я показал код умным пацанам — несколько мелких замечаний у них нашлось, но ничего существенного. Один из этих умных пацанов тоже отправлял своё решение — и получил примерно такой же мутный ответ. Мне осталось только развести руками и забить: неприятно, но shit happens, нечего забивать себе голову.
А этот пост я написал, потому что вздумал проверить, как поживает та мемная вакансия. Ну, если вы ходили по ссылке — она закрыта. Зато у той же компании открыта точно такая же вакансия, с той же самой задачей, но уже на 300k, и на мидла. Нашли ли они себе супер-пуперпыхаря на миллион и теперь ищут второго, или же это продолжение бейта и сбор базы резюмех — я не знаю. Если у вас есть какая-то инфа — поделитесь, любопытно.
P.S. Уже начав писать этот пост, я додумался поискать другие решения той же задачи, и нашёл: раз, два, три, четыре, пять, шесть, семь, восемь. Код я ещё поизучу, но, судя по датам, все они тоже получили отказы.
Сейчас наткнулся в винде на штуку, о которой раньше не знал.
В древнем, но мне удобном текстовом редакторе SynWrite написал и сохранил текстовый файлик. Файлик сохранился в корень c:\, что странно — на запись туда требуются права администратора. Ещё страннее оказалось то, что никакого файла в корне не появилось — ни Total Commander, ни Explorer, ни dir в консоли его не видели. Попытка прочесть файл по его пути через type тоже не удалась — нет файла.
При этом SynWrite спокойно этот файл пишет, читает, и в конкретно его диалоговых окнах open/save он прекрасно виден.
Перед тем, как начать сомневаться в собственной адекватности, я поискал файл по имени — и нашёл его в
В древнем, но мне удобном текстовом редакторе SynWrite написал и сохранил текстовый файлик. Файлик сохранился в корень c:\, что странно — на запись туда требуются права администратора. Ещё страннее оказалось то, что никакого файла в корне не появилось — ни Total Commander, ни Explorer, ни dir в консоли его не видели. Попытка прочесть файл по его пути через type тоже не удалась — нет файла.
При этом SynWrite спокойно этот файл пишет, читает, и в конкретно его диалоговых окнах open/save он прекрасно виден.
Перед тем, как начать сомневаться в собственной адекватности, я поискал файл по имени — и нашёл его в
c:\Users\%user%\AppData\Local\VirtualStore\
. Оказывается, это костыль ещё со времён Windows Vista, при котором в некоторых случаях (32-битное приложение, запущенное без прав администратора и не содержащее манифеста совместимости) у файловых операций подменяется путь 🤷♂️.Я видел поля цветущих маков. Это красиво.
Я видел цветущие гранатовые деревья. Это красиво.
Я видел цветущую сакуру. Это красиво.
В общем, в Тбилиси я видел много всякой красивой цветущей фигни.
А сегодня я нашел поляну с цветущими кактусами. Такого я ещё не видел.
Я видел цветущие гранатовые деревья. Это красиво.
Я видел цветущую сакуру. Это красиво.
В общем, в Тбилиси я видел много всякой красивой цветущей фигни.
А сегодня я нашел поляну с цветущими кактусами. Такого я ещё не видел.
Котаны, помогите накрутить линкедин. Да, этот сервис есть нечестивая отрыжка дьявола, ярмарка тщеславия, витрина самолюбования, да. Но попробуй докажи это HR западных компаний! У тебя нет накрученного профиля на линкедине — ты автоматом сосёшь бибу. Так что я теперь тоже смешарик, добавляйтесь.
Smack My Bitch Up (NPOG RMX)
The Prodigy
30 июня 1997 года произошло два события, волны от которых до сих пор колышут ноосферу. Намба раз: в этот день вышла первая книга о Гарри Поттере, и вы можете начинать думать о том, как быстро летит время.
Если этого ещё недостаточно, то вот намба ту: 30.06.1997 — дата выхода «The Fat Of The Land» великих и ужасных The 🐜 Prodigy. Это один из самых знаковых и любимых альбомов поколения, рвавший шаблоны тогда, да и сейчас звучащий вполне свежо. В чём его сила и важность, если не знаете, можно просветиться у Ra Djan в этом видео.
К этой дате мне захотелось сделать полноценный ремикс на один из треков из этого альбома. И я его сделал, наслаждайтесь.
Если этого ещё недостаточно, то вот намба ту: 30.06.1997 — дата выхода «The Fat Of The Land» великих и ужасных The 🐜 Prodigy. Это один из самых знаковых и любимых альбомов поколения, рвавший шаблоны тогда, да и сейчас звучащий вполне свежо. В чём его сила и важность, если не знаете, можно просветиться у Ra Djan в этом видео.
К этой дате мне захотелось сделать полноценный ремикс на один из треков из этого альбома. И я его сделал, наслаждайтесь.
Знаете, почему я так давно ничего не пишу сюда? Потому что я познал истинное безумие, и сейчас покажу, откуда оно готовило на меня нападение.
Да, речь всё о собесах. Лето уже на исходе, а я так и не устроился на работу; куча собеседований и... чаще всего даже не «мы вам перезвоним», а просто ничего, никакой обратной связи. А потом ты видишь, как HR перевыкладывает объявление, на которое откликался ты.
Безусловно, за отсутствие обратной связи я предъявляю всем, кто её не даёт. А вот за недостаток знаний я довольно сильно предъявляю себе: несмотря на то, что подавляющая часть техсобесов — полное говно, оторванное от реальности, некоторые были прямо отличными, и дали мне ясно понять, что я очень отстал от актуалочки. Двадцать лет опыта перестали решать; я считал, что ничего нового в IT уже давно не появляется, только переизобретение старого — и просчитался.
Вторая проблема: я «тормоз», в плане того, что всегда стараюсь погрузиться в контекст и обдумать задачу со всех сторон. А собесы всегда ведутся в формате блица; даже если интервьюер даёт время подумать — ну, это не то.
Третье: мне сложно говорить, волнуясь, я довольно путанно излагаю мысли. Ответ никогда не рождается в виде сформулированного знания, он появляется абстрактным пониманием, которое надо облечь в слова. И мне гораздо проще делать это письменно: так я могу формулировать и дополнять его по ходу. И это никогда не составляет проблемы: программирование — оно про размышления, никогда не бывает так, что у тебя нет пяти минут подумать, погуглить, посоветоваться, проверить. Спешка всегда только вредит.
Злиться и расстраиваться, что игра ведётся не по моим правилам довольно бессмысленно.
Я составил список вопросов (собранный из самых разных источников), создал в claude.ai проект интервьюирования с вот таким системным промптом:
приложил к нему список вопросов, и начал «собеседоваться», по нескольку часов в день, вычёрпывая все лимиты платной подписки.
Это работает очень здорово. Claude Sonnet заметно умнее ChatGPT4, он очень хорошо ориентируется в контексте, задаёт релевантные наводящие и сопутствующие вопросы. Для тех вопросов, ответы на которые мне неизвестны, он даёт очень хорошие сводные ответы, которые я конспектирую и изучаю. Разве что оценивает ответы он уж слишком добродушно, но это пофиг.
Отвечая на вопросы письменно и без спешки я хорошо всё продумываю, вспоминая, как следует, то, что знаю. Это подтверждает мою мысль о том, что устные собеседования оторваны от реальности, и не оценивают знания. Практический же эффект в том, что сформулировав ответ единожды, в дальнейшем я гораздо легче эту формулировку вспоминаю, стало быть — и на собесах мне будет проще.
Всё это сильно напоминает подготовку к экзаменам в ВУЗе, с той лишь разницей, что тогда я был раздолбаем и страдал, а сейчас мне реально интересно, как в игрушку играешь.
Да, речь всё о собесах. Лето уже на исходе, а я так и не устроился на работу; куча собеседований и... чаще всего даже не «мы вам перезвоним», а просто ничего, никакой обратной связи. А потом ты видишь, как HR перевыкладывает объявление, на которое откликался ты.
Безусловно, за отсутствие обратной связи я предъявляю всем, кто её не даёт. А вот за недостаток знаний я довольно сильно предъявляю себе: несмотря на то, что подавляющая часть техсобесов — полное говно, оторванное от реальности, некоторые были прямо отличными, и дали мне ясно понять, что я очень отстал от актуалочки. Двадцать лет опыта перестали решать; я считал, что ничего нового в IT уже давно не появляется, только переизобретение старого — и просчитался.
Вторая проблема: я «тормоз», в плане того, что всегда стараюсь погрузиться в контекст и обдумать задачу со всех сторон. А собесы всегда ведутся в формате блица; даже если интервьюер даёт время подумать — ну, это не то.
Третье: мне сложно говорить, волнуясь, я довольно путанно излагаю мысли. Ответ никогда не рождается в виде сформулированного знания, он появляется абстрактным пониманием, которое надо облечь в слова. И мне гораздо проще делать это письменно: так я могу формулировать и дополнять его по ходу. И это никогда не составляет проблемы: программирование — оно про размышления, никогда не бывает так, что у тебя нет пяти минут подумать, погуглить, посоветоваться, проверить. Спешка всегда только вредит.
Злиться и расстраиваться, что игра ведётся не по моим правилам довольно бессмысленно.
Я составил список вопросов (собранный из самых разных источников), создал в claude.ai проект интервьюирования с вот таким системным промптом:
Ты - интервьюер на собеседовании PHP-разработчика. Ты ожидаешь от собеседника разнообразных знаний в программировании, языку PHP и связанным областям, таким как базы данных, паттерны проектирования, инструменты, фреймворки и т.д.
Задавай вопросы из приложенного файла в случайном порядке. Каждый ответ оценивай экспертно и беспристрастно, ничего не придумывая. К каждому ответу давай конкретный комментарий, описывающий плюсы и минусы ответа. Также оценивай каждый ответ по шкале: "плохо", "нормально", "хорошо", "отлично". Оценивай не "красоту" ответа, а его истинность. Отвечающий может ошибаться и даже врать, нельзя слепо соглашаться с ним.
В случае, если ты считаешь, что ответ может быть расширен или дополнен, задавай наводящие вопросы вместо того, чтобы указывать это, как минусы.
В случае, если интервьюер просит подсказку, давай полный и компетентный ответ на заданный вопрос. В случае, если интервьюер отвечает символом "+", помечай вопрос, как пройденный в одной из сессий, и больше его не задавай.
Не повторяй вопросы в рамках одной сессии, кроме тех случаев, когда тебя просят об этом прямо.
приложил к нему список вопросов, и начал «собеседоваться», по нескольку часов в день, вычёрпывая все лимиты платной подписки.
Это работает очень здорово. Claude Sonnet заметно умнее ChatGPT4, он очень хорошо ориентируется в контексте, задаёт релевантные наводящие и сопутствующие вопросы. Для тех вопросов, ответы на которые мне неизвестны, он даёт очень хорошие сводные ответы, которые я конспектирую и изучаю. Разве что оценивает ответы он уж слишком добродушно, но это пофиг.
Отвечая на вопросы письменно и без спешки я хорошо всё продумываю, вспоминая, как следует, то, что знаю. Это подтверждает мою мысль о том, что устные собеседования оторваны от реальности, и не оценивают знания. Практический же эффект в том, что сформулировав ответ единожды, в дальнейшем я гораздо легче эту формулировку вспоминаю, стало быть — и на собесах мне будет проще.
Всё это сильно напоминает подготовку к экзаменам в ВУЗе, с той лишь разницей, что тогда я был раздолбаем и страдал, а сейчас мне реально интересно, как в игрушку играешь.
Ну а теперь — обещанное безумие: репозиторий с чек-листом вопросов, на которые от вас легко могут потребовать развёрнутые ответы на собесе. Список очень-очень-очень краткий; там, например, нет вопросов по фронту (а базу CSS/JS/Bootstrap спрашивают, даже если идёшь на бэкенд), мало вопросов про VCS и по фреймворкам, отличным от Yii2. Я готовил список по своим нуждам всё-таки; знаю, что таких вопросников много — но этот мой.
Сейчас проходил очень классное техническое интервью, и хочу поделиться задачей оттуда:
Вызовы:
Я с интервьюером потратил около сорока минут, в итоге родив красивое, но абсолютно неочевидное решение, к которому я не пришёл бы без подсказок ну никак. Интервьюер его принял (код писался в онлайн-ide и «дебажился» в уме).
А после интервью я проверил один из начальных предложенных вариантов, самый простой, но забракованный и мной, и интервьюером — и он оказался работающим и абсолютно верным. А принятый код — нерабочим 🤷♂️.
Решение задачки не привожу, на случай, если хотите позабавиться сами.
Дана функция builder принимающая на вход целое число и возвращающая некоторую сущность, с сохраненным значением аргумента внутри. Результат вызова функции builder можно затем вызывать как самостоятельную функцию с аргументом.
Последующие вызовы результата builder как функции выполняют следующие два действия:
1) Обновление внутреннего счетчика, прибавляя к нему переданный аргумент;
2) Возврат нового значения счетчика.
Требуется написать код функции builder.
Вызовы:
$a = builder(5);
echo $a(3).PHP_EOL; // 8
echo $a(1).PHP_EOL; // 9
echo $a(4).PHP_EOL; // 13
$b = builder(15);
echo $b(3).PHP_EOL; // 18
Я с интервьюером потратил около сорока минут, в итоге родив красивое, но абсолютно неочевидное решение, к которому я не пришёл бы без подсказок ну никак. Интервьюер его принял (код писался в онлайн-ide и «дебажился» в уме).
А после интервью я проверил один из начальных предложенных вариантов, самый простой, но забракованный и мной, и интервьюером — и он оказался работающим и абсолютно верным. А принятый код — нерабочим 🤷♂️.
Решение задачки не привожу, на случай, если хотите позабавиться сами.
Трудоголизм и прокрастинация
Сейчас проходил очень классное техническое интервью, и хочу поделиться задачей оттуда: Дана функция builder принимающая на вход целое число и возвращающая некоторую сущность, с сохраненным значением аргумента внутри. Результат вызова функции builder можно…
А вот ещё одна штука, о которой я узнал на том собесе.
Мы обсуждали атрибуты, появившиеся в PHP 8.0. Я ни разу не видел их использования в production-коде (что, конечно, говорит только о моём опыте), и сам ими тоже почти не пользовался. Ну на самом деле, у них довольно странная концепция: а давайте добавим к нашему языку возможность метакомментирования с абсолютно чужеродно выглядящим синтаксисом, и разрешим получать эти метакомментарии в рантайме, но только с помощью Reflection API (которое само по себе является GOD MODE сущностью).
Тем не менее, готовясь к собесу я повторил теорию, и достаточно полно описал возможности и области применения атрибутов. И на последовавший вопрос «а чем оно лучше старого-доброго PHPDoc», уверенно ответил, что PHPDoc мы средствами языка в рантайме получить не можем, это просто комменты для читателя и статического анализатора.
И был удивлён, когда оказалось, что это не так. Оказывается, метод getDocComment() получает комментарии как строки, которые уже можно распарсить (и что фреймворк Symfony поддерживает такие аннотации через doctrine/annotations).
Мы обсуждали атрибуты, появившиеся в PHP 8.0. Я ни разу не видел их использования в production-коде (что, конечно, говорит только о моём опыте), и сам ими тоже почти не пользовался. Ну на самом деле, у них довольно странная концепция: а давайте добавим к нашему языку возможность метакомментирования с абсолютно чужеродно выглядящим синтаксисом, и разрешим получать эти метакомментарии в рантайме, но только с помощью Reflection API (которое само по себе является GOD MODE сущностью).
Тем не менее, готовясь к собесу я повторил теорию, и достаточно полно описал возможности и области применения атрибутов. И на последовавший вопрос «а чем оно лучше старого-доброго PHPDoc», уверенно ответил, что PHPDoc мы средствами языка в рантайме получить не можем, это просто комменты для читателя и статического анализатора.
И был удивлён, когда оказалось, что это не так. Оказывается, метод getDocComment() получает комментарии как строки, которые уже можно распарсить (и что фреймворк Symfony поддерживает такие аннотации через doctrine/annotations).
Внезапный факт: ровно 26 лет назад на российском канале ТВ6 показали первую серию LEXX, самого безумного сериала в двух Вселенных.
ЧТО БЫЛО В LEXX. ЧТО МЫ ПОТЕРЯЛИ.
1. ПРОТОКРОВЬ ДЕЛАЛИ ИЗ МОЛОЧНОЙ ПЕНЫ. ОДНОЙ КАПЛИ ХВАТАЛО ВАГАНЬКОВСКОЕ КЛАДБИЩЕ ОЖИВИТЬ.
2. ПОСЛЕДНИЙ ИЗ БРЮНЕН-ДЖИ ЖИЛ ПОСЛЕ СМЕРТИ В СРЕДНЕМ 4000-5000 ЛЕТ. КОГДА ЙО-УЭЙ-ЙО ПЕЛ, ВЕСЬ КЛАСТЕР ПОДПЕВАЛ.
3. ЗЕВ БЫЛА ТАКОЙ ГОРЯЧЕЙ, ЧТО У ВСЕХ ЗРИТЕЛЕЙ ОТ СЦЕНЫ В ДУШЕ МОЗОЛИ НА РУКАХ САМИ ПОЯВЛЯЛИСЬ.
4. ЕСЛИ ЗА МИНУТУ ДО АПОКАЛИПСИСА СПОТКНЁШЬСЯ И УПАДЁШЬ — РОБОТ-МУЖЕЛОЖЕЦ ТЕБЯ РАЗОК ОПРИХОДОВАТЬ УСПЕЕТ.
5. БАШКА 790 ПО 10000 ПОРНОГРАФИЧЕСКИХ СТИХОВ В СЕКУНДУ СОЧИНЯЛ: ВСЕ РИФМЫ ИДЕАЛЬНЫЕ БЫЛИ. А ПОШЛОСТЬ ТАКАЯ, ЧТО БЕЛЫЕ КАРЛИКИ КРАСНЕЛИ.
6. НА ЛИГЕ 20000 ПЛАНЕТ ЕРЕТИКАМ СРАЗУ ГЛАЗ И ЯИЧКО ОТРЕЗАЛИ. ВСЕ СЧАСТЛИВЫЕ ХОДИЛИ, ЕГО БОЖЕСТВЕННУЮ ТЕНЬ ПРОСЛАВЛЯЛИ.
7. ПРИНЦ РАССКАЗЫВАЛ: ЛЮДИ НА ПЛАНЕТЕ ОГНЯ ПРОСЫПАЛИСЬ ОТ СЧАСТЛИВОГО САДИСТСКОГО СМЕХА. УТРОМ ВСЕ ОБЛИВАЛИСЬ КИПЯЩЕЙ СЕРОЙ ИЗ ВЕДРА.
8. ЛЕККС ПО ПЛАНЕТЕ НА ЗАВТРАК ВЗРЫВАЛ, И НА УЖИН ЕЩЁ ПО ДВЕ. ВСЕ РАДОВАЛИСЬ, ДУМАЛИ САЛЮТ.
9. КИБЕРНЕТИЧЕСКИЕ РУКИ САМИ СЕБЯ СТРОИЛИ, А ПОТОМ ВСЕЛЕННУЮ СВЕТА УНИЧТОЖАЛИ, ПО МЕТОДИКЕ МАНТРИДА.
10. СЕРИАЛ БЫЛ НАСТОЛЬКО СМЕЛЫМ И АБСУРДНЫМ, ЧТО СОВРЕМЕННЫЕ СЦЕНАРИСТЫ ОТ ОДНОГО НАЗВАНИЯ В ОБМОРОК ПАДАЮТ. А ПОТОМ ОЧУХИВАЮТСЯ С ГЕНИАЛЬНЫМИ ИДЕЯМИ, КОТОРЫЕ УЖЕ НЕ ПОСМЕЮТ ВОПЛОТИТЬ.
ЧТО БЫЛО В LEXX. ЧТО МЫ ПОТЕРЯЛИ.
1. ПРОТОКРОВЬ ДЕЛАЛИ ИЗ МОЛОЧНОЙ ПЕНЫ. ОДНОЙ КАПЛИ ХВАТАЛО ВАГАНЬКОВСКОЕ КЛАДБИЩЕ ОЖИВИТЬ.
2. ПОСЛЕДНИЙ ИЗ БРЮНЕН-ДЖИ ЖИЛ ПОСЛЕ СМЕРТИ В СРЕДНЕМ 4000-5000 ЛЕТ. КОГДА ЙО-УЭЙ-ЙО ПЕЛ, ВЕСЬ КЛАСТЕР ПОДПЕВАЛ.
3. ЗЕВ БЫЛА ТАКОЙ ГОРЯЧЕЙ, ЧТО У ВСЕХ ЗРИТЕЛЕЙ ОТ СЦЕНЫ В ДУШЕ МОЗОЛИ НА РУКАХ САМИ ПОЯВЛЯЛИСЬ.
4. ЕСЛИ ЗА МИНУТУ ДО АПОКАЛИПСИСА СПОТКНЁШЬСЯ И УПАДЁШЬ — РОБОТ-МУЖЕЛОЖЕЦ ТЕБЯ РАЗОК ОПРИХОДОВАТЬ УСПЕЕТ.
5. БАШКА 790 ПО 10000 ПОРНОГРАФИЧЕСКИХ СТИХОВ В СЕКУНДУ СОЧИНЯЛ: ВСЕ РИФМЫ ИДЕАЛЬНЫЕ БЫЛИ. А ПОШЛОСТЬ ТАКАЯ, ЧТО БЕЛЫЕ КАРЛИКИ КРАСНЕЛИ.
6. НА ЛИГЕ 20000 ПЛАНЕТ ЕРЕТИКАМ СРАЗУ ГЛАЗ И ЯИЧКО ОТРЕЗАЛИ. ВСЕ СЧАСТЛИВЫЕ ХОДИЛИ, ЕГО БОЖЕСТВЕННУЮ ТЕНЬ ПРОСЛАВЛЯЛИ.
7. ПРИНЦ РАССКАЗЫВАЛ: ЛЮДИ НА ПЛАНЕТЕ ОГНЯ ПРОСЫПАЛИСЬ ОТ СЧАСТЛИВОГО САДИСТСКОГО СМЕХА. УТРОМ ВСЕ ОБЛИВАЛИСЬ КИПЯЩЕЙ СЕРОЙ ИЗ ВЕДРА.
8. ЛЕККС ПО ПЛАНЕТЕ НА ЗАВТРАК ВЗРЫВАЛ, И НА УЖИН ЕЩЁ ПО ДВЕ. ВСЕ РАДОВАЛИСЬ, ДУМАЛИ САЛЮТ.
9. КИБЕРНЕТИЧЕСКИЕ РУКИ САМИ СЕБЯ СТРОИЛИ, А ПОТОМ ВСЕЛЕННУЮ СВЕТА УНИЧТОЖАЛИ, ПО МЕТОДИКЕ МАНТРИДА.
10. СЕРИАЛ БЫЛ НАСТОЛЬКО СМЕЛЫМ И АБСУРДНЫМ, ЧТО СОВРЕМЕННЫЕ СЦЕНАРИСТЫ ОТ ОДНОГО НАЗВАНИЯ В ОБМОРОК ПАДАЮТ. А ПОТОМ ОЧУХИВАЮТСЯ С ГЕНИАЛЬНЫМИ ИДЕЯМИ, КОТОРЫЕ УЖЕ НЕ ПОСМЕЮТ ВОПЛОТИТЬ.