Некоторое время назад на подкасте DevEd у нас был эпизод Основные навыки, необходимые каждому разработчику. Это было действительно забавное обсуждение, но оно заставило меня задуматься над этой темой. Действительно ли существует набор необходимых навыков, необходимых каждому разработчику? Ни один язык программирования не встречается повсеместно. Не все используют Agile. Некоторые разработчики работают в команде, некоторые работают сами по себе ... так какие же основные навыки необходимы каждому разработчику?

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

1. Любовь к обучению и исследованиям

Это, пожалуй, мой любимый предмет. Это тоже довольно очевидно. Вещи меняются. Они быстро меняются. Вы моргаете, а язык, который вы используете, устарел. Техники, которые вы используете, теперь заменены на что-то лучшее (хе-хе, может быть), и индустрия уже использует новые методы для достижения цели. У этого есть темная сторона. Мы перестаем использовать отличные инструменты только потому, что есть что-то новое, но новое не обязательно лучше. Это случается, и интересно отметить, как часто люди просто прыгают на поезд «новой горячности». Но на самом деле это побочный продукт истины, лежащей в основе: разработка ДЕЙСТВИТЕЛЬНО продвигается быстро, и во многом это, вероятно, связано с тем, что в целом разработчики любят новые вещи и постоянно создают новые инструменты.

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

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

2. Уязвимость и смирение

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

3. Твердая голова

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

4. Модульное тестирование и автоматическое тестирование

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

5. Умение работать с другими

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

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

6. Возможность погрузиться в детали

Развитие - это процесс создания чего-либо. В данном случае разработчики могут не заниматься только общей идеей. Он не знает, когда все выглядит правильно. Это способность воплотить идею в рабочий код, будь то сборка, Rust, CSS или Scratch. Детали этого перевода - это то, что определяет, сможет ли ваш продукт успешно выполнять то, что он должен делать. Погрузиться в эти детали, жонглировать ими в голове, научиться откладывать некоторые из них, чтобы оставить место для тех, на которых вы сосредоточены прямо сейчас, - это навык, который должен иметь каждый разработчик и которому нужно научиться овладевать. Если вы не можете сесть и обдумать детали реализации, вы всегда будете пытаться создать продукт правильно.

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

У нас есть много отличных курсов, таких как курс Развертывание приложений в Netlify и Задача 100 алгоритмов.

И не забудьте ознакомиться со всеми нашими замечательными курсами по JavaScript, Node, React, Angular, Vue, Docker и т. Д.

Удачного кодирования!

Нравится это обсуждение? Подпишитесь на нашу рассылку здесь.

Приходите к нам: thinkster.io | Facebook: @gothinkster | Twitter: @GoThinkster