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