Какие навыки нужны программисту

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

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

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

- тестировщики требуют поправить баг

- техподдержка заявляет об инциденте на продакшене

- менеджер просит оценить еще одну задачу

- коллега ждет код ревью, и т.д.

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

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

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

- нефункциональные требования к ПО: количество пользователей, сообщений, объем базы данных.

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

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

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

А какие навыки считаете полезными вы?

Лига программистов

1.7K постов11.6K подписчиков

Правила сообщества

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

- Приветствуются любые посты по тематике программирования

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