Как стать автором
Обновить
0
Alconost
Локализуем на 70 языков, делаем видеоролики для IT

Как превратить увлечение программированием в работу

Время на прочтение12 мин
Количество просмотров34K
Автор оригинала: Ken Rogers


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

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

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

Переведено в Alconost

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

В этом случае через 6 лет я закончил бы обучение, имея долг в много более чем 50 000 долларов. Так что этот путь мне не подходил.

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

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

Поэтому я всерьез занялся веб-разработкой.

Не мешкая, я начал собирать реальное портфолио и описывать свои навыки.

Меня уже можно было заметить на таких площадках, как Stack Overflow.

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

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

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

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

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

Жизнь как постоянное обучение


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

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

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

Хемингуэй сказал об этом лучше меня:
«Мы все ученики в ремесле, в котором никто никогда не становится мастером».

Он говорил о писателях, но это относится и к разработке.

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

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

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

Из любителя — в профессионалы


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

1. Осознайте, что это осуществимо.


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

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

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

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

Не обязательно рождаться с определенными задатками или уповать на счастливый случай — но здесь нужно упорство.

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

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

Мы слишком много значения придаем успехам — своим и чужим. Это называется ошибкой выжившего.

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

Но что такое удача?

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

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

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

2. Стремитесь в своем ремесле к совершенству


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

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



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

И это относится вообще ко всему.

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

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

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

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

Мало что может сравниться с неумолимым стремлением овладеть ремеслом.

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

Майк Роу (Mike Rowe) любит говорить, что не нужно начинать с поиска своего призвания.

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

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

3. Начинайте сразу же писать код


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

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

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

Решение здесь — простое, но совсем не легкое…

Начните писать код.

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

Сделайте что-нибудь забавы ради.

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

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

Придется столкнуться со сложными задачами и приложить усилия. И это хорошо: такое обучение — самое эффективное.

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

4. Обозначьте себя в Интернете


Начав программировать, вы захотите обозначить свое присутствие в Интернете. Учетная запись GitHub — отличное начало.

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

  1. Он станет для работодателей доступным источником сведений о вас.
  2. На нем можно будет представить свои работы (чтобы не только GitHub знал о них).
  3. Он будет платформой для самовыражения и профессиональной деятельности.

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

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

Сайт должен служить очень конкретной цели.

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

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

Предлагаю разбить сайт на 4 основных раздела:

1. Главная страница
Главная страница — точка входа на сайт. На ней следует сжато изложить, кто вы и чем занимаетесь. Также она должна направлять посетителей к интересующей их информации.

Например, у вас будут две главные кнопки: одна будет направлять в раздел с вашими статьями о веб-разработке, а вторая — на страницу для потенциальных работодателей (если кто-то захочет вас нанять).

2. Статьи
Здесь будет обитать ваш блог и написанные вами руководства. Пишите так много, как только можете — и не бойтесь раздавать ссылки на свои статьи.

3. Информация о вас
Простой раздел «о себе», в котором подробнее описывается, кто вы и чем занимаетесь. Здесь должно быть не жизнеописание, а информация, связанная с тем, что вы хотите делать.

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

4. Работодателям
Важная часть сайта — раздел для тех посетителей, которые заинтересованы нанять вас как разработчика.

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

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

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

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


Натан Барри (Nathan Barry) — большой поклонник подхода «учите всему, что знаете». Вот что он рассказывает о сайте CSS Tricks, основанном Крисом Койером (Chris Coyier).

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

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

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

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

Меня беспокоит использование слова «специалист». Я не считаю, что обучать тому, что знаешь, — и даже продавать эту информацию — неправильно: если для кого-то эта информация представляет ценность, то почему бы и нет?

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

Я предпочитаю использовать термин «публичное обучение».

Многие с этого и начинали — учились публично: они изучали ремесло и описывали ход своего обучения.

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

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

6. Решайте конкретные задачи


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

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

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

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

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

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

Общаясь с потенциальными работодателями (или клиентами), наполняя свой сайт материалами, думайте не о функциях, а о преимуществах.

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



7. Не прекращайте учиться


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

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

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

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

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

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

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

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

Именно отсюда начинается настоящее обучение, именно с этого момента ваши знания начинают расти.

8. Научитесь сотрудничать


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

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

Поэтому важно научиться эффективно сотрудничать.

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

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

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

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

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

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

Начать можно с этого сайта.

Вперед — зарабатывайте на жизнь


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

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

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

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

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

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


О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией приложений, игр и сайтов на 68 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов, перевод технических текстов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее: https://alconost.com

Теги:
Хабы:
Всего голосов 17: ↑13 и ↓4+9
Комментарии14

Публикации

Информация

Сайт
alconost.com
Дата регистрации
Дата основания
2004
Численность
201–500 человек
Местоположение
США

Истории