Любовь к делу

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

Спросите себя, почему вы хотите стать программистом. Если ответ — «Это модно» или «Чтобы заработать деньги», то вам лучше заняться чем-нибудь другим. Нет ничего ужаснее, чем ходить на работу просто потому, что надо.

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

Работодателю на заметку: хороший знак, если в резюме в графе «Хобби» соискатель на должность программиста указал: «Пишу код».

Умение проявлять гибкость

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

Без системного подхода вряд ли получится овладеть несколькими языками программирования.

Работодателю на заметку: эксперт в С++ или Java — это здорово, но ещё лучше, если программист, специализирующийся на том или ином языке, разбирается в остальных, знает, как устроен не только back-end, но и front-end.

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

Готовность обучаться

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

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

Подспорьем послужит сервис GeekBrains.ru. Там вы сможете совершенствовать навыки кодинга на Python, PHP и других языках, с которыми работаете, и прокачивать сопутствующие скиллы. Например, в области системного администрирования, SEO или SMM.

Планирование

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

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

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

Умение работать в команде

Почему программисту так важно следить за временем? Потому что он не один. От своевременности его действий зависит работа большого количества людей: дизайнеров, менеджеров, маркетологов.

Распространено заблуждение, что программист — это махровый интроверт, который встаёт из-за компьютера только для того, чтобы подстричь бороду. На деле же коммуникативные навыки для программиста так же важны, как и для любого другого IT-специалиста.

Работодателю на заметку: предложите программисту-стажёру провести небольшую самопрезентацию перед коллегами — поймёте, нет ли у него проблем с общением.

Человек, испытывающий трудности с коммуникацией, не командный игрок. Он не объяснит коллегам задачу и не поймёт фидбэк.

Умение быстро входить в состояние потока

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

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

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

Терпеливость

Написать код — полдела. В работе программиста много рутины: проверка кода, поиск и устранение багов и — самое ненавистное — правки. Это требует усидчивости и терпения.

Простой тест: выберете один из бесплатных курсов GeekBrains и пройдите от начала до конца. Выполните все задания не халтуря. Если справитесь, то с настырностью (в лучшем понимании этого слова) у вас порядок. А как насчёт стрессоустойчивости?

Умение справляться с трудностями

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

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

Хороший программист не пасует перед трудностями. Даже если на первый взгляд проблема не имеет решения, попытайтесь его найти. С этого начинаются инновации.

Здоровая порция лени

Ларри Уолл, создатель языка программирования Perl, в своей книге называет три важных для программиста качества:

  • высокая самооценка;
  • нетерпеливость;
  • лень.

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

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

Амбициозность

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

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

Изучать основы программирования