Если ты подумал, что тебе нужно определиться с тем, какой именно адвокат нужен, то ты прав. Ты же не хочешь нанимать первого попавшегося адвоката; тебе нужен определенный человек, имеющий опыт работы в нужной тебе сфере. Например, адвокат по уголовным делам, адвокат по делам о несчастных случаях, адвокат по недвижимости и т. д.
Думаю, ты не захочешь, чтобы твои проблемы с налогами и недвижимостью решал адвокат по делам о разводе, так что специализация чрезвычайно важна. Оканчивая юридическую школу, адвокат выбирает свою специализацию, а не остается просто «адвокатом»; к сожалению, большинство разработчиков поступают ровно наоборот.
У множества разработчиков нет определенной специализации. По правде говоря, для большинства разработчиков специализация ограничивается выбором языка программирования, на котором они работают. Уверен, ты не раз слышал что-то вроде «пишу на С#» или «разработчик на Java». Но это нельзя назвать специализацией.
Из таких предложений очень тяжело понять, какую именно работу ты можешь выполнить. Я знаю, что ты программируешь на определенном языке, но каким разработчиком ты являешься? Что именно ты можешь делать?
Иногда человек боится быть привязанным к одной специальности, так как ему кажется, что он потеряет массу других возможностей, из-за этого он не хочет специализироваться на одной области разработки ПО. И хотя часть возможностей для тебя действительно будет недоступна, обязательно откроются новые.
Давай снова вспомним пример с адвокатом. Если ты стал просто адвокатом, то чисто теоретически каждый человек будет твоим потенциальным клиентом. Но вот проблема: люди не хотят покупать услуги обычного адвоката. Большинству требуются настоящие специалисты.
Если ты станешь специалистом, то у тебя будет намного меньше потенциальных клиентов, но зато они увидят в тебе профессионала, и им захочется купить твои услуги. И пока твою специализацию не выбрало много других разработчиков, у тебя не будет никаких проблем с поиском работы или клиентов.
Но если «разработчик Java» или «разработчик С#» не специализация, то что можно считать ею? Это довольно сложный вопрос, потому что ответ звучит так: «Все зависит от обстоятельств». Твоя специальность зависит от твоих целей и от рынка, на котором ты работаешь.
Давай рассмотрим еще один пример. Когда я только начинал карьеру, я называл себя «разработчиком ПО, специализирующимся на принтерах и принтерных языках». Очень… четкая, узкая специализация. В итоге я мог получить работу только в нескольких крупных компаниях. Но только представь, как производителю принтеров тяжело найти разработчика, специализирующегося на принтерах и языках для него.
Так я стал очень важным и ценным специалистом для определенного числа потенциальных работодателей. У этих работодателей не было представительств во многих городах, так что рынок покрывал весь мир только США, но он все равно был достаточно велик для того, чтобы моя специальность была полезной. Но если бы я не захотел переезжать с того места, где я тогда жил, то рынок моих услуг был бы слишком узким – скольким местным компаниям нужен разработчик с такой специализацией?
К счастью, тогда я был готов постоянно переезжать и работать в любом городе США, так что я смог извлечь из этого выгоду.
ПРИМЕЧАНИЕ.
Давай вернемся к твоей ситуации. Допустим, что ты ищешь работу в своем городе и ты Java-разработчик. В большинстве городских агломераций спрос на Java-разработчиков довольно высок, так что у тебя не будет проблем с поиском работы – ты получишь множество предложений от местных компаний. Но тебе нужно всего лишь одно рабочее место, а не множество.
Давай представим, что в твоем городе есть 500 свободных рабочих мест. Теперь представим, что ты решил сузить свою специализацию и выбрал область веб-разработки на Java. Возможно, теперь около 250 рабочих мест для тебя недоступны, но у тебя все еще есть остальные 250 мест. Довольно много, да? Помни, что тебе нужно только одно из них.
Специализация уменьшает количество потенциальных вакансий, но повышает шанс устроиться на одну из них
Разработчикам ПО доступно множество разнообразных специальностей. Конечно, можно выбрать специализацию на основе языка или платформы, на которой работаешь, но также существуют специальности на основе используемых методологий, технологий или отрасли работы.