Обновить

Сегодня нет джуниоров, а в 2031 году не станет и синьоров

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели11K
Всего голосов 16: ↑13 и ↓3+13
Комментарии37

Комментарии 37

ИМХО нельзя получить старшего инженера через ученичество. Старшими становятся на сложных нетипичных задачах, которых не так чтобы много (по сравнению с прочими). Ну и не каждый справится/хочет справляться с ними.

плюсую

опытный разработчик это от слова ОПЫТ

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

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

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

Замените в тексте статьи “ученичество” на “набор опыта”. Там предыдущее же предложение “не в рамках обучения в классе”.

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

Джун Вася наткнулся на вопрос, который не решился с ходу, и тут же спросил синьора. Синьор ответил, Вася вопрос решил и тут же забыл. Завтра он снова наткнулся на этот вопрос. Синьор был терпелив, и через месяц Вася наконец запомнил решение.
Джун Петя был гораздо упрямее Васи. Он не спросил синьора вообще, разбирался с вопросом месяц, но наконец решил его самостоятельно. И запомнил решение с первого раза.
Джун Федя столкнулся с тем же вопросом, два дня пытался решить его сам (что позволило ему хорошо запомнить вопрос), а потом спросил синьора. На третий день он задумался над следующим вопросом.

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

Есть для этого термин - tacit knowledge.

Опыт (без tacit knowledge ) - немного про другое. Скажем, это про то, что ты выучил git по книжке, все работает, но только при реальной работе над сложным проектом ты вдруг оказывается в какой-то сложной ситуации, где все пошло не так, запутано, ничего не работает, не коммитится и непонятно что делать. Но ты разбираешься как-то и получаешь новые знания. Так вот эти знания - они не tacit knowledge, это обычный knowledge. Их можно выразить на бумаге и дать в формате урока - просто обучение обошло этот момент (не все темы стоят того, чтобы тратить на них время).

А вот tacit knowledge - это невыразимое знание. Непередаваемое. Ну или сложновыражаемое, сложнопередаваемое. Даже описать это знание сложно, ведь все что могу описать без потери смысла, а вы сможете однозначно прочитать и понять - это уже не tacit knowledge.

Но хороший пример - вождение. Вспомните, как вы резко бросали сцепление в первые разы и как сейчас водите попутно разговаривая, отслеживая и обгоняющие машины и знаки и светофоры - даже особо не включая голову. Но это физиологический навык, близкий к мышечной памяти. Tacit knowledge - не только про это. Он получается при опыте, но он - маленькая часть опыта. большая часть опыта - явное знание.

нельзя получить старшего инженера через ученичество

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

Фух, даже описание причинно следственных связей длинным получилось

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

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

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

это если другой джун существует
а если конкурент сэкономит средства на выращивании джуна и скупит уже выращенного?

когда выращенные закончатся, начнут снова своих растить.

нет. своих начнут растить только когда введут крепостное право. Без этого джун - ничейный. свой собственный. мамин и папин.

Почему неверно? Точки затрат разные. Если вы сильно вкладываетесь в джунов в период их обучения, то когда то эти деньги должны отбиваться - это и есть период низких зарплат после обучения. Если они не отбиваются (джун сразу после обучения переходит в компанию с зп повыше, но не вкладывающей в джунов), то ваша компания в проигрыше относительно тех, кто не вкладывается и ждет готового джуна. И вы тоже перестаете этим заниматься. И так весь рынок пытается сместить обучение “на соседа”, а так как “соседи” сильно сокращаются, то в реальности обучение ложится на работника, что делает входной барьер в профессию на порядки больше и дороже.

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

 деньги должны отбиваться - это и есть период низких зарплат

попытки сразу отбить вложенные деньги недоплачивая - фундаментальнейшая ошибка, которая и разваливает прекрасную идею ученичества. возможно стоит воспринимать эти потраченные средства как инвестиции в "подготовку производства" ,как если мы заплатили за будущую лояльность, за то что человек у нас прижился, за то что мы "воспитали под себя" итд итп. мы ж не пытаемся вывернуть средства ,потраченные на найм+адаптацию сотрудника (в исследованиях часто указывается что это 3-5 его зарплат) сразу начиная ему недоплачивать (ну мы ж потратились, давайте отобьем). так и тут. конфликт подходов - воспитывая джуна, мы вроде-бы начинаем играть вдолгую. а недоплачивая ему сразу после того как он вроде бы начал работать - наоборот, как в анекдоте, сразу начинаем выкапывать вчера посаженную картошку, потому что есть хочется ))

Согласен. Но пару уточнений добавил бы.

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

Второе интереснее: На мой взгляд, программист - это особая профессия (внимание) НЕ ТРЕБУЮЩАЯ ОБРАЗОВАНИЯ (я не сказал "не требующая знаний"). Хоть я и учился на программиста (в том числе Pascal и FoxPro), но по-моему опыту IT - слишком динамичная сфера и ближайшие лет 200 такой и будет. По крайней мере события последний нескольких лет (с LLM) показывают, что значительные изменения в ней еще происходят.
В отличие от работы электрика, сантехника и сварщика (там тоже нужны знания и тоже иногда нужно учиться новому) - в IT нужно много учиться самому и постоянно.
Поэтому самый важный фактор в программисте, на мой взгляд - самомотивация и способность самообучаться. Читать книжки. А универ - это место где за тебя читают книжки вслух, чтобы ты глазки не перетрудил.

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

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

Ваш джун уходит к другим, значит чужой джун придёт к вам

их не интересует приход чужого джуна, а только уход своего

когда он "созреет" просто уйдёт в другое место

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

Успешный менеджер с сильной аурой просто вообще не будет нанимать джуна, и решает сразу весь скоуп рисков ))))) /s

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

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

Вымирающий вид взывает экономику продолжать сжигать кэш в фоте. Я только не слышу сеньеров Пауэр поинт , которые вплоть до 2014 были сливками бизнес процессов. И вас вылечат ;)

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

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

 Дело в обратной связи. Вы учитесь быть старшим инженером, когда ваш запрос на слияние подвергается критике на этапе проверки, и вам приходится защищать выбранное вами проектное решение. Отлаживая производственный инцидент в 2 часа ночи, когда не у кого спросить, когда LLM либо не существует, либо не знает вашу систему. Или беря на себя ответственность за функцию, режим отказа которой вы не предвидели, составляя отчёт о сбое с вашим именем наверху, сидя в кабинете руководства и объясняя, почему миграция не удалась.

Что мешает использовать ИИ для получения такого опыта?

Чтобы ИИ просмотрел ваш код - и выдал вам критику.

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

Нужно крайне критически подходить к генерируемому LLM коду и даваемым им советам -требовать объяснить, что и как он делает, привести к удобочитаемому виду если он выдаёт вам код в стиле Brainfuck, обосновать необходимость каждого действия, обосновать достаточность его, потребовать найти потенциальные проблемы и объяснить как их находить...

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

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

А чем поможет вам “неверный совет”, который родился из-за того, что LLM перепутала одну программу с другой (вот перемешалось у нее в голове и она пытается рассказать о параметрах, которых никогда не существовало)? Ну поймете вы через энное время, что она спутала и что? кмк, никакой ценности этот опыт не несет.

Положим, у человека такая путанница тоже случается. Сам таким бываю, особенно с устатку и не емши "а, пардон, попутал, на самом деле другое".
То есть конкретно это - не уникальная для сеток проблема.

А вот что сетка не прибежит потом сама "я там напутал, погоди, сейчас поясню" - это да.

Буквально вчера смешная ситуация:

Просят - добавь там на сервере в настройках mariadb в sql_mode NO_ENGINE_SUBSTITUTION.

Я (работая с этим заказчиком на его проектах довольно давно, и никогда не сталкивавшись с NO_ENGINE_SUBSTITUTION, а еще увидев, что он и так есть в этой переменной) заподозрил, что происходит что-то интересное и начинаю интересоваться, а чего вообще они там делают и почему им вдруг это понадобилось?

Оказывается, они там в поле длиной N вставляют строку длиной >N. И ожидаемо получают ошибку. И нейронка такая: а сделайте sql_mode=NO_ENGINE_SUBSTITUTION .

Но что самое смешное - это работает!! Поэтому меня и попросили зафиксировать успех в конфиге. (и на этом этапе можно считать совет от нейронки годным и сдавать код в продакшн). Хотя для решения этой проблемы важна STRICT_TRANS_TABLES, а NO_ENGINE_SUBSTITUTION - вообще не про это совершенно. Почему же работает? А потому что STRICT_TRANS_TABLES включена по дефолту (как и еще несколько опций в длинном значении sql_mode), а наше присваивание, отключает все опции, оставляя только одну NO_ENGINE_SUBSTITUTION. Ну и нужную опцию она тоже отключает - вот и работает.

Итого:
1. Заподозрил что-то странное я благодаря чутью жопой
2. Совет от нейронки неправильный по сути, был правильным с формальной точки зрения (отрезав голову - решаем проблему с больным зубом). И он вполне мог устояться в коде и даже в привычках принося загадочные проблемы в будущем.
3. Программист, много полагающийся на нейронку начинает воспринимать IT как магию с заклинаниями не имеющими смысла, вроде чтобы запустить веб-приложение на порту 8888 вместо дефолтного - запустите ./app --help. Нормально, ну а чо? Если мы строгий режим в mariadb отключаем играясь с опцией подстановки энжинов, то и задавать порт через --help тоже логично.

LLM перепутала одну программу с другой (вот перемешалось у нее в голове и она пытается рассказать о параметрах, которых никогда не существовало)?

Байки из 2021 года о том, что LLM что-то там выдумывает. Попробуйте платные модели от антропик уже, наконец. Всё уже давно пофикшено, почти в 100% случаев ИИ пишет правильный код.

Чтобы ИИ просмотрел ваш код - и выдал вам критику.

Ну банально потому что качество решений ИИ такое себе. Плюс он пасует на реально сложном :)

4 месяца работаю с Claude Code с подпиской за 200$, 50 000 строк вмерджено и ни одной не написано руками. Что вы тут хотите рассказать про "качество решений ИИ такое себе" и "пасует на реально сложном"? Про какие ИИ речь? Про бесплатные чаты? ИИ уже используют гиганты типа MS, а вы всё тут рассказываете байки в духе "ИИ такое себе".

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

Что вы тут хотите рассказать про “качество решений ИИ такое себе” и “пасует на реально сложном”? Про какие ИИ речь?

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

Насчет пасует. Если у ИИ нет решения в той выборке что у него есть, он будет пороть чушь. Как пример задачи, есть такая вообщем вещь как Canonicalization в подписи XML документа. Для нее не так много примеров в открытом доступе и они скажем не очень точные. В итоге ИИ при написании порет чушь.

Если у вас все работает и вы 50к смерджили и все работает, ну значит ничего сложного в них нет.

ИИ уже давно “не такое себе”, критика кода, которую выдают те же модели от Антропик, можно считать просто потрясающей - за несколько сессий можно добиться просто великолепного кода.

Если для вас ИИ выдает великолепный код, то у меня для вас плохие новости.

Это все меркнет, на фоне планов крупных компаний перейти на 90, а то 100% генерацию кода в ближайшие год-два с помощью ИИ, заявлен вообще конец 2026, шляпа конечно, но тенденция однако. Боюсь, что лет через 5, людей способных понять, что там нагенерил этот ИИ, придется искать с факелом. Если конечно, к тому времени, вообще будет кому искать).
P.S. Человечество в принципе всегда стремилось залезть в задницу, но скорости последних лет, внушают.

Вернее - не станет тех кто пишет код. Аппараты заменили тех кто разливает напитки. Но те кто рецепты изобретают - не пропадут. Мне ИИ ничего не сказал такого, чего раньше не было известно. И И - продвинутый сортировщик данных, не больше

чего раньше не было известно КОМУ? вам или человечеству?
Потому что мне ИИ регулярно говорит вещи, которые я не знаю (я у него и спрашиваю лишь то, что не знаю). Это такой немного бестолковый супер-эрудит, который знает почти все. (а в мою маленькую и нерезиновую голову много знаний не влазит).

Для технических руководителей и штатных инженеров. Вы — это ваше ученичество. Выделите два часа в неделю в календаре для наставничества

Хмм.. никто чёто не написал очевидного, вот я тех.руководитель и инженер, почему я вдруг должен учить персонал в конторе с оглядкой на 30 год? мне от этого лично какой прок то? за державуотрасль обидно чтоли?

Я блин напрямую замотивирован баблом этого не делать, меня через 5-10 лет схантят с повышением ЗП на 100-200% просто потому что сеньоров/техлидов/архитекторов было мало, а станет еще меньше.

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

===

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

Посмотрим, что будет через 5-10 лет.
Пока что рынок проваливается, и приходят в личку такие "шикарные" предложения:

(закрыл имя компании что б уж сильно не позорить)
(закрыл имя компании что б уж сильно не позорить)

Индустрия меняется, делать прогнозы на 10 лет, это как тыкать пальцем в небо. Тут не ясно, что через год-два будет...
Но вот интересно, но почему "сокращение набора  младших специалистов сегодня" выливается в "отсутствие старших" через 10 лет? Куда денутся те, кто нанимается сейчас? Рассосутся, что ли?

Кажется это очередная дичь в стиле "ИИ нас всех заменит". Почему не рассматривается вариант например, что народ начинает понимать, что ИТ сфера перенасытилась и просто перестают сюда идти?

С другой стороны - для олдовых сениоров это же хорошо. Все будут как 80-летние кобольщики и просить много денег.

Да и как бы 2031 год уже через 5 лет, бумеры даже еще работают, поколение X тоже, миллениалы тем более, массово на пенсию не собираются, помирать тем более.

"запрос на слияние"... не проще PR написать или "пул реквест"? тут все-таки целевая аудитория

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

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

Пётр замер.

— Что это, Фома? — обратился он к соседу, который правил своей лошадкой по соседней борозде.

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

— Значит, нас заменят, — тихо сказал Пётр. — Нас с Зорькой… и тебя с Буланым. Куда же мы теперь? Неужто больше не нужны?

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

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

— Пётр, давай подумаем, что будет лет через десять-двадцать. Сейчас трактор — один, диковина. А вдруг они заполонят все поля? Земля большая, нас много, а трактор один сто человек заменяет. Кто же тогда будет пахать? Мы разгоним всех мужиков по городам? Или новых крестьян где-то вырастят?.. Ведь лошадь рождает лошадь, а трактор не рождает трактора. Его делает мастер на заводе. Значит, и крестьянина нового не родится…

— О чём ты? — не понял Пётр.

— Вот чего я боюсь по-настоящему, Пётр. Не того, что нас выгонят с земли. А того, что наши дети никогда не узнают, что такое править лошадью в зной... и много чего ещё.

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

Первое. Чувствовать ногами землю. Когда идёшь за плугом босиком и понимаешь: тут жирный чернозём, тут песок, тут камень притаился. Трактору этого не дано.

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

Третье. Знать, когда лошадь устала. Не по часам, не по шагомеру — по дыханию, по тому, как уши прядает, как копыто переставляет. Машина не почувствует живую усталость.

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

Пятое. Распознать семя на глаз. Какое взойдёт, какое нет. Какое болеет, какое здорово. У нас деды так делали, и мы будем. Лабораторий не напасёшься на каждое поле.

Шестое. Собрать всей семьёй первый сноп. Связать его, принести в дом, поставить в красный угол. Это не работа, это обряд. Машина обрядов не придумывает.

Седьмое. Передать сыну поводья. Не купить трактор, не нанять механика, а именно взять за руку, посадить в седло и сказать: «Поехали, тут прибавь, тут осади». Этому никакой учебник не научит. Только живой человек.

...Да я и десять назову, и двадцать. Всё то, чем мы живы, Пётр. Всё то, чем земля держится.

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

Проблема джунов и их развития на моей памяти где-то с 2010 года. Разработка была другая, было больше свободы и доступа к проду, было меньше информации, больше ошибок. И софт был разный, со своими особенностями, и клиенты за нужные им функции платили лояльностью и обратной связью. Были стартапы где тоже можно было опыта получить. Потом все стало одинаковое, и началась погоня за девятками стабильности, контуры доступа, всякий маркетинг и сео. В таких условиях опыт особо не получишь, прод сам не сломаешь, сам не починишь, сидишь в песочнице из линтеров, чекеров, тестов. Сейчас опыт можно получить только в крупных компаниях. И есть такое ощущение, что роль кузнецы кадров на себя возьмут стартапы, и их будут покупать не из-за перспективной идеи, а из-за собранной и сработанной команды.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации