У каждой компании в принципе свои требования, иногда можно встретить требование глубокого понимания и существенный опыт использования Win API и COM; у кого-то — хорошее знание стека сетевых протоколов; а третьи — ну никак не хотят брать на работу разработчиков, не имеющих реального опыта разработки приложений под мобильные системы.
Но в общем обычно хотят как минимум следующего:
1. Глубокого знания и понимания С++ и умения им пользоваться. Иногда могут задачки позадавать на тему каких-нибудь хитрых конструкций (примеры можно найти в книгах Мейерса, Саттера и Дьюхэрста)
2. Глубокого понимания ООП и знания хотя бы основных шаблонов проектирования (книга "Банды четырех")
3. Умения не просто работать с STL, но и эффективно работать с STL (опять Мейерс) — вот этому, как ни странно, посвящается львиная доля "технического собеседования", а иногда и вовсе собеседование превращается в экзамен по STL.
4. Незнание boost-а могут "простить", но все равно "крайне желательно".
5. Знание, как работают классические алгоритмы (сортировка, поиск, обход дерева), понимание термина "сложность алгоритма".
И вообще, ключевым словом, лейтмотивом всех требований является термин "эффективность". Просто знания С++ и умения писать программы на нем есть у многих, но ищут именно тех, кто умеет это делать эффективно.
Здравствуйте, sysenter, Вы писали:
S>Навеяно подобным топиком про .Net. Какие требования к Senior C++ Developer?
Лет пять назад — умение писать код на одних шаблонах. Со временем компиляции не менее получаса.
Сейчас не знаю, что там модно.
Умение писать пятиэтажный код, изобилующий boost::bind, boost::function, boost::labda и прочими заклинаниями, начинающимися со слова boost, в результате применения которых понятный код, размером в 20-30 строк, может быть записан в 5-7 строк, для понимания которых требуется определенный стиль мышления, отличный от того, к чему привыкли многие. Поначалу долго плюёшься и ругаешься, но потом привыкаешь и сам начинаешь так писать...
"Котенок поначалу боялся пылесоса, а потом ничего — втянулся"
Здравствуйте, AndreyMih, Вы писали: AM>Но в общем обычно хотят как минимум следующего: AM>1. Глубокого знания и понимания С++ и умения им пользоваться. Иногда могут задачки позадавать на тему каких-нибудь хитрых конструкций (примеры можно найти в книгах Мейерса, Саттера и Дьюхэрста) AM>2. Глубокого понимания ООП и знания хотя бы основных шаблонов проектирования (книга "Банды четырех") AM>3. Умения не просто работать с STL, но и эффективно работать с STL (опять Мейерс) — вот этому, как ни странно, посвящается львиная доля "технического собеседования", а иногда и вовсе собеседование превращается в экзамен по STL. AM>4. Незнание boost-а могут "простить", но все равно "крайне желательно". AM>5. Знание, как работают классические алгоритмы (сортировка, поиск, обход дерева), понимание термина "сложность алгоритма".
я свежее знание книжек по рефаторингу, шаблонам проектирования и, особенно agile скорее занес бы в минусы — это еще не сеньер, но вполне может им стать через пару лет
Здравствуйте, AndreyMih, Вы писали:
П>>Сейчас не знаю, что там модно.
AM>Умение писать пятиэтажный код, изобилующий boost::bind, boost::function, boost::labda и прочими заклинаниями, начинающимися со слова boost, в результате применения которых понятный код, размером в 20-30 строк, может быть записан в 5-7 строк, для понимания которых требуется определенный стиль мышления, отличный от того, к чему привыкли многие. Поначалу долго плюёшься и ругаешься, но потом привыкаешь и сам начинаешь так писать...
AM>"Котенок поначалу боялся пылесоса, а потом ничего — втянулся"
Здравствуйте, AndreyMih, Вы писали:
AM>Умение писать пятиэтажный код, изобилующий boost::bind, boost::function,
Вы отстали от жизни, уже много лет это называется std::tr1::bind, а последние несколько лет — std::bind.
Здравствуйте, __kot2, Вы писали:
__>Здравствуйте, AndreyMih, Вы писали: AM>>Но в общем обычно хотят как минимум следующего: AM>>1. Глубокого знания и понимания С++ и умения им пользоваться. Иногда могут задачки позадавать на тему каких-нибудь хитрых конструкций (примеры можно найти в книгах Мейерса, Саттера и Дьюхэрста) AM>>2. Глубокого понимания ООП и знания хотя бы основных шаблонов проектирования (книга "Банды четырех") AM>>3. Умения не просто работать с STL, но и эффективно работать с STL (опять Мейерс) — вот этому, как ни странно, посвящается львиная доля "технического собеседования", а иногда и вовсе собеседование превращается в экзамен по STL. AM>>4. Незнание boost-а могут "простить", но все равно "крайне желательно". AM>>5. Знание, как работают классические алгоритмы (сортировка, поиск, обход дерева), понимание термина "сложность алгоритма". __>я свежее знание книжек по рефаторингу, шаблонам проектирования и, особенно agile скорее занес бы в минусы — это еще не сеньер, но вполне может им стать через пару лет
Я бы сказал что это джуниор а если еще и в мозг покусан этими паттернами или Александреску, то сеньйором ему не бывать.
AM>Умение писать пятиэтажный код, изобилующий boost::bind, boost::function, boost::labda и прочими заклинаниями, начинающимися со слова boost, в результате применения которых понятный код, размером в 20-30 строк, может быть записан в 5-7 строк, для понимания которых требуется определенный стиль мышления, отличный от того, к чему привыкли многие. Поначалу долго плюёшься и ругаешься, но потом привыкаешь и сам начинаешь так писать...
С опытом, наоборот, от такого уходишь. Если прирожденный программист, то даже и не начинаешь. Те кто так педалят "всю жизнь" и есть самые настоящие джуниоры.
Здравствуйте, Олег К., Вы писали:
ОК>С опытом, наоборот, от такого уходишь. Если прирожденный программист, то даже и не начинаешь. Те кто так педалят "всю жизнь" и есть самые настоящие джуниоры.
Уходишь, потом опять приходишь, вот например появился новый стандарт волей не волей приходится учить новое
и в этот момент всяко будешь писать не просто и не оптимально.
Ну и простота тоже разная бывает скажем в стиле "Си с классами" можно такого накрутить что бустовцы
от зависти помрут.
С другой стороны тот же буст и новый стандарт в умеренных дозах позволяют писать проще и красивей.
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, carpenter, Вы писали:
C>>я тут давеча видел лямбды как параметр шаблона K>Когда такое может пригодится?
это уже уклон в функциональщину, когда я спросил чувака который это написал — не извращенец ли он часом,
он ответил, что не он пишет код, а код ведет его