[skiped]
АК>Так вот, любопытнейшие результаты, я вам скажу Примерно 80% решений удается "завалить" парой-тройкой тестовых примеров. Больше половины оставшихся написаны методом "copy-paste" (это если обобщенно). А один кадр, получив задание, вообще замолк, и через его знакомых до нас дошла информация, что он на нас обиделся: "Они там что, студентом меня считают что ли? Дают задание, на которое в интернете можно найти кучу решений. Да пошли они куда подальше, я им не студент, мой уровень не настолько низок, чтобы вот так меня тестировать". Тут тоже понятно: завышенная самооценка и немеренные амбиции, от чего потом огребем по полной программе (я готов обосновать, в моей практике есть парочка примеров).
Да , совершенно согласен , многие мои знакомые , отличные специалисты именно так и поступают, когда им дают тестовое задание. Один раз даже слышал уволили человека посел того как он давал тестовые задания и упустил всех специалистов которые могли сделать работу.
Д>Ну во первых, с виртуальными функциями у него общее только одно — это название. Д>А во вторых, кстати, в ABBYY виртуальное наследование запрещено к применению специальной инструкцией. И правильно. Потому что ромбы в иерархиях — это результат кривых рук архитектора.
Эти слова бы — да нашим, бии-и-и-ип, манагерам, биииип, в уши!
У нас тут мега-помойка из дичайшего кода с постоянным виртуальным наследованием. Такого кошмара я еще нигде не встречал. Самое ужасное во всем этом — что наш мега-тим-лид-супер-архитектор-круче-только-яйца — искренне считает, что так, и только так, нужно делать. Все мои попытки показать, что заниматься строительством велосипедов не надо, и что COM был сделан Microsoft уже давно и там неплохо продумано все то, что изобретает наш тим-лид, провалились
IMHO оно (в. н.) имеет право жить только в одном случае: для реализации некоего Object, от которого все растут. Чисто для создания общего предка, например, с ref-counting'ом для smart pointers.
E>Теперь о руководстве. С чего Вы взяли, что руководитель должен быть прилежным кодописателем ? Разумеется, понятие о кодописании он должен иметь, но по долгу службы руководителю больше приходится решать политические вопросы и общатсья с заказчиком, нежели писать код (я в бытность свою руководителем иногда по полтора месяца не писал ни строчки кода). А теория, пусть люди ее и учили, очень быстро выветривается.
Если этот руководитель претендует на роль архитектора — он как минимум должен уметь этим заниматься. Не на основе "я дольше всех работаю в IT". А то выйдет как у нас
Здравствуйте, Александр Каширин, Вы писали:
E>>Мне больше импонируют работодатели, которые спрашивают те вещи, которые реально пригодятся в проектах, не зацикливаясь на деталях — а по рассказу кандидата о предыдущих проектах можно понять не меньше, чем по бумажному тесту на написание сортировки массива. АК>Как проверить, что кандидат наговорил про "свои проекты" всю правду и только правду и ничего кроме правды?
Легко: "Почему вот здесь вы использовали вот это решение?" Если он может адекватно объяснить почему задать еще один: "А если бы вот это требование изменилось, какое решение вы бы приняли?" Если кандидат способен внятно и аргументированно отвечать на такие вопросы, какая разница, правду он говорит или нет? Если не способен, это тем более не имеет значения.
Д>правильно пишет. Самый худший код, который я видел в своей работе — это написанный такими вот "мега-гуру", которые на ровном месте наворотили кучу ненужных фенечек. Так что в результате получилась "архитектура", которая расширяется во всех мыслимых направлениях, кроме тех, которые нужны реально. Кода я этот мусор переписал, объем кода уменьшился в разы. Это при том, что я еще новый функционал добавил.
тем не мение ИМХО это никоим образом не отменяет необходимость наличия хоть каких-то минимальных "книжных" знаний.
Здравствуйте, xog, Вы писали:
HB>>Интересно что народ считает харошей мотивацией? xog>Ответ понятен и прост — ЗП
Т.е. если тебе платить в 1.5 раза больше — ты станешь работать в 1.5 раза лучше?
Значит, сейчас ты работаешь не в полную силу? Может, раз ты работаешь не в полную силу, то тебе и платить нужно меньше?
E>Ведь в реальности вся эта лабуда, типа изысков ООП, виртуальных деструкторов и паттернов, и даже виртуальных функций, почти не используется в реальных проектах.
Не стоит говорить за всех — просто не все умеют этим пользоваться.
А про разработку без паттернов это просто шедевр — сдается мне, что они у вас все же используются
E>ах да, я забыл — вы такие проекты называете "убогими формочками", но тем не менее за эти формочки заказчик платит деньги, и немалые.
Интересно, как у вас пойдут дела без того, что вы назвали "лабудой" (еще это называется архитектурой когда формочек станет несколько сотен
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, creatman, Вы писали:
C>>Да, согласен, смотрите subj. Но причем тут виртуальные функции? Виртуальные функции это реализация полиморфизма в Си++, вы не используете полиморфизм???? Вы не используете ООП??? тогда о чем тут речь? Писать на чистом Си это одно, а говорить, что использовать виртуальные функции в Си++ необязательно это уже совсем грубая ошибка.
Д>полиморфизм разный бывает, и виртуальные функции далеко не единственное решение. И далеко не всегда лучшее.
C>>Это их проблемы, я думаю кривых рук хватает и в ABBYY
Д>удивительно только, почему это одна из немногих российских компаний, которые продают свой продукт по всему миру.
Это не показатель качества ПО. Мелкософт и покрупнее и солиднее будет, но увы качество ПО оставляет желать лучшего
C>>Каких иерархиях? Пожалуйста приведите мне хоть одну иерархию без виртуальных функций (очень интересно)?
Д>какое вообще отношение имеют виртуальные функции к виртуальному наследованию?
Мне интересно было какие вы иерархии строите без виртуальных функций. Виртуальное наследование давайте уже оставим в покое или переведем тему в Си++
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Александр Каширин, Вы писали:
АК>>А один кадр, получив задание, вообще замолк, и через его знакомых до нас дошла информация, что он на нас обиделся: "Они там что, студентом меня считают что ли? Дают задание, на которое в интернете можно найти кучу решений. Да пошли они куда подальше, я им не студент, мой уровень не настолько низок, чтобы вот так меня тестировать". M>Да , совершенно согласен , многие мои знакомые , отличные специалисты именно так и поступают, когда им дают тестовое задание. Один раз даже слышал уволили человека посел того как он давал тестовые задания и упустил всех специалистов которые могли сделать работу.
Если на просьбу написать, хоть и простое, но надежное, масштабируемое, расширяемое и поддерживаемое приложение, человек отвечает, что кучу решений этого задания можно найти в интернете, то я уже начинаю сомневаться в том, что он выполнит мою просьбу (причем по всем четырем критериям сразу). А это значит, что он просто не представляет себе, что от него требуется. Значит максимум, что с ним можно сделать после принятия на работу — это начинать его учить на позиции Junior. Однако из его амбиций следует, что студентом он быть не намерен.
По поводу "так и отвечают" — у меня другое мнение. Я считаю, что если я лезу в чужой огород, то "со своим уставом" это будет не совсем корректно. Поэтому придерживаюсь их устава. И если он требует написания тестового задания, то мне не стыдно показать свои навыки, выполнив его. Тем более, кстати, что зачастую эти задания бывают чрезвычайно интересными и заставляют мозг встряхнуться Мне, например, было стыдно, когда после тестового задания на техническом собеседовании в CQG мне ненавязчиво показали, в каком случае моя программа зависает. А это реальный показатель того, что я чего-то не предусмотрел, и более внимательный подход к вариантам решения стал для меня очередным пунктиком. Сегодня я осознаю, что после того тестового задания я начал мыслить немножко иначе, поднявшись еще на одну ступеньку вверх.
Насчет "отличных специалистов"... У нас работал такой "специалист, который мог сделать работу". Поначалу он довольно быстро выполнил часть крупного проекта в части интерфейса пользователя одного из рабочих мест: получилось неплохо, удобно, он получил премию и прибавку к зарплате. После этого на него была частично возложена функциональная часть проекта...
Примерно через полгода затраты на командировки к заказчикам по устранению рекламаций начали превышать все мыслимые суммы, а время, проведенное в командировках, у этого товарища начало превышать время, проведенное на рабочем месте. В результате вмешательства более опытных товарищей вдруг оказалось: да, товарищ "может сделать работу"... но когда он берется за серверное решение, то он совершенно не отдает себе отчета в том, что ошибка защиты памяти или просто не пойманное исключение не просто вынудит пользователя перезапустить программу, а приведет к остановке системы и необходимости вмешательства сисадмина. А за полгода он успел наковырять столько исходного кода... В общем, "причесывание" проекта заняло еще почти полтора месяца, пока наконец система не стала более-менее стабильной. А у фирмы — куча убытков.
С тех пор я согласен с Биллом Гейтсом: лучше не взять на работу 10 отличных специалистов, чем взять на работу 1 плохого.
Здравствуйте, Eurispheus, Вы писали:
HB>>>Интересно что народ считает харошей мотивацией? xog>>Ответ понятен и прост — ЗП
E>Т.е. если тебе платить в 1.5 раза больше — ты станешь работать в 1.5 раза лучше? E>Значит, сейчас ты работаешь не в полную силу? Может, раз ты работаешь не в полную силу, то тебе и платить нужно меньше?
Не совсем так, если человек получает 100 рублей и знает, что ему больше чем 100 рублей не светит и на эти деньги он без труда найдет
себе работу в любой другой конторе, то какой смысл ему напрягаться, изучать что-то новое, совершенствоваться и т.д. ?
Здравствуйте, superman, Вы писали:
S>Здравствуйте, Дарней, Вы писали:
S>тем не мение ИМХО это никоим образом не отменяет необходимость наличия хоть каких-то минимальных "книжных" знаний.
Здесь речь шла немножко не об этом, книжные знания это очень хорошо, чем больше, тем лучше и с этим никто не спорит, просто
если человек ничего кроме них не видел, а просто запомнил все "умные" слова и примеры их использования, то толку от него
все-равно 0.
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, creatman, Вы писали:
C>>МДаааа... No Comments
Д>правильно пишет. Самый худший код, который я видел в своей работе — это написанный такими вот "мега-гуру",
Ты мой код не видел, если это имелось ввиду.
Д> которые на ровном месте наворотили кучу ненужных фенечек.
см. subj. ИМХО для некоторых BOOST и STL кажется достаточно сложными штуками в использовании, но это отнюдь не говорит о том, что профессионал не должен их использовать. Для некоторых разработка класса считается гораздо более сложной феничкой чем структурка и пара десятков глобальных функций, ну тогда давайте переведем это в тему C vs C++.
Д> Так что в результате получилась "архитектура", которая расширяется во всех мыслимых направлениях, кроме тех, которые нужны реально.
СКИПаю
Д> Кода я этот мусор переписал, объем кода уменьшился в разы. Это при том, что я еще новый функционал добавил.
Мои поздравления и искреннее уважение. Муссора достаточно везде, и я верю, что вы сделали благое дело и никакой другой разработчик теперь не назовет это мусором
Здравствуйте, AmSpb, Вы писали:
AS>Здравствуйте, creatman, Вы писали:
C>>Здравствуйте, xog, Вы писали:
AS>>>>Есть и такое. Мало где пригождается. Как говорится простота залог успеха
xog>>>Абсолютно согласен
C>>Абсолютно не согласен. Работаю в большой компании, над большой и серьезной системой, виртуального наследования тут хватает и оно тут к месту. И вопрос тут не в том пригождается оно или нет, а в том знает ли человек проектирующий систему и выбирающий вариант реализации о том, что виртуальное наследование есть вобще, и знает ли он, что если он его забудет использовать, то в определенных (в полне обычных случаях) его система рухнет как карточный домик! Если он не знает этого то просто у него нет опыта и он мало наступал на грабли, по которым прошли многие специалисты.
AS>Сделать из сложного простое задача нетривиальная и виртуальное наследование этому никак не способствует
Пишите на чистом Си, никто о вас даже плохо не подумают, некоторые наоборот даже похвалят. Не используйте классы используйте структуры. Перенисите этот топик в ветку С vs C++
Здравствуйте, Un0, Вы писали:
xog>>Ну давайте еще бедных индийцев вспомним... Критику навести накого угодно можно, сначала следует на себя посмотреть...
Un0>на себя неинтересно, Un0>я же не себя на работу беру. Каким способом вы выявляете кривизну рук ?
Здравствуйте, xog, Вы писали:
xog>Не совсем так, если человек получает 100 рублей и знает, что ему больше чем 100 рублей не светит и на эти деньги он без труда найдет xog>себе работу в любой другой конторе, то какой смысл ему напрягаться, изучать что-то новое, совершенствоваться и т.д. ?
Напрягаться — это в смысле просто работать? Или перерабатывать?
Т.е. за 100р ты не напрягаешься, а за 150 будешь напрягаться, т.е. работать больше/лучше?
Изучать что-то новое и совершенствоваться:
1. Когда? В рабочее время?
2. Для чего, и кому именно это нужно?
Здравствуйте, Eurispheus, Вы писали:
E>Здравствуйте, xog, Вы писали:
xog>>Не совсем так, если человек получает 100 рублей и знает, что ему больше чем 100 рублей не светит и на эти деньги он без труда найдет xog>>себе работу в любой другой конторе, то какой смысл ему напрягаться, изучать что-то новое, совершенствоваться и т.д. ?
E>Напрягаться — это в смысле просто работать? Или перерабатывать? E>Т.е. за 100р ты не напрягаешься, а за 150 будешь напрягаться, т.е. работать больше/лучше?
E>Изучать что-то новое и совершенствоваться: E>1. Когда? В рабочее время?
В свободное время... E>2. Для чего, и кому именно это нужно?
Работнику — чтобы не идти работать на меньшую ЗП
Работодателю — чтобы не искать новых "криворуких"
Я не навязываю , а просто даю на рассмотрение , что существует другая точка зрения. Кстати до боли смешно , но из любопытства я попросил тогда у товарища тестовое задание. Я за 5 минут нашел около 10 вариантов решения в сети, мы весело порадовались , и знали куда не надо больше ходить.
АК>С тех пор я согласен с Биллом Гейтсом: лучше не взять на работу 10 отличных специалистов, чем взять на работу 1 плохого.
Вот смотрите , насколько разнаю ситуация; в заголовке темы человек вообще ни одного хорошего спеца найти не может , а вы спокойно не берете на работу 10 ! Я бы на его месте переманила вашего HR !!!!