Давайте подумаем, что подразумевает под собой профессионализм программиста? Предлагаю мои мысли на эту тему, буду рад вашим дополнениям.
1. Профессионал должен уметь работать со старыми проектами. Не часто нам достаются проекты, которые мы делаем с самого начала. Чаще в руки программиста попадают старые, недоделанные кем-то проекты. Зачастую совмещающие различные подходы к разработке, запутанные и неправильно спроектированные. Конечно, каждый программист захочет переписать все заново. Но не всегда это возможно. Профессионал должен уметь сделать из любого проекта качественный продукт.
2. Профессионализм должен проявляться в умении точно оценить временные затраты на разработку и в умении не превысить их.
3. Опытный программист должен увидеть в новом требовании к проекту все потенциальные сложности, о которых заказчик может и не подозревать. И конечно предупредить его об этом. С опытом приходит умение видеть проблемы там, где их никто не ожидает. И соответственно умение их быстро решать.
4. Для профессионала не бывает скучных и неинтересных проектов. В каждом проекте можно найти для себя что-то новое, чему-то научиться и т. д.
5. Опытный программист должен быть нацелен прежде всего на результат. А также получать удовольствие от процесса. Очень важное умение - довести дело до конца и выдать результат.
6. С опытом и профессионализмом приходит ценнейший навык решать сложными проблемы простыми методами. Правило KISS было, есть и будет важным постулатом в разработке.
7. Как следствие нацеленности на результат профессионал пересилит в себе желание написать свой велосипед при наличие хорошо работающего существующего. Свой велосипед должен быть написан дома и может быть выложен на суд общественности. В нем можно опробовать свои идеи, и если из него получается хороший продукт, то применить на работе.
8. Профессионал должен уметь управлять своим временем - распределять его так, чтобы принести как можно больше пользы. Здесь все индивидуально.
9. Спорный момент, но все же. Есть такие неприятные задачи, которые любят откладывать на самый последний момент, когда дальше без нее никак, хотя очевидно, что она должна быть решена как можно раньше. Здесь нужно уметь отбросить свои эмоции и выполнить именно то, что нужно.
Вообще, судя по этим пунктом можно подумать, что профессиональный программист - робот, выполняющий задачи. Без чувств, эмоций, настроений, предпочтений и т. д. Дело в том, что нужно вырабатывать в себе качества, необходимые для той деятельности, которой ты занимаешься. Есть множество профессий, меняющих людей. И программизм - одна из таких. Хочешь добиться успеха - будь профессионалом. Иначе никак.