Качества хорошего программиста

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

Признаки хорошего программиста:

Умение правильно формулировать свои мысли
Без этого будет сложно коммуницировать с командой, и доносить своё виденье какого-либо аспекта совместно разрабатываемого проекта.
Страсть
Программирование должно нравится, т.е. приносить удовольствие. С др. ст., нет бинарного состояния «нравится» или «не нравится» программирование. Есть целый диапазон состояний и не обязательно чтобы прям «нравилось». Достаточно чтобы человека от этого не воротило и он мог спокойно этим заниматься. Да, такой человек может и не станет главным архитектором, и не сделает новый популярный во всём мире продукт, но при наличии хоть каких-то способностей, умении общаться и учиться на ошибках, может вполне нормально работать средним программистом и зарабатывать на этом. Программирование не обязательно сильно любить.
Настойчивость
При работе с новыми вещами всегда часть времени находишься в состоянии «я не понимаю, у меня не получается», смотришь код и пытаешься понять, что в нём происходит. Делаешь как в документации, но почему-то не работает.
Усидчивость и долгая концентрация
Не всем дано трудолюбие и усидчивость с концентрацией. Это все приходится вырабатывать, и не у всех получается. А кто-то от природы способен, но имеет в другом минусы.
Самообучение
В целом, сейчас все профессии на этом зиждятся, не только ИТ.
Гибкость мышления
Если не получается так, то сделай иначе. «Гибкость мышления» — так можно по-красивому назвать внедрение костылей.
Умение искать
Охотно рыться в тоннах документации и умение грамотно формулировать вопросы. Разница между джуном, мидлом и сеньером, в частности, в том, насколько четко он формирует запросы в поисковике и на тематических сайтах.