Личностные качества программиста

Дарья Гайна, руководитель отдела веб-разработок в компании JMA SRL, рассказала Tipler о том, какими качествами должны обладать эффективные программисты.

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

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

Я выделил 14 качеств, которые помогут отобрать правильного претендента.

1. Хорошие технические навыки

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

Например, при интервью Вы можете спросить: опишите свой опыт работы с другими системами управления.

2. Готовность учиться

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

Например, при интервью Вы можете спросить: что Вы делали и делаете, чтобы сохранить актуальность своих навыков программирования?

3. Устранение ошибок

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

Например, при интервью Вы можете спросить: как Вы отслеживаете и исправляете ошибки в своем коде?

4. Идеальная рабочая среда

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

Можно спросить: Опишите Вашу идеальную рабочую среду.

5. Умение решать проблемы

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

Хороший вопрос при интервью: как бы Вы создали (можно предложить разобрать очень комплексный проект с использованием новых технологий)?

6. Страсть к работе

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

Хороший вопрос для интервью: Чем Вы увлекаетесь?

7. Стрессоустойчивость

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

Вопрос при интервью: Опишите случай, когда Вы находились под сильным давлением, и Ваш проект не работал по причинам ошибок в коде. Что Вы делали в этой ситуации?

8. Коммуникационные навыки

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

Пример для интервью: Объясните, как работает Ваше любимое приложение так, чтобы непрофессионал смог бы быстро вникнуть в процесс.

9. Бизнес видение

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

Пример вопроса на собеседовании: Вам когда-нибудь приходилось делать предложение об улучшении бизнес-процессов?

Способность планировать

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

Пример для интервью: Объясните свой подход к новому проекту. Что Вы делаете в первую очередь?

Терпение к ошибкам

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

Пример вопроса для собеседования: Вам приходилось когда-нибудь проводить много часов за кодом и прийти к выводу, что Вы их потратили в пустую? Что Вы делали в этой ситуации?

12. Навыки командной работы

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

Пример вопроса для интервью: Поделитесь впечатляющим опытом команды.

13. Готовность к исследованию

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

Пример вопроса для интервью: Расскажите нам о случае, когда Вам нужно было узнать о конкретном бизнесе/отрасли? Как Вам приходилось проводить изучений и исследование в такой ситуации?

14. Уважение сроков

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

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

В тексте вакансий для программистов постоянно указывают только технические требования к кандидатам, но зачастую остается неясным, требуются ли какие-то дополнительные качества и какие вообще необходимы. Давайте все-таки разберемся!

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

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

  • Логическое мышление.

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

  • Внимательность и умение фокусироваться.

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

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

  • Усидчивость.

Работа программиста – сидячая работа. Логично, что усидчивость на одном месте вам пригодится, если вы хотите задержаться в этой сфере. Упорная работа в течение долгого отрезка времени может привести к успеху довольно быстро.

  • Любопытство.

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

  • Ответственность.

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

  • Стремление к самосовершенствованию.

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

  • Воображение.

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

  • Коммуникабельность.

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

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

  • Настойчивость.

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

Уверены, что вы можете дополнить этот список качеств личности программиста, особенно, если имеете опыт в IT. Конечно, некоторые личностные качества выдвигаются вперед, отодвигая остальные на задний план, в зависимости от специальности в IT-сфере. Так, бизнес-аналитику понадобиться умение коммуницировать с людьми гораздо больше, чем обычному разработчику. Как и разработчику нужна усидчивость больше, чем BA. Но мы точно знаем, если вы сможете выработать хотя бы 50% этих качеств у себя, вы будете проходить собеседования более успешно и качественнее выполнять свою работу, проще решать задачи и быстрее находить правильные решения.

Начинающий программист Ewa Mitulska-Wójcik описала в недавней публикации на Медиуме свои мысли о необходимых разработчикам личных качествах. Публикуем перевод этой заметки и небольшой комментарий в самом конце.

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

Коммуникабельность

Эффективное общение может сильно отличать среднего разработчика от высокопродуктивной «рок-звезды». Программирование — это общение не только с серверами, клиентами и кофемашинами, подключенными к сети. Быть в хороших отношениях с партнёрами по команде — важно.

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

  1. Делиться возникшими проблемами с другими ребятами в команде.
  2. Отчитываться о деталях прогресса в системе управления проектами, вроде Jira.
  3. Выражаться ёмко и конкретно, насколько возможно, когда этого требует ситуация.
  4. Уметь слушать и быстро реагировать
  5. Чётко объяснять все потребности, сомнения, риски и прогресс проекта в понятной остальным членам команды, менеджеру или клиенту форме.
  6. Объяснять технические проблемы так, чтобы вас понимали клиенты и члены команды, не связанные с технической частью.
  7. Полное профессиональное владение английским. Знать больше одного иностранного языка — всегда плюс. Я за испанский 😉
  8. Открыто высказываться о проблемах, заниматься поиском решений до появления конфликтов.
  9. Приводить состоятельные аргументы в пользу предложенных вами технических решений
  10. Дотошно относиться к коду, документации, отчетам и тикетам.
  11. Быть готовым к общению с другими программистами на форумах, в блогах и на конференциях. Делиться своими знаниями и не бояться выступать с микрофоном перед большой аудиторией.

Это только несколько ситуаций, когда коммуникативные навыки имеют решающее значение.

Любопытство

«Много будешь знать — скоро состаришься» — это не про разработчиков. Желание всё знать — самое реактивное топливо для новых изобретений и саморазвития. Экспериментаторство помогает видеть картину в целом и находить новые решения.

Вы можете получить ценный опыт, проверяя свои гипотезы. Задавайте вопросы, создавайте что-то новое, применяя уже полученные знания, продолжайте сегодня развивать то, что начали вчера. Не бойтесь пробовать. Даже если ничего не получится, вы ничего не потеряете. Почему? Потому что вы набираетесь опыта.

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

Делитесь своими способами мышления и наблюдениями на форумах, пишите о них посты и делитесь тем, что узнали.

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

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

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

Выработка стратегии

Без плана даже самый маленький проект может превратиться в неуправляемого монстра. Перед тем, как перейти к разработке в зомби-режиме, вам нужно подумать о возможных затратах, планировании спринтов, вопросах архитектуры и проектировании таких элементов как перемещение пользователя по элементам интерфейса.

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

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

Непрерывное обучение

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

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

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

Быть открытым новым идеям также означает быть терпимым и проявлять уважение и инициативу. Не будьте хейтером React’а только потому, что не знаете его и работали на Angular последние несколько лет. Отрывайтесь иногда от монитора и ходите на конференции, митапы. Общайтесь с другими разработчиками в реальности и оффлайн. Оставайтесь голодными! Оставайтесь безрассудными!

Предпринимательское мышление

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

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

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

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

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

Путешествие без цели интересно, но оно не лучше прогулки. Я начинающий разработчик и знаю, кем хочу стать.

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

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

(Перевод Наталии Басс)

Комментарий редактора: Хочу добавить кое что от себя. Эта статья в целом будет полезна многим, она поднимает важные вопросы. Общение, умение слушать и объяснять, публичные выступления и близость к бизнесу это на самом деле крутые качества. Большинство компаний, особенно не очень больших, и выпускающих собственные продукты, ищут именно таких специалистов. Но и у переводчика, и у меня возникли не совсем приятные ощущения от некоторых особенностей и мотивов.

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

Многие программисты стали программистами именно потому, что не хотят много общаться с людьми, не хотят публично выступать, не хотят вдаваться в бизнес-вопросы. Они нашли для себя такую профессию, где эти качества и желания не являются настолько критичными, как в некоторых других профессиях. И это успех: человек нашел свое дело. Это не плохо, это не «неудачники-интроверты», это просто их природа и особенность. Некоторые не любят такие качества в себе и хотят измениться: супер, в статьях вроде этой есть хорошие советы для них. Другие же не хотят меняться, и они ничего никому не должны. Это не делает их плохими программистами. Хороший менеджер умеет работать со всеми и строить такую среду, где каждый сможет работать без страданий. Или же открыто объяснит, что это невозможно, и человеку, возможно, стоит найти более подходящую для него работу. Не потому что «ты нам не подходишь», а потому, что «мы тебе не подходим».

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

Настоящие программисты получают удовольствие от программирования.

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

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

Всё зависит от особенностей работы в конкретной компании

Рекомендуется брать поправку на личные особенности при выборе работы. Например, интроверту, скорее всего, будет комфортнее работать удаленно. А экстраверту — в open space-офисе.

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:
«Все люди разные и программисты в том числе. Одни могут летать в облаках, другие будут «цепляться” к деталям — и те и другие важны, пусть и для различных позиций, задач и даже компаний.
А так, главное, чтобы человек был хороший.
Я могу назвать качества, которые значимы для работников в моей компании. Но ведь это не важно. Есть другие компании, где эти качества не играют никакой роли или, наоборот, очень мешают.
У нас вся работа удалённая, поэтому необходимо, чтоб программисты могли сами следить за своим временем и умели работать сами по себе. А люди, которым обязательно нужен тесный контакт («face to face”) у нас не приживаются. Но это наша специфика. У большинства компаний наверняка наоборот. Но это всё «качества” нужные отдельным компаниям, позициям, а не программистам в общем.”

«Работа программиста — это решение задач”

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

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

«Думаю, базовый набор качеств примерно одинаков для всех профессий, как и вообще для того, чтобы быть Человеком — это порядочность, ответственность, способность работать в команде. Это слова, которые так часто упоминаются в резюме, что кажутся общим местом, но в действительности крайне важны. Но, всё же, если выделять главное качество, я бы назвал способность решать задачи. Потому что, по большому счёту, работа программиста — это решение задач, такой бег с препятствиями, где ты следуешь по прямой какое-то время и тебе легко за счёт опыта и багажа. Но потом встречается очередное препятствие, которое надо преодолевать. И вот именно здесь и скрывается вся работа. Поиск опыта в интернете, кстати, один из распространенных способов тренировки навыков преодоления трудностей и умения быстро находить подходящие решения и их применять.
По-настоящему несовместимых с работой программистом качеств не так уж и много, думаю, неумение преодолевать трудности — одно из них. Наверное, «научно” это можно назвать «стрессонеустойчивостью”, а в остальном всё зависит от руководителя и того, какие качества он ценит в людях.”

Аналитический склад ума, упорство и умение работать в команде

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

«В первую очередь, хороший разработчик должен обладать аналитическим складом ума. Даже самые сложные задачи программирования имеют логическое решение. В идеале, программист должен получать удовольствие от решения таких задач; особенно, если все решено просто и красиво.
Второе качество — это, конечно, упорство. Чтобы по-настоящему изучить основы компьютерных наук, необходимо достаточно много времени. Придется потратить тысячи часов, программируя и решая подчас головоломные задачи. Разумеется, если вы любите свое дело, вам это будет не так сложно. Но, тем не менее, потребуется много терпения и большая целеустремленность, чтобы достичь на этом пути настоящих успехов.
Третье качество — умение работать в команде. Написание кода в — большинстве случаев вещь коллективная. Современному разработчику необходимо постоянно контактировать с коллегами, работать синхронно, легко читать чужой код и работать с ним.”

Хорошая концентрация, усидчивость и алгоритмизированный подход

Александр Решетков, ИТ-директор компании Softline:

«В первую очередь, стоит обратить внимание на сам характер работы. Это вдумчивая работа, требующая длительной концентрации и усидчивости. По характеру работы можно представить «портрет» среднестатистического разработчика — это, в основном, люди, ориентированные на процесс, концентрирующиеся на деталях, с алгоритмизированным подходом, аналитическим складом ума. Люди с такими личными качествами могут разобраться с любой задачей, требующей алгоритмизации.
Всё, что не соответствует вышеперечисленным качествам и компетенциям — может оказать негативное влияние на качество и результаты деятельности разработчика. И важно это понимать на начальных этапах сотрудничества.”

Хороший программист умеет презентовать свои идеи и общаться с людьми

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

Александр Горный, директор по информационным технологиям Mail.Ru Group:

«Я бы выделил три главных достоинства разработчика: ответственность, коммуникабельность и инициативность. Ответственность обеспечивает написание хорошего кода и выполнение задач в срок. Инициативность дает возможность реализовывать собственные идеи. На коммуникабельности я бы хотел остановиться отдельно. Современная разработка — это во многом командная история, чтобы преуспеть в ней, очень важны определенные социальные навыки, так называемые soft skills: умение находить общий язык с коллегами и партнерами, вести переговоры, эффективно презентовать свои идеи, хорошо выступать перед большой аудиторией, управлять своим временем и так далее.

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

Наиболее ценные качества программиста по мнению работодателей:

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Нужно понимать, что эти качества крайне желательны, но не обязательны. Здесь всё зависит от компании и специфики должности. Ларри Уолл, создатель Perl, сказал: «Многие знакомы с достоинствами программиста. Их всего три, и, разумеется, это: лень, нетерпеливость и гордыня.” Объясняется это просто: ленивый человек, скорее всего, найдет наиболее эффективный способ решения задачи. Поэтому, если вы обнаружили у себя несоответствие с вышеперечисленными пунктами, то не теряйте энтузиазма. Найдите «позитивное” применение своим особенностям.

Михаил Климов

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

Add a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *