Как найти работу и стать разработчиком.

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

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

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

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

Вот некоторые из наиболее распространенных ошибок младших разработчиков.

Застрял на учебниках

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

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

Ни один курс или учебник не сделают вас программистом. Это не так.

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

Даже самые лучшие курсы не могут повторить это. Среда курса искусственная; учитель контролирует все и имеет ответы на все вопросы. И все вопросы.

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

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

  • Как хранить задачи?
  • Как создавать задачи?
  • Как удалить задачи?
  • Какая информация необходима для каждой задачи?

Этот процесс разбиения проблемы на более мелкие части и составляет суть программирования. И именно это вместо вас делают преподаватели программирования.

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

Учиться слишком многим вещам одновременно

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

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

Когда я начал учиться программировать, я понятия не имел, чем хочу заниматься. В течение нескольких месяцев я пробовал много разных вещей, от C++ и информатики до Django, Flask и даже тестирования. Я не мог определиться с чем-то одним, поэтому после пяти месяцев обучения почти ничего не знал и был на грани нервного срыва.

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

Фокус спас мою карьеру.

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

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

Вы знаете, чему учиться, поэтому вы должны начать это делать. Помните о фокусе! Делайте только одно дело за раз. Так что начните с HTML, и только когда вы освоитесь, добавляйте немного CSS. И начинайте изучать JavaScript только после того, как освоите CSS.

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

Отсутствие смирения

Вы много раз запутаетесь. Разработка программного обеспечения — обширная и сложная область. Вы не знаете всего и никогда не узнаете всего. То же самое касается всех остальных. Пожалуй, лучше Аса Э. У. Дейкстры не сыграет никто:

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

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

Никогда не принимайте критику на свой счет.

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

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

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

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

Код мышления — это продукт

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

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

Речь идет о предоставлении ценности.

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

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

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

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

перфекционизм

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

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

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

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

Перфекционизм = прокрастинация

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

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.