Гибкие навыки. Исчерпывающее руководство по прокачке себя для начинающих разработчиков — страница 15 из 82

13Не поклоняйся технологиям

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

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

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

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

Все мы обожествляем технологии

Да, это правда. Ты можешь предпочитать определенные технологии или язык программирования, который кажется тебе лучше остальных. Кстати говоря, так считает бо́льшая часть программистов. И это совершенно нормально. Мы всегда с энтузиазмом и увлеченностью относимся к тому, чем занимаемся, и везде, где присутствуют эти два чувства, могут возникнуть жаркие споры. Яркий пример – профессиональный спорт.

Проблема заключается в том, что бо́льшая часть нас, разработчиков, религиозна по отношению к определенным технологиям. Почему?

Потому что это то, что нам знакомо, с чем мы постоянно имеем дело. Совершенно нормально считать, что наш выбор – лучший, так что мы очень часто негативно реагируем на противоположные мнения и высказывания. Мы не можем достаточно хорошо знать обо всех технологиях, так что мы не можем решить, какая из них лучшая; мы просто выбираем то, что нам знакомо, и считаем свой выбор единственно правильным, иначе наша жизнь была бы очень сложной.

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

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

Плохих технологий не существует

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

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

Как я прозрел

Довольно долгое время я относился к технологиям с большой религиозностью. Я мог тратить бессчетное количество времени на споры о том, почему Windows лучше MacOS. Я возмущался и пытался всем доказать, что C# и остальные статически типизированные языки намного лучше динамически типизированных языков, например Perl и Ruby. Иногда я – мне стыдно в этом признаваться – проклинал других разработчиков, считавших иначе. Да как они посмели верить во что-то другое и не соглашаться со мной?

Поучительный опыт я получил, когда меня попросили стать тимлидом для проекта, написанного на Java. До этого я был разработчиком. NET и специализировался на работе с C#. Ладно, не совсем так. Я превозносил С++ еще до того, как появился. NET. Честно говоря, мне не нравилось работать с Java. Он мне казался каким-то грязным и несуразным, особенно в сравнении с аккуратным С#. Как мне могло понравиться писать на Java, если я даже не мог использовать лямбда-выражения?

В конце концов я принял предложение о работе. Это было довольно выгодное предложение, и я подумал, что я могу потерпеть год, тем более что это была работа по контракту. И знаешь что? Решение принять эту работу было одним из лучших за всю мою карьеру. Работа с языком, который я ненавидел, помогла мне открыть глаза на остальные технологии. Оказалось, что Java – вполне себе нормальный язык программирования. И я понял, почему некоторые разработчики предпочитают использовать Java вместо C#.

За несколько лет работы над этим проектом я узнал больше, чем за весь отрезок карьеры перед этим. Я открыл для себя множество новых возможностей решать задачи, которые до этого были для меня невыполнимы.

С тех пор я начал мыслить шире, и после опыта с Java я даю шанс каждому языку программирования, даже динамическим языкам, и это помогло мне стать лучшей версией себя. Я отказался от привычного мнения об операционных системах, фреймворках… Сначала я пробую что-то новое, а потом уже составляю мнение. Если бы не этот полезный опыт, то, быть может, я даже не написал бы эту книгу, а если бы и написал, то ее название было бы «Почему С# – самый крутой язык, а все остальное – полный отстой».

Не ограничивай себя

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

УПРАЖНЕНИЯ

• Составь список любимых технологий.

• Почему ты выбрал именно эти технологии? Обоснуй свой выбор. С какими продуктами ты сравниваешь свои любимые технологии? Пользовался ли ты ими когда-нибудь?

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

14Как уйти с работы и начать работать на себя

Долгое время у меня была мечта – уйти с работы и начать работать на себя. В корпоративном мире мне было некомфортно, и я понимал, что в одиночку я буду намного продуктивнее. Но была одна проблема: как именно это сделать?

Я не был знаком с людьми, прошедшими такой путь, так что у меня не былого четкого представления, что делать. Все, что я понимал, – что я глубоко несчастен, если работаю на другого человека.

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

Уходим с работы по-умному

Хочешь узнать самый простой способ уволиться и начать работать на себя? Ну, смотри. Завтра зайди в офис начальника и скажи ему, что увольняешься. Все, больше ничего делать не надо. Надеюсь, что у тебя есть небольшая подушка безопасности, потому что после увольнения ты будешь предоставлен сам себе. Желаю удачи.

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

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

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

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

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

ЛОВУШКА: Я УЖЕ БРОСИЛ РАБОТУ, НО У МЕНЯ НЕТ НИКАКИХ НАКОПЛЕНИЙ… ЧТО ДЕЛАТЬ?

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