Основной

Что нужно знать, чтобы стать востребованным программистом

Hard skills

У каждой профессии свой набор хард скиллов. У программиста это общие технические знания (математика, информатика, алгоритмизация) и набор навыков, свойственный конкретному стеку.

1. Основы информатики.
В такой сложнотехнической профессии понадобятся даже самые азы, а именно:

• Какие типы данных бывают и чем они отличаются друг от друга;
• Понимание систем счисления — двоичной и шестнадцатеричной;
• Булева алгебра;
• Понимание принципов выполнения операций ЭВМ.

2. Математика.

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

3. Алгоритмы.
Разобравшись, как устроены алгоритмы, вы сможете создавать свои решения сложных задач и даже комбинировать их.

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

• Абстракция;
• Наследование;
• Ннкапсуляция;
• Полиморфизм.

Soft skills

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

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

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

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

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

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