...Ну например, на каком-нибудь современном обучающем курсе по ML, тыщ за 50, вам вполне могут дать такое задание:
"Сделай API на FastAPI, который классифицирует картинки через ResNet"
Работающий прототип вы вполне можете выкатить за пару дней, но вашему резюме он совершенно не поможет, потому что на реальной работе от вас потребуют например оптимизации инференса:
- переписать модель под ONNX/TensorRT, чтобы снизить latency в 5 раз;
- настроить асинхронную обработку (Celery/RabbitMQ) для параллельного выполнения запросов.
Или развернуть модель ResNet-50 (PyTorch) для классификации изображений в реальном времени, настроить батчинг GPU, добавить мониторинг моделей через Prometheus/Grafana, и деплоить с помощью Triton.
То есть от вас нужны минимум 2–3 проекта, где вы решали задачи , максимально приближенные к продакшену (оптимизация, масштабирование, интеграция). Проверяют не "знание гайдов", а понимание полного цикла, от сырых данных до работающего сервиса. Проекты в резюме/гитхабе нужны например такого плана:
"Мой API для обработки видео снижает затраты на хранение данных на 30% за счет динамического сжатия кадров (реализовано на OpenCV + FastAPI)"
/ds картинка стёб или нет, решайте сами 🙃
"Сделай API на FastAPI, который классифицирует картинки через ResNet"
Работающий прототип вы вполне можете выкатить за пару дней, но вашему резюме он совершенно не поможет, потому что на реальной работе от вас потребуют например оптимизации инференса:
- переписать модель под ONNX/TensorRT, чтобы снизить latency в 5 раз;
- настроить асинхронную обработку (Celery/RabbitMQ) для параллельного выполнения запросов.
Или развернуть модель ResNet-50 (PyTorch) для классификации изображений в реальном времени, настроить батчинг GPU, добавить мониторинг моделей через Prometheus/Grafana, и деплоить с помощью Triton.
То есть от вас нужны минимум 2–3 проекта, где вы решали задачи , максимально приближенные к продакшену (оптимизация, масштабирование, интеграция). Проверяют не "знание гайдов", а понимание полного цикла, от сырых данных до работающего сервиса. Проекты в резюме/гитхабе нужны например такого плана:
"Мой API для обработки видео снижает затраты на хранение данных на 30% за счет динамического сжатия кадров (реализовано на OpenCV + FastAPI)"
/ds картинка стёб или нет, решайте сами 🙃
1😁46❤14👍10🐳5
В дополнение к позавчерашнему, конечно ещё надо отметить тот факт, что сотни миллиардов долларов инвестируются в частности в Microsoft, поэтому нету ни малейших сомнений, что C#, .NET и Azure тоже станут базой грядущих AI-проектов. Типа такого:
"Реализовать ETL-пайплайн на C#, который подготавливает данные для обучения модели PyTorch и сохраняет результаты в Cosmos DB"
=
Важно! Даже если вы здорово мотивированы и учились в норм универе, где на первых курсах в обязательном порядке проходят весь этот условный "никому не нужный матан", СЕГОДНЯ, чтобы максимально денежно войти в профессию "ML Engineer", вам надо фокусироваться только на том, что реально приближает вас к ML.
А в банке например вас посадят на полгодика чистить данные транзакций, прежде чем допустят к моделям антифрода. Но даже на ETL-задачах вы можете незаметно учиться ML. Как тайно маскировать такое самообучение ML под "улучшение рабочих процессов", поясню постепенно на бусти. 😎
Пропорции стеков?
Python 50-60%
Java 15-20%
Go 10-15%
C# 5-10%
При этом 70% ML-вакансий требуют знания Python + один из языков (Go/Java/C#)
Прогноз до конца текущего десятилетия:
Python сохранит лидерство в этой же пропорции благодаря развитию AI/ML/DS-фреймворков.
Go вырастет до 20% из-за фокуса на облачные и распределённые системы.
C# может удвоить долю (10–15%) при успехе Stargate и Azure AI.
Java хз :)
"Реализовать ETL-пайплайн на C#, который подготавливает данные для обучения модели PyTorch и сохраняет результаты в Cosmos DB"
=
Важно! Даже если вы здорово мотивированы и учились в норм универе, где на первых курсах в обязательном порядке проходят весь этот условный "никому не нужный матан", СЕГОДНЯ, чтобы максимально денежно войти в профессию "ML Engineer", вам надо фокусироваться только на том, что реально приближает вас к ML.
А в банке например вас посадят на полгодика чистить данные транзакций, прежде чем допустят к моделям антифрода. Но даже на ETL-задачах вы можете незаметно учиться ML. Как тайно маскировать такое самообучение ML под "улучшение рабочих процессов", поясню постепенно на бусти. 😎
Пропорции стеков?
Python 50-60%
Java 15-20%
Go 10-15%
C# 5-10%
При этом 70% ML-вакансий требуют знания Python + один из языков (Go/Java/C#)
Прогноз до конца текущего десятилетия:
Python сохранит лидерство в этой же пропорции благодаря развитию AI/ML/DS-фреймворков.
Go вырастет до 20% из-за фокуса на облачные и распределённые системы.
C# может удвоить долю (10–15%) при успехе Stargate и Azure AI.
Java хз :)
1❤37✍17👍10🤔3🐳2
В СИ курсантам выложил 106-й материал "Наилучший способ разрабатывать большие программы".
"...Немецкий программист Harald Armin Massa однажды выступил на PyCon с небольшим спичем "реальный вред функционального программирования", где в частности раскритиковал чистые функции просто по той причине, что они отделяют нас "от реального мира". Они конечно в любом случае требуют вычислительные ресурсы, оперативку, для их работы используется рантаймовское окружение и т. д., а мы как бы полагаем, что они идеальные абстракции. Но это относится не только к pure functions, а к любому коду. И конечно, любая программная абстракция в чём-то потенциально уязвима."
А если ваши абстракции протекающие (например, вы не умеете правильно готовить даже классические паттерны проектирования GoF), то они сразу убивают смысл большинства интерфейсов в вашей программе, которые вы так долго и старательно проектировали...
Поясняю, почему в контексте ФП правильнее говорить не столько о чистых функциях, сколько о [...]
"...Немецкий программист Harald Armin Massa однажды выступил на PyCon с небольшим спичем "реальный вред функционального программирования", где в частности раскритиковал чистые функции просто по той причине, что они отделяют нас "от реального мира". Они конечно в любом случае требуют вычислительные ресурсы, оперативку, для их работы используется рантаймовское окружение и т. д., а мы как бы полагаем, что они идеальные абстракции. Но это относится не только к pure functions, а к любому коду. И конечно, любая программная абстракция в чём-то потенциально уязвима."
А если ваши абстракции протекающие (например, вы не умеете правильно готовить даже классические паттерны проектирования GoF), то они сразу убивают смысл большинства интерфейсов в вашей программе, которые вы так долго и старательно проектировали...
Поясняю, почему в контексте ФП правильнее говорить не столько о чистых функциях, сколько о [...]
1🤔46😁12👍4🐳1
Всех с Татьяниным днём! 🙏
А студентов - с праздником, когда лекции заменяются на сон, а семинары на кофе-брейки. Пусть ваши учебники автоматически открываются на нужной странице, а экзаменационные билеты выбираются с лёгкостью, как будто это собес, после которого вас всегда берут на работу.
Желаю вам, чтобы ваши знания росли быстрее, чем техдолг в конторе, где вы подрабатываете, а лекторы всегда были в хорошем настроении и делали бы не слишком въедливый code review ваших решений! 💥
Пусть ваши проекты всегда сдаются в срок, а кафе в университете всегда качественно готовит ваш любимый кофе! ☕️
Пусть ваши одногруппники всегда будут готовы помочь с конспектами, а стипендия приходит вовремя и с неожиданными бонусами! 🚀
И помните, что студенческие годы -- это не только учёба, но и незабываемые моменты, новые друзья, и многия любови! ❤️
С праздником, будущие гении и суперпрограммисты! 🤘
(сильно не напивайтесь: это приказ :) 💯)
А студентов - с праздником, когда лекции заменяются на сон, а семинары на кофе-брейки. Пусть ваши учебники автоматически открываются на нужной странице, а экзаменационные билеты выбираются с лёгкостью, как будто это собес, после которого вас всегда берут на работу.
Желаю вам, чтобы ваши знания росли быстрее, чем техдолг в конторе, где вы подрабатываете, а лекторы всегда были в хорошем настроении и делали бы не слишком въедливый code review ваших решений! 💥
Пусть ваши проекты всегда сдаются в срок, а кафе в университете всегда качественно готовит ваш любимый кофе! ☕️
Пусть ваши одногруппники всегда будут готовы помочь с конспектами, а стипендия приходит вовремя и с неожиданными бонусами! 🚀
И помните, что студенческие годы -- это не только учёба, но и незабываемые моменты, новые друзья, и многия любови! ❤️
С праздником, будущие гении и суперпрограммисты! 🤘
1❤64👍25😁6🔥2🫡2
- Этот AI обогнал 99% программистов в тестах!
- Почему тогда он по рекомендации "исправь баг в своём решении" предлагает "перезагрузить Вселенную и обновить jQuery до версии 0.5"?
- …Возможно, это метафора.
Кто только не написал, что deepseek r1 круче o1 по всем тестам: от джунов на StackOverflow до сеньоров с постами "R1 пояснит, почему ваш код — говнокод!".
Я попросил r1 написать простой тестовый веб-движок, получилось 200 строк кода, 10 функций. Я попросил его добавить сохранение - текущее состояние (две переменные) в localStorage; он сделал, но не учёл, что в localStorage его может и не быть (исходно например) lol
Начались ошибки, r1 начал лихорадочно их исправлять, даже не по джуниорски, а по стажёрски: понаставлял страховочных try, и почти в каждую функцию добавил совершенно ненужные проверки, превратив всё в говнокод. В нескольких местах вызывалась функция resetProgress() (например, для начала новой сессии), но r1 не додумался вызывать её, когда выводится заключительное сообщение GAME OVER. Вместо этого удалял сэйв физически из localStorage - но криво, и программа начинала работать вообще непредсказуемо.
Deep thinking? Ну, да, он "рассуждает" примерно так:
Еще возможно, currentTask имеет недопустимое значение. Например, после загрузки из localStorage currentTask может быть больше, чем длина массива tasks. В конструкторе есть проверка Math.min(task, this.tasks.length - 1), но если tasks еще не загружен, this.tasks будет undefined, и Math.min выдаст NaN. Нужно убедиться, что tasks инициализирован перед использованием.
Но с такими рассуждениями r1 только запутывается ещё быстрее :)
При этом конечно ни малейшего понимания смысла происходящего у него нету (хотя бы на уровне памятования), на каждой итерации он тупо пересматривает предыдущие свои ответы, если позволяет контекст.
Пришлось как обычно всё переделывать вручную.
Что интересно, пока по уровню и качеству кодинга (в моём субъективном опыте) пока и близко никем не превзойденной так и остаётся клод 3.5 (даже не sonnet, а стоковая версия).
А уж платить $200/месяц за o1 (примерно уровня r1) просто развод лохов почище крипты :)
AI прошёл медтесты лучше врачей. Но когда я спросил "стоит ли заменить сахар в кофе", он 20 минут доказывал, что "кофеин — это заговор марсиан".
=
Можно было конечно взять какой-нибудь классический IF-движок для текстовых игр, но я хотел весь контент полностью вынести из "свой движок", чтобы не надо было каждую сессию отдельно пересобирать. (ну вы поняли)
Конечно, например в RenPy есть встроенный модуль json для загрузки определённой игровой логики, но у меня такая минималистичная задача, что любой фреймворк сразу становится сильным усложнением.
Самый лёгкий считается Twinery, но вот как отработал его стандартный пример:
TypeError: t.match.test is not a function
at sugarcube_adding_functionality_example.html:98:34365
at Array.filter (<anonymous>)
at sugarcube_adding_functionality_example.html:98:34331
at Array.forEach (<anonymous>)
at t.default (sugarcube_adding_functionality_example.html:98:33652)
at t.render (sugarcube_adding_functionality_example.html:42:17487)
at sugarcube_adding_functionality_example.html:42:20091
...
Нет, как это и было многими десятилетиями, так и остаётся старая школа: если хочешь сделать хорошо, сделай всё сам.
Мини-тестик (ради лулзов сделал чуть-чуть по MLTT в сеттинге киберпанка :) скоро выложу для всех.
Обещание: AI генерирует шедевры в стиле Хемингуэя.
Реальность: Напоминалка "купить хлеб" превратилась в новеллу о булке, ищущей смысл жизни в тостере.
/dl пацаны пишут, что по датасету с собачьими жопками удаётся корги распознавать с точностью всего лишь 15% 😂
- Почему тогда он по рекомендации "исправь баг в своём решении" предлагает "перезагрузить Вселенную и обновить jQuery до версии 0.5"?
- …Возможно, это метафора.
Кто только не написал, что deepseek r1 круче o1 по всем тестам: от джунов на StackOverflow до сеньоров с постами "R1 пояснит, почему ваш код — говнокод!".
Я попросил r1 написать простой тестовый веб-движок, получилось 200 строк кода, 10 функций. Я попросил его добавить сохранение - текущее состояние (две переменные) в localStorage; он сделал, но не учёл, что в localStorage его может и не быть (исходно например) lol
Начались ошибки, r1 начал лихорадочно их исправлять, даже не по джуниорски, а по стажёрски: понаставлял страховочных try, и почти в каждую функцию добавил совершенно ненужные проверки, превратив всё в говнокод. В нескольких местах вызывалась функция resetProgress() (например, для начала новой сессии), но r1 не додумался вызывать её, когда выводится заключительное сообщение GAME OVER. Вместо этого удалял сэйв физически из localStorage - но криво, и программа начинала работать вообще непредсказуемо.
Deep thinking? Ну, да, он "рассуждает" примерно так:
Еще возможно, currentTask имеет недопустимое значение. Например, после загрузки из localStorage currentTask может быть больше, чем длина массива tasks. В конструкторе есть проверка Math.min(task, this.tasks.length - 1), но если tasks еще не загружен, this.tasks будет undefined, и Math.min выдаст NaN. Нужно убедиться, что tasks инициализирован перед использованием.
Но с такими рассуждениями r1 только запутывается ещё быстрее :)
При этом конечно ни малейшего понимания смысла происходящего у него нету (хотя бы на уровне памятования), на каждой итерации он тупо пересматривает предыдущие свои ответы, если позволяет контекст.
Пришлось как обычно всё переделывать вручную.
Что интересно, пока по уровню и качеству кодинга (в моём субъективном опыте) пока и близко никем не превзойденной так и остаётся клод 3.5 (даже не sonnet, а стоковая версия).
А уж платить $200/месяц за o1 (примерно уровня r1) просто развод лохов почище крипты :)
AI прошёл медтесты лучше врачей. Но когда я спросил "стоит ли заменить сахар в кофе", он 20 минут доказывал, что "кофеин — это заговор марсиан".
=
Можно было конечно взять какой-нибудь классический IF-движок для текстовых игр, но я хотел весь контент полностью вынести из "свой движок", чтобы не надо было каждую сессию отдельно пересобирать. (ну вы поняли)
Конечно, например в RenPy есть встроенный модуль json для загрузки определённой игровой логики, но у меня такая минималистичная задача, что любой фреймворк сразу становится сильным усложнением.
Самый лёгкий считается Twinery, но вот как отработал его стандартный пример:
TypeError: t.match.test is not a function
at sugarcube_adding_functionality_example.html:98:34365
at Array.filter (<anonymous>)
at sugarcube_adding_functionality_example.html:98:34331
at Array.forEach (<anonymous>)
at t.default (sugarcube_adding_functionality_example.html:98:33652)
at t.render (sugarcube_adding_functionality_example.html:42:17487)
at sugarcube_adding_functionality_example.html:42:20091
...
Нет, как это и было многими десятилетиями, так и остаётся старая школа: если хочешь сделать хорошо, сделай всё сам.
Мини-тестик (ради лулзов сделал чуть-чуть по MLTT в сеттинге киберпанка :) скоро выложу для всех.
Обещание: AI генерирует шедевры в стиле Хемингуэя.
Реальность: Напоминалка "купить хлеб" превратилась в новеллу о булке, ищущей смысл жизни в тостере.
/dl пацаны пишут, что по датасету с собачьими жопками удаётся корги распознавать с точностью всего лишь 15% 😂
1😁44❤19✍14👍4
По нашему опросу, кто сколько строк комитит в мастер, написал сегодня пост, в частности про то, как можно быстро оценить насколько адекватна разработка некоторого проекта (теперь малограмотным it-менеджерам не укрыться за красивыми словами:).
На бусти оказывается нельзя делать бесплатные посты только для подписчиков. Поставил там минимальные 10 рублей, думаю это всё же можно считать как бесплатные.
Заходим в ML-инженеры. Шаг 0: hardcore
Если содержимое этого шага вам как минимум будет понятно,
вы чувствуете, что достаточно просто поразбираться в этих материалах,
и вы их поймёте без предварительной подготовки,
тогда имеет смысл продолжать.
А если это для вас тёмный лес, то лучше не тратьте впустую время на изучение этого всего. Сосредоточьтесь на классическом бэкенде.
...
Для курсантов, стоимость моей индивидуальной помощи (формат 3 курса карьеры) выросла на 60% (мест нет).
/ml Немало девопсов кстати сейчас активно и успешно переквалифицируются в MLOps и LLMOps, эти профессии критичны в тренде интеграции и масштабирования AI-моделей:
- оптимизация пайплайнов обучения моделей
- управление инфраструктурой (прежде всего облачной) для развертывания AI
- файнтюнинг предобученных моделей под конкретные задачи.
Вилка $150-250 тыс/год.
На бусти оказывается нельзя делать бесплатные посты только для подписчиков. Поставил там минимальные 10 рублей, думаю это всё же можно считать как бесплатные.
Заходим в ML-инженеры. Шаг 0: hardcore
Если содержимое этого шага вам как минимум будет понятно,
вы чувствуете, что достаточно просто поразбираться в этих материалах,
и вы их поймёте без предварительной подготовки,
тогда имеет смысл продолжать.
А если это для вас тёмный лес, то лучше не тратьте впустую время на изучение этого всего. Сосредоточьтесь на классическом бэкенде.
...
Для курсантов, стоимость моей индивидуальной помощи (формат 3 курса карьеры) выросла на 60% (мест нет).
/ml Немало девопсов кстати сейчас активно и успешно переквалифицируются в MLOps и LLMOps, эти профессии критичны в тренде интеграции и масштабирования AI-моделей:
- оптимизация пайплайнов обучения моделей
- управление инфраструктурой (прежде всего облачной) для развертывания AI
- файнтюнинг предобученных моделей под конкретные задачи.
Вилка $150-250 тыс/год.
1👍60🔥2
Разбираю понемногу ту полсотню эвристик, которые сделают из вас инди-хакера, способного упаковывать в своей голове (и почти без экзокортекса) системы на миллионы строк кода и взламывать любой корпоративный орг-код.
И в одной из эвристик я обнаружил такой побочный эффект, что оказывается Java 23 фактически принуждает программиста к даванию переменным осмысленных имён.
(Некоторые курсанты говорят, что на работе они ещё не закончили переход на Java 8. Нужно ли им изучать новые функции? :)
Конечно, хороший стиль десятки лет это подразумевал, с курсантами эту тему разбираем подробно на Ясном коде, но ситуация в современном мейнстриме с качеством кода совсем печальна (началось всё, подозреваю, с Java 10, где добавилось ужасающее var, и никакой тайп инференс на уровне компилятора тут не спасает от кривизны на уровне кода).
Широкое использование var, сложные цепочки Stream API и функциональные конструкции делают имена переменных едва ли не самым ключевым элементом для понимания Java-кода. API Java только усложняются (Stream, Vector, Structured Concurrency, Stream Gatherers, гибкие конструкторы, Карл! 😬 ), JEP 467 разрешил markdown-комментарии в JavaDoc, JEP 476 позволяет импортировать целые модули, поэтому во избежание конфликтов чёткие и наглядные имёна сегодня стали фактически обязательным микро-скиллом.
/c# но на картинке однако не java :)
И в одной из эвристик я обнаружил такой побочный эффект, что оказывается Java 23 фактически принуждает программиста к даванию переменным осмысленных имён.
(Некоторые курсанты говорят, что на работе они ещё не закончили переход на Java 8. Нужно ли им изучать новые функции? :)
Конечно, хороший стиль десятки лет это подразумевал, с курсантами эту тему разбираем подробно на Ясном коде, но ситуация в современном мейнстриме с качеством кода совсем печальна (началось всё, подозреваю, с Java 10, где добавилось ужасающее var, и никакой тайп инференс на уровне компилятора тут не спасает от кривизны на уровне кода).
Широкое использование var, сложные цепочки Stream API и функциональные конструкции делают имена переменных едва ли не самым ключевым элементом для понимания Java-кода. API Java только усложняются (Stream, Vector, Structured Concurrency, Stream Gatherers, гибкие конструкторы, Карл! 😬 ), JEP 467 разрешил markdown-комментарии в JavaDoc, JEP 476 позволяет импортировать целые модули, поэтому во избежание конфликтов чёткие и наглядные имёна сегодня стали фактически обязательным микро-скиллом.
/c# но на картинке однако не java :)
1👍53👏6⚡2🤔1🤯1
Механическое добавление суффикса Impl к названию класса, реализующего интерфейс в Java, считается фактически стандартным соглашением об именовании, и многими IDE предлагается дефолтно.
Вы этого придерживаетесь?
Вы этого придерживаетесь?
Anonymous Poll
23%
Да
23%
Нет
54%
Не пишу на Java
1🤔38
🚨 Перестаньте проваливать собеседования по программированию!
🔥 Решаете сотни задач на LeetCode, но не можете пройти интервью с живым кодингом? Автор материала провалил 30+ собеседований, пока не осознал ошибки 98% кандидатов. Теперь он делится стратегиями, которые помогли ему попасть в Google, Amazon, Microsoft и Adobe.
Что внутри?
✅ Смена мышления: как сохранять спокойствие и избегать ошибок под давлением.
✅ Чёткий план действий: от анализа задачи до оптимизации решения.
✅ Коммуникация с интервьюером: как задавать вопросы и презентовать себя за 2 минуты.
✅ Проверка кода: методы выявления ошибок и обработки граничных случаев.
✅ Рекомендации Carnegie Mellon University
Почему это работает?
💡 Только практика, а не теория! Конкретные шаги, которые превращают подготовку в результат.
После прочтения вы:
→ Перестанете теряться на интервью.
→ Научитесь оптимизировать решения за минуты.
→ Сократите ошибки из-за стресса.
Для кого?
👨💻 Для разработчиков, которые хотят пройти собеседование с первого раза.
⏳ Цена 149 рублей только до понедельника!
Начать подготовку: ЖМИ НА БУСТИ 🚀
P.S. 🎁 Бесплатный бонус: методичка от Carnegie Mellon University + гайд по поведенческим вопросам.
(продолжаю тренироваться в инфоцыганстве :) но сам материал, от индуса конечно же, реально стоящий 👍 спасибо вам за поддержку! ❤️ )
Автор говорит о сдвиге в мышлении и практической стратегии, чтобы помочь тебе минимизировать ошибки на интервью, оптимизировать свои решения и значительно повысить свои шансы пройти собеседование.
1. Мышление
2. Введение
3. Поймите задачу
4. Спланируйте своё решение
5. Напишите код
6. Проверьте свое решение
7. Закончите собеседование сильно (для себя)
8. Заключение.
Подробный разбор с подпунктами, 2600+ слов!
🔥 Решаете сотни задач на LeetCode, но не можете пройти интервью с живым кодингом? Автор материала провалил 30+ собеседований, пока не осознал ошибки 98% кандидатов. Теперь он делится стратегиями, которые помогли ему попасть в Google, Amazon, Microsoft и Adobe.
Что внутри?
✅ Смена мышления: как сохранять спокойствие и избегать ошибок под давлением.
✅ Чёткий план действий: от анализа задачи до оптимизации решения.
✅ Коммуникация с интервьюером: как задавать вопросы и презентовать себя за 2 минуты.
✅ Проверка кода: методы выявления ошибок и обработки граничных случаев.
✅ Рекомендации Carnegie Mellon University
Почему это работает?
💡 Только практика, а не теория! Конкретные шаги, которые превращают подготовку в результат.
После прочтения вы:
→ Перестанете теряться на интервью.
→ Научитесь оптимизировать решения за минуты.
→ Сократите ошибки из-за стресса.
Для кого?
👨💻 Для разработчиков, которые хотят пройти собеседование с первого раза.
⏳ Цена 149 рублей только до понедельника!
Начать подготовку: ЖМИ НА БУСТИ 🚀
P.S. 🎁 Бесплатный бонус: методичка от Carnegie Mellon University + гайд по поведенческим вопросам.
Автор говорит о сдвиге в мышлении и практической стратегии, чтобы помочь тебе минимизировать ошибки на интервью, оптимизировать свои решения и значительно повысить свои шансы пройти собеседование.
1. Мышление
2. Введение
3. Поймите задачу
4. Спланируйте своё решение
5. Напишите код
6. Проверьте свое решение
7. Закончите собеседование сильно (для себя)
8. Заключение.
Подробный разбор с подпунктами, 2600+ слов!
boosty.to
Как успешно проходить собеседования с живым кодингом - Serge Bobrovsky
Автор провалил 30+ собеседований,пока не осознал ошибки 98% кандидатов. Теперь он делится стратегиями, которые помогли попасть в Google и MS
3❤🔥36😁24⚡8🐳4🏆3
qwenlm (Coder!) совсем тупой. Выдал говнокод на 50 строк, я ему говорю:
"происходит 1 2 3 " - в твоей версии, это неверно. А надо чтобы было "3 4 5"
Он отвечает:
"Понял вас. Давайте изменим код так, чтобы "происходило 1 2 3 " )))
На все последующие просьбы тоже так и отвечал, тупость непробиваемая.
дипсик r1 вчера висел (горизонтальное масштабирование? нет, не слышали), ну и как бы ставить сегодня на одну сферическую ai-лошадь в вакууме несерьёзно, которая вдобавок может в любой момент отключиться. Сегодня он вроде как работает, но еле-еле, раз в 10 медленнее. А завтра появится новая супер-модель.
Потом я попросил о том же hailuo , и он выдал подозрительно похожее на выдачу qwenlm )))
С точностью до запутанных условных вложений в коде.
Вернулся в итоге к любимому клоду 3.5; но как же классно он умеет отлаживаться. Всё помнит, понимает куда логи вставить, потом их грамотно анализирует, откатывается к прежним версиям - причём может вернуться чуть ли к исходной версии, и практически всегда добивает отладку до 100%! Хайку похуже чем соннет, но тоже упорный в этом плане, красавчики. Никакой другой жпт и близко так не умеет в дебаг.
Жаль только что Anthropic похоже сливают с ai-рынка.
...Пацаны говорят, что хорошо работает связка "r1 как архитектор и клод 3.5 как кодер". Надо признать конечно, что жпт тем лучше разбирается в рациональных темах, чем больше там формализма (математика, алгоритмические задачки кодфорса...), поэтому надо будет поэкспериментировать с генерацией кода на F#: хорошей системой типов сразу отсекается множество целых классов ошибок.
Ну и AI+TDD+BDD смотрится многообещающе, мои курсы в помощь.
"происходит 1 2 3 " - в твоей версии, это неверно. А надо чтобы было "3 4 5"
Он отвечает:
"Понял вас. Давайте изменим код так, чтобы "происходило 1 2 3 " )))
На все последующие просьбы тоже так и отвечал, тупость непробиваемая.
дипсик r1 вчера висел (горизонтальное масштабирование? нет, не слышали), ну и как бы ставить сегодня на одну сферическую ai-лошадь в вакууме несерьёзно, которая вдобавок может в любой момент отключиться. Сегодня он вроде как работает, но еле-еле, раз в 10 медленнее. А завтра появится новая супер-модель.
Потом я попросил о том же hailuo , и он выдал подозрительно похожее на выдачу qwenlm )))
С точностью до запутанных условных вложений в коде.
Вернулся в итоге к любимому клоду 3.5; но как же классно он умеет отлаживаться. Всё помнит, понимает куда логи вставить, потом их грамотно анализирует, откатывается к прежним версиям - причём может вернуться чуть ли к исходной версии, и практически всегда добивает отладку до 100%! Хайку похуже чем соннет, но тоже упорный в этом плане, красавчики. Никакой другой жпт и близко так не умеет в дебаг.
Жаль только что Anthropic похоже сливают с ai-рынка.
...Пацаны говорят, что хорошо работает связка "r1 как архитектор и клод 3.5 как кодер". Надо признать конечно, что жпт тем лучше разбирается в рациональных темах, чем больше там формализма (математика, алгоритмические задачки кодфорса...), поэтому надо будет поэкспериментировать с генерацией кода на F#: хорошей системой типов сразу отсекается множество целых классов ошибок.
Ну и AI+TDD+BDD смотрится многообещающе, мои курсы в помощь.
3❤🔥32✍22🤔11🔥2😁2
Добавил вторую микро-игрушечку
(киберпанк с небольшими отсылками к MLTT):
Операция Σ-Кристалл: Тень в Сетях
Холодный свет неоновых рекламных полос мерцает сквозь дождь. Вы — Раннер под псевдонимом "Глитч", пробираетесь через цифровые руины заброшенного дата-храма. Ваша цель — ядро Sigma Core, где спрятан артефакт, способный переписать правила игры. Но ICE здесь не спит...
Ваши пальцы скользят по голо-панели. Нужно вплестись в легитимный трафик — поток зашифрованных голосовых сообщений от сотрудников. Но Страж слеп к эмоциям: он видит только числа и строки. Один неверный байт — и тревога разбудит всю систему.
(Первая игра "Интерактивный Конструктор Типов MLTT")
(киберпанк с небольшими отсылками к MLTT):
Операция Σ-Кристалл: Тень в Сетях
Холодный свет неоновых рекламных полос мерцает сквозь дождь. Вы — Раннер под псевдонимом "Глитч", пробираетесь через цифровые руины заброшенного дата-храма. Ваша цель — ядро Sigma Core, где спрятан артефакт, способный переписать правила игры. Но ICE здесь не спит...
Ваши пальцы скользят по голо-панели. Нужно вплестись в легитимный трафик — поток зашифрованных голосовых сообщений от сотрудников. Но Страж слеп к эмоциям: он видит только числа и строки. Один неверный байт — и тревога разбудит всю систему.
(Первая игра "Интерактивный Конструктор Типов MLTT")
1👍50❤7❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Как я вижу свою айти-карьеру в 2027-м.
😁61❤🔥5🤔5⚡2🔥1
Весь этот горький катаклизм, который я здесь с печалью наблюдаю, эти ваши вопли и сопли про r1, как он типа уронил весь рынок, всех порвал по тестам, бла-бла-бла...
Вы видели хотя бы ОДИН реальный успешный кейс применения r1 в программировании, хотя бы на уровне джуниора? И не увидите :)
Конечно, ai реально помогает в кодинге, я в разных задачках где-то в 2-20 раз продуктивнее работаю, это буст однозначный. Но в сравнении с какой-нибудь жпт 4 прогресс AI в плане самостоятельного программирования близок к нулю. O(log Months) :)
Оно так и не работает без чётких спецификаций, которые уже сами по себе фактически программированием становятся на соответствующем уровне промптинга (для которого рекурсивно требуется хороший уровень software design...). BDD из полной экзотики внезапно становится массово актуальным.
Мы НЕ становимся разработчиками в 10 раз лучше с помощью искусственного интеллекта.
Мы становимся в 10 раз более ЗАВИСИМЫМИ от искусственного интеллекта. Разница есть.
Каждый раз, когда мы позволяем жпт решить проблему, которую могли бы решить сами, мы меняем своё долгосрочное понимание, свой стратегический рост, на краткосрочную производительность, причём совершенно не в наших интересах.
Мы оптимизируем сегодняшние задачи нашего рабовладельца за счет завтрашних собственных карьерных возможностей.
Вы видели хотя бы ОДИН реальный успешный кейс применения r1 в программировании, хотя бы на уровне джуниора? И не увидите :)
Конечно, ai реально помогает в кодинге, я в разных задачках где-то в 2-20 раз продуктивнее работаю, это буст однозначный. Но в сравнении с какой-нибудь жпт 4 прогресс AI в плане самостоятельного программирования близок к нулю. O(log Months) :)
Оно так и не работает без чётких спецификаций, которые уже сами по себе фактически программированием становятся на соответствующем уровне промптинга (для которого рекурсивно требуется хороший уровень software design...). BDD из полной экзотики внезапно становится массово актуальным.
Мы НЕ становимся разработчиками в 10 раз лучше с помощью искусственного интеллекта.
Мы становимся в 10 раз более ЗАВИСИМЫМИ от искусственного интеллекта. Разница есть.
Каждый раз, когда мы позволяем жпт решить проблему, которую могли бы решить сами, мы меняем своё долгосрочное понимание, свой стратегический рост, на краткосрочную производительность, причём совершенно не в наших интересах.
Мы оптимизируем сегодняшние задачи нашего рабовладельца за счет завтрашних собственных карьерных возможностей.
2❤46👍31💯9🤔4🤝1
Что лучше?
Anonymous Quiz
11%
Скрам
19%
Канбан
2%
Другие орг-аджайлы
68%
Я таким безобразием не занимаюсь
1🤔38👍7😁4🐳4💯1
Опасности ИТ-найма в 2025-м. Всеобщий крах рынка программистов.
Сколько ещё протянет русская айтишка?
=
Подозрение, что пых и питончик по мере развития жпт станут теми самыми the last of us, на которых ещё можно будет зарабатывать ручным кодированием.
Кривизна этих языков + динамическая типизация (== крайне легко совершаемые и крайне трудно находимые баги в рантайме, особенно на пыхапы) + неимоверное количество говнолегасикода столь велико, что ...
Сколько ещё протянет русская айтишка?
=
Подозрение, что пых и питончик по мере развития жпт станут теми самыми the last of us, на которых ещё можно будет зарабатывать ручным кодированием.
Кривизна этих языков + динамическая типизация (== крайне легко совершаемые и крайне трудно находимые баги в рантайме, особенно на пыхапы) + неимоверное количество говнолегасикода столь велико, что ...
🔥38😁26🤔12👍5⚡1
Чем опасно самообучение 2025? Тем, что 98% материалов мэйнстрима сегодня стремительно устаревает за считанные месяцы, особенно если они делались с прицелом "побыстрее на работу".
Даже с классикой так: вот "Кабанчик" в последней версии пополнился новыми главками.
-- облачные архитектуры и serverless-вычисления с прицелом на облачную AI-инфраструктуру (AWS SageMaker, Azure ML);
-- гибридные транзакционно-аналитические системы (HTAP), для обучения моделей на свежих данных без остановки продакшена;
-- принципы оптимизации хранилищ (S3, Glacier), дабы снижать затраты на хранение больших датасетов для AI;
-- кодирование данных, форматы вроде Avro и Parquet, оптимизация хранения неструктурированных данных для NLP/CV-моделей;
-- метаданные и управления схемами, важность версионирования данных для интеграциии с инструментами вроде Delta Lake и Feast (Feature Store);
-- анализ распределений и мониторинг дрейфа данных (data drift), избегаем bias в моделях;
-- кейсы по векторным базам данных и квантовым вычислениям.
DDIA не просто актуальна: она стала ещё важнее с ростом сложности AI-систем.
Но будет ли её новое издание переведено? Думаю, уже нет. Впрочем, и оригинальную версию мало кто разбирал.
Даже с классикой так: вот "Кабанчик" в последней версии пополнился новыми главками.
-- облачные архитектуры и serverless-вычисления с прицелом на облачную AI-инфраструктуру (AWS SageMaker, Azure ML);
-- гибридные транзакционно-аналитические системы (HTAP), для обучения моделей на свежих данных без остановки продакшена;
-- принципы оптимизации хранилищ (S3, Glacier), дабы снижать затраты на хранение больших датасетов для AI;
-- кодирование данных, форматы вроде Avro и Parquet, оптимизация хранения неструктурированных данных для NLP/CV-моделей;
-- метаданные и управления схемами, важность версионирования данных для интеграциии с инструментами вроде Delta Lake и Feast (Feature Store);
-- анализ распределений и мониторинг дрейфа данных (data drift), избегаем bias в моделях;
-- кейсы по векторным базам данных и квантовым вычислениям.
DDIA не просто актуальна: она стала ещё важнее с ростом сложности AI-систем.
Но будет ли её новое издание переведено? Думаю, уже нет. Впрочем, и оригинальную версию мало кто разбирал.
✍58❤5🤔3
Осенью 2024-го сразу три курсанта в один день (!) упомянули всуе DI, а потом вскоре и в отзывах пришло на эту тему:
"Тестирование FE - пока есть ощущение, что код я пишу без DI и прочих подходов, которые облегчат интеграционное тестирование с подкинутыми фейковыми зависямостями. С другой стороны я слабо понимаю, а как тестируется визуальное представление веб-компонента :)"
"Начала выстраиваться наконец-то модель ООП,которая изначально выстроена,к сожалению,с помощью Dependency Injection - как и везде сейчас,и слабого курса в универе,где мы просто С++ учили."
"Оказывается, я открыл F-ограниченный полиморфизм в тот момент, когда мне понадобилось, чтобы методы класса-родителя явно (на уровне статического анализа) возвращали и принимали аргументы конкретных типов, являющихся производными класса-потомка. Даже получилось реализовать это в Python, в котором изначально типы не считались такими уж важными. Это инверсия зависимостей на математических стероидах. "
"Я только вот 1 не понял,в конце вы написали про DI в современных приложениях,и это правда очень искажает понимание ООП,но вы написали,что оно увеличивает coupling из-за того,что мы открываем все наши зависимости. А концепт ADT,где мы описываем типы данных только операциями как раз является решением,потому что вся реализация полностью скрыта и лежит на классе реализующим ADT. Но разве с этими DI контейнерами не так? Определили интерфейс,реализовали его классом в который уже внедряются зависимости,и класс как раз скрывает всю реализацию."
Подробно разбираю эту тему в свежем материале для курсантов: 108-й СИ "Не путаем DI и ADT", даю в частности 10 случаев, когда лучше избегать Dependency Injection в рамках ADT, + 10 ключевых причин, почему это качественно разные вещи, и соответственно как это всё правильно готовить.
"Тестирование FE - пока есть ощущение, что код я пишу без DI и прочих подходов, которые облегчат интеграционное тестирование с подкинутыми фейковыми зависямостями. С другой стороны я слабо понимаю, а как тестируется визуальное представление веб-компонента :)"
"Начала выстраиваться наконец-то модель ООП,которая изначально выстроена,к сожалению,с помощью Dependency Injection - как и везде сейчас,и слабого курса в универе,где мы просто С++ учили."
"Оказывается, я открыл F-ограниченный полиморфизм в тот момент, когда мне понадобилось, чтобы методы класса-родителя явно (на уровне статического анализа) возвращали и принимали аргументы конкретных типов, являющихся производными класса-потомка. Даже получилось реализовать это в Python, в котором изначально типы не считались такими уж важными. Это инверсия зависимостей на математических стероидах. "
"Я только вот 1 не понял,в конце вы написали про DI в современных приложениях,и это правда очень искажает понимание ООП,но вы написали,что оно увеличивает coupling из-за того,что мы открываем все наши зависимости. А концепт ADT,где мы описываем типы данных только операциями как раз является решением,потому что вся реализация полностью скрыта и лежит на классе реализующим ADT. Но разве с этими DI контейнерами не так? Определили интерфейс,реализовали его классом в который уже внедряются зависимости,и класс как раз скрывает всю реализацию."
Подробно разбираю эту тему в свежем материале для курсантов: 108-й СИ "Не путаем DI и ADT", даю в частности 10 случаев, когда лучше избегать Dependency Injection в рамках ADT, + 10 ключевых причин, почему это качественно разные вещи, и соответственно как это всё правильно готовить.
❤41👍14🤔4
Вдогонку к опросу "Механическое добавление суффикса Impl к названию класса, реализующего интерфейс в Java" — что интересно, получилось 50/50.
Это считается (считалось:) фактически стандартным соглашением об именовании, и многими IDE поддерживается дефолтно. Да, но...
Тут конечно Java хорошо бы брать пример со своего старшего и более умного брата C#, где не принято использовать суффикс Impl. Вместо этого интерфейсы именуются с префиксом I (IUserService), но реализации получают понятные имена без I, но с уточнением деталей (например, DatabaseUserService). А если реализация подразумевается не одна, то добавляют префиксы, описывающие конкретное назначение или технологию: DatabaseUserService (PostgressUserService, MongoUserService), CachedUserService, AsyncUserService...
Подобному соглашению рекомендую следовать в любых языках программирования.
Это считается (считалось:) фактически стандартным соглашением об именовании, и многими IDE поддерживается дефолтно. Да, но...
Тут конечно Java хорошо бы брать пример со своего старшего и более умного брата C#, где не принято использовать суффикс Impl. Вместо этого интерфейсы именуются с префиксом I (IUserService), но реализации получают понятные имена без I, но с уточнением деталей (например, DatabaseUserService). А если реализация подразумевается не одна, то добавляют префиксы, описывающие конкретное назначение или технологию: DatabaseUserService (PostgressUserService, MongoUserService), CachedUserService, AsyncUserService...
Подобному соглашению рекомендую следовать в любых языках программирования.
👍56🤔18❤6💯3🐳1