Вакансия программиста. Требования работодателей.
Август 22, 2008
По итогам анализа лидирующего новосибирского сайта с объявлениями о вакансиях программиста, были сделаны некоторые выводы о требованиях работодателей к соискателям.
Все требования были разделены на три группы в зависимости от того, насколько часто они встречаются в объявлениях:
- требования, присутствующие практически во всех объявлениях
- требования средней частоты
- требования специфичные для вакансии младшего программиста
- требования специфичные для вакансии старшего программиста
- редкие и единичные требования
1. Требования, присутствующие практически во всех объявлениях
- знания конкретных технологий
- знания ООП, ООД, паттернов
- знания английского языка
- опыт работы в определённой должности не менее указанного срока
Требования к знанию английского языка в разных местах могут варьироваться от чтения технической документации (что минимально в профессии) до свободного разговорного.
Эти четыре пункта в большинстве случаев образуют тот базис, которым должен обладать любой успешный кандидат. Первые три пункта обозначают те знания, которые должны давать возможность кандидату справляться с предполагаемыми задачами с надлежащим качеством. Последний пункт направлен на сдерживание проблем, связанных с неопытностью сотрудника. Держать неопытного сотрудника, потенциально склонного к серьёзным ошибкам, не каждая компания может себе позволить.
Также практически во всех объявлениях указывается то, что желательны знания «нужных» технологий (т.е. с использованием которых делается проект, на который хотят взять человека).
2. Требования средней частоты
Менее частые, но довольно распространенные требования:
- опыт работы в команде
- опыт работы с системами контроля версий, bugtracking-системами
- ответственность, умение выполнять задачи в срок
- умение разбираться в чужом коде
Этими требованиями проводится отбор кандидатов, которые уже имеют опыт в коммерческой разработке, а значит, не требуют дополнительного обучения и затрат.
3. Требования специфичные для вакансии младшего программиста
Объявлений таких достаточно мало, но сказать о них можно следующее:
- в большинстве случаев работодатель рассчитывает на студента
- часто, но не всегда, требуется какой-то начальный опыт по технологии
- самое главное – желание и умение учиться
4. Требования специфичные для вакансии старшего программиста
Получить классификацию требований как в анализе вакансии программиста и выявить тренды невозможно ввиду сравнительно малого количества вакансий. Это можно объяснить тем, что некоторые работодатели не разделяют объявления о вакансиях на уровни.
Основными моментами, которыми объявления о вакансии старшего/ведущего программиста отличаются от «просто» программиста, являются следующие:
- умение проектировать и анализировать архитектуру и дизайн приложения
- «продвинутые» умения, такие как умение оптимизировать
Отдельные требования специфичные для вакансий старшего программиста:
- опыт проектирования
- понимание принципов построения архитектуры программных систем
- умение писать эффективные алгоритмы
- опыт анализа предметной области и проектирования базы данных
- умение планировать и оценивать проектные задачи
- умение оценивать преимущества и недостатки выбранной архитектуры
- опыт UML моделирования
- написание архитектурных документов
- навыки оптимизации
- кластеринг и распределение нагрузки
5. Редкие и единичные требования
Требования из этой категории не образуют заметных трендов на рынке труда, однако могут быть использованы для построения портрета «идеального кандидата на вакансию программиста».
Редкие, но не единичные требования:
- высшее техническое образование
- умение писать качественный код
- опыт работы с конкретными продуктами
- знание конкретных предметных областей (чаще для 1С и ERP-систем)
- знание конкретных протоколов (для коммуникационных приложений)
Требования, встречающиеся в единичных предложениях о работе, как правило, покрывают отдельно взятые рабочие моменты в конкретной организации либо представляют собой желаемые личные качества кандидата. Примеры таких требований приведены ниже.
Рабочие моменты
- опыт работы в проектах строго придерживающихся формальных процессов разработки
- умение ориентироваться в современных технологиях
- умение анализировать спецификации
- умение писать тесты
- умение планировать и оценивать задачи
- умение писать техническую документацию
Личные качества:
- интерес к делу и профессиональному росту
- обучаемость
- коммуникабельность
- инициативность
Выводы
Новосибирский работодатель хочет от программиста в первую очередь технологических знаний, понимания ОО-концепций, знания английского языка. Затем его интересует опыт человека в коммерческих проектах. В последнюю очередь работодатель интересуется личными качествами и отдельными умениями кандидата.