31.03.2014 13:20, Alexey Shrub пишет:
Суббота, 29 марта 2014, 9:09 +04:00 от Walery Studennikov <[email protected]>:
По мне "хороший программист" -- тот кто "делает дело", т.е. реально
решает реальные задачи и проблемы, при этом за ним не нужно
переделывать. При этом достаточно самостоятельный -- ему не нужно
каждую мелочь разжёвывать и расписывать формально в ТЗ, он способен в
мелочах додумывать и предлагать адекватные решения. Организованный и
ответственный, которому не нужны няньки и пинки, чтобы как-то
организовать свою деятельность. При этом прагматичный, способный
выбирать решения из целесообразности, а не только из мотива "интересно
поиграться с технологией". Точнее, способный балансировать между
факторами чисто технологического интереса и бизнес-целесообразности.
При этом всём с адекватным интерфейсом, чтобы было приятно работать и
общаться как с человеком ))
Как то так ))
По мне так почти исчерпывающий перечень требований, попробую коротко 
пересказать:
- делает то что работает
- делает самостоятельно
- делает так что это можно развивать
- делает в условиях дефицита информации (способен доосмыслить минимальное 
ТЗ/задать вопросы/предложить решения)
- взвешенно выбирает технологии
- адекватен как человек

можно добавить
- знает и применяет стандартные решения для стандартных проблем

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

ну и остаётся вопрос о соотношении качества и скорости, "хорошее" оно видимо 
для всех разное (в зависимости от сферы бизнеса), кому-то качество в первую очередь, а 
кому-то подавай завтра хоть какой прототип

И как можно заметить формулировки общие - не про хорошего программиста, а в 
целом про хорошего работника-исполнителя

Вот тут согласен. Часто вижу, иногда вижу, что люди, независимо от крутости и квалификации склонны писать решения, которые очень сложно развивать. Они очень узко ограничены поставленной каким-то менеджером или продуктовиком задачей без довольно "недорогих" степеней свободы, если можно так выразиться. Менеджер или продуктовик или просто заказчик, зачастую не видит дальше своего носа, и одни и те же вещи могут меняться очень сильно. Так вот, со стороны программиста, стремлюсь учитывать, что такие-то вещи могут легко меняться на другие из-за реалий бизнеса и проще какие-то вещи сделать изначально универсальными, чем через год переписывать значительно или нагромождать говнокод. Зачастую очень важно, как какая-то вещь написана. Даже если сегодня это что-то быстрое и простое, то не факт, что за какое-то время его не потребуется расширять и наращивать функционал. Если написано грамотно, то ухудшаться поддерживаемость будет значительно медленнее. Ну и да: это скорее о "хорошем человеке", которому и менеджер не нужен (проще самому вникнуть в потребности со стороны бизнеса и продумать реализацию), не нужен человек с палкой и т.д. Т.е. я хоть и отношу себя к "хорошим", но про свою квалификацию ничего особо хорошего сказать не могу, ввиду тупо отсутствия опыта с реально крутыми вещами (распределенные сети, может какой настоящий хайлоад) и многих знаний, которые склонен получать именно в процессе работы над чем-то, а не заранее зубрить технологии.

--
http://foxcool.ru
[email protected]

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить