Продолжаю перевод глав из книги «Passionate Programmer», которые публикуются в блоге автора. Автор книги неординарный Чад Фаулер — известный спикер Ruby- и IT-конференций, бывший джазовый саксофонист, ныне CTO 6Wunderkinder.
Во время работы менеджером группы разработки, я как-то спросил одного из своих подчинённых: «Чего ты хочешь добиться в своей карьере? Кем ты хочешь стать?». Я был ужасно разочарован его ответом: «Я хочу быть архитектором J2EE-приложений». Я его спросил, почему тогда не «дизайнером Microsoft Word» или «инсталлятором RealPlayer»?
Этот парень хотел построить свою карьеру вокруг определённой технологии, созданной определённой компанией, в которой он не работал. Что будет если эта компания выйдет из бизнеса. Что будет если его «новенькая и сексуальная» технология станет устаревшей? Почему вы хотите доверить какому-то поставщику ПО свою карьеру?
Почему-то в нашей индустрии мы иногда начинаем дурить самих себя, предполагая что лидер рынка это тоже самое, что и стандарт. Исходя из этого, некоторые люди считают вполне естественным сделать продукт какой-то компании частью своей идентификации. Иногда происходит ещё хуже, некоторые строят свою карьеру вокруг такого продукта, который не является лидером рынка, и внезапно обнаруживают себя в удручающем положении, поэтому им не остаётся ничего иного как пересмотреть свои взгляды на дальнейшее развитие своей карьеры.
Давайте остановимся на секунду и вспомним о том, что мы должны воспринимать свою карьеру как бизнес (об этом говорится на протяжении всей книги — прим. перев.) Конечно, можно построить паразитный бизнес, например, существуют компании, которые продают свои программы, борющиеся со шпионским ПО, прикрывая кленовыми листиками неадекватную модель безопасности браузера от Microsoft. Эти компании разработчики ПО обычно адаптируются к изменяющимся правилам игры рынка (например, к таким как неожиданное изменение безопасности в браузере от Microsoft или её решению разработать свой собственный продукт для защиты компьютеров от вирусной угрозы). В то же самое время у независимых разработчиков нет достаточных ресурсов для резкого изменения направления своей карьеры.
Печальный момент в мире, сконцентрированном вокруг определённых поставщиков ПО, таков, что обычно детали реализации их программ сохраняются в тайне. Вы можете знать работу проприетарного программного обеспечения ровно в том объёме, пока не достигнете профессионального «барьера поддержки». Профессиональный «барьер поддержки» возводится искусственно между вами и решением возникшей проблемы, для того, чтобы поставщик ПО мог продать вам свои услуги по поддержке. Иногда такой барьер возводится намеренно, иногда как побочный эффект защиты интеллектуальной собственности (путём закрытия исходных кодов).
Несмотря на то что прицельная инвестиция в одну определённую технологию почти всегда плохая идея, если вы всё-таки оказались в таком положении, что вынуждены так поступать, рассмотрите вариант погружения в open source решение, которое конкурирует с аналогичным коммерческим продуктом. Например, у вас есть желание стать экспертом в серверах приложений J2EE. Вместо того, чтобы фокусировать свои усилия на нюансах конфигурирования и поддержки коммерческого решения (в конце-концов любой сможет понять как подкрутить настройки в конфигурационных файлах, так ведь?), скачайте open source сервер JBoss или Geronimo и выделите время не только для изучения их базовых возможностей, но и их внутреннего устройства.
По прошествии некоторого времени вы осознаете, что какие-то изменения произошли в вашем восприятии. Эта J2EE штука (или что бы вы ни выбрали для погружения) вообще-то не такая и особенная. Теперь вы видите детали реализации, вы видите, что есть высокоуровневые концепции и паттерны. Вы начинаете осознавать, что Java это ли или какой-то другой язык или платформа, распределённая корпоративная архитектура — это распределённая корпоративная архитектура. Ваше видение становится более всеохватывающим, а ум начинает открываться. Вы начинаете осознавать, что концепции и паттерны, сортируемые вашим
Действуй!
Попробуйте сделать небольшой проект дважды. Один раз с помощью вашей основной технологии и второй раз с помощью конкурирующей технологии, которая наиболее близка к вашей.
P.S. Ещё во время подготовки первой части перевода не мог найти более или менее подходящий хаб для публикации. Поэтому выношу на суд хабра опрос:
Автор: Myshov