Страстная увлеченность разработкой: нужна ли она вам?

1
1197
views

Перевод статьи «Do you need passion? (as a developer)».

В сфере разработки увлеченность — это концепция, оказывающая безумное давление на многих людей. Вы постоянно о ней слышите. Вы видите упоминание о ней в каждом объявлении о вакансии — как непременное требование. Если ты недостаточно увлечен, то тебе здесь нет места. Все понял?

Тирания увлеченности

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

Если вы не работаете еженощно над личным проектом, вы не настоящий разработчик. Не писать код после работы — позор. Из-за такого отношения вы просто никому не говорите, что разработка — не единственное, что есть в вашей жизни. Это ваш маленький секрет.

И многие воспринимают эту тиранию как должное. В качестве главного аргумента тут выступает сложность профессии. Чтобы преодолеть все трудности, нужна настоящая, жгучая, безумная страсть к программированию. А чтобы стать «хорошим разработчиком», потребуется еще больше страсти.

Но, как всегда, все дело в нюансах.

50 оттенков увлеченности

Прежде чем спорить на тему увлеченности, нужно согласовать само определение.

Увлеченный разработчик живет кодом, думает о коде, питается кодом всегда и везде, причем бесконечно. Это настоящая одержимость. Сетка коммитов на GitHub у такого разработчика просто безумная. Чувак, а тебе что мешает так кодить?

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

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

Но это увлеченный разработчик. А есть еще общая масса.

Я вот как раз принадлежу к общей массе. Разработка — одно из моих увлечений. Этот нюанс очень важен.

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

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

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

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

Обращение к начинающим разработчикам

Прежде всего, я хочу обратиться к тем, кто пришел в нашу отрасль недавно. Эту статью я пишу, собственно, специально для вас. Если вы — новичок, вы с наибольшей вероятностью можете стать жертвой этой тирании. Поэтому вам стоит кое-что уяснить, прежде чем вы намылитесь сбежать.

Чтобы научиться программировать, увлеченность не требуется. Программирование — это набор знаний и навыков. И то, и другое вы приобретаете с опытом, занимаясь различными проектами с нарастающей сложностью. Единственное, что объединяет всех успешных разработчиков, — работа. Не увлеченность.

Чтобы приобрести навыки программирования, не нужен «врожденный» талант. И у увлеченных разработчиков тоже нет никакого врожденного таланта к программированию. Они стали мастерами своего дела постепенно, по мере накопления опыта, хотя и сами часто забывают об этом. Никогда еще люди так не мифологизировали мастерство. Нас воспринимают как каких-то астрофизиков в квантовой механике. Нам нужно перестать пугать людей.

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

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

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

Неожиданный поворот сюжета

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

Вы попадаете в порочный добродетельный круг: практика => мастерство => интерес => практика => мастерство => интерес и так далее.

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

И внезапно вы понимаете, что происходит! Вы что-то меняете, снова включаете приложение, и — БУМ! — заработало!

И тогда внезапно все начинают говорить об «озарении», «увлеченности», «призвании» и т. п. вещах. Но это не волшебство. Вы хорошо поработали, добились результата, получили от этого удовольствие и повторяете процесс сначала.

Мы должны прекратить молоть чушь о «предназначении» и признать, что только работа окрыляет. Короче говоря, если вы сразу не чувствуете всепоглощающего интереса к программированию, это нормально. Он придет со временем.

Не так давно я поднимал тему религии среди разработчиков. Я рассказывал о том, как влюбился в программирование с первого взгляда. Но я не говорил, что начинал с очень простых вещей. Поначалу это были простые HTML-страницы. Мне удавалось их создавать, и это меня вдохновляло. Продвигаясь очень медленно, я на протяжении нескольких лет постоянно получал выбросы дофамина в кровь. Это были идеальные условия, благодаря которым у меня появилась страсть к программированию (в числе прочих увлечений).

Проблема в том, что сегодня вам нужно действовать быстро. Курсы длятся 9 недель. Все спешат. А между тем, трудно наслаждаться пейзажем, если бежишь, как Усэйн Болт.

Ужасная правда об увлеченности

Компании эксплуатируют увлеченность. Кстати, именно они, а вовсе не разработчики, больше всего твердят о ней. И что любопытно, компании извращают само понятие. Говоря об увлеченности, разработчик имеет в виду удовольствие, а компания — производительность труда.

Если в объявлении о вакансии говорится о том, что нужен по-настоящему увлеченный человек, а о балансе работы и личной жизни нет ни слова, вы понимаете, что за этим стоит. Это значит, что вы будете работать по 80 часов в неделю. Ваша зарплата будет отрицательной. Эта компания не собирается брать на себя обязательства по обучению. Все необходимое вам придется изучать самостоятельно. И большей частью свободного времени вам тоже придется пожертвовать ради работы.

Но ты ж увлечен разработкой, так что все в порядке, правда?

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

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

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

Увлеченность — не самое главное для вашей карьеры. Говорят, мол, делай то, что нравится, и ты не будешь работать ни дня в своей жизни. Все будет идеально и никогда не будет никаких проблем. Это неправда! В реальной жизни работа — это работа. Даже когда занимаетесь тем, что вам нравится, вы все равно работаете. Вы делаете не то, что захотели сами сделать, не так, как сочли нужным, не теми инструментами, которые нравятся лично вам. Ваша компания говорит вам, что и как делать. И это иногда бывает очень скучно.

Сейчас я читаю много книг. Среди них была одна именно по этой теме. Является ли следование своим пристрастиям лучшим карьерным советом для достижения успеха и счастья? Эта книга очень убедительно опровергает эту идею. Называется она «So Good They Can’t Ignore You», и я очень советую вам почитать: будет полезным для карьеры.

Давайте теперь поговорим о том, как добиться успеха, не тратя всю жизнь на программирование.

Обращение к бывалым

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

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

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

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

Я мог бы использовать это время, чтобы заработать много денег на фрилансе. Я мог бы упражняться на LeetCode. Но я пишу эту статью, и мне нравится то, чем я занимаюсь!

Мне также нравится бегать. Поэтому я сделал мобильное приложение на React Native. Оно шлет мне уведомления на телефон каждые 2 км, отправляя случайную гифку через Giphy. Должен признать, что само приложение совершенно идиотское. Оно бесполезно. Но я ухахатываюсь каждый раз, когда во время бега получаю глупую гифку.

Разработка должна приносить удовольствие. Я не увлекаюсь React Native и у меня нет необходимости его знать. Это приложение я делал в своем собственном темпе, время от времени, в течение нескольких недель, когда я действительно хотел им заниматься. Я просто делал забавную вещицу, а попутно очень плавно осваивал React Native. И получал от этого удовольствие!

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

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

Вы хотите стать лучшим разработчиком, не жертвуя при этом своей жизнью? Почему бы не написать какую-нибудь идиотскую штуковину? (Есть отличное выступление Сары Виеры на эту тему, советую посмотреть). Вы можете сами выбрать технологию и работать в собственном темпе. Возможно, вы никогда не делали таких дурацких и бесполезных вещей. Поверьте: вы даже не представляете, сколько знаний и удовольствия это вам принесет.

Но опять же, если практика имеет ключевое значение, а увлеченный разработчик практикуется больше, значит, увлеченные специалисты — лучше? Да, в этом есть логика. Но это не абсолютное правило.

Быть увлеченным — это здорово

Не хочу, чтобы меня поняли превратно, вырывая из статьи отдельные понравившиеся куски. Конечно, увлеченность — дорога к совершенству. Разумеется, нет ничего плохого в том, чтобы посвятить свою жизнь разработке, если вам этого хочется. Вы делаете то, что хотите, и то, что считаете для себя подходящим. У вас есть всепоглощающая страсть, и это ваша работа. Браво! Так держать.

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

Кроме того, если вы хотите стать уважаемым специалистом, это еще не значит, что нужно непременно мчать со скоростью 300 км/ч. Это вообще не является необходимым условием. Я встречал много отличных разработчиков, не проявлявших особого энтузиазма. Они были просто очень хорошими технарями.

Один мне особенно запомнился. Когда я спросил его, была ли разработка его страстью, он сразу же очень холодно ответил: «Вовсе нет. Это единственное, что я умею делать, и так случилось, что я делаю это хорошо». Этот парень — техлид в очень крупной компании. В своей сфере он впечатляет своими достижениями. И он такой не один. Я уверен, что если бы мы не оказывали такое сильное давление, многие люди были бы менее увлеченными, чем они сейчас говорят.

Эпилог

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

1 КОММЕНТАРИЙ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here