All streams
Search
Write a publication
Pull to refresh
15
0
Иван Зайцев @IvanZaycev0717

Fullstack Developer, Москва

Send message

Не программирование, впрочем, из 700 миллионов пользователей chatGPT, я сомневаюсь, что хотя бы 5% кодят

Я те самые 5% и поделюсь своим недавним опытом. Я решил сразу на боевом проекте попробовать и сделал промпт на создание одной фичи по аутентификации на Node.js. В итоге, ChatGPT 5 мне написал код с такой дырой в безопасности, что лучше бы я сам писал. Хорошо, что я всегда проверяю за нейросеткой.

Современный мир все больше напоминает королевство скама. Выходит Дженсен Хуанг из Nvidia и начинает врать и прогревать, выходит Сэм Альтман из OpenAI и начинает врать и прогревать. Такое впечатление, что успешен тот, кто сможет обмануть большее количество народа. По идее рынок должен реагировать на мягко говоря лукавство обвалом акций этих компаний. Но этого не происходит - вот в чем беда

Можно я чуть-чуть покритикую статью, но я не со зла, просто зацепили некоторые моменты. Может будущим стажёрам будет полезно кое-что уточнить.

На техническом интервью спрашивали, например, о плюсах и минусах FastAPI. Из плюсов я отметил встроенную асинхронность, наличие встроенной инъекции зависимостей, наличие Swagger и валидации Pydantic. Из минусов — отсутствие представлений, как, например, в Django.

Очень спорное сравнение. На мой взгляд, даже некорректное. Django - это чистый MVC (там оно называется MVT) фреймворк, а FastAPI - это совершенно про другое

Также затронули общие темы о Python, например, про примитивы асинхронности. Здесь я, признаюсь честно, ответил не полностью — из-за волнения всё вылетело из головы. Я указал про конструкции async/await, mutex и корутины. Как я после интервью уже узнал у интервьюера, идеально было бы отметить также таски, фьючеры и ивент-луп.

В asyncio нет никаких мьютексов. Это из Rust'а скорее всего. В asyncio используются Lock.

Что такое примитивы асинхронности? Есть примитивы синхронизации. А coroutines, Event Loop и Future- это скорее абстракции асинхронности.

В любом случае вы молодец, что решили стажироваться в крупной компании, тем более из банковского сектора. Вообще я удивлён, что в 2025 году от стажера требуется глубоко знать асинхронное программирование. Я слышал от выпускника курсов обратной буковки R, что они даже понятия не имеют ни про какую асинхронность после курсов за 110к. Жесть одним словом.

Если так дальше пойдет, что где-то через 1-2 года требования к стажеру будут следующие: от 5 лет коммерческой разработки в FAANG на неоплачиваемую стажировку.

демонстрация отличных навыков прохождения собеседований (лучше 99 % из соискателей, топ из топового 1 %), после вступления в должность — отговорки, задержки, пропуски созвонов.

Приведу аналогию: вы играете в какую-нибудь CS GO с читером. Каким бы вы не были прекрасным геймером - читер вас всегда победит. Может быть идеальное прохождение собеседованией - это красный флаг?

Собеседования оторваны вообще от реальности:

Интервьювер: Где на практике используются реализованные вручную красно-черные деревья?

Я: Они используются только на собеседованиях

Интервьювер: Оффер!

А разве испытательный срок 3 месяца (ст. 70 ТК РФ) не покажет - волк ли новый работник или нет?

Как правило про замену программистов AI пишут те, кто вообще никогда в жизни этим AI не пользовался в разработке.

Приведу недавний случай из своей практики: нейросеть DeepSeek попросил написать кастомные конфигурации Gunicorn для проекта и что я получил? Legacy-код примерно 2-3 летней давности. Почему? Потому что базы у DeepSeek по состоянию на 2024 год. А уже 2025 и новые версии библиотек выходят. Новые версии не просто так выходят - там закрывают уязвимости и баги прошлых версий. Т.е. AI всегда смотрит в прошлое, потому что пока обучишь модель много времени пройдет и многое изменится.

Такая же история и с JavaScript - мне нейросети пишут код исключительно с var для переменных. Уже миллион раз все сказали, что ES6 крайне не рекомендует использование var, используете let и const, а также "use strict;". Но нет нейросети все равно пишут legacy-код, хотя ES6 вышел довольно давно.

Все эти ваши экспектации по поводу IT - не более, чем просто плот фантазии. Проблема, не в AI, а в том, что когда у людей что-то не получается (например, найти работу) они винят кого угодно - AI, курсы, половцев, рептелоидов, но не могут задать себе вопрос: "Может я что-то делаю неправильно?"

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

Удачи вам, а также вашим студентам в поиске работы

Ну скооперируйтесь с @IvanZaycev0717 и созвонитесь со мной.

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

Я хотел, чтобы читающие ваши статьи посмотрели на вещи под другим углом, и я считаю, что у меня это получилось.

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

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

Я уже давно и очень глубоко погружен в трудоустройство Junior и выводы делаю не по картинкам в Хабр Карьере. Многое мне сами HR рассказывают.

И какая выборка? 5-10 человек, с которыми вы общались? Т.е. вы по малой выборке делаете какие-то глубоко идущие выводы? Вы проводили масштабное исследование?

Вы не делаете выводы по картинкам на Хабр.Карьере - т.е. вы не смотрите на официальную статистику и делаете выводы по принципу ОБС - "одна бабка сказала"?

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

А вы не бизнесом занимаетесь и с людей не берете деньги? "Я делаю это для души". Верим! Если бы делали это для души, то как бы Сергей Балакирев выкладывали на Stepik бесплатные курсы и вели бы YouTube канал со всем контентом. Но нет, вы указали Telegram и создали воронку продаж путём скрытой рекламы в своих статьях на Хабре.

Я, когда читал вашу статью меня не отпускало ощущение, что меня греют. Но по вашим ответам на вопросы и по тематике ваших статей, я однозначно сделал вывод зачем все это делается. Мне представляется это так - 2 источника дохода: берете деньги с джунов за надежду, но если джун что-то собой представляет вы его продаете HR'ам. Неплохой бизнес.

Уважаемы джуны. Добивайтесь всего сами, читайте книги по трудоустройству, как себя выгоднее продать, создавайте и участвуйте в OpenSource-проектах, стройте сеть нетворкинга самостоятельно, без всяких левых челов, которые вас просто хотят обобрать и выгодно продать, чтобы получить деньги. Не читайте манипулятивные статьи, которые формируют ложную картину миру, утверждая, что вот я уже мониторю рынок трудойстройсва джунов не первый год и общаюсь с тысячами HR'ов (интересно, откуда у человека время на все это).

Одно могу сказать точно: если в вашем резюме указан фриланс, проектная работа или упоминаются онлайн-школы, то в 99% случаев ваше резюме отправляется в мусорку.

Для опровержения этого я приведу скриншот из Хабр.Карьеры для Сбербанка

Почему то 159 сотрудников не отправили в помойку. И ЭТО СБЕРБАНК, не ООО "Рога и Копыта". Здесь вопрос не что указано, а как указано. Когда есть ссылки на фриланс-биржи, профили, богатое портфолио - чем это отличается от работу в офисе?

По поводу онлайн-школ тоже не совсем достоверная инфомация. Я точно знаю, что стоят фильтры в одной компании на автоотказ, если у человека указан Foodgram от Яндекс.Практикума. Но сам факт что получал профессиональную переподготовку на программиста - это скорее плюс. Все зависит от HR.

В статье уж слишком много обощений и категоричности. Вы не обижайтесь, но здесь прослеживается один из приёмов маркетинка - приём исключительности и секретной инфорамации. Это работает так: вот есть всякие карьерные консультанты-разводилы, вы можете писать фриланс и онлайн-школы - но вы 99% получите отказ. А вот у меня любимого есть секретные техники, я веду за ручку СВОЕГО студента (полностью лишая его самостоятельности), такое встречается только у меня, поэтому записывайитесь ко мне и не забудьте свою дебетовую карту.

Слишком много манипуляций прослеживается. Если бы я был джуном - к вам никогда бы не пошел, слишком грязные приемы используете

JavaScript так определяет

const nums = [[[1], [2]], [3]];
console.log(nums.flat())
// [ [ 1 ], [ 2 ], 3 ]

Т.е. flat уменьшает вложенность на единицу в JavaScript

Кстати это даже есть в Zen Python от Тима Питерса:

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts.

Считаю, что в Python не хватает одного метода списка list, который есть в JavaScript для массива - это метод flat

const nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
console.log(nums.flat());
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

В Python решается с помощью вложенного цикла в list comprehension

nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([num for temp in nums for num in temp])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

В практике такое иногда встречается, когда работаешь с ORM типа SQLAlchemy. Было бы очень удобно nums.flat().

Я, когда познакомился с Vue.js мне сразу его философия зашла и я понял, что именно на нём я хочу писать фронт в дополнении к беку. Именно сама концепция Single-File Component. Т.е. использование компонентов, в которых уже инкапсулирована логика <script setup>, HTML-шаблон <template> и стиль <style>.

Тут лучше привести аналогию:

Сборка компьютера: материнская плата + процессор + SSD + оперативная память

Сборка приложения Vue: Компонент_1 + Компонент_2 + Компонент_3 + Компонент_4

Во Vue используется паттерн из машиностроения, когда сложный механизм состоит из отдельно созданных узлов, а взаимодействуют они между собой через Refs или Pinia (зависит от случая).

Кстати фронт нашего любимого Хабра написан как раз на Vue

Я представяю какая сейчас волна хейта свалится на автора.

Хочу вам дать небольшие советы:

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

  2. Если вы что-то на каком-то языке программирования выкладываете - изучайте его глубоко. Вы должны знать не только принципы разработки, но и требования к коду - например, правильное именовение функций и методов класса. Если используете ООП - вы должны как "Отче Наше" знать принципы SOLID и применять их. Также должны хорошо разбираться в отличии атрибутов класса от атрибутов экземпляра класса. Также надо задуматься, когда в коде есть огромная простыня с "if-else".

  3. Изучайте Python, язык классный. Вам очень много придётся изучать и делать.

Я ответил на этот вопрос в самом начале статьи. Когда человек в западной компании сказал, что "код г**но" его сразу осудили. Там это считается токсичным. Там надо говорить так: "Здесь код можно немного получше написать...". И это правильно.

Почему мы со своим прямым подходов в виде "код г**но" стретимся попасть в зарубежные компании, а вовсе не они к нам стремятся? Может быть их подход более правильный. В чужой монастырь со своим уставом не ходят.

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

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

Я много лет в любительской футбольной команде играл, и иногда "напиховали" (если есть такое слово). Токсичность была запредельная, особенно от тренера. За эти годы к токсичности так и не привык.

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

Мне понадобилось воспользоваться API модели GigaChat. Естесственно, я начал с прочтения документации. Меня интересовала только обращение к модели через gRPC. Официальная документация по gRPC GigaChat вообще не даёт никакого представления, как с этим работать - там просто набор слов. Существуют даже примеры для Postman GigaChat, которые не работают. Хотя я как положено по документации включаю Bearer Token в заголовок авторизации

Дальше я решил обратиться в официальную поддержку GigaChat. Я составил подробнейшее письмо, где описал все моменты и приложил скриншоты. По работе я много обращался в разные технические поддержки, но то, что мне прислал GigaChat - я никак не ожидал

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

В итоге мне пришлось согласовать отказ от GigaChat в пользу другой нейросетевой модели. ИИ конкурентов работает отлично с gRPC.

Вопрос представителям Сбербанка и GigaChat: ребят, вам не кажется, что с таким отношением к собственной документации, с таким отношениям к клиентам со стороны технической поддержки - вашими сервисами будут пользоваться?

Многие разработчики программного обеспечения недостаточно хорошо разбираются в системах семейства Unix, хотя они повсеместно встречаются в мире разработки.

Стоит добавить, что на собеседованиях у разработчиков спрашивают (если быть точнее на первичном скрининге) вопросы по Linux: как убить процесс, как открыть все права файлу, как посмотреть сколько использовано оперативной памяти и процессорного времени, как изменить приоритет процесса и т.п.

А самый классный вопрос: "Является ли директория в Linux (обычная папка) файлом?". Кто не знает этой ОС - ответ вас очень удивит.

По оглавлению предположу, что книга даёт ответы на все эти вопросы

В браузере Google Chrome в "Инструментах разработчика" есть ещё один интересный инструмент - Lighthouse. Он сам анализирует сайт и даёт рекомендации по улучшению производильности.

Жалко, что на Хабре из 80+ статей в день, только единицы, как ваша. Мне понравилось.

Только немного не хватает про особенности ACID в СУБД SQLite - здесь нет чётко определенных уровней изоляции. В продакшене используют PostgreSQL или ему подобные с установлением уровня изоялции (буква I в ACID).

engine = create_async_engine(
            "postgresql+asyncpg://postgres:postgres@localhost/test",
            future=True,
            isolation_level="READ COMMITTED", # зависит от случая
        )

телеграмм канал «Легкий путь в Python».

Лёгкий путь в Python - это когда вы целый день занимаетесь этим. Вникаете в каждую технологию, пишите код, тестируете его, выкладываете на боевые сервера. Другого пути просто нет. Если вам это нравится, вы получаете от этого кайф - то путь для вас будет действительно лёгким, иначе...

Из этого всего следует простая мысль о том, что отказы — это нормально. Это просто часть процесса поиска работы. Не стоит воспринимать их как личное оскорбление.

Я всё ранво отказы эмоционально воспринимаю, на свой счёт. У меня так мозг просто работает. Надо отдохнуть, аффект спадёт, и потом опять в бой

1
23 ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity

Specialization

Fullstack Developer
Python
Fastapi
JavaScript
Vue.js
SQL
MongoDB