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

Давай снова вспомним пример с адвокатом. Если ты стал просто адвокатом, то чисто теоретически каждый человек будет твоим потенциальным клиентом. Но вот проблема: люди не хотят покупать услуги обычного адвоката. Большинству требуются настоящие специалисты.

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

О выборе специализации

Но если «разработчик Java» или «разработчик С#» не специализация, то что можно считать ею? Это довольно сложный вопрос, потому что ответ звучит так: «Все зависит от обстоятельств». Твоя специальность зависит от твоих целей и от рынка, на котором ты работаешь.

Давай рассмотрим еще один пример. Когда я только начинал карьеру, я называл себя «разработчиком ПО, специализирующимся на принтерах и принтерных языках». Очень… четкая, узкая специализация. В итоге я мог получить работу только в нескольких крупных компаниях. Но только представь, как производителю принтеров тяжело найти разработчика, специализирующегося на принтерах и языках для него.

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

К счастью, тогда я был готов постоянно переезжать и работать в любом городе США, так что я смог извлечь из этого выгоду.

ПРИМЕЧАНИЕ. Правило специализации гласит: чем уже твоя специализация, тем меньше потенциальных рабочих мест и больше шанс получить работу.

Давай вернемся к твоей ситуации. Допустим, что ты ищешь работу в своем городе и ты Java-разработчик. В большинстве городских агломераций спрос на Java-разработчиков довольно высок, так что у тебя не будет проблем с поиском работы – ты получишь множество предложений от местных компаний. Но тебе нужно всего лишь одно рабочее место, а не множество.

Давай представим, что в твоем городе есть 500 свободных рабочих мест. Теперь представим, что ты решил сузить свою специализацию и выбрал область веб-разработки на Java. Возможно, теперь около 250 рабочих мест для тебя недоступны, но у тебя все еще есть остальные 250 мест. Довольно много, да? Помни, что тебе нужно только одно из них.

Специализация уменьшает количество потенциальных вакансий, но повышает шанс устроиться на одну из них

Виды специализаций для разработчиков ПО

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

Сначала тебе нужно определиться с тем, чем именно ты хочешь заниматься. Ты хочешь заниматься фронтенд-разработкой приложений, создавая и разрабатывая пользовательские интерфейсы? Ты хочешь разрабатывать связующее программное обеспечение, реализуя бизнес-правила и логику? Или ты хочешь стать бэкенд-разработчиком и работать с базами данных и низкоуровневыми операциями? Ты можешь выбрать все три варианта и стать фулстек-разработчиком, но в таком случае тебе нужно определиться с определенным стеком технологий. Например, фулстек-разработчик может специализироваться на создании ASP. NETMVC сайтов, используя С# и SQL Server.

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

Еще одна специализация – это операционные системы. Бо́льшая часть разработчиков пишут приложения и программы для определенной операционной системы, например Windows, UNIX или MacOS.

Разработка мобильных приложений или разработка мобильной операционной системы – это тоже потенциальная область специализации. Спрос на разработчиков, занимающихся написанием приложений на iOS или Android, очень высок.

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