Pull to refresh

Comments 43

Разница между миддлом и сениором не в знании языка, а в понимании архитектур и взаимодействия систем. А ещё в навыке ревью кода и способности сказать "эта задача - лажа, мы точно хотим это взять в работу, или тут закралась ошибка?". А незнакомое окружение можно и по документации изучить.

Так что размывает ли ИИ грань между миддлом и джуниором? Может быть да (хотя как я уже многократно тут высказывался - джунов к ИИ я бы не подпускал и рядом). Размывает ли ИИ грань между миддлом и сениором? Однозначно нет.

Так речь о том, что всё уже есть, но только с другим языком в основе. Senior из одного языка может перейти на позицию middle'а и быстро вырасти там уже до senior'а, благодаря ИИ.

UFO landed and left these words here

То, что вы сениор со знанием одного языка, скорее всего даст вам возможность работать как сениору с похожими языками. Да и то с оговорками. Потому что поначалу работать вы будете медленнее и наверняка наступите на те или иные грабли, специфичные именно для конкретных языков.

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

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

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

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

UFO landed and left these words here

Ну, может быть, вы и есть тот самый идеальный фулстек, которого мало кто видел) Но это напоминает таксистов, которые на самом деле миллионеры, а таксуют для души. Одно дело разобраться и написать, а другое дело - использовать идеоматику каждый день и знать нюансы языка, библиотек и среды, и тут производительность того, кто работает с языком, может в разы отличаться от того, кто в нем пока "джун". Чтобы выйти на плато продуктивности, нужен примерно год плотного использования. Сейчас это может быть всего лишь половиной времени "карьеры" в одной компании. Нужно ли это бизнесу, переучивать сеньора на другой стек? Может быть гугл и нанимает кого-то с прицелом на 10 лет работы, но к 95% компаний в том числе и из top tier это не вполне применимо.

UFO landed and left these words here

Я не говорю, что это сложно, в любом случае это требует времени, и бизнес не согласен его терять, если можно нанять готового спеца уже под нужный стек. Я сам в индустрии много лет, и за все это время видел только одного фулстека, который шарил одинаково хорошо во фронте и бэке. Обычно это просто Даннинги и Крюгеры. Что уж тут говорить о таких разных языках, как питон и c++. Да не будут это одинаковые сеньоры. Так же как суперсеньорный датасаентист будет делать классные алгоритмы на питоне или R, но абсолютно неприспособленные к промышленному использованию без обработки MLOps. Это мы еще домен за скобками оставляем.

Может быть гугл и нанимает кого-то с прицелом на 10 лет работы

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

Не нужен вам ИИ чтобы что-то сделать на новом языке. Документация по синтаксису и базовым концептам языка вам нужна, а так же несколько примеров по принятым best practices.
ИИ же зачастую генерирует отборный бред, но из-за незнания другого языка и его фрэймворков вам не удастся это распознать.
Разница между написанием кода самостоятельно или с помощью ИИ - это пишите ли вы сами или ревьюите код написанный AI. Ни то ни другое вы сделать не можете пока не погрузитесь в документацию.

Мне как-то нужно было перетащить около 3к строк js лапши с фронта(js) на бэк(c#), клауди сделал это без единой ошибки в логике, вылезли буквально пара косяков с маппингом динамических js структур в dynamic через JToken. Проверка - такая же точно - сгенерил тесты тем же клауди сначала на js, потом попросил переписать их на c# - сработало идеально. В саму логику особо даже не вникал, на все ушло три дня работы. Руками, без AI задача могла бы занять несколько недель. Сам по себе AI конечно же пока далек от того чтобы заменить разработчика, но мануальную работу он снимает очень хорошо.

Это кстати наверное единственный тип задач, с которым AI справляется более-менее успешно, наверное. В моём случае AI (https://huggingface.co/nvidia/Llama-3.1-Nemotron-70B-Instruct) успешно конвертировал список захардкоженных стилей в yaml-конфиг для кодогенератора. Со второй попытки.

Лично я бы не доверил ИИ задачу, результат которой я не могу провалидировить. На даже в случае с валидацией, зачастую оказывается быстрее сделать самому. Я тут честно пытаюсь прикрутить AI в мой воркфлоу, но результаты пока сугубо отрицательные, даже для тех задач где не возникло (или я пока не нашёл) проблем - сделать самостоятельно было бы просто быстрее.

Да и нет гарантии, что он не сделает что-нибудь такое (удалённые строки - код AI), а вы не заметите при ревью:

Часть реализации json-streaming на C#
Часть реализации json-streaming на C#

А без ИИ никак, да? :)

То что вам пришло предложение на позицию Senior Python/Go engineer говорит лишь о безмозглости HR. Пропасть между Middle и Senior с помощью ИИ не закроешь.

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

Разница между миддлом и сениором не в знании языка, а в понимании архитектур и взаимодействия систем. А ещё в навыке ревью кода и способности сказать "эта задача - лажа, мы точно хотим это взять в работу, или тут закралась ошибка?"

ну еще немного общаться надо уметь,

обосновать всякое бизнесу, или прослойке между тобой и бизнесом

товарищей уметь выслушать, взбодрить и направить

ИИ размывает грань между middle'ом и senior'ом?

Недостаток работников размывает грани между грейдами у работодателей.

Ага, слабенькие мидлы теперь вдруг все сеньоры.

Это в аутсорсе так, когда надо продать часы работников. Продаём работу мидлов по ценнику сеньоров.

В аутсорсе даже джунов за сеньоров выдают. Но я говорил не про аутсорс.

Always has been. Грейды это про текущее место работы. Сеньор в одной компании вполне и на джуна в другой не подойдёт. В своем же стеке.

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

Не факт, не факт, иногда копилоту говоришь "вот здесь такая-то ошибка", он извиняется, признаёт ошибку и исправляет.

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

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

Как более чем знакомый с разработкой, временами верю в магию и интеллект "на той стороне". Магия не в том, что LLM генерит (хотя и тут местами удивляет), а в том, как хорошо порой держит контекст, понимая ленивые "человеческие" фразы на уровне логики кода.

Знаю пример, чел написал приложения под андройд и айос, будучи бэкендером. Без ИИ он бы вряд ли за это взялся.

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

Кодирование и применение паттернов: сеньор ходил по граблям и знает как не наступить. ИИ получает 3 балла из 10

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

Senior – может самостоятельно принимать технические решения, разрабатывать архитектуру проекта, оценивать риски и предлагать оптимальные решения. Аналогично. 0 баллов

Senior – понимает, как его работа влияет на продукт и бизнес, может предложить улучшения, которые сэкономят ресурсы компании. Аналогично. 0 баллов

Senior – несёт ответственность за качество кода, архитектуру, менторит мидлов и джунов, участвует в код-ревью, помогает принимать стратегические технические решения. ИИ получает 3 балла за код ревью

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

Senior – умеет эффективно разбираться в legacy-коде, улучшать его, знает основы DevOps, CI/CD, инфраструктуру проекта. Пусть, 4 балла

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

Итого... Ну в общем, где LLM а где сеньор

Но если по этим пунктам ты уже сеньор, то можешь слегка ускориться используя ассистента

И да, LLM создаёт более пологую кривую входа в новые технологии, например возможность писать простой фронт силами бэк программиста

Мидл не задаёт правильные вопросы, потому что:

1. **Не осознаёт пробелы в знаниях** – думает, что проблема только в опыте.

2. **Фокусируется на коде, а не на архитектуре и бизнесе**.

3. **Привык искать готовые решения, а не анализировать варианты**.

4. **Не умеет формулировать сложные вопросы, разбивая их на части**.

5. **Не думает о компромиссах и рисках – хочет "правильный ответ"**.

🔥 **Чтобы расти, мидлу нужно менять мышление: не искать ответы, а учиться задавать правильные вопросы.**

Senior – несёт ответственность за качество кода, архитектуру, менторит мидлов и джунов, участвует в код-ревью, помогает принимать стратегические технические решения. ИИ получает 3 балла за код ревью

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

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

Если сегодня при помощи ИИ сеньор одного языка транслируется в сеньора другого языка, а получить джуна на любом языке можно из связки "не_тупой_юзер + ИИ", то что будет завтра?

А завтра то и будет, программист трансформируется в ясно мыслящего специалиста в какой-то области, не владеющего ни одним языком.

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

Открою секрет: если понять что делает код можно по обоим частям, то одна из них написана зря. Программисты стараются писать код так, чтобы он был понятен без комментариев.

Это не совсем так, верхнеуровневые комментарии (описывающие связи между компонентами и частями кода) зачастую очень полезны, долго писать почему, но об этом хорошо написано (с доказательствами и примерами) в книге a Philosophy of software design John-а Ousterhout-а о сложности ПО.

Согласен

Всё содержится в коде, но нужно снижать ментальную сложность. И для верхнего уровня, для описания дизайна системы нужно писать комментарии, краткую документацию. Пишут же ТЗ и прочие документы

Тру-программисты, видимо, обходятся без правой части. Они же и минусят. Их же, открывателей секретов, первыми и оптимизируют, полагаю

Вот тут вы не правы. Комментарии нужны в том числе и для того, чтобы описать почему используется конкретное решение. А то может быть этот костыль - единственный способ сделать нужное действие из-за багов в окружении. Был 2 года назад. А теперь окружение исправлено, и его можно спокойно снести.

Главный вывод из этой статьи, что в России уже нет спроса на .NET разработчиков.

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

Если говорить о сениорности инженера вцелом, а не сениорности знания конкретного фреймворка, то, я бы сказал, что, наоборот, ИИ увеличивает пропасть между сениором и всеми, кто ниже. Более того, ИИ ещё и обнажит несостоятельность кучи сениоров.

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

Условно, предположим, что у нас есть корпоративная BI система с лейком, DWH, сотнями джобов. Ранее нужна была вполне себе полноценная команда, чтобы с десятков сорсов стягивать данные, приводить их к единому виду, постоянно интегрировать все новые системы, которые тянут в компанию многочисленные отделы каждый день. Вот тупо нужны 10 рук, чтобы мапперы, валидаторы писать, в апи разбираться, где-то парсер админки написать, где апи нет, и держать темп этого всего, чтобы не образовывалась очередь. С ии достаточно одного человека, который будет писать промпты для o1 вида "вот пример данных из апи, вот принцип работы с апи, вот пример схемы, как я храню данные, вот код аналогичного даунлоадера, вот код аналогичного валидатора, сделай хорошо". Но этот человек должен реально понимать, что, как и зачем он делает. И, да, спросить то тоже особо не у кого.

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

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

От части с автором статьи соглашусь - если ты уже один раз сеньор - всюду сеньор. Но есть несколько но... Во первых как уже отметили, сеньор - это не про то, как кодить, а про то что и когда кодить. Во вторых есть нюансы. Личный пример: попросили быстренько накидать один проектик небольшой. Работаю я на java, знаю несколько других экосистем. Какие то лучше, какие то хуже. В этот раз решил взять питон... Писал небольшие скрипты на питоне, утилиты и даже когда-то свой фаервол поверх iptables. Но это было давно и ныне уже забыто. Так вот, взял я питон и... изматерился пока делал. Всë мне там кажется каким то не долеланным по сравнению с java. Может быть по не знанию я выбрал не самые удобные инструмееты, может быть это связано с особенностями задачи, но так или иначе я понимаю, что моих знаний не хватает, мне нужно заранее было знать где какая грабля разложена. Ну и в третьих, ии мне бы с этим не помог точно. Даже пробовать не стал. Начнем с того, что поставленные по мануалу от ms плагины для vs code работают только на половину. Банальные опечатки не подсвечиваются. То что банальный эклипс в яве видит еще при наборе, здесь требует запуска и отладки. Хотя все вокруг говорят, что питон это уже перерос и любой линтер, бла бла бла... В итоге выяснилось, что не любой, и то что рекомендует ставить майкрософт, который делал этот редактор, работает мягко говоря, так себе. А другие нужно пробовать, а это время. А откуда мне знать что взять, если я на питоне серьезно уже 15 лет не писал? Тогда линтеров вообще не было! И таких граблей было штук 10 уже на собирал. В итоге проект растянулся из одного дня уже в три, и конец только на горизонте маячит...

Sign up to leave a comment.

Articles