суббота, 24 апреля 2010 г.

Матрица компетентности программиста

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

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

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

пятница, 16 апреля 2010 г.

Профессионализм программиста

Давайте подумаем, что подразумевает под собой профессионализм программиста? Предлагаю мои мысли на эту тему, буду рад вашим дополнениям.

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

2. Профессионализм должен проявляться в умении точно оценить временные затраты на разработку и в умении не превысить их.

3. Опытный программист должен увидеть в новом требовании к проекту все потенциальные сложности, о которых заказчик может и не подозревать. И конечно предупредить его об этом. С опытом приходит умение видеть проблемы там,  где их никто не ожидает. И соответственно умение их быстро решать.

4. Для профессионала не бывает скучных и неинтересных проектов. В каждом проекте можно найти для себя что-то новое, чему-то научиться и т. д.

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

6. С опытом и профессионализмом приходит ценнейший навык решать сложными проблемы простыми методами. Правило KISS было, есть и будет важным постулатом в разработке.

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

 8. Профессионал должен уметь управлять своим временем - распределять его так, чтобы принести как можно больше пользы. Здесь все индивидуально.

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

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

суббота, 3 апреля 2010 г.

TODO: работа с формами.

При разработке web-приложений с формами нужно научить форму заполняться автоматически тестовыми данными. Это сэкономит кучу времени при отладке. Может быть плагин какой-нибудь придумать для jQuery? Поискал в интернете - нет такого. Может кто знает готовое решение?