Истории

7 навыков успешного программиста

Истории
Анна Самойдюк
Анна Самойдюк

Ex-редактор направления «Истории».

Анна Самойдюк

Блогер с ником SeattleDataGuy в своей колонке на Medium рассказал о семи навыках, которыми должен обладать хороший программист.

7 навыков успешного программиста

1. Умение читать чужой код

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

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

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

2. Чутье на плохие проекты

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

Премия молодых предпринимателей Young Awards 2021. Подать заявку.

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

3. Избегание совещаний

Фото: Medium

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

Самый распространенный метод – просто блокировать по два часа каждый день в расписании на совещание. Еще один способ – приходить на работу раньше всех, чтобы успеть сделать работу в тишине и покое и не отвлекаться.

4. Умение пользоваться Github

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

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

Фото: Medium

5. Написание простого рабочего кода

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

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

6. Умение говорить «нет» и расставлять приоритеты

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

Приоритезация и умение говорить «нет» – тесно связанные друг с другом навыки. Расставлять приоритеты – значит уделять время на задачи, которые окажут большое влияние на компанию. Говорить «нет» – значит избегать работу, которую должна делать другая команда.

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

7. Дизайн-мышление

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

Например, поскольку основная часть программирования – это поддержание, это значит, что зачастую приходится менять запутанный код другим. Даже простое изменение требует отслеживания каждой возможной отсылки на объект, метод и/или API. Иначе вы можете случайно сломать привязанные модули, о существовании которых не знали. Даже если вы просто меняете тип данных в базе данных.

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

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

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

Источник.


Материалы по теме:

Как выбрать язык программирования для изучения в 2019 году

Как познакомить ребенка с программированием без компьютера

Три самых популярных языка программирования в 2018 году

20 выражений из IT-сленга, которые вам нужно знать

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Как и для чего корпорации создают внутренние социальные сети
  2. 2 Как молодому веб-дизайнеру не стать серой мышью в толпе диджитал-специалистов
  3. 3 Пять шагов к работе мечты
  4. 4 «Я редко даю шанс тем, кто говорит: “Я сейчас не могу, я волнуюсь”, — и уходит. Для меня это не бойцы»
  5. 5 Из корпорации в стартап: какие навыки наемного сотрудника пригодятся в собственном проекте
Международная конференция Deep Food Tech
RB.RU в партнерстве с ЭФКО соберут лучших российских и международных экспертов.
Узнать больше