Как превратить программирование в профессиональное ремесло за 8 простых шагов

Взгляд веб-разработчика и преподавателя Кена Роджерса на профессиональное развитие в IT-сфере.

Несколько лет назад я метался между ландшафтным дизайном и ресторанным делом. Я только что закончил колледж и совершенно не знал, что делать со своей жизнью.

Начало

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

Самообразование

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

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

Портфолио

Вместо того, чтобы заниматься ерундой, я серьезно взялся за свое портфолио и документирование своих навыков. Я начал проявлять активность в местах вроде Stack Overflow. Также я написал несколько проектов и опубликовал их на GitHub. В них не было ничего особенного, но они демонстрировали мое умение программировать.

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

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

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

Век живи — век учись

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

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

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

Лучше всего об этом сказал Хэмингуей:

«Все мы ученики на поприще, где никто никогда не становится мастером.»

Он говорил о писательстве, но к программированию это тоже подходит.

Совмещение обучения и работы в реальной компании столь многому меня научили (я даже пишу книгу). Я прекрасно понимаю техническую сторону веб-разработки, а также — как вырасти из любителя в профессионала. Это путь, подвластный любому, независимо от его времени и возможностей.

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

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

Переход из любителей в мастера

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

1. Осознайте, что вы на это способны

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

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

Если вы всегда чувствовали, что вам что-либо «дано» или «не дано», то это может довольно сильно выбивать из колеи.

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

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

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

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

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

2. Стремитесь быть неподражаемым в своем ремесле

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

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

professional
Это ловушка! Если вы вынесете что-то полезное из этой статьи, пусть это будет следующее:

Ключ номер один к успешному освоению профессии разработчика — добиваться своего. Работайте упорно, пока не добьетесь поставленной цели.

Данный принцип применим к чему угодно.

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

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

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

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

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

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

3. Начинайте создавать немедленно

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

Вы когда-нибудь заканчивали читать книгу по программированию и пытались создать что-то сами, чтобы только понять, что вы не имеете представления о том, как это сделать? Если да, то вы наверняка понимаете, о чем я толкую.

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

Сделайте что-нибудь просто веселья ради.

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

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

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

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

4. Заявите о себе в сети

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

Но вы наверняка захотите пойти дальше. Я советую вам завести собственный сайт-портфолио. Он будет выполнять несколько функций:

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

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

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

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

Основные разделы сайта

  1. Домашняя страница
    Ваша лендинговая страница — входная точка сайта. Она должна содержать краткую информацию о том, кто вы и чем занимаетесь, а также направлять людей к тому, что их интересует.
    Например, у вас может быть две главных кнопки. Одна направляет к вашему блогу, где люди могут узнать что-то новое о веб-разработке, а другая — для тех, кто, возможно, захочет нанять вас.
  2. Блог
    Место проживания ваших статей, заметок и туториалов. Пишите как можно больше и не бойтесь делиться своими мыслями.
  3. О себе
    Простой раздел «о вас», где можно разместить более детальную информацию о себе любимом. Но не делайте из этого историю своей жизни. Повторюсь, он должен иметь отношение к вашей профессиональной деятельности.
    Вместо того, чтобы разглагольствовать о своей личной жизни, расскажите о том, как вы пришли к веб-разработке, ваш путь до нынешнего момента, а также ваши дальнейшие планы.
  4. Наймите меня
    Очень существенная часть вашего сайта, предназначенный для потенциальных работодателей.
    Убедитесь в том, что не теряете равновесие между выгодным представлением себя и честностью. Некоторые моменты могут совпадать с разделом «о себе» ,но не забывайте, что эта страница должна быть более специализирована и подробно рассказывать о ваших навыках и возможностях.
    Также здесь должны быть контакты, чтобы заинтересованные наниматели могли с вами связаться.

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

5. Учите всему, что знаете сами

Натан Берри обожает учить всему, что только что узнает сам. Он рассказывает историю Криса Койера, создателя CSS Tricks.

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

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

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

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

Я предпочитаю термин «совместное (публичное) обучение». Существует множество людей, которые начинали именно с этого. Они осваивали свою профессию и документировали весь этот процесс.

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

6. Решайте реальные задачи

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

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

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

7. Примерьте на себя образ ученика

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

Особенно это важно на ранних этапах вашей карьеры. Если вы попали на стажировку или получили работу на полставки в качестве junior-разработчика, вам нужно как можно быстрее осознать, что нужно расти дальше. Это будет проще в том случае, если на этом этапе у вас есть официальный наставник.

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

8. Учитесь работать в команде

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

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

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

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

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

Встаньте с дивана и начните зарабатывать

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

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

Чем больше вы выкладываетесь, чем больше делаете, тем скорее из любителя вы превратитесь в настоящего профессионала.

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ