
Что касается того, как стать отличным программистом, в последнее время это снова стало центром нашего внимания. Ниже приведены качества, которые, как я считаю, нам нужны больше всего:
- Хорошо умеет решать проблемы.
- Трудолюбивый и ленивый одновременно.
- Способен понимать чужой код.
- Увлечён программированием.
- Любит учиться ради самой учёбы.
- Хорошо разбирается в математике.
- Обладает хорошими коммуникативными навыками.
- Сильные навыки ведения дебатов.
- Чрезвычайно оптимистичен.
- Чрезвычайно пессимистичен.
1. Хорошо умеет решать проблемы-- Я надеюсь, что каждый это осознает. Большинство выдающихся программистов могут находить решения, которые другие не могут обнаружить.
2. Трудолюбивый и ленивый-- Этот момент удивляет многих. Причина, по которой программисты любят подвергать вещи сомнению, часто в том, что они «слишком ленивы», чтобы идти окольными путями. Руководствуясь таким мышлением, они неустанно упрощают проблемы и задачи. Иными словами, они стремятся завершить работу, но хотят, чтобы процесс был как можно более эффективным.
3. Способен понимать чужой код-- Это критически важно. Многие превосходные программисты застревают на пороге продвижения к «величию» из-за этого пункта. На самом деле не так важно, насколько хорошо вы умеете переписывать код, -- но вам нужно сотрудничать с другими над существующими проектами, учиться на открытом исходном коде при запуске новых проектов и перенимать хорошие приёмы из существующих кодовых баз, и всё это требует способности понимать чужой код.
4. Увлечён программированием-- Вы должны любить программирование. В большинстве случаев страсть — это движущая сила величия.
5. Любовь к учёбе ради самой учёбы-- Учёба подобна плаванию против течения; если не двигаться вперёд, отстаёшь. Это бесконечное занятие.
6. Хорошо разбирается в математике-- Как минимум нужно хорошо понимать математический анализ. При этом, если вы не знаете хотя бы основы алгебры и тригонометрии, вы практически не можете стать великим программистом.
7. Имеет хорошие коммуникативные навыки-- Это означает, что они могут ясно выражать свои мысли в своей области. Я встречал многих великих программистов, которые, хотя и не могут хорошо общаться на другие темы, как только речь заходит об их области, могут долго говорить, ясно объяснять проблемы и предлагать решения.
8. Сильные навыки ведения споров-- Та же причина, что и в пункте 7.
9. Чрезвычайно оптимистичен-- Великие программисты, лишь ненадолго задумавшись, сразу могут определить, что способны выполнить задачу.
10. Чрезвычайно пессимистичен-- Великие программисты, когда им не хватает необходимой информации для принятия правильного решения, будут упорно настаивать, что не могут выполнить работу.
Ниже приведены дополнительные пункты (не обязательные для всех великих программистов):
1. Особенно организован.
2. Хорошо управляет людьми и программными проектами.
3. Способен писать хорошие проектные документы.
4. Способен оценивать время.
5. Широко читает техническую литературу.
6. Способен переносить навыки программирования в другие области программирования, делая выводы из одного примера.
7. Пишите код правильно с первой попытки.
8. Обладать навыками в других областях.
Источник: http://www.codeceo.com/article/10-attributes-of-a-great-programmer.html