Нередко в текстах вакансий ИТ-специалистов можно увидеть требование "Java: опыт работы 6 лет" или подобное.
С одной стороны, можно понять: чем дольше человек работал по своей специальности, тем лучше. Но что может получиться на самом деле?
1. Смена технологий
Вот скажем, у меня есть опыт работы с Flash в несколько лет. Но за это время Flash менялся три раза. Есть три варианта языка ActionScript, и они несовместимы друг с другом. Если бы я начал работать с Flash гораздо позже, с актуальной версии ActionScript 3 и со средой FlashDevelop, то мой прогресс был бы практически таким же, или даже лучше – потому что меня не тормозил бы устаревший функционал.
Аналогичное можно сказать про язык PHP, который прошёл этапы развития в виде версий 3, 4, 5, 7 и 8. При сохранении общего синтаксиса каждый раз получался фактически новый язык. Таким образом, стоит ли считать важным опыт программирования на PHP 10 лет?
Можно вспомнить и про Python, и про Javascript, и другие языки. И чтобы не останавливаться только на программировании, упомянуть такие пакеты, как 3D Studio, Maya и Blender, и базы данных, например, Oracle и Postgres.
2. Качество опыта
Хорошо, давайте представим, что есть такие сферы, где технологии долго не меняются.
Значит, человек, проработав там 10 лет, может получить хороший опыт? Но что именно он делал?
Человеку свойственно шаблонизировать то, что он делает. Это значит, что сделав один сайт, я затем сделаю ещё 10 таких же. Если я освою один фреймворк, я буду делать на нём все проекты, до которых дотянусь. Это в общем-то нормально – зачем усложнять то, что и так хорошо получается?
Но изучение фреймворка или создание сайта занимает, допустим, один год, а дальше что? Дальше всё просто повторяется, причём зачастую – не думая, по привычке. Почему надо делать именно так, можно даже и забыть, но продолжать делать.
Следовательно, и тут долгий срок работы не даёт никаких преимуществ. Повторение пройденного это не приобретение нового опыта.
3. А саморазвитие?
Постойте, скажете вы, но зачем делать одно и то же много лет? Разве нельзя осваивать новое, развиваться и вот это всё? Можно, конечно. Только именно на работе (которую вы впишете в пункт вашего резюме) возможностей для этого очень мало. Никто не станет переписывать проект с огромной кодовой базой, который был в разработке несколько лет, только из-за того что появился какой-то новый прикольный стек, который надо освоить.
Фактически, такая возможность существует только тогда, когда начинается новый проект. Но для этого ваша работа должна подразумевать некий конвейер, где примерно каждый год-два появляются новые проекты. Да и то, нужны будут большие усилия, чтобы не продолжить делать их по старым наработкам – ведь это проще, и значит дешевле.
Заключение
Большой срок работы это чаще всего плюс. Главное – не рассматривать его в отрыве от остальных аспектов. Большой срок не играет роли, если он потрачен на старые технологии, или на повторение одной и той же задачи в разных вариантах.
Оптимальным временем я считаю 3 года. Минимальное время, чтобы освоиться со стеком технологий это для меня один год. Не нужно путать "смог написать Hello World", на что нужна от силы неделя, с конкретным погружением в технологию. За это же время поднимается с нуля какой-нибудь стартап.
Дальше можно его полировать, масштабировать, устранять проблемы и ошибки архитектуры, разбираться с неочевидными применениями технологии и т.д. Всё это также повышает опыт, а зачастую делает его бесценным. Потому что важнее именно умение решать возникающие проблемы, чем что-то начинать с нуля. На это может уйти ещё год или два.
Ну и конечно, тут не перечислить многих "но", таких как особенности конкретной разработки или индивидуальные качества человека. Всё может сложиться по-разному, поэтому ещё раз повторюсь – срок это один из критериев, но не решающий без других.