Выбрать главу

Области специализации:

• стек веб-разработки;

• встроенные системы;

• определенные операционные системы;

• разработка мобильных приложений;

• фреймворки;

• системы ПО.

Выбираем специализацию

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

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

• Какими были основные проблемы компании, в которой ты работаешь или работал? Можешь ли ты стать тем человеком, который способен решить эти проблемы?

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

• Какие темы чаще всего обсуждаются на конференциях или пользовательских группах?

• Если ты сидишь на сайтах вроде Stack Overflow, то на какие вопросы тебе приходится отвечать чаще всего? С какими проблемами сталкиваются твои коллеги?

Что бы ты ни делал, убедись, что ты выбрал определенную специализацию. Размер рынка поможет тебе понять, насколько узкой она может быть; постарайся сделать эту область максимально узкой. Тогда спрос на твои услуги будет намного выше. И не волнуйся: если будет нужно, ты всегда можешь сменить специализацию. Например, я больше не специализируюсь только на разработке ПО для принтеров. Я также знаком со множеством разработчиков, успешно сменивших свою специальность.

Например, мой хороший друг Джон Папа (John Papa) изначально специализировался на Microsoft Silverlight. Спустя несколько лет, когда он ушел из Microsoft Silverlight, он начал работать с одностраничными приложениями.

О программистах-универсалах

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

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

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

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

УПРАЖНЕНИЯ

• Перечисли разные виды специализаций для разработчиков ПО, которые представляют для тебя наибольший интерес. Начни от широких и постепенно сужай специализации. Сколько специальностей получилось выделить?

• Какова твоя текущая специальность? Если ты еще не определился, то подумай о том, в какой области ты мог бы специализироваться.

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

9

Виды компаний, в которых ты можешь работать

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

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