Привет! Меня зовут Булат Хабибуллин. Почти всю свою профессиональную жизнь я работал в PR, но в 29 лет задумался — нравится ли мне то, чем я занимаюсь? Я расскажу, как прошёл путь от пиарщика в Revolut до разработчика в датском гринтех-стартапе, а также по каким признакам понять, что из вас может получиться неплохой программист. Дисклеймер: да, этот пост написан с подачи Практикума. Я не скрываю, что учился именно у них. На тот момент Практикум точно был лучшей школой в рунете, они дали мне очень мощный старт. Я им за это благодарен и никогда не отказываю в просьбе поделиться мыслями. Если вам интересно узнать больше про сам курс по фронтенд-разработке и процесс обучения, то вот ссылка на мой старый пост. В школе мне нравились железки и технологии. Дома компьютера не было, но зато был у родственников, у которых я гостил каждую неделю. Мой дядя — большой гик, он рассказывал мне про операционные системы, архитектуру процессоров, как работает CD-ROM. В девятом классе у меня появился смартфон на Symbian, и мы с друзьями их сильно кастомизировали. Сегодня, когда смотрю релизы от Apple, иногда думаю: «О, это было у меня на N-Gage в 2006 году». Я не блистал по точным наукам, но отдельные вещи приносили удовольствие. Я неплохо решал базовые задачки по информатике на Basic и Pascal, кайфовал от геометрии. По математике пришлось брать репетитора, чтобы не получить трояк в аттестат. Этот репетитор отговаривал меня идти на гуманитарную специальность и говорил, что у меня технический склад ума. Большой вопрос, как 16-летние люди выбирают образование, но я всё-таки пошёл по гуманитарному треку: политология, философия, социология. После выпуска из универа я подрабатывал написанием текстов, потом перебрался в PR, маркетинг, брендинг. Первым известным брендом в моём резюме и, как оказалось, последним местом работы по старой профессии стал онлайн-банк Revolut. Моей задачей было строить так называемый «бренд работодателя», чтобы программисты и другие технари мечтали работать именно у нас. Я мало что понимал в софтвер-инжиниринге, поэтому стал аккуратно погружаться в этот таинственный мир: смотрел видосики, тыкался в рандомные курсы по Python и много тусовался с разработчиками, чтобы понять, чем они занимаются и чего хотят от жизни. В 2019 году я понял, что наши пути с Revolut разойдутся. К тому моменту я сильно выгорел, мне хотелось больших перемен и приключений, никак не связанных со старой работой. У меня были сбережения, любопытство и много друзей-программистов, которые шептали на ухо: «Попробуй вкатиться…». Я решил попробовать. Из доступных на тот момент платформ мне нравится Практикум, у них был интуитивный юзер-экспириенс и контент, написанный просто, с юмором и без официоза. Тогда у них было всего три или четыре курса: фронтенд, бэкенд и ещё что-то. С теми же друзьями-программистами мы пришли к выводу, что рендерить котиков в HTML мне будет приятнее, чем читать ошибки сервера на Python, поэтому я пошёл на курс по фронтенду. Через пару месяцев после покупки курса началась пандемия. Я не работал и 24/7 занимался учёбой. Было очень интересно, местами тяжело, но я спасался мыслью о том, что всегда могу вернуться в старую профессию с новыми знаниями. За три-четыре месяца до конца курса меня взяли на очень крутую стажировку в казанскую компанию «Технократия». Нам, стажёрам, даже доверили реальный проект — софт для управления отелями и арендными помещениями. Я проработал там около семи месяцев. Потом друг позвал меня в Bookmate. Мы работали над веб-клиентом, который дублирует весь функционал мобильного приложения, включая саму читалку. В Bookmate была очень сильная команда инженеров. Люди глубоко разбирались во всём, что делают, и болели за качество. Я много оттуда вынес в плане инженерной культуры. Через год бывший коллега из Revolut позвал в свой стартап Platypus, который помогает измерять счастье сотрудников и рисовать эти данные на красивых графиках. Я прошёл собеседование и переехал в Данию. Прошлым летом Platypus не смог привлечь инвестиции и закрылся — классическая история среднестатистического стартапа.  Я остался в Дании и устроился в компанию ZeroNorth. Она разрабатывает софт для шиппинга, который помогает оптимизировать маршруты грузовых судов, жечь меньше топлива и сокращать выбросы СО2. Мне нравится, что у нас есть понятная и правильная миссия. Я устраивался как фронтенд-разработчик, но продуктовые команды организованы так, что я немного занимаюсь бэкендом и базами данных. Это классная возможность попробовать новые платформы и технологии. В новой профессии я чуть больше трёх лет. За это время я понял, что некоторые черты характера помогают освоиться в ней быстрее и комфортнее и даже могут обеспечить быстрый и сильный рост. Возможно, любовь — это преувеличение, но вам должно быть комфортно и приятно постоянно разбираться в чём-то новом и неизвестном, осваивать новые технологии, концепции, идеи. Вы не должны от этого сильно уставать, потому что это неотъемлемая часть вашей рутины. Поглощать новые знания, разбираться в новых и сложных вещах и говорить «вааау, ничего себе» — очень приятно. Но кого-то может сильно изматывать сам процесс, а кого-то — напрягать мысль, что это никогда не закончится. Ситуации, когда вы сядете и сможете сказать: «ну всё, я всё выучил», никогда не случится. И эта мысль не должна вас угнетать. Возможно, всё вышесказанное справедливо для любой другой профессии, но в разработке это проявляется ярче. Знаете мем про айсберг? Верхушка — то, что уже выучили, а под водой — что осталось выучить. Вам должно быть нормально, что так будет всегда. В разработке всё постоянно идет не по плану — не рендерится, не билдится, не авторизуется. Два дня не смотрел в код — он перестал работать. Вы его не трогали, а он перестал! Всё постоянно ломается, и всё постоянно надо чинить. Конечно, это неприятно, но если малейшее несоответствие ожиданий и реальности вызывает панику и желание сдаться, вам будет тяжело. Помню, что во время учёбы я мог потратить часы и даже дни на расследование одного бага. Обычно выяснялось, что причиной была опечатка или я смотрел не в тот файл. Или электричество отключили, а с ним и интернет. Что-то подобное происходит по сей день. На старте я сильно переживал и расстраивался, но всё-таки главной моей реакцией было желание разобраться, что пошло не так, и быстренько всё починить. С годами и опытом иммунитет к поломкам и хаосу окреп. Вы привыкли и умеете сами решать свои проблемы, полагаться в основном на себя, брать ответственность, не рассчитывать на чужую помощь, тащить в соло. В общем, быть самостоятельным. Кому-то это дается легче, кому-то сложнее. Кому-то сложно представить, как это — самому почитать инструкцию, закон, вывеску в магазине, а не спрашивать у ближайшего друга, коллеги, продавца или члена семьи. Кто-то просто не пробовал так жить. Нам на старте обучения сделали небольшое, но очень качественное наставление о самостоятельности. Был даже некий протокол: перечитать документацию, попробовать все, даже самые бредовые, идеи, дать себе минимум час и только потом просить о помощи, но обязательно в письменном виде и в общем чате. Обычно вопрос снимался на этапе написания вопроса. Мне этот оргмомент помог понять, насколько лучше усваиваются знания, если в большинстве случаев все проблемы решаешь сам. Некоторые дети начинают с безобидного вопроса вроде «почему тебе надо на работу?», а потом продолжают спрашивать «почему», пока вы не доберётесь до устройства Вселенной. Вот надо немного, в разумных пределах, быть таким ребенком. Вам должно быть важно докопаться до истины. Почему так, а не иначе, что будет, если сделать наоборот, откуда это взялось, почему это именно так работает. Вам важен не просто результат, а как и почему вы его добились. Чем дотошнее, чем лучше. Помню, я спать не мог, потому что мне консоль браузера на ввод некоторых команд вместе с результатом еще писала undefined. Это вообще ни на что не влияет, но я просто на стену лез. В итоге я нашёл ответ и попутно разобрался во многих важных вещах, касающихся и браузера, и языка. Мне сложно подобрать одно слово, но речь идет о некой когнитивной организованности или даже состоятельности. Другими словами — у вас порядок в голове. И всё, что вы в эту голову помещаете, тоже пребывает там в чистоте и порядке.  Вы без труда находите во всём структуру, легко выделяете общее и частное, отмечаете различия, совпадения и повторения, умеете разбивать большие вещи на мелкие и понимаете, как и из каких составляющих складывается целое, раскладываете всё по нужным полочкам, не путаете одно с другим. Наверное, это естественное свойство нашего ума, но кто-то точно знает, что это его сильная сторона. Это качество может проявляться в управлении проектами, написании текстов, строительстве, даже в организации питания в семье. И это же качество очень сильно помогает в написании больших программ, где каждая единица кода должна отвечать за одно дело, не дублировать функции других, логично укладываться в общую структуру. Вы любите делать всё качественно — достигать того предела совершенства, который доступен вашему пониманию. И искренне переживаете, если по вашей личной оценке делаете что-то спустя рукава. Поначалу это может мешать учиться и фокусироваться на главном, а не на деталях, зато на длинной дистанции это обеспечит рост, потому что стремление делать качественно будет драйвить процесс обучения и практики написания кода. В разработке качество напрямую влияет на ряд критических показателей — производительность, читаемость и общую продуктивность команды. Если у вас развиты эти качества, то шансы преуспеть точно выше нуля. Ни на чём не настаиваю. Всё вышесказанное — это результат рефлексии собственного пути, наблюдений и бесед с уважаемыми братьями и сестрами по цеху.