Сегодня разработчики находятся в состоянии постоянного давления. Желание добиться высокого уровня владения новыми языками и инструментами, боязнь однажды выпасть из информационного потока может затмевать всё. Действительно, с риском потери конкурентоспособности сталкиваются как программисты, не следящие за тенденциями и движениями индустрии, так и постоянно читающие технические новости для ориентации: какие навыки выучить при наличии времени, какие игнорировать, какие методы следует использовать.
Первым инстинктом изучающего что-то новое обычно является поиск хороших ресурсов в интернете и, возможно, приобретение пары книг. В дополнение к чтению вы можете найти слайды и видео, статьи и блогпосты, или даже посетить живые встречи или конференции. Я видел сотни инженеров (состоявшихся и джуниоров), проводящих огромное количество времени за чтением о разных языках и инструментах, со многими из которых они могут никогда не иметь дела профессионально. Некоторые даже читают с целью получения сертификата, который, по их мнению, продемонстрирует их мастерство в новом навыке.
Видел я и других разработчиков, склонных учиться в иной манере. Они также немного читают (обычно документацию продукта и краткое руководство) и сразу переключаются на более практический подход. Как только они приобретают базовое понимание языка или инструмента, они пытаются что-нибудь создать.
Как менеджер по кадрам, я встречался с кандидатами, которые быстро изучали новый язык (используемый потенциальным работодателем) и решали какую-нибудь проблему из тех, что часто задают на интервью, или даже разрабатывали простое приложение в репозитории GitHub. В качестве лидера группы пользователей Java, я сталкивался с докладчиками, которые собирали простое приложение для знакомства с демонстрируемым фреймворком и показывали его работу. Целью презентации может являться «Я думаю, X выглядит круто. Я с этим не работал, но почитал и написал кое-что для демонстрации опыта работы с X. Я буду готов в течении месяца.»
По-видимому, многим нравится читательская часть обучения, но они слишком на ней концентрируются и никогда не создают чего-либо. В основном это характеризует выпускников вузов, имеющих богатый опыт работы в стенах университета, но очень мало времени проводят в действии. Даже если написанное вами абсолютно бесполезно для мира, ваше создание имеет значение. Изучение на практике не новая идея, и образовательное значение очевидно. Какие ещё преимущества это даёт?
Конкурентоспособность и преимущества интервью
Написать этот пост об обучении по книгам меня побудил обзор трудоустройств после моих собеседований за прошлый год. Разработчики, которым я помог устроиться на новую работу, имели (за редкими исключениями) одну общую вещь — портфолио продуктов и кода. Десять или пять лет назад это было редкостью, но сегодня стало нормой. Разработчики под Android и iOS могли показать по крайней мере одно приложение, доступное для загрузки. Web-разработчики демонстрировали сайты и сопровождающие примеры кода. Даже специализирующимся на back end программистам было что показать на интервью.
Наибольшее значение «практического обучения» и портфолио, вероятно, можно увидеть в среде мобильных приложений. Сложно продать себя как мобильного разработчика, если у вас нет хоть какого-нибудь приложения для демонстрации, а первым вопросом, задаваемым мобильным разработчикам, обычно является «Есть ли у вас приложение?». Разработчикам программного обеспечения во многих других областях, как правило, подобные вопросы не задают и не оценивают их по такому принципу. Проще говоря, мобильные разработчики знают, что в большинстве случаев владение доступным приложением делает их более продаваемым.
Программисты, работающие в более безопасной среде, например, создающие защищенные системы или финансовое ПО, часто не могут показать работающий пример при устройстве на работу. Без возможности показать свои прошлые работы и без персональных проектов, такие кандидаты чаще подвергаются вопросам о языке и интервью в стиле игрового шоу, которого боятся многие соискатели. Продаваемость может быть больше связана с опытом и произвольной оценкой навыков, вместо демонстрации достижений таких кандидатов.
Преимущества интервью
Владение портфолио даёт интервьюируемому особое преимущество, поскольку он обладает некоторым контролем над возникающими вопросами. Придя на интервью с пустыми руками, соискатель рискует утонуть в потоке вопросов. Наличие рабочего примера почти гарантированно сведет часть собеседования к его обсуждению. Можно надеяться, что автор кода окажется в лучшем положении, так как ему будут задавать вопросы касательно его примера, а не вопросы на случайные темы. Даже разработчики со средними способностями могут увидеть повышение производительности на интервью с темой, касающейся их кода.
tl;dr
Читайте достаточно, чтобы начать работать, и пишите что-нибудь. Не задумывайтесь, изменит ли это мир. Сохраняйте написанное и улучшайте его время от времени. Приносите код на интервью и практикуйтесь рассказывать о своих творениях.
Автор: JIghtuse