Несколько событий последних месяцев (в основном - наблюдения за знакомыми и их истории за пивом и чаем) заставили меня задуматься о том, что можно, наверное, выделить несколько типов программистов:
- Программист-гик. Человек, которому интересно. Действительно интересно то, чем он занимается. Мозг постоянно требует новых задач, душа - творческих свершений. Если задача интересная сделает ее быстро - потому что интересно. Если не интересная - быстро, чтобы осталось время на интересную. Может "зарыться" на сутки в кодирование, решая пустяковую (давно решенную) задачу каким-нибудь нестандартным образом. Четкую постановку задачи не приветствует. Много знает. Умеет еще больше. Готов прийти на помощь, но часто не приемлет помощь других. Болезненно относится к критике. Может "жить" на работе, если интересно. Или наоборот - "положить" на работу, если не интересно. Документации не ведет в принципе. В команде работать может. А может и не работать :) "Завалить" работу может запросто. С позиции управленца требует внимания и контроля, а также постоянного "приземления".
- Программист-профессионал. Человек, который понимает - чем и зачем он занимается. Требует четкой постановки задачи, готов разбираться в прикладной области, генерировать идеи, делиться идеями. Как правило, не задерживается на работе, предпочитая планировать на какой-нибудь срок вперед. Тем не менее, сроки выдерживает практически всегда. Много знает, и много умеет. Критику принимает. Вариант с "завалом" работы может произойти только если его перегрузить работой. В процессе разработки составляет спецификации и старается документировать сделанное. Самодисциплинирован. В команде, как правило, работать может хорошо. С позиции управленца - один из оптимальный вариантов: не требует слишком много времени на постановку задачи и выдает отличный результат.
- Просто программист. До "профессионала" явно не дотягивает - не хватает знаний/стажа. Дальше возможны варианты:
- Позитивный: работает над собой, стремясь во что бы то ни стало расширить свой кругозор, и стать профессионалом. Учится работать в команде, иногда не забывая документировать сделанное. Учится работать в команде. Для управленца - нормальный вариант: через некоторое время из него может вырасти профессионал.
- Негативный. Работает "спустя рукава", единственный мотиватор - зарплата, большого желания работать над собой не наблюдается, зато всегда готов обосновать, почему именно он не должен решать ту или иную задачу. Для управленца: головная боль - вроде и не нулевой выхлоп, но сил и нервов тратится... не дай Бог.
- Программист начинающий. Тут тоже возможны варианты.
- Программист-стажер (студент): вариант А. Вопреки распространенному мнению ("студенты -дешевы и халтурят") студенты вполне способны выдавать и хороший результат, и работать в команде. Просто, если человек хороший :) то у него со временем все начинает получаться. С точки зрения управленца - вариант интересный: есть шанс, что вырастет профессионал.
- Программист-стажер - не на своем месте. Как известно, студенты - это люди, которые стремятся найти дополнительный заработок. Вот и идут - в том числе в программисты. Кто-то их берет, и они пытаются приспособиться к тому, к чему физически не предрасположены. Самое неприятное, что, если им вовремя не остановиться, то через некоторое время это будет негативный вариант "просто программиста". С точки зрения управленца: не вариант.
- Программист-самоучка. Как правило, либо непризнанный гений (худший вариант), либо разновидность того, кто описан в выше и ниже. Дело в том, что программирование - область специфическая, и в ней встречаются те, кто по образованию от программирования можетбыть весьма и весьма далек...
- Программист-кодер. Сугубый исполнитель. И этим сказано все. Требует готовых алгоритмов, готовых решений. К самостоятельной работе приспособлен слабо - может лишь перевести понятный алгоритм в код. И все. С точки зрения управленца: при наличии хороших постановщиков задачи такие люди нужны, в противном случае больше времени уйдет на то, чтобы объяснить им, что они должны делать.
- Программист-пользователь. Еще его называют "кулцхакер". Программист, неспособный самостоятельно поставить среду программирования :) И это - диагноз. С точки зрения управленца: не стоит даже связываться.
Кросспост из моего ИТшного блога на ITBlogs.ru