9 карьерных проблем разработчика. Часть 1

Перевод статьи, рассказывающей о ключевых моментах, которые должны принимать во внимание разработчики, ищущие заработков на конкурентном рынке.
6 минут37711

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

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

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

1. Какие преимущества дает сертификация?

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

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

Ключевой вопрос для разработчиков – есть ли реальный спрос на какой-то конкретный сертификат? Большая часть современных технологий слишком нова, чтобы подвергаться тестовой проверке, поэтому работодатели ищут другие подтверждения компетенциям претендентов. Основой рынка сертификации всегда будут инструменты вроде сертификатов обслуживания БД Oracle или поддержки Microsoft. Компании, завязанные на этих технологиях, обычно больше платят тем, кто уже продемонстрировал свои способности. Когда ваша сертификция и потребности заказчика уравновешивают друг друга, все счастливы.

Но разработчикам следует внимательно подходить к вопросу о необходимости пройти сертификацию. Ведь подготовка к экзаменам занимает длительный период времени, а вопросы часто проверяют только основной набор знаний, поскольку тестирование  проводится автоматически с помощью заранее внесенных в систему вопросов. Я сам проходил несколько таких экзаменов на проверку знаний по Java, и думал: «Знание этих фактов это забота Eclipse, а не моя!»

Кроме того, сертификаты обычно имеют ограниченную область применения. Быть специалистом в Windows XP было круто десять лет назад, но это не выручит вас сегодня— если, конечно, компания не зависнет на Windows XP до самого своего горького конца. А помимо этого  вы можете обнаружить, что  прошли сертификацию в одной из версий продукта 1.0, 1.2, 1.4.

2. В чем истинная ценность диплома в области компьютерных наук?

Если определить, стоит ли вложенных усилий сертификат по определенной технологии,  просто трудно, то решить, нужно ли вкладываться в традиционное высшее образование, - просто невозможно. Один взгляд на таких лидеров, как Стив Джобс, Майкл Делл, Билл Гейтс или Марк Цукерберг, доказывает, что диплом бакалавра не является гарантией того, что вы сможете изменить мир.  
Но традиции живучи. И в некоторых компаниях диплом бакалавра или даже магистра – это непременное условие для работы. Так проще отфильтровать резюме из кучи запросов и предложений, а также определить некоторые характеристики, не поддающиеся измерению, такие как серьезный интерес и  разносторонние знания в работе с компьютерами. Какой бы ни была причина, многие люди продолжают верить необходимость диплома, и разработчики, бросая взгляд на запросы компаний, снова и снова сталкиваются с необходимостью тратить время и деньги на получение диплома. 
Практическая ценность высшего образования весьма сомнительна. Некоторые считают, что  учебный план университетов слишком сфокусирован на теоретических вопросах об алгоритмах, чтобы принести хоть какую-то пользу в работе. А профессора больше заинтересованы тем, определять ли время работы алгоритмов полиномиальной или экспоненциальной функцией. 

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

3. Специализация или универсализация?

Хороший разработчик способен программировать на любом языке, поскольку языки — это просто «if-then-else»-образные конструкции и умные фичи для повторного использования. Но каждый программист в итоге определяется с любимым языком с его собственным набором идиом и конструкций, которые прочно оседают в его мозгу.

Сложность заключается в том, чтобы остановиться на языке, на который есть спрос на рынке. Хорошим выбором будут языки вроде Java, C++, PHP и JavaScript. Они формируют ядро технологических стеков, а, значит, будут востребованными среди работодателей.

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

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

Лучшая позиция для разработчика — наработать опыт в языке, спрос на который на рынке возрастает.  Перед выходом iPhone, Objective-C был вымирающим языком, использовавшимся исключительно для написания native-приложений под Mac. Все изменилось и потребность в  Objective-C стремительно возросла. И для каждого разработчика выбор нового языка, который в любой момент может стать популярным или уйти в небытие – всегда авантюра.


4. Стоит ли вкладываться в open source?

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

Наиболее зримым достоинством работы над open source проектами является возможность продемонстрировать код потенциальному работодателю. Никаких соглашений о неразглашении и проприетарных ограничений, которые помешают вам отправить собственноручно сделанный кусок проекта со словами: «Это написал я». Посмотреть может абсолютно любой. А если вы получили статус участника, это показатель того, что вы умеете работать в команде и знаете, как принести пользу в проект. Все это – важные умения, о которых часто забывают разработчики.

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

Многие open source проекты нуждаются в поддержке – подобная работа может быть дополнительным заработком и шагом на пути к карьере на фул-тайм. Зачастую компании  считают более выгодным с финансовой точки зрения не приобретение проекта, а адаптацию open source технологии и найм нескольких специалистов, которые бы поддерживали ее в рабочем состоянии.

Активные программисты обычно вкладываются в open source проекты на ранних стадиях их развития. Они могут тратить на них свое свободное время только потому, что проекты классные. Однако если проект становится новым Hadoop, Lucene или Linux, программисты получают возможность сделать из эксперимента работу и даже карьеру.

Источник

Продолжение следует...

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

карьерасертификацияуниверсализацияopen source
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!