Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
сейчас объясню в чем фигня
причин несколько
— 90-99% кода в любом проекте не имеют к виртуальным деструкторам никакого отношения, человек сосредотачивается на решении задач работы с данными, бизнес логики и GUI, а не на языковых особенностях
— очень часто готовая иерархия классов с уже прописанными в них виртуальными деструкторами либо получается от архитектора/сеньора, либо автоматически генерится в IDE, либо вообще класс копируется вручную из уже готового класса и всякий ненужный код просто удаляется
— очень часто человек может прийти на проект в середине разработки, когда все классы уже созданы и человеку необходимо решать исключительно задачи бизнес логики и GUI, поэтому на виртуальные деструкторы он внимания не обращает
— я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
я например первые 2 года тоже не знал зачем виртуальный деструктор нужен
по всем вышеуказанным причинам
Здравствуйте, ___Avatar___, Вы писали:
___>я например первые 2 года тоже не знал зачем виртуальный деструктор нужен ___>по всем вышеуказанным причинам
Поправочку сделаю, я имел в виду не начинающих программистов, были даже с 10-15 летним стажем по с++(точнее это они так написали в резюме). Минимум с кем я беседовал, имели опыт более 3 лет по с++.
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Так а денег сколько предлагается? Что в вакансии написано? Может это обусловлено условиями, предполагающими, к примеру, студентов подготовительных курсов?
Хотя, если честно, виртуальный деструктор избит уже до состояния такой кровавой каши, что мне казалось даже программисты 1С знают это.
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, ___Avatar___, Вы писали:
___>>я например первые 2 года тоже не знал зачем виртуальный деструктор нужен ___>>по всем вышеуказанным причинам
D>Поправочку сделаю, я имел в виду не начинающих программистов, были даже с 10-15 летним стажем по с++(точнее это они так написали в резюме). Минимум с кем я беседовал, имели опыт более 3 лет по с++.
ну и что?
если все эти годы человек занимался GUI или переходом с середины одного проекта на середину другого, то он реально может не знать этого
кроме того, насчет всех этих программерских собеседований мне понравилась одна карикатура на тему того чем отличается любитель науки от настоящего ученого
2 картинки
а) у любителя науки журналист спрашивает "до какого знака вы помните число пи?"
тот отвечает "вчера я выучил число пи до 68-го знака!"
б) у настоящего ученого журналист спрашивает "до какого знака вы помните число пи?"
5 минутная пауза, ученый думает...
затем он сомневаясь и неуверенно переспрашивает журналиста "до первого?..."
так вот... некоторые любители "программерских интервью" напоминают мне этих любителей науки
вполне возможно собеседуемые решали по работе намного более важные (в их конкретной работе на их конкретном месте в фирме) проблемы чем запоминание цели виртуальных деструкторов и числа пи до 68го знака
так что тоже подумайте на тему правильного проведения собеседования
Здравствуйте, ___Avatar___, Вы писали:
___>ну и что? ___>если все эти годы человек занимался GUI или переходом с середины одного проекта на середину другого, то он реально может не знать этого
___>кроме того, насчет всех этих программерских собеседований мне понравилась одна карикатура на тему того чем отличается любитель науки от настоящего ученого ___>2 картинки ___>а) у любителя науки журналист спрашивает "до какого знака вы помните число пи?" ___>тот отвечает "вчера я выучил число пи до 68-го знака!" ___>б) у настоящего ученого журналист спрашивает "до какого знака вы помните число пи?" ___>5 минутная пауза, ученый думает... ___>затем он сомневаясь и неуверенно переспрашивает журналиста "до первого?..."
___>так вот... некоторые любители "программерских интервью" напоминают мне этих любителей науки ___>вполне возможно собеседуемые решали по работе намного более важные (в их конкретной работе на их конкретном месте в фирме) проблемы чем запоминание цели виртуальных деструкторов и числа пи до 68го знака
___>так что тоже подумайте на тему правильного проведения собеседования
Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв, но зато он их в процессе изучит. Не знать как работает виртуальный деструктор, даже на саппорте ГУЙ проектов НЕДОПУСТИМО, это считай как азбука для с++. Я не видел не одной бибилотеки для ГУЙ, которая бы не использовала виртуальные деструкторы.Можно не знать многих вещей заковыристых, например что предпочтительнее писать в цикле для STL итератора ++iter или iter++. Но как можно не знать самое важное в программированиии на с++, это непонятно.
PP>Хотя, если честно, виртуальный деструктор избит уже до состояния такой кровавой каши, что мне казалось даже программисты 1С знают это.
Сначала я этого не спрашивал, думал что это дейтсивтелньо стыдно спросить. Но после некоторого количества интервью я понял, что это многих ставит в тупик, и я просто теперь начинаю с этого вопроса.
Здравствуйте, ___Avatar___, Вы писали:
___>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
___>сейчас объясню в чем фигня ___>причин несколько ___>- 90-99% кода в любом проекте не имеют к виртуальным деструкторам никакого отношения, человек сосредотачивается на решении задач работы с данными, бизнес логики и GUI, а не на языковых особенностях
Вы ошибаетесь. Возможно пытаетесь обобщить свой опыт на других. Контрпример, мой текущий проект, и примерно 5 проектов подряд до него.
___>- очень часто готовая иерархия классов с уже прописанными в них виртуальными деструкторами либо получается от архитектора/сеньора, либо автоматически генерится в IDE, либо вообще класс копируется вручную из уже готового класса и всякий ненужный код просто удаляется
Ошибаетесь, редко.
___>- очень часто человек может прийти на проект в середине разработки, когда все классы уже созданы и человеку необходимо решать исключительно задачи бизнес логики и GUI, поэтому на виртуальные деструкторы он внимания не обращает
Речь не шла о новичках
___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
Не искали, а как же 50 советов и т.п. ? Там есть четкие правила про виртуальные деструкторы.
___>а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
Речь не шла о новичках
___>я например первые 2 года тоже не знал зачем виртуальный деструктор нужен ___>по всем вышеуказанным причинам
Что не характеризует вас как хорошего програмиста на С++.
D>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв, но зато он их в процессе изучит. Не знать как работает виртуальный деструктор, даже на саппорте ГУЙ проектов НЕДОПУСТИМО, это считай как азбука для с++. Я не видел не одной бибилотеки для ГУЙ, которая бы не использовала виртуальные деструкторы.Можно не знать многих вещей заковыристых, например что предпочтительнее писать в цикле для STL итератора ++iter или iter++. Но как можно не знать самое важное в программированиии на с++, это непонятно.
на самом деле, исходя из всех пречисленных мною причин незнания этого факта и моего собственного опыта, аналогия между буквами английского алфавита и виртуальным деструктором в корне неверная
если применять именно языковую аналогию, то это скорее к вопросу где использовать артикль "the", где использовать "a", а где вообще не использовать и рассмотрения этих ситуаций с точки зрения русского языка, в котором артикля вообще нет или же описания разницы между "I would be doing" и "I would have been doing it"
понятно, что для 90%-99% бытовых задач, включая чтение интернет статей и просмотр тв и кино, и (даже!) почти 100% точного перевода всего этого на русский, эти языковые моменты знать не нужно
а вот для перевода литературного текста с английского на русский или же (в случае артиклей) перевода любого текста с русского на английский это знание уже критически необходимо
в ряде случаев артикль полностью меняет смысл слова people — люди, the people — народ
или же как во французском одно и то же слово pauvre — бедный, если ставить его после слова человек, то оно будет означать материальный статус, а перед словом человек оно означает жалость к человеку (и так прилагательных во французском довольно таки много)
хотя для жизни в соответствующей стране и нормального общения с ее гражданами всего это знать не нужно!
вот туда же относятся и виртуальные деструкторы
не случайно же "язык программирования" называется "язык", а не "теорема программирования" или "строение программирования"
Здравствуйте, ___Avatar___, Вы писали:
___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
А как же Effective C++, Exceptional C++, C++ Coding Standards?
___>а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
Новичок должен приходить на работу УЖЕ вооруженный базовыми знаниями о языке, а не изучать его в процессе работы, потому что, как ты правильно заметил выще, на работе надо делать дело, а не заниматься самообразованием.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Видимо, "настоящих программистов" ваша вакансия не заинтересовала...
Здравствуйте, Denwer, Вы писали:
D>Сначала я этого не спрашивал, думал что это дейтсивтелньо стыдно спросить. Но после некоторого количества интервью я понял, что это многих ставит в тупик, и я просто теперь начинаю с этого вопроса.
Это общая тенденция, думаю дело серъезней чем кажется. Сопровождаю проект, так там вместо несколько десятков классов с продуманой иерархией наследования разработчики просто позапихали все в STL. Так что виртуальным деструкторам просто неоткуда появиться. Там даже просто деструкторов не предусмотрено. Похоже вместо класса содержащего набор элементов проще создать вектор и при каждом обращении обращаться к содержимому через итераторы. При этом получается куча векторов хранящих разные структуры, в то время как предметная область явно требует хотя бы примитивной группировка части свойств в базовых классах и систематизации методов доступа к данным. На вопрос а почему так сделано через ж****, отвечают — "там великие люди трудились тебе до них далеко".
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Ну по-хорошему, таких надо научиться отсеивать еще на этапе телефонного собеседования. Хотя все равно, слабых претендентов полно. И что хуже, полно претендентов, которые в достаточной степени владеют всякими там языковыми бантиками, но не способных писать нормальный рабочий код.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Хех, дык потому что совершенствовать надо процесс набора кандидатов на собеседования. Вы их как набираете? Небось поиск по ключевым словам в куче резюме? Очевидно что у этого метода высока вероятность ложного срабатывания, это уже обсуждалось мульён тысяч раз. Вы набираете прежде всего людей, вот с ними и общайтесь, а не с бумажками. И ещё — наличие диплома говорит лишь о наличии диплома, а не о наличии образования. Это так, к слову, ибо сталкивался. В топике говорят мол это и не важно, что человек не знает о виртуальном деструкторе, о том чем отличаются ++i и i++ , типа это неважные детали, от которых надо абстрагироваться в пользу бизнес-логики и прочих шайтан-словечек. Позвольте, так вам шашечки или ехать? Вам кодер нужен или бизнес-логик какой то? Это тоже самое что говорить мол — вот этот дядя Вася не знает как расчитать устойчивость плотины но зато знает какие материалы нынче модно для постройки оной юзать, поэтому он у нас будет главный инженер. Абсурд? Абсурд! Программист должен любить свой язык, а если программист любит свой язык он его изучает, не для галочки а для себя, это кайф такой, хотя не мне вам говорить наверное...) Изучать значит много читать, и прежде всего классиков, для С++ это Страуструп, Майерс, Саттер, Джосаттис(встречал разные способы произношения фамилии — этот более простой )) и т.д...и вот у них как раз написано и о виртуальных деструкторах, и о прединкриментах и о других интересных штуках =) Так что это за программист такой который и не слыхивал о не освещённых в "C++ для полных кретинов" вещах???
Здравствуйте, Denwer, Вы писали:
D>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Это один из самых заезженных вопросов на собеседованиях. По частоте задается примерно как реверс строки, который я пишу уже по памяти.
Есть программеры которые всегда пишут все деструкторы виртуальными, хотя совершенно не понимают а для чего это надо.
Есть несколько причин почему очень часто не надо писать не только виртуальных деструкторов, а деструкторов вообще. При применении смарт поинтеров дефолтный деструктор уничтожит все аллокации в хипе автоматом. Не надо объявлять деструктор виртуальным, если он уже объявлен виртуальным в базовом классе. При применении "всеобъемлющих" фреймворков типа Qt или boost, надобность проектирования "базовых" классов возникает не очень часто.
Мой любимый деструктор — сгенерированный компилятором. Это ни в коем случае не оправдывает факт незнания виртуальных деструкторов, "профи" с десятилетним опытом не знаюющего этого надо гнать в шею.
Здравствуйте, _nikita_, Вы писали: J>>... на работе надо делать дело, а не заниматься самообразованием. __>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот
Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Denwer, Вы писали:
D>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
J>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
Это все же больше исключение, чем правило...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
___>Здравствуйте, Denwer, Вы писали: ___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
1) Возможно, зарплата которую Вы предлагаете не соответствует тем знаниям, которые Вы хотите получить.
2) Возможно стоит отвлечься от конкретного вопроса, а задать еще несколько вокруг, чтоб понять, сколько уйдет времени на приведение человека к нужному уровню.
Здравствуйте, ___Avatar___, Вы писали:
___>кроме того, насчет всех этих программерских собеседований мне понравилась одна карикатура на тему того чем отличается любитель науки от настоящего ученого ___>2 картинки ___>а) у любителя науки журналист спрашивает "до какого знака вы помните число пи?" ___>тот отвечает "вчера я выучил число пи до 68-го знака!" ___>б) у настоящего ученого журналист спрашивает "до какого знака вы помните число пи?" ___>5 минутная пауза, ученый думает... ___>затем он сомневаясь и неуверенно переспрашивает журналиста "до первого?..."
Какой феерический бред. Если уж подбирать аналогии (что криво по определению) то виртуальные деструкторы это не заучивание констант. Это таблица умножения. Настоящий учёный не знающий таблицу умножения ? Вот именно!
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Denwer, Вы писали:
D>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика.
Как он будет переводить не зная букв ? Ребята, включите мозги блин. Поощрять невежество нельзя! Незнание фундаментальных принципов языка === незнание языка! Эдак мы до мышей в итоге дое$%мся.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
В этой ветке вопросы задавали про оплату — вы не ответили, что как бы намекает Так что берите что есть. Такие тоже нужны, кто-то должен из пустого в порожнее перекладывать за три копейки. А то возьмете умного, а он будет вечно недовольный — денег мало, работа тупая.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
А что подразумевается под знанием? Мне вот самому стало интересно — знаю я такое, или нет, потому небольшой оффтопик позволю себе. Вот навскидку попробую ответить, уже 4.5 года С++ не видел в глаза, а когда по собеседованиям бегал, ни разу такого не спрашивали. Итого у меня ответ навскидку следующий — для того же, для чего нужны виртуальные функции и модификатор virtual. Типа чтоб если мы имеем указатель на объект базового класса, но сам объект имеет производный от базового тип, то при уничтожении вызывался деструктор именно нужного класса, а не базового. Тоже самое справедливо и для виртуальных методов, особых отличий от деструкторов я не вижу. Итого — если класс предполагает наследование, и если предполагается работать с классами иерархии унифицированным образои, через интерфейсы базовых классов — модификатор virtual нужен как для деструкторов, так и для обычных неприватных методов. Достаточно для ответа, или надо что-то еще ответить, что я в свое время в книжках не прочитал, так как до сих пор не понимаю разницы между модификатором virtual для деструкторов и обычных методов?
Здравствуйте, IID, Вы писали:
IID> Как он будет переводить не зная букв ? Ребята, включите мозги блин. Поощрять невежество нельзя!
сам включи, вместе с логикой а потом поговори в 2-х летним ребенком не знающим букв и подумай как невежество соотносится с профессионализмом и формализацией знания
Здравствуйте, LaptevVV, Вы писали:
J>>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле. LVV>Это все же больше исключение, чем правило...
у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов
Святое учение должно быть одно, иначе они начинают походить на четыре Евангелия, которые местами противоречат друг другу. Любое правило не написанное в 10 заповедях может быть оспорено, даже из 10 заповедей есть которые вызывают внутреннее несогласие
35 заповедей о программировании во второй книге чем-то напоминают статьи в Космополитене типа "23 способа познакомиться с мужчиной мечты в бассейне". Понятно, что автор весьма авторитетен, но тем не менее глупо принимать это все на веру. Многие из "заповедей" могут быть доведены до маразма при слишком рьяном использовании.
Один пример — "Программируйте, заглядывая в будущее", многие программы испорчены наворачиванием десятком абстрактных уровней когда люди думали о будущем чрезвычайно много.
Здравствуйте, Handie, Вы писали:
H>Святое учение должно быть одно, иначе они начинают походить на четыре Евангелия, которые местами противоречат друг другу. Любое правило не написанное в 10 заповедях может быть оспорено, даже из 10 заповедей есть которые вызывают внутреннее несогласие
H>35 заповедей о программировании во второй книге чем-то напоминают статьи в Космополитене типа "23 способа познакомиться с мужчиной мечты в бассейне". Понятно, что автор весьма авторитетен, но тем не менее глупо принимать это все на веру. Многие из "заповедей" могут быть доведены до маразма при слишком рьяном использовании.
А я разве предлагал молится на эти книги?
Я просто привел пример книг по с++, в которых описаны некоторые нюансы, такие как необходимость виртуальных деструкторов. Они же могут помочь подготовиться к стандартным вопросам на собеседовании.
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, _nikita_, Вы писали: J>>>... на работе надо делать дело, а не заниматься самообразованием. __>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот LVV>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
Они и устраиваются практически без знаний.
Вернее без реального опыта, без которого ничего толком не построишь.
LVV>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
В программировании все то же самое, если под "недоучками" понимать зеленых выпускников без опыта.
В любой нормальной отрасли есть процесс становления спеца, который после универа только начинается.
Умудренные опытом товарищи, знающие для чего нужны виртуальные деструкторы,
играют важную роль в этом процессе
Ну а самоучек реально мало, и у них есть шансы только
когда потребность в спецах намного выше чем самих спецов.
Здравствуйте, любой, Вы писали:
Л>Я, например, уже год не работаю. Стал рантье. На достойную работу попасть тяжело. А просто воплощать чьи-то безнадёжные фантазии надоело.
Здравствуйте, alsemm, Вы писали:
A>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
A>В этой ветке вопросы задавали про оплату — вы не ответили, что как бы намекает Так что берите что есть. Такие тоже нужны, кто-то должен из пустого в порожнее перекладывать за три копейки. А то возьмете умного, а он будет вечно недовольный — денег мало, работа тупая.
Ну почему, про оплату я могу ответить. Платим столько, сколько кандидат заслуживает. Как правило эта та сумма что указана в пожеланиях в резюме. Те человек сам говорит сколько он хочет денег и говорит свои знания в резюме. Но когда начинаешь гвоорить с ним, оказывается что он и на половину той стоимости не стоит.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми? E>А что подразумевается под знанием? Мне вот самому стало интересно — знаю я такое, или нет, потому небольшой оффтопик позволю себе. Вот навскидку попробую ответить, уже 4.5 года С++ не видел в глаза, а когда по собеседованиям бегал, ни разу такого не спрашивали. Итого у меня ответ навскидку следующий — для того же, для чего нужны виртуальные функции и модификатор virtual. Типа чтоб если мы имеем указатель на объект базового класса, но сам объект имеет производный от базового тип, то при уничтожении вызывался деструктор именно нужного класса, а не базового. Тоже самое справедливо и для виртуальных методов, особых отличий от деструкторов я не вижу. Итого — если класс предполагает наследование, и если предполагается работать с классами иерархии унифицированным образои, через интерфейсы базовых классов — модификатор virtual нужен как для деструкторов, так и для обычных неприватных методов. Достаточно для ответа, или надо что-то еще ответить, что я в свое время в книжках не прочитал, так как до сих пор не понимаю разницы между модификатором virtual для деструкторов и обычных методов?
Меня бы такой ответ устроил на все 100% по данному вопросу, но нету их. Вот пример последнего человека сегодня.
08.03.2010 14:48:06 Я: вопрос вот какой, зачем нужен виртуальный деструктор ?
08.03.2010 14:49:56 Он:я конечно сейчас могу загуглить, но не знаю.
Причем он даже признался честно, многие пропадают при вопросе на 10 минут и начинают интенсивно гуглить, пытаясь по быстрому разобраться. Причем как показывает статистика, не одному человеку не удалось понять за эти 10 минут суть вопроса, всего лишь был сумбурный ответ.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
90% кода на С++ написано теми кто понятия не имеет что такое виртуальный деструктор.
C++ устарел, что такое виртуальный деструктор мало кто интересовался раньше а теперь уж и подавно.
SUMMARY: Более 14 лет практического опыта объектно-ориентированного программирования и дизайна, опыт работы на языках программирования С – 15 лет, С++ — 9 лет, VB – 5 года, Java — полтора года. Пятилетний опыт разработки реляционных баз данных (MS SQL Server, MS Access), сложных SQL запросов (более 5-х лет) , настройки производительности и оптимизации. Хорошее знание объектно-ориыентированного подхода, технологии клиент/сервер, богатый практический опыт разработки различных программ. Опыт создания шлюзов для обмена данными между разными программами (даже в случаях когда нет документации по назначению таблиц и полей таблиц в базе данных программ). Опыт разработки приложений, работающих с базами данных, для WinCE платформ (Java, MS embedded Visual Tools 3.0 (eVC,eVB)). Базы данных 1C, PointBase, MS SQL CE server.
TECHNOLOGIES: Microsoft Windows (API, MFC), OOD and OOP, component technology (COM), ActiveX, database connectivity (ADO, DAO, ODBC, BDE), GUI (API, MFC, VCL), TCP/IP windows sockets, MCI (multimedia). Java – XML, Swing, AWT, JDBC, sockets, memory & performance optimizations.
Embedded systems: WinCE (API, MFC), COM, ADOCE, DB2 CLI/ODBC, CFADO (CEFusion), MS SQL CE server.
OS: WinCE (3.0, PC2002, PC2003), Windows 2000/XP/2003, Windows NT, Windows 98/95/3.x, MS-DOS, Novell NetWare 3.xx/4.xx Linux FreeBSD.
DEVELOPMENT MS Visual Studio 6.0 -2008 (VB, VC++), MSDN, Java(TM) 2 SDK Standard Edition, MS Visual Basic Setup Wizard, Install Shield Express, MS Embedded Visual Tools 3.0 (eVC, eVB), Borland C++ Builder 4.0, 5.0, Borland Delphi 3.0, Visual Foxpro 5.0
SOFTWARE: MS Office 95/97/2000/XP/2003 including MS Power Point, WinRAR, WinZip, TheBat, Ghost, Ontract Easy Recovery, Acrobat Reader, MS Project 2000, Far, Mdaemon, Emule, Acronis, 1C 7.7, ERD, BartPE, NOD32, Symantec antivirus, ISA server. MS AD, MSTSC, Citrix metaframe.
DATABASES: Любые SQL-совместимые базы данных, большой практический опыт работы с MS SQL server (включая восстановление баз), MS Access, MS FoxPro, для карманных компьютеров: MS SQL CE Server, PointBase.
HARDWARE: Intel x86 platform
EXPERIENCE:
Used Software and Technologies:
— Java 2 SDK Standard Edition
— Java jdk1.3.1
— AWT, Swing, XML, JDBC, sockets, memory & performance optimizations
— VB
— MS SQLServer 2000
— GPRS, IrDa, MS ActiveSync
— OOA, OOD, OOP
— ADO, DAO, ODBC
— COM, DLL
— Win32 API, WinCE API (subset of first)
— Windows 2000, WinCE
— Visual Studio 6.0 SP5 (VB, VC++)
— MS Excel VBA
— Install Shield Express
— Embedded Visual C++ 3.0
Responsibilities:
— Анализ системных требований
— Постановка задач на разработку
— Разработка спецификаций приложений
— Разработка баз данных, оптимизация производительности
— Разработка SQL-запросов и их оптимизация
— Разработка аналитических отчетов
— Разработка прикладных программ
— Тестирование программных комплексов
— Сопровождение и доработка существующего ПО
— Предложения по разработке нового ПО
Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница. Или может имеет представление по оптимизации SQL запросов? А может понимает что такое MTA и STA в COMe?
Хотя по резюме было видно, что претендент "не очень", просто потому что нормлаьные программисты в резюме никогда не пишут вот этот вот набор, просто очень просили сним пообщаться.
MS Power Point, WinRAR, WinZip, TheBat, Ghost, Ontract Easy Recovery, Acrobat Reader, MS Project 2000, Far ................
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, alsemm, Вы писали:
A>>Здравствуйте, Denwer, Вы писали:
D>>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
A>>В этой ветке вопросы задавали про оплату — вы не ответили, что как бы намекает Так что берите что есть. Такие тоже нужны, кто-то должен из пустого в порожнее перекладывать за три копейки. А то возьмете умного, а он будет вечно недовольный — денег мало, работа тупая.
D>Ну почему, про оплату я могу ответить. Платим столько, сколько кандидат заслуживает.
Не надо этой лирики, пожалуйста Вы можете конкретную сумму назвать, которую готовы платить и город, где нанимаете?
Здравствуйте, alsemm, Вы писали:
A>Здравствуйте, Denwer, Вы писали:
D>>Здравствуйте, alsemm, Вы писали:
A>>>Здравствуйте, Denwer, Вы писали:
D>>>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
A>>>В этой ветке вопросы задавали про оплату — вы не ответили, что как бы намекает Так что берите что есть. Такие тоже нужны, кто-то должен из пустого в порожнее перекладывать за три копейки. А то возьмете умного, а он будет вечно недовольный — денег мало, работа тупая.
D>>Ну почему, про оплату я могу ответить. Платим столько, сколько кандидат заслуживает. A>Не надо этой лирики, пожалуйста Вы можете конкретную сумму назвать, которую готовы платить и город, где нанимаете?
Написал в личку ответ по деньгам, просто это тема не о поиске работы, а о найденных кандидатах так скажем.
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, _nikita_, Вы писали: J>>>>... на работе надо делать дело, а не заниматься самообразованием. __>>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
B>Они и устраиваются практически без знаний. B>Вернее без реального опыта, без которого ничего толком не построишь.
А если серьезно, то неужели инженера — строителя гоняют на интервью по сопромату?
Или все же смотрят на то, что у человека есть профильное образование,
обсуждают реальный опыт и оценивают его как человека?
Или скажем какие-нибудь караблестоители...
Что их тоже заставляют что-то попроектировать в свободное время,
чтобы вообще попасть на интервью?
Здравствуйте, alsemm, Вы писали:
D>>Ну почему, про оплату я могу ответить. Платим столько, сколько кандидат заслуживает. A>Не надо этой лирики, пожалуйста Вы можете конкретную сумму назвать, которую готовы платить и город, где нанимаете?
Судя по вашему профилю действо происходит в Саратове. Рискну предположить, что все приличные спецы в основном давно свинтили из города. Оставшиеся без работы не сидят и не спешат ее менять — крызис, страшно.
Здравствуйте, Denwer, Вы писали:
D>Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница. Или может имеет представление по оптимизации SQL запросов?
а как же "Пятилетний опыт разработки реляционных баз данных (MS SQL Server, MS Access), сложных SQL запросов (более 5-х лет) , настройки производительности и оптимизации."?
Здравствуйте, Tomnkz, Вы писали:
___>>Здравствуйте, Denwer, Вы писали: ___>>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
T>Вот вам пример таких книжек: T>Эффективное использование C++
учитывая уровень преподавания в моем вузе, можно сказать, что в программировании я самоучка
поэтому прошел мимо таких книг, а читал все наугад
с++ сейчас уже не занимаюсь
Здравствуйте, alsemm, Вы писали:
A>Здравствуйте, alsemm, Вы писали:
D>>>Ну почему, про оплату я могу ответить. Платим столько, сколько кандидат заслуживает. A>>Не надо этой лирики, пожалуйста Вы можете конкретную сумму назвать, которую готовы платить и город, где нанимаете? A>Судя по вашему профилю действо происходит в Саратове. Рискну предположить, что все приличные спецы в основном давно свинтили из города. Оставшиеся без работы не сидят и не спешат ее менять — крызис, страшно.
Нет, не нужно предполагать о городе. Я тут регался очень и очень давно.
Здравствуйте, gyraboo, Вы писали:
G>Круто. А на основе чего получаешь проценты?
Сбережения за пару лет работы на обычные банковские депозиты положил, да и всё. Доход не хуже, чем у официанта Макдональдса. Инфляция, конечно, беспокоит. Если всю жизнь так жить, недвижимость потом придётся продавать.
Здравствуйте, Denwer, Вы писали:
D>Вот например резюме одно было.
По CV видно человек умеет решать конкретные задачи быстро входя в курс дела. Если придется, то через неделю напишет "читаю по-китайски со словарем". От таких людей ожидать глубокое знание предметных данных, но они быстро схватывают.
Такие специалисты зачастую очень нужны, к примеру, в аутсорсе, где нужно срочно организовать очередную команду у каких-то специфичных условиях заказчика.
M>По резюме же видно что чел не спец по С++? Что же вы ожидали от него ?
>LANGUAGES: C++, C, SQL, Pascal, FoxPro, Assembler 1C v7.7, 1C v8.0 (базовые навыки + запросы любой сложности), C# HTML, XML, VB, VBA for Excel, VBScript.
Здравствуйте, minorlogic, Вы писали:
M>По резюме же видно что чел не спец по С++? Что же вы ожидали от него ?
А чем же он тогда занимался 14 лет? Ну пускай даже 9 лет. Разве только спецы знают что такое виртуальный детсруктор? А кто же те программситы, кто не знает этот вопрос, как его назвать? Мне казалось такие называются джуниор. Но тут явно не джуниор.
Более 14 лет практического опыта объектно-ориентированного программирования и дизайна, опыт работы на языках программирования С – 15 лет, С++ — 9 лет.
Здравствуйте, Denwer, Вы писали:
D>Написал в личку ответ по деньгам, просто это тема не о поиске работы, а о найденных кандидатах так скажем.
Прочитал. imho судя по оплате вам нужен толковый человек, за которым не нужен присмотр. Таких сейчас очень мало без работы. А готовых дергаться на те же деньги или немного большие с насиженного места в нынешних условиях — еще меньше. Зато школоты, которую сократили/не взяли после вуза — навалом. Сочуствую
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
D>>Вот например резюме одно было.
S>По CV видно человек умеет решать конкретные задачи быстро входя в курс дела. Если придется, то через неделю напишет "читаю по-китайски со словарем". От таких людей ожидать глубокое знание предметных данных, но они быстро схватывают.
Через не делю то он напишет, но окажется не китайский язык выучил а совсем другой. Такой человек умеет решать задачи по оффису, винрару, фару, адобе ридеру и так далее, но не по программированию.
S>Такие специалисты зачастую очень нужны, к примеру, в аутсорсе, где нужно срочно организовать очередную команду у каких-то специфичных условиях заказчика.
Если нужно слепить абы-как, то да согласен, можно такого взять. Если человек решал проекты для отсурсинга(это ыбло в его резюме, просто я это удалил по соображениям этики) и не знает что такое вирт деструктор то он и не узнает его до окончания своей программисткой карьеры.
Ну и что, что ты в шоке
А меня вот года 3-4 назад такие экзаменаторы достали ...
и я не удивляюсь, так как сам не помнил такое словочетание, как виртуальный деструктор. Когда прочитал вопрос, то единственное что приходит всплывает — это деструктор должен быть один ...
Приведу пару примеров из своей жизни. В 1999 году я занимался OPC, который основан на COM-OLE. Плохо или хорошо, но написал несколько клиентов и серверов, чтобы протестировать этот стандарт, на применение в очень большом, вернее даже громадном международном проекте. В 2006 искал работу и конечно написал, что был такой опыт (а почему нет, если даже есть статья в международной конференции). Меня спросили — ну я и не ответил А еще меня спросили о трех принципах объектно-ориентированного программирования ... два названия я помнил, третье забыл ... в мое время экзаменов, такого не было, а запоминать всякую хрень ... и так мозгов не хватает прокачивать объемы информации, чтобы делать системы. Например, сейчас на жопе сидит 9 преоктов и еще 3 на подходе. Какие-то ерундовые, а какие-то ...
Так что у всех разные дела ...
Приведу еще один пример. Есть у меня друг. У него очень хорошая память. Например, самый большой оксфордский словарь он изучал для любопытства. По второй курс учился на одни 5, но видимо системы в голове не создавалась. А потом начал сдавать ...
Ну что ты такого хочешь специалиста?
Впрочем я понимаю и другое ... как-то надо проверять кандидатов ...
Здравствуйте, Denwer, Вы писали:
D>Вот например резюме одно было.
D>
D>SUMMARY: Более 14 лет практического опыта объектно-ориентированного программирования и дизайна, опыт работы на языках программирования С – 15 лет, С++ — 9 лет, VB – 5 года, Java — полтора года. Пятилетний опыт разработки реляционных баз данных (MS SQL Server, MS Access), сложных SQL запросов (более 5-х лет) , настройки производительности и оптимизации. Хорошее знание объектно-ориыентированного подхода, технологии клиент/сервер, богатый практический опыт разработки различных программ. Опыт создания шлюзов для обмена данными между разными программами (даже в случаях когда нет документации по назначению таблиц и полей таблиц в базе данных программ). Опыт разработки приложений, работающих с базами данных, для WinCE платформ (Java, MS embedded Visual Tools 3.0 (eVC,eVB)). Базы данных 1C, PointBase, MS SQL CE server.
D>TECHNOLOGIES: Microsoft Windows (API, MFC), OOD and OOP, component technology (COM), ActiveX, database connectivity (ADO, DAO, ODBC, BDE), GUI (API, MFC, VCL), TCP/IP windows sockets, MCI (multimedia). Java – XML, Swing, AWT, JDBC, sockets, memory & performance optimizations.
D> Embedded systems: WinCE (API, MFC), COM, ADOCE, DB2 CLI/ODBC, CFADO (CEFusion), MS SQL CE server.
D>OS: WinCE (3.0, PC2002, PC2003), Windows 2000/XP/2003, Windows NT, Windows 98/95/3.x, MS-DOS, Novell NetWare 3.xx/4.xx Linux FreeBSD.
D>DEVELOPMENT MS Visual Studio 6.0 -2008 (VB, VC++), MSDN, Java(TM) 2 SDK Standard Edition, MS Visual Basic Setup Wizard, Install Shield Express, MS Embedded Visual Tools 3.0 (eVC, eVB), Borland C++ Builder 4.0, 5.0, Borland Delphi 3.0, Visual Foxpro 5.0
D>SOFTWARE: MS Office 95/97/2000/XP/2003 including MS Power Point, WinRAR, WinZip, TheBat, Ghost, Ontract Easy Recovery, Acrobat Reader, MS Project 2000, Far, Mdaemon, Emule, Acronis, 1C 7.7, ERD, BartPE, NOD32, Symantec antivirus, ISA server. MS AD, MSTSC, Citrix metaframe.
D>DATABASES: Любые SQL-совместимые базы данных, большой практический опыт работы с MS SQL server (включая восстановление баз), MS Access, MS FoxPro, для карманных компьютеров: MS SQL CE Server, PointBase.
D>HARDWARE: Intel x86 platform
D>EXPERIENCE:
D>Used Software and Technologies:
D>- Java 2 SDK Standard Edition
D>- Java jdk1.3.1
D>- AWT, Swing, XML, JDBC, sockets, memory & performance optimizations
D>- VB
D>- MS SQLServer 2000
D>- GPRS, IrDa, MS ActiveSync
D>- OOA, OOD, OOP
D>- ADO, DAO, ODBC
D>- COM, DLL
D>- Win32 API, WinCE API (subset of first)
D>- Windows 2000, WinCE
D>- Visual Studio 6.0 SP5 (VB, VC++)
D>- MS Excel VBA
D>- Install Shield Express
D>- Embedded Visual C++ 3.0
D>Responsibilities:
D>- Анализ системных требований
D>- Постановка задач на разработку
D>- Разработка спецификаций приложений
D>- Разработка баз данных, оптимизация производительности
D>- Разработка SQL-запросов и их оптимизация
D>- Разработка аналитических отчетов
D>- Разработка прикладных программ
D>- Тестирование программных комплексов
D>- Сопровождение и доработка существующего ПО
D>- Предложения по разработке нового ПО
D>Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница. Или может имеет представление по оптимизации SQL запросов? А может понимает что такое MTA и STA в COMe?
D>Хотя по резюме было видно, что претендент "не очень", просто потому что нормлаьные программисты в резюме никогда не пишут вот этот вот набор, просто очень просили сним пообщаться. D>MS Power Point, WinRAR, WinZip, TheBat, Ghost, Ontract Easy Recovery, Acrobat Reader, MS Project 2000, Far ................
Здравствуйте, Denwer, Вы писали:
D>Если нужно слепить абы-как, то да согласен, можно такого взять. Если человек решал проекты для отсурсинга(это ыбло в его резюме, просто я это удалил по соображениям этики) и не знает что такое вирт деструктор то он и не узнает его до окончания своей программисткой карьеры.
Тоже мне виртуальный деструктор супрер знание! Ты явно что-то не понимаешь в профессии программиста.
ЗЫ. Если не пользоваться наследованием, а к примеру, STL его не пользует, то виртуальный деструктор бессмысленный.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
D>>Если нужно слепить абы-как, то да согласен, можно такого взять. Если человек решал проекты для отсурсинга(это ыбло в его резюме, просто я это удалил по соображениям этики) и не знает что такое вирт деструктор то он и не узнает его до окончания своей программисткой карьеры.
S>Тоже мне виртуальный деструктор супрер знание! Ты явно что-то не понимаешь в профессии программиста.
S>ЗЫ. Если не пользоваться наследованием, а к примеру, STL его не пользует, то виртуальный деструктор бессмысленный.
Сам то можешь представить, знать STL и не знать виртуальный деструктор. На самом деле разбирающихся в STL программистов еще меньше, чем знающих что такое вирт детсруктор. Это я уже считаю дейтсвительно очень мног требовать от соискателя, если спрашивать по STL. Можно сказать удар ниже пояса. Про буст я даже не упоминаю.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
D>>Если нужно слепить абы-как, то да согласен, можно такого взять. Если человек решал проекты для отсурсинга(это ыбло в его резюме, просто я это удалил по соображениям этики) и не знает что такое вирт деструктор то он и не узнает его до окончания своей программисткой карьеры.
S>Тоже мне виртуальный деструктор супрер знание! Ты явно что-то не понимаешь в профессии программиста.
Угу, когда попрыгаешь вокруг какой-нибудь встроенной штуковины, которая отжирает бесконтрольно память, тогда запоешь по другому.
Было у нас тут веселье осенью, правда там на java память отъедалась. Писатели супер-кэша не знала про weak reference-ы, а в кэш клали декодированные изображения... Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого.
IT>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
Большинство же знаний приходит "в работе", с практичным опытом. Тем более, эту рутину, которая не позволяет развиваться, зачастую программисту приходится выкладываться полностью. Добавь к этому дом, детей, семью, отдых, то на какое-то там еще развитие просто нет сил. Да, книжку почтитать, но не так много задерживается, если нет или мало практического применения. Да и зачем это все надо: будет потребность — выучишь.
Здравствуйте, ___Avatar___, Вы писали:
___>учитывая уровень преподавания в моем вузе, можно сказать, что в программировании я самоучка ___>поэтому прошел мимо таких книг, а читал все наугад ___>с++ сейчас уже не занимаюсь
У меня в ВУЗе эти книги тоже не рекомендовали. Просто google, форумы, мнения коллег.
Хотя на собеседованиях я часто спрашиваю про образование и по каким книгам человек учил.
D>Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница.
А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, minorlogic, Вы писали:
M>>По резюме же видно что чел не спец по С++? Что же вы ожидали от него ?
D>А чем же он тогда занимался 14 лет? Ну пускай даже 9 лет. Разве только спецы знают что такое виртуальный детсруктор? А кто же те программситы, кто не знает этот вопрос, как его назвать? Мне казалось такие называются джуниор. Но тут явно не джуниор.
D>
D> Более 14 лет практического опыта объектно-ориентированного программирования и дизайна, опыт работы на языках программирования С – 15 лет, С++ — 9 лет.
Вот это и спросили бы. Похоже что занимался чем угодно . Судя по опыту ему скоро 50 стукнет?
Здравствуйте, shrecher, Вы писали:
S>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
А с еще большим опытом понимаешь, что вышеприведенное утверждение неверное
S>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
Дело в легкости владения. Например Qt, за пару недель можно въехать в основы и начать тихонько использовать — медленно, неоптимально, не совсем качественно. Через полгода-год возникает легкость владения — голова находит решения быстрее, код пишется быстро, качество выше.
Новый язык можно выучить за две недели, библиотеку с сотнями или тысячами классов за две недели не освоишь.
Здравствуйте, alsemm, Вы писали:
A>Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого.
Вот как раз организация работы команд(ы), чтобы люди работали слажено, а не валили друг на друга, и есть супер знание. Вот проблемы типа "виртуальный дестуртор" — незначительные детали, которую толковый прог и в Гугле найдет.
Здравствуйте, Handie, Вы писали:
S>>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
H>Дело в легкости владения. Например Qt, за пару недель можно въехать в основы и начать тихонько использовать — медленно, неоптимально, не совсем качественно. Через полгода-год возникает легкость владения — голова находит решения быстрее, код пишется быстро, качество выше.
Qt учится в процессе использования. Что-то понадобилось — почитал, добавил.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, shrecher, Вы писали:
S>>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо. O>А с еще большим опытом понимаешь, что вышеприведенное утверждение неверное
Не зазнайствуй, как говориться: "не боги гошки обжигают"
Здравствуйте, Vamp, Вы писали:
D>>Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница. V>А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
Разница как между синусом и косинусом, вроде как похожи, но не идентичны.
D>Разница как между синусом и косинусом, вроде как похожи, но не идентичны.
Разницу между синусом и косинусом я тебе опишу в одном приложении. Объясни, какая разница между мутексом и бинарным семафором.
Здравствуйте, Vamp, Вы писали:
D>>Разница как между синусом и косинусом, вроде как похожи, но не идентичны. V>Разницу между синусом и косинусом я тебе опишу в одном приложении. Объясни, какая разница между мутексом и бинарным семафором.
Вообще то в моем предложении был просто симафор, а не бинарный.
Здравствуйте, alsemm, Вы писали:
A>Было у нас тут веселье осенью, правда там на java память отъедалась. Писатели супер-кэша не знала про weak reference-ы, а в кэш клали декодированные изображения... Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого.
А можно спросить, а зачем понадобилось писать свой кеш с нуля? Чем готовые решения не угодили? Тем что текущие разработчики не разовьются чтоль? А если уж понадобился суперкеш, то почему его не протестировали? Почему профайлер не запускали чтоб отследить источник проблем? Как оказалось, что это оказалось проблемой? Незнание weak referencов тут на последнем месте в причинах проблем. А на первом месте в причинах проблем — руководство, но отвечать, как всегда, разработчикам.
А то, мне тут недавно кешировать понадобилось, а я как последний быдлокодер ehCache использовал вместо велосипеда собственного, так и не развился в результате, хотя мог бы. Я неправ наверно был, и надо было обязательно свой писать? Я только за на самом деле, подтянул бы кое что редко используемое, которое на собеседованиях спрашивать любят, вот только это было не в интересах проекта.
Здравствуйте, IID, Вы писали:
IID> Как он будет переводить не зная букв ? Ребята, включите мозги блин. Поощрять невежество нельзя! Незнание фундаментальных принципов языка === незнание языка! Эдак мы до мышей в итоге дое$%мся.
Переводить — свободно.
Моя дочь говорит на двух языках без акцента, букв при этом знает штук 5.
D>Вообще то в моем предложении был просто симафор, а не бинарный.
Ага, то есть все-таки, в некоторых случаях разницы нет. К чему тогда это с понтом высказывание "не знает разницы между мутексом и семафором"? Это принципиально очень похожие сущности.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, alsemm, Вы писали:
A>>Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого.
S>Вот как раз организация работы команд(ы), чтобы люди работали слажено, а не валили друг на друга, и есть супер знание.
В этом конкретном случае — команды из разных компаний. И никакое супер знание не помогает, когда достаточно высокопоставленные инженеры ген. подрядчика просто не отвечают на письма в которых есть намек на проблемы в их коде или переводят баги в Closed без комментариев.
Здравствуйте, Vamp, Вы писали:
D>>Вообще то в моем предложении был просто симафор, а не бинарный. V>Ага, то есть все-таки, в некоторых случаях разницы нет. К чему тогда это с понтом высказывание "не знает разницы между мутексом и семафором"? Это принципиально очень похожие сущности.
Хорошо, я уточню в чем был именно мой вопрос, я не спрашивал в чем отличается семафор и мьютекс, я просто дал пример многопоточной программы и попросил сказать где и как лучше синхронизировать. Бинарным семафором канечно можно засинхронизировать доступ, но тогда не учтешь привзяку к потокам, ведь менять состояние семафора может любой поток.
D>Бинарным семафором канечно можно засинхронизировать доступ, но тогда не учтешь привзяку к потокам, ведь менять состояние семафора может любой поток.
Не уверен, что я понял, что ты имеешь в виду. Понял только, что это что-то системно-специфичное (полагаю, что речь о Windows) и к С++ отношения не имеет никакого.
Не исключено, что твой кандидат тебя не понял точно так же.
Здравствуйте, alsemm, Вы писали:
S>>Вот как раз организация работы команд(ы), чтобы люди работали слажено, а не валили друг на друга, и есть супер знание. A>В этом конкретном случае — команды из разных компаний.
Но ведь кто-то это организовал?
A>И никакое супер знание не помогает, когда достаточно высокопоставленные инженеры ген. подрядчика просто не отвечают на письма в которых есть намек на проблемы в их коде или переводят баги в Closed без комментариев.
И ты наивно надеишься, что знание "виртуального деструктора" им поможет?!
Здравствуйте, Vamp, Вы писали:
D>>Бинарным семафором канечно можно засинхронизировать доступ, но тогда не учтешь привзяку к потокам, ведь менять состояние семафора может любой поток. V>Не уверен, что я понял, что ты имеешь в виду. Понял только, что это что-то системно-специфичное (полагаю, что речь о Windows) и к С++ отношения не имеет никакого. V>Не исключено, что твой кандидат тебя не понял точно так же.
Ну разумеется это был вопрос не по С++, я заранее его предупредил что спрошу по всем пунктам его резюме, где значился и Вин АПИ, хотя это был не профилирующий вопрос разумеется. Ты меня не понял, потому что я стараюсь как можно больше вырезать из разговоров, тк это все же не очнь хорошо выкладывать логи или даже близкую их копию.
D>Вообще то в моем предложении был просто симафор, а не бинарный.
вообще-то, я уже второй раз увидел написание "сИмафор".
Может подобное к подобному тянется?
Не хотят грамотные люди идти к неграмотному руководителю, да еще и зарплата наверно меньше 100 тыс.
Здравствуйте, shrecher, Вы писали:
IT>>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
S>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
Можно освоить, а можно и не освоить. Зависит это не только от опыта.
S>Большинство же знаний приходит "в работе", с практичным опытом.
"В работе" приходят навыки, а не знания. Опыт же вообще штука странная. Он отвечает только на один вопрос — как НЕ надо делать. Как можно сделать наилучшим образом опыт тебе не подскажет. Здесь как раз более важны знания и кругозор.
S>Тем более, эту рутину, которая не позволяет развиваться, зачастую программисту приходится выкладываться полностью. Добавь к этому дом, детей, семью, отдых, то на какое-то там еще развитие просто нет сил. Да, книжку почтитать, но не так много задерживается, если нет или мало практического применения. Да и зачем это все надо: будет потребность — выучишь.
Это заблуждение. Выучить за две недели какую-нибудь простенькую технологию, с аналогом которой уже имел дело, конечно, не проблема. Но если сидеть пять лет в таком убеждении, а потом вдруг попытаться догнать уходящий паровоз, то, боюсь, за две недели ничего не получится.
Если нам не помогут, то мы тоже никого не пощадим.
D>>Вообще то в моем предложении был просто симафор, а не бинарный.
D>вообще-то, я уже второй раз увидел написание "сИмафор". D>Может подобное к подобному тянется? D>Не хотят грамотные люди идти к неграмотному руководителю, да еще и зарплата наверно меньше 100 тыс.
Это вообще то транскрипция на английское слово, какая тут может быть неграмотность. Тоже самое как спорить о написани слова: виндоуз или виндовз.
Здравствуйте, Denwer, Вы писали:
V>>А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
D>Разница как между синусом и косинусом, вроде как похожи, но не идентичны.
Интересно, вы приняли бы такой ответ на собеседовании?
Здравствуйте, Denwer, Вы писали:
D>bla-bla-bla Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР... D>Куда делись настоящие программситы...
Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
В моем текущем проекте, к примеру, нет ни одного места, где можно было бы применить виртуальные деструкторы (ну некуда их там приткнуть).
То же можно сказать и про остальные типовые вопросы на собеседованиях — про безопасность в ОС, синхронизация в многопоточном приложении...
Два человека пишут весь "обвес", работающий с операционкой, а остальные пишут алгоритмическую часть, а у них ничего из вышеперечисленного не используется.
Вот и получается, что добрый десяток С++ программистов с опытом работы в 5+ лет не пройдут твоего собеседования
А книжки читать, увы, хрен заставишь
_____________________
С уважением,
Stanislav V. Zudin
D>Это вообще то транскрипция на английское слово, какая тут может быть неграмотность. Тоже самое как спорить о написани слова: виндоуз или виндовз.
Нет, семафор — это русское слово. И пишется оно через "е". Собственно, лично я теперь знаю ответ на твой вопрос из начального сообщения.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, alsemm, Вы писали:
A>>Было у нас тут веселье осенью, правда там на java память отъедалась. Писатели супер-кэша не знала про weak reference-ы, а в кэш клали декодированные изображения... Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого. E>А можно спросить, а зачем понадобилось писать свой кеш с нуля? Чем готовые решения не угодили? Тем что текущие разработчики не разовьются чтоль? А если уж понадобился суперкеш, то почему его не протестировали? Почему профайлер не запускали чтоб отследить источник проблем? Как оказалось, что это оказалось проблемой? Незнание weak referencов тут на последнем месте в причинах проблем. А на первом месте в причинах проблем — руководство, но отвечать, как всегда, разработчикам.
Вопросы не по адресу — кэш писали даже не в нашей конторе.
E>А то, мне тут недавно кешировать понадобилось, а я как последний быдлокодер ehCache использовал вместо велосипеда собственного, так и не развился в результате, хотя мог бы. Я неправ наверно был, и надо было обязательно свой писать? Я только за на самом деле, подтянул бы кое что редко используемое, которое на собеседованиях спрашивать любят, вот только это было не в интересах проекта.
Судя по описанию ehCache (http://ehcache.org/) вкрячить его в мобилу — тот еще оверкил.
Здравствуйте, Denwer, Вы писали:
D>Хорошо, я уточню в чем был именно мой вопрос, я не спрашивал в чем отличается семафор и мьютекс, я просто дал пример многопоточной программы и попросил сказать где и как лучше синхронизировать. Бинарным семафором канечно можно засинхронизировать доступ, но тогда не учтешь привзяку к потокам, ведь менять состояние семафора может любой поток.
Да, и более того, возможность захватить семафор из одного потока а освободить из другого может иметь смысл, даже если семафор используется для организации исключительного доступа к разделяемому ресурсу (т.е., в качестве "мутекса"). Например, таким образом ресурсом может владеть группа взаимодействующих потоков, а внутри себя они могут синхронизироваться каким-нибудь другим методом. Скажем, с помощью message passing'а.
Здравствуйте, shrecher, Вы писали:
S>Не зазнайствуй, как говориться: "не боги гошки обжигают"
Да я как бы наоборот говорю, что я тупой. Где-то полгода-год плотной работы уходит у меня до уровня "могу решать основные задачи без постоянных wtf-ков и копания в инете/доках". За две недели разве-что книжку у меня получается прочитать, прототип поковырять и получить весьма хлипкую базу для начала работы.
Здравствуйте, Vamp, Вы писали: V>Это принципиально очень похожие сущности.
Вроде получается, что под "мьютексом" обычно понимают разновидность семафора, которая:
— Бинарная
— Отпускать ее должен тот поток, который захватил
— Захватив мьютекс, можно захватывать его повторно, не блокируясь
Т.е. если семафор — это "отсыпьте мне, пожалуйста N единиц вашего замечательного ресурса, верну в среду", то мьютекс — "я сейчас немного попользуюсь вашим ресурсом и отдам". Но да, прямо-таки принципиальной разницы нет.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, alsemm, Вы писали:
S>>>Вот как раз организация работы команд(ы), чтобы люди работали слажено, а не валили друг на друга, и есть супер знание. A>>В этом конкретном случае — команды из разных компаний.
S>Но ведь кто-то это организовал?
Теоретические построения про организацию всегда упираются в конкретных исполнителей. Если они вменяемые — все хорошо, если нет — любые потуги заставить людей из разных компаний продуктивно совместо работать обречены.
A>>И никакое супер знание не помогает, когда достаточно высокопоставленные инженеры ген. подрядчика просто не отвечают на письма в которых есть намек на проблемы в их коде или переводят баги в Closed без комментариев.
S>И ты наивно надеишься, что знание "виртуального деструктора" им поможет?!
Да. Вменяемость испольнителей здорого облегчает жизнь всех вовлеченных в процесс.
Здравствуйте, IT, Вы писали:
S>>Большинство же знаний приходит "в работе", с практичным опытом.
IT>"В работе" приходят навыки, а не знания. Опыт же вообще штука странная. Он отвечает только на один вопрос — как НЕ надо делать. Как можно сделать наилучшим образом опыт тебе не подскажет. Здесь как раз более важны знания и кругозор.
Знания они специфичны в каждой области. К примеру, алгоритмы поиска аномалий. Сколько угодно читай книжки, но пока не сталкнешься этой проблемой, но все знания будут пассивные, да и не нужные. Так общие понятия — масса теории, за что ухватиться непонятно. Если работаешь с предметной областью, то читаешь и кругозор расширяешь, и все становится на свои места. Вывод: продуктивно развиться можно через работу.
IT>Это заблуждение. Выучить за две недели какую-нибудь простенькую технологию, с аналогом которой уже имел дело, конечно, не проблема. Но если сидеть пять лет в таком убеждении, а потом вдруг попытаться догнать уходящий паровоз, то, боюсь, за две недели ничего не получится.
Спорно. За последнии десятко лет в прикладном программировании ничего нового не придумали. Все отличия только "в рюшечках".
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Denwer, Вы писали:
V>>>А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
D>>Разница как между синусом и косинусом, вроде как похожи, но не идентичны.
Pzz>Интересно, вы приняли бы такой ответ на собеседовании?
А я такие вопросы кстати и не спрашиваю, т.к. человек дейтсвительно может не знать тонкости каких то объектов синхронизации, я всего лишь даю простой пример, и прошу сделать потокобезопасный код из моего. Не знает человек мьютекс или семафор, пусть критической секцией сделает. Не знает критическую секцию, пусть через интерлокед функции и слипы делает, даже если не эффективно, но главное что бы было верно.
Здравствуйте, shrecher, Вы писали:
IT>>"В работе" приходят навыки, а не знания. Опыт же вообще штука странная. Он отвечает только на один вопрос — как НЕ надо делать. Как можно сделать наилучшим образом опыт тебе не подскажет. Здесь как раз более важны знания и кругозор.
S>Знания они специфичны в каждой области. К примеру, алгоритмы поиска аномалий. Сколько угодно читай книжки, но пока не сталкнешься этой проблемой, но все знания будут пассивные, да и не нужные. Так общие понятия — масса теории, за что ухватиться непонятно. Если работаешь с предметной областью, то читаешь и кругозор расширяешь, и все становится на свои места. Вывод: продуктивно развиться можно через работу.
Так получается, что книжки ты всё же читаешь Ну так вот оттуда и знания, из книжек. А через работу навыки.
IT>>Это заблуждение. Выучить за две недели какую-нибудь простенькую технологию, с аналогом которой уже имел дело, конечно, не проблема. Но если сидеть пять лет в таком убеждении, а потом вдруг попытаться догнать уходящий паровоз, то, боюсь, за две недели ничего не получится.
S>Спорно. За последнии десятко лет в прикладном программировании ничего нового не придумали. Все отличия только "в рюшечках".
Когда что придумали не важно. Ты десятко лет назад знал всё, что сегодня знаешь? А две недели хватило бы?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, dilmah, Вы писали:
D>>>Вообще то в моем предложении был просто симафор, а не бинарный.
D>>вообще-то, я уже второй раз увидел написание "сИмафор". D>>Может подобное к подобному тянется? D>>Не хотят грамотные люди идти к неграмотному руководителю, да еще и зарплата наверно меньше 100 тыс.
D>Это вообще то транскрипция на английское слово, какая тут может быть неграмотность.
Она самая, еще и в комплекте с излишней самоувереностью
СЕМАФОР -а, м. 1. Сигнальное устройство в виде подвижных крыльев или (у морских, речных семафоров) рея на столбе, мачте. Железнодорожный с. Речной с. С. открыт (путь свободен). 2. Во флоте: способ зрительной сигнализации (флажками, руками или при помощи специального аппарата). Дать с. встречному кораблю. || прил. семафорный, -ая, -ое.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Ну — года полтора назад на sql.ru один персонаж возмущался, что некий "старый дурак" спросил его на собеседовании (на позицию Senior Java developer), как объявить массив. Пациент это "забыл", но сам вопрос счел наглым наездом, т.к. "в его работе это не нужно". Мне тоже приходится собеседовать кандидатов по Java — результаты примерно похожие. Но что меня удивляет больше всего, это то, что подавляющее большинство соискателей не имеют даже приблизительного понятия о TCP/IP. Подчеркну, что речь идет не о студентах, а о людях с 5-10 летним опытом, в том числе и в области разработки Интернет — приложений.
Мое личное объяснение — это то, что подавляющее большинства разрабатываемых сегодня приложений настолько тривиальны, что реально потребная квалификация весьма невысока, а "переход на UTF-8" воспринимается как "почти невозможное". У нас в стране это усугубляется тем, что реальная работоспособность приложения никого не интересует, т.к. реальной целью разработки является просто маскировка откатов. Все это было бы ничего, но, к сожалению, подобная ситуация размывает критерии профессионализма, и становится трудно найти квалифицированных людей даже когда это в самом деле необходимо.
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, Vamp, Вы писали:
D>>>Бинарным семафором канечно можно засинхронизировать доступ, но тогда не учтешь привзяку к потокам, ведь менять состояние семафора может любой поток. V>>Не уверен, что я понял, что ты имеешь в виду. Понял только, что это что-то системно-специфичное (полагаю, что речь о Windows) и к С++ отношения не имеет никакого. V>>Не исключено, что твой кандидат тебя не понял точно так же.
D>Ну разумеется это был вопрос не по С++, я заранее его предупредил что спрошу по всем пунктам его резюме, где значился и Вин АПИ, хотя это был не профилирующий вопрос разумеется. Ты меня не понял, потому что я стараюсь как можно больше вырезать из разговоров, тк это все же не очнь хорошо выкладывать логи или даже близкую их копию.
Не стоит оправдываться — вас просто задирают
вопросы вполне нормальные , без придирок .
а то некоторые любят и триграфы в собеседование всунуть
... заодно и я освежил свои знания — раньше думал что семафор — только для межпотокового взаимодействия
... семафоры на практике не разу не пользовал .
A>СЕМАФОР -а, м. 1. Сигнальное устройство в виде подвижных крыльев или (у морских, речных семафоров) рея на столбе, мачте. Железнодорожный с. Речной с. С. открыт (путь свободен). 2. Во флоте: способ зрительной сигнализации (флажками, руками или при помощи специального аппарата). Дать с. встречному кораблю. || прил. семафорный, -ая, -ое.
Ну разумеется я знаю что есть такое русское слово как семафор, который с огоньками. Но в данном случае это была простая транскрипция, так же как и слово мьютекс, которое вообще отсутсвует в русском языке. Слово Семафор — это перевод слова semaphore, тоже самое если я напишу слово виндовс, а мне скажут что я не верно написал, нужно написать слово окно. Это транскрипция, а не перевод !!! Просто в данном случае они совпали почти. Но в английском слове там слышится звук И а не Е.
A>Вложу ибуксы в куки — интересная статья про IT-термины и русский язык.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знают ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Лучше напиши, сколько уже времени ищешь "программиста". Это дополнение скажет об очень многом.
Еще можно начать собеседовать людей, приходивших к тебе 2-3 года назад. Наверняка за пару лет они уже выяснили зачем нужны эти самые.
Здравствуйте, Denwer, Вы писали:
D>Ну разумеется я знаю что есть такое русское слово как семафор, который с огоньками. Но в данном случае это была простая транскрипция, так же как и слово мьютекс, которое вообще отсутсвует в русском языке. Слово Семафор — это перевод слова semaphore, тоже самое если я напишу слово виндовс, а мне скажут что я не верно написал, нужно написать слово окно. Это транскрипция, а не перевод !!! Просто в данном случае они совпали почти. Но в английском слове там слышится звук И а не Е.
Тем не менее, в русском языке для семафора (того, который в компьютере, а не на железной дороге) существует общепринятое написание.
Здравствуйте, vb-develop, Вы писали:
VD>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знают ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
VD>Лучше напиши, сколько уже времени ищешь "программиста". Это дополнение скажет об очень многом.
VD>Еще можно начать собеседовать людей, приходивших к тебе 2-3 года назад. Наверняка за пару лет они уже выяснили зачем нужны эти самые.
Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собесеования за эти 3-4 мес !!!
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Здравствуйте, Denwer, Вы писали:
D>>bla-bla-bla Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР... D>>Куда делись настоящие программситы...
SVZ>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
На практике — деструктор лучше сразу сделать виртуальным — а потом подумать , не сделать ли его невиртуальным.
... знание о виртуальном деструкторе — это практически знание об указателях в контексте ООП ...
т.е. если человек пишет в резюме ООП — то он обязан это знать , либо пускай не пишет.
SVZ>В моем текущем проекте, к примеру, нет ни одного места, где можно было бы применить виртуальные деструкторы (ну некуда их там приткнуть).
их не надо притыкать — это не фенечка ... в зависимоси от архитектуры — они либо нужны либо нет
SVZ>То же можно сказать и про остальные типовые вопросы на собеседованиях — про безопасность в ОС, синхронизация в многопоточном приложении...
SVZ>Два человека пишут весь "обвес", работающий с операционкой, а остальные пишут алгоритмическую часть, а у них ничего из вышеперечисленного не используется.
вот это вы сгоряча написали ... особенно про синхронизацию ( к стати — сочетание виртуального деструктора и освобождение
обьекта синхронизации в деструкторе — не такая уж редкая вещь ) , ловится конечно достаточно легко , но к чему иметь геморрой
SVZ>Вот и получается, что добрый десяток С++ программистов с опытом работы в 5+ лет не пройдут твоего собеседования
как ни прискорбно — но здесь говорится о банальных вещах — то же самое как спрашивать у дворника — с какой стороны берется метла.
SVZ>А книжки читать, увы, хрен заставишь
Позволить себе не учиться или не переучиваться — может , на самом деле , очень небольшой процент профессий.
Программисты этого себе вообще не могут позволить .
Учиться приходится постоянно ... мне пока это нравится .
И меня сильно удивляют программисты , которые не любопытны , и считают что уже достигли вершин лондонского дна.
Вот только со временем проблемы
Здравствуйте, Denwer, Вы писали:
D>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
Здравствуйте, vb-develop, Вы писали:
VD>Здравствуйте, Denwer, Вы писали:
D>>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
VD>Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
Не факт, что дело в неумении "отбирать по резюме". Бывает, что начальство давит — дескать, а может человек просто не умеет резюме писать. Хотя я лично ни разу чуда не наблюдал.
Здравствуйте, jhfrek, Вы писали:
J>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
Тогда уж не про музыкантов вообще надо говорить, а про композиторов.
Здравствуйте, carpenter, Вы писали:
C>как ни прискорбно — но здесь говорится о банальных вещах — то же самое как спрашивать у дворника — с какой стороны берется метла.
С дворниками не все так просто Жители Ю.Кореи сразились за право быть мусорщиками
В соревновании, прошедшем в южнокорейском городе Гуми, приняли участие около 500 человек, потерявших работу в связи с финансовым кризисом. Чтобы доказать свою пригодность к подметанию городских улиц, мужчины должны были выполнить несколько непростых заданий.
В частности, конкурс включал в себя забег на выносливость с 20-килограммовым мешком риса, подметание на скорость 100-метрового участка дороги и самое главное задание на ловкость: убирание собачьих экскрементов под одобрительные крики друзей и родственников.
А вы жалуетесь на тестовые задания и простенькие вопросы!
Здравствуйте, IT, Вы писали:
IT>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
Кстати интересный вопрос, какова мотивация того меньшинства, которое, осознавая то, что "чтение книг" не поднимет им зарплату, все равно продолжает их читать? Я понимаю там, новички, студенты — просто не имеют достаточных знаний, чтобы заработать себе на кусок хлеба с маслом. Для них мотивация к самообразованию понятна — деньги.
Но что движет этим "читающим" меньшинством? Страх того что они могут завтра "отстать от поезда"? Абстрактная тяга к новым знаниям? Желание прославиться и оставить след в истории? То есть, для чего человеку, которого все более-менее устраивает в текущей ситуации, продолжать само-совершенствоваться?
Хотя наверное вопрос скорее "философский", но все же?
Здравствуйте, carpenter, Вы писали:
C>На практике — деструктор лучше сразу сделать виртуальным — а потом подумать , не сделать ли его невиртуальным.
Ну, лично я предпочитаю сперва подумать, а потом писать
C>... знание о виртуальном деструкторе — это практически знание об указателях в контексте ООП ... C>т.е. если человек пишет в резюме ООП — то он обязан это знать , либо пускай не пишет.
Согласен.
SVZ>>Два человека пишут весь "обвес", работающий с операционкой, а остальные пишут алгоритмическую часть, а у них ничего из вышеперечисленного не используется.
C>вот это вы сгоряча написали ... особенно про синхронизацию ( к стати — сочетание виртуального деструктора и освобождение C>обьекта синхронизации в деструкторе — не такая уж редкая вещь ) , ловится конечно достаточно легко , но к чему иметь геморрой
Ничуть. В алгоритмической части действительно не требуется знаний о полиморфизме, многопоточности, даже знания WinAPI не требуется.
Специфика проекта, вернее сложившейся архитектуры. Проекту уже больше 10 лет и тянут его одни и те же люди. Со всеми вытекающими из этого плюсами и минусами.
SVZ>>А книжки читать, увы, хрен заставишь
C>Позволить себе не учиться или не переучиваться — может , на самом деле , очень небольшой процент профессий. C>Программисты этого себе вообще не могут позволить .
А если человек сидит на одном месте 10+ лет и не собирается менять работу?
Он считает, что уже достиг просветления и знает все на свете.
А особенно, если он сидит на вершине пирамиы, попробуй убеди его, что нужно избавиться от static'ов, что хорошо бы часть расчетов выкинуть в фоновый поток... ну и т.д.
Проблемы начнутся, когда лафа закончится и ему таки придется подыскивать новое место работы. А до тех пор... как говорится, гром не грянет, мужик не перекрестится.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, 31415926, Вы писали:
3>Не факт, что дело в неумении "отбирать по резюме". Бывает, что начальство давит — дескать, а может человек просто не умеет резюме писать. Хотя я лично ни разу чуда не наблюдал.
можно делать как в hflabs — высылать несложное тестовое задание и смотреть на него, а не на резюме
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Здравствуйте, carpenter, Вы писали:
C>>На практике — деструктор лучше сразу сделать виртуальным — а потом подумать , не сделать ли его невиртуальным.
SVZ>Ну, лично я предпочитаю сперва подумать, а потом писать
не спорю ... но первый вариант — гарантирует сразу уменьшение проблем в любом случае .
тут есть , конечно , предмет для дискуссий — но это не профильный форум , и я спорить не буду .
SVZ>А если человек сидит на одном месте 10+ лет и не собирается менять работу? SVZ>Он считает, что уже достиг просветления и знает все на свете.
это не просветление — а окостенение ... тут можно только посочувствовать .
Я даже сидя на работе , где все эти знания особо не нужны , и времени особо свободного нет,
периодически лазаю на форум С++ , и если чтото не знаю или не понимаю — сразу наверстываю .
Здравствуйте, vb-develop, Вы писали:
VD>Здравствуйте, Denwer, Вы писали:
D>>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
VD>Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
А если например такой случай, человеку написали резюме, точнее помогли профессионально его составить? Или как уже сказали, человек может и не писал его не разу, а вот дал по сути первый вариан его за все время и что тогда? ТОже отсеить по резюме? А если это как раз тот самый 1 из 100? Проблема не в том что много трачу на беседы с людьми, а втом что хороших программистов нет. Ну пускай отсею я худших по резюме, но хороших то от этого не прибавится?
Здравствуйте, carpenter, Вы писали:
C>... знание о виртуальном деструкторе — это практически знание об указателях в контексте ООП ... C>т.е. если человек пишет в резюме ООП — то он обязан это знать , либо пускай не пишет.
Объектно-ориентированный подход уже привязали к конкретному ЯП? Или я что-то недопонял?
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, _nikita_, Вы писали: J>>>>... на работе надо делать дело, а не заниматься самообразованием. __>>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний...
B>Они и устраиваются практически без знаний. B>Вернее без реального опыта, без которого ничего толком не построишь.
Стоп, стоп, давай-ка разделять это дело.
Судя по твоей оговорке, ты сам понимаешь, что знания не равняются опыту.
LVV>>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
B>В программировании все то же самое, если под "недоучками" понимать зеленых выпускников без опыта.
Имхо, их, кроме тебя, так никто не понимает. (никто — это я и лаптев )
Недоучки — это именно недоучки, т.е. не обладающими необходимыми профессиональными знаниями.
Которые не равны опыту.
Которые получаются в процессе профессионального обучения.
B>В любой нормальной отрасли есть процесс становления спеца, который после универа только начинается. B>Умудренные опытом товарищи, знающие для чего нужны виртуальные деструкторы, B>играют важную роль в этом процессе
Что процесс становления спеца есть, с этим никто не спорит, но виртуальные деструкторы — это все-таки из облсти базовых знания инструмента, с которым ты предполагаешь работать, принося пользу компании, которая тебя наняла.
Никто не отрицает важность опыта, но и нельзя говорить, что знания добываются только с опытом, потому что там другие знания — про то, что из многих вариантов лучше подходит к разным ситуациям, что лучше работает в различных и нестандартных условиях, какова реальная практика применения различных решений, детальное знание этих самых решений.
Но вот знание языка, как знание молотка или скальпеля для соответствующих специалистов, к знаниям опыта не относится.
К найму состоявшихся профессионалов совсем другие требования, там на первом месте именно опыт, и знания, иррелевантные опыту, вполне могут за годы работы выветриться, и на всегда надо делать скидку. Потому что в той конкретной области, в которой он работал (скажем, гуй), он может быть непревзойденным виртуозом, и в этом (и только этом) качестве он принесет гораздо больше пользы, чем свежий выпускник или чем специалист другого профиля (скажем, базы данных).
B>Ну а самоучек реально мало, и у них есть шансы только когда потребность в спецах намного выше чем самих спецов.
У зеленых выпускников всегда есть шансы, если фирма хочет растить собственные кадры, которые впитают дух фирмы почти что с молоком матери, и будут в будущем его поддерживать.
У профессионалов уже есть сложившийся менталитет, они приходят из других компаний и являются носителями их культуры, и перековка, не всегда возможная, кстати, происходит тяжело и долго, и часто у спецов так и не получается найти себя на новом месте в новом окружении, и они уходят.
В фирме, в которой я работаю сейчас, например, есть два вида новоприбывших, явно разделенные — experienced hire и new grad. Последние получается в результате campus recruiting. Для этих двух категорий совершенно разных подход при найме. И если профессионалы должны показывать свой опыт и подходящий менталитет, то нью-грады должны показывать свои блестящие знания (блестящие оценки в универе этому способствуют, если универ котируется). Причем этих последних частенько приглашают во время учебы в универе, перед последним курсом, поработать на лето в качестве summer intern, чтобы и сам человек, и компания присмотрелись друг к другу.
Здравствуйте, bkat, Вы писали:
B>А если серьезно, то неужели инженера — строителя гоняют на интервью по сопромату? B>Или все же смотрят на то, что у человека есть профильное образование,
Неплохо бы еще проверить качество этого образования, если только ты не доверяешь оценкам конкретного универа.
B>обсуждают реальный опыт
Это подходит только для тех ,кто имеет этот самый реальный опыт.
B>и оценивают его как человека?
Это для любого кандидата верно.
B>Или скажем какие-нибудь караблестоители... B>Что их тоже заставляют что-то попроектировать в свободное время, B>чтобы вообще попасть на интервью?
Причем тут попроектировать?
Это опыт, а вопрос о знаниях.
Ты можешь представть себе кораблестоителя, который не может ответить, для чего нужен киль?
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, alsemm, Вы писали:
A>>Проект на три команды в четырех разных часовых поясах и закртыми исходниками друг от друга. И каждый валит на другого.
S>Вот как раз организация работы команд(ы), чтобы люди работали слажено, а не валили друг на друга, и есть супер знание.
Это суперзнание профессионального менеджера, а не профессионального программера.
S>Вот проблемы типа "виртуальный дестуртор" — незначительные детали, которую толковый прог и в Гугле найдет.
Чтобы эффективно искать в гугле, надо уже знать половину ответа.
Например, надо хотя бы УЖЕ знать то, что проблема именно в виртуальном деструкторе или в его отсутствии.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР.
Огласите свой вариант, пожалуйста. А мы потом посмотрим, кто есть ху.
Здравствуйте, jazzer, Вы писали:
S>>Вот проблемы типа "виртуальный дестуртор" — незначительные детали, которую толковый прог и в Гугле найдет. J>Чтобы эффективно искать в гугле, надо уже знать половину ответа. J>Например, надо хотя бы УЖЕ знать то, что проблема именно в виртуальном деструкторе или в его отсутствии.
Да, ладно, находится за 15 секунд, вникается за несколько минут. Хотя конечно, если человек после 9 лет этого не знает, то это говорит либо о необучаемости, либо о полнейшей незаинтересованности. В обоих случаях чел фирме не может быть интересен. Вот типичный кадр из подобных. Судя по формуму закончил универ примерно 4 года назад и ничему не научился.
Здравствуйте, skeptik_, Вы писали:
_>Здравствуйте, jazzer, Вы писали:
S>>>Вот проблемы типа "виртуальный дестуртор" — незначительные детали, которую толковый прог и в Гугле найдет. J>>Чтобы эффективно искать в гугле, надо уже знать половину ответа. J>>Например, надо хотя бы УЖЕ знать то, что проблема именно в виртуальном деструкторе или в его отсутствии.
_>Да, ладно, находится за 15 секунд, вникается за несколько минут. Хотя конечно, если человек после 9 лет этого не знает, то это говорит либо о необучаемости, либо о полнейшей незаинтересованности. В обоих случаях чел фирме не может быть интересен. Вот типичный кадр из подобных. Судя по формуму закончил универ примерно 4 года назад и ничему не научился.
Не, ты меня не понял.
Вот есть проблема — утечка памяти.
Все выделения и удаления проверили — вроде все хорошо, в деструкторах все корректно удаляется.
Если ты знаешь, что утечки могут быть из-за забытого виртуального деструктора — ты вспомнишь об этом и проверишь их виртуальность. Если при этом тебе нужно освежить в памяти какие-то аскепты в.д. — да, это можно найти за 15 секунд, но вначале надо знать, что ты ищешь. А вот если ты никогда не знал о том, к чему может привести отсутствие виртуальности у деструктора — ты и не начнешь думать в этом направлении.
Здравствуйте, carpenter, Вы писали:
D>>>bla-bla-bla Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР...
гы. а зачем тогда вообще нужны виртуальные функции они знают?
D>>>Куда делись настоящие программситы...
1) вымерли как мамонты;
2) уже давно трудоустраивают на работу, а не трудоустраиваются на нее;
SVZ>>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются. C>На практике — деструктор лучше сразу сделать виртуальным — а потом подумать , не сделать ли его невиртуальным.
согласен. особенно с учетом того, что компилятор скорее всего оптимизирует вызов деструкутора, объявленного виртуальным, если поймет, что это не поломает программу. однако, разница в стоимости вызова виртуальных и невиртуальных функций довольно-таки существенна и потому я предпочитаю думать всякий раз, когда что-то объявляю. исключение составляют случаи когда наследников у нас нет и не будет, но это уже ближе к использованию плюсов в режиме "перехаченного си".
C>... знание о виртуальном деструкторе — это практически знание об указателях в контексте ООП ... C>т.е. если человек пишет в резюме ООП — то он обязан это знать , либо пускай не пишет.
ну я бы не стал тут говорить за указатели. объявление десктруктора виртуальным всего лищь гарантирует его вызов у всех потомков до седьмого колена. а как будет производиться вызов — через указатель или компилятор заооптимизирует — хз. впрочем, это большей частью относиться к реконструкции кода из бинарника в си++. ну вот типичный пример на который когда-то напоролся. есть код (программы) с библиотекой. задача — выдрать библиотеку и поднять до уровня плюсов. ну вижу, что деструкторов в одном классе вааще нет. а они и не нужны были в данном коде. ну так и написал. а чел. который стал юзать библиотеку наплодил производных клссов. а у меня деструктор в базовом объявлен невиртуальным. последствия вы сами понимаете.
SVZ>>В моем текущем проекте, к примеру, нет ни одного места, где можно было бы применить виртуальные деструкторы (ну некуда их там приткнуть). C>их не надо притыкать — это не фенечка ... в зависимоси от архитектуры — они либо нужны либо нет
архитектуры чего, извините? проца или проекта? ну тут уже говорили выше, что если в базовом классе десктуктор уже виртуальный, то в производных классах на него можно просто забить. все равно виртуальным будет. а если производных классов нет — это еще лучше
SVZ>>Вот и получается, что добрый десяток С++ программистов с опытом работы в 5+ лет не пройдут твоего собеседования C>как ни прискорбно — но здесь говорится о банальных вещах — то же самое как спрашивать у дворника — с какой стороны берется метла.
и что самое интересное, эти программисты таки имеют хорошие шансы найти себе работу, где знание этой фундаментальной особенности им не пригодится. точнее, им не сильно повредит ее незнание. если на вашей работе знать этот стафф необходимо — ну так впишите его в методичку и раздайте всем. у меня, кстати, тоже по работе бывают идиотские заморочки с амсатиками. типа опытный чел, уже давно работающий, неожиданно встречает lea и начинает грит, что она выбросит тут исключение. и что вообще не понятно как этот код работает. опс. приехали.
SVZ>>А книжки читать, увы, хрен заставишь
ну таких действительно нужно гнать. если челу указали, что у него есть проблемы и сказали, что читать, а он не читает упорно -- это ж угроза для всего тима.
C>И меня сильно удивляют программисты , которые не любопытны , и считают что уже достигли вершин лондонского дна. C>Вот только со временем проблемы
а вот меня удивляет, что это за организация труда такая при которой всем приходится учиться. ИМХО каждый должен делать что-то свое. причем, далеко не все технологии развиваются быстро и стремительно. не, ну мне на работе действительно приходится учиться всему новому каждый день (в силу специфики самой работы), но часть коллег делает одно и тоже, и роет не в ширину, а в глубину.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР.
я понимаю что я немного не по теме, и что к автору топика, скорее всего, приходили банальные балбесы, но, кто из участников дискуссии сможет сходу вспомнить хоть одно правило русского (или английского) языка?
Кто сможет рассказать что такое наречие или какие бывают дополнения? Кто сможет разбить на части слово "последние"? Кто сможет определить как спрягается тот или иной глагол?
И это незнание не мешает нам правильно разговаривать и писать по-русски. Почему программист не может знать язык программирования на том же уровне — он знает что и когда надо сказать, вернее, написать, но плохо помнит формальные вещи.
Как проверяется знание русского языка? Беседой на нем, написанием сочинения или диктанта и т.п. Причем, если вы нанимаете на работу дворника, вам достаточно убедиться что он сможет понять несколько слов типа "мести", "двор", "зарплата" , а если нанимаете тех. писателя — вы попросите его что-то описать, что бы убедиться что он не только хорошо говорит и пишет, но и правильно описывает.
Почему нельзя тестирование знания языка программирования организовать подобным образом? Используете виртуальные деструкторы? — дайте задачу где они жизненно необходимы. Если соискатель их использовал, приглашаете на беседу, иначе — нет, что бы сэкономить свое время. Неужели для вас сложно придумать набор задач, покрывающий вашу предметную область?
Здравствуйте, jhfrek, Вы писали:
J>И это незнание не мешает нам правильно разговаривать и писать по-русски. Почему программист не может знать язык программирования на том же уровне — он знает что и когда надо сказать, вернее, написать, но плохо помнит формальные вещи.
Потому что одно дело не помнить к какой части речи относится слово 'говорить', 'кодировать', 'думать', а другое — не знать ни одного глагола.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, jhfrek, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. J>я понимаю что я немного неи по теме, и что к автору топика, скорее всего, приходили банальные балбесы, но, кто из участников дискуссии сможет сходу вспомнить хоть одно правило русского (или английского) языка?
так ведь вопрос можно и перефразировать:
1) что неправильно в коде бла-бла-бла (базовый + производный, деструкторы невиртуальные);
2) какя функция вызовется здесь (базовй + производный, функция [не]виртуальная);
3) а если деструктор будет невиртуальным — что тогда?
4) виртуальный деструктор и оверхид
по вашему можно писать на плюсах и не знать ответа на эти вопросы? ну-ну... а потом долго ловить странные "баги" компилятора, особенно касательно (1), где мы получаем ub со всеми вытекающими
J>Кто сможет рассказать что такое наречие или какие бывают дополнения? Кто сможет разбить на части слово "последние"? Кто сможет определить как спрягается тот или иной глагол?
ну и что это доказывает? что можно программировать даже не зная опций компилятора?
J>И это незнание не мешает нам правильно разговаривать и писать по-русски.
и много вы знаете людей которые тут пишут правильно?
J> Почему программист не может знать язык программирования на том же уровне — он знает что и когда надо сказать, вернее, написать, но плохо помнит формальные вещи.
это -- другое. если программа собралась и как бы работает -- ура. если же нет, начинаем рыть. в конце-концов приходим к тому, что деструктор производного класса не вызывается. задаем вопрос на форуме или лезем в гугл. там нам дают на водку. и на пиво тоже. вот так все и работает
J> Как проверяется знание русского языка? Беседой на нем, написанием сочинения или диктанта и т.п.
есть разные уровни знания русского языка. корректор может фиксить ляпы, но не обязан знать наше с вами арго. и даже молодежное арго он, возможно, не знает. и будет долго гадать на фига класть шнурки в стакан. с другой стороны, а кто способен написать правильно? так чтобы можно было пускать под печатный пресс?
J> Причем, если вы нанимаете на работу дворника, вам достаточно убедиться что он сможет понять несколько слов типа "мести", "двор", "зарплата" ,
допустим, человек не знает, что такое виртуальный деструктор. но он решает поставленные задачи быстее, чем ему успеют дать законченный тз. и все понимает с полуслова. так какое мне дело до его виртуальных деструкторов? исключение составляет ситуаця, когда он пишет базовый класс, а я -- производный. тут я ему скажу: вася, ты не прав. пофикси свой код и покури стандарт для расширения сознания. и все. чел покурит и даже все будет ну очень хорошо.
J> а если нанимаете тех. писателя — вы попросите его что-то описать, что бы убедиться что он не только хорошо говорит и пишет, но и правильно описывает.
согласен. человек должен делать свою работу. вопрос по виртуальному дестуктору — дрянь. потому как это слишком просто вылавливается в коде. а вот выловить ошибки целочисленного переполнения -- уже сложнее, например. или если чел. наивно полагает что char по умолчанию беззнаковый. или что int всегда 32 бита. или что порядок байт в слове всегда один и тот же.
J> Почему нельзя тестирование знания языка программирования организовать подобным образом?
да можно, почему нельзя. я вот сейчас одного паренька притащил в наш тим. пацак реально шарит и хорошо обучаем. есму только сказали: вот посмотри эту щтуку. это типа твой проект будет, если тебя примут. просто попросили взглянуть. а вдруг человека это уже не прикалывает? короче, его еще трудоустроить не успели (бюракратия), а он уже залил бетон проекта и представил работающий макет. проект на плюсах. но никто его за виртуальные деструкторы не спрашивал. ибо от него требуется только ввод/вывод. типа вот входные данные, а вот результат их обработки. и все. единственное требование к нему, чтобы это шло под никсами и вендой.
J> Используете виртуальные деструкторы? — дайте задачу где они жизненно необходимы.
именно. чел. вообще должен приность фирме деньги и если он их приносит, то все остальное уже вторично. с другой стороны, если чел. не знает за деструкторы, то ему нельзя давать писать базовые классы. и архитектором ему не быть. и даже тимлидом. но своя ниша у него есть и без знания для чего нужен виртуальный деструктор. а вот если человек пишет ужасный код, то это ласты. проблема в том, что качество кода на малых проектах не проверяется.
J> Если соискатель их использовал, приглашаете на беседу, иначе — нет, что бы сэкономить свое время. J> Неужели для вас сложно придумать набор задач, покрывающий вашу предметную область?
а вот это действительно сложно. кстати, мы вот тут человека вообще на одну вакансию брали, а по ходу дела загрузили его совсем другими задачами. правда, мы его и не собеседовали толком. т.к. сразу было понято, что чел. хоть и не в теме, но обучаемый. так что нам с ним повезло даже больше, чем ему с нами и какой смысл было его гонять? меня вот даже тестовое задание подрядили ему писать, но я с ним просто початился и на том дело и кончилось. отписал руководству: надо брать. руководство с ним тоже пообщалось (причем, у него уже совета спрашивалии из его предметной области), и тоже сказало: зачотный пацак. ну у нас правда коллектив дружный. и к тому же маленький. а работы куча. и если человек уже показал свою полезность -- зачем его пытать? правда у нас есть отмазка. мы сначала берем контрактором, а уже потом смотрим -- кто нам нужен, а от кого лучше избавиться.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, bnk, Вы писали:
bnk>Но что движет этим "читающим" меньшинством? Страх того что они могут завтра "отстать от поезда"? Абстрактная тяга к новым знаниям? Желание прославиться и оставить след в истории? То есть, для чего человеку, которого все более-менее устраивает в текущей ситуации, продолжать само-совершенствоваться?
Любопытство. Впрочем, это же любопытство заставляет меня лезть в вещи которые мне знать не надо и иногда делает меня и моего работодателя несчастливыми. Так что стоит подумать, может лучше нанять не слишком стремящегося к новым горизонтам, но исполнительного работника?
Здравствуйте, Vamp, Вы писали:
D>>Вообще то в моем предложении был просто симафор, а не бинарный. V>Ага, то есть все-таки, в некоторых случаях разницы нет.
Здравствуйте, bkat, Вы писали:
LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... B>Они и устраиваются практически без знаний. B>Вернее без реального опыта, без которого ничего толком не построишь.
Да, только в любой конторе сначала спросят диплом. И без диплома ты на инженерную должность претендовать никак не сможешь. А в программировании?! LVV>>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают... B>В программировании все то же самое, если под "недоучками" понимать зеленых выпускников без опыта. B>В любой нормальной отрасли есть процесс становления спеца, который после универа только начинается. B>Умудренные опытом товарищи, знающие для чего нужны виртуальные деструкторы, играют важную роль в этом процессе
Не... Это только если учебный процесс неправильно построен. Наши — практически с 3 курса уже на производственной практике начинают работать. И процентов 85 к диплому имеют двухлетний опыт РЕАЛЬНОЙ работы. У меня были даже пару студентов, которые работали в Москве, а приезжали сдавать только в сессию. Это дневники! И начали с производственной практики. B>Ну а самоучек реально мало, и у них есть шансы только когда потребность в спецах намного выше чем самих спецов.
Дык студенты 3 курса — это кто? недоучки и есть! А им поручают вполне серьезную работу...
И иногда бывает (если проблем с армией нет), что чел на учебу просто забивает и просто остается работать, начиная с 3 курса...
Один из наших выпускников 4 года диплом защищал, приезжая из Москвы...
А другой защитил только через 11 лет после первого поступления...
А есть люди, которые так и не сподобились прийти защищать...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
H>>Дело в легкости владения. Например Qt, за пару недель можно въехать в основы и начать тихонько использовать — медленно, неоптимально, не совсем качественно. Через полгода-год возникает легкость владения — голова находит решения быстрее, код пишется быстро, качество выше.
S>Qt учится в процессе использования. Что-то понадобилось — почитал, добавил.
Довольно большие куски кода написанные в начальный период освоения либы мне пришлось переписывать впоследствии. Человек который только-то что-то прочитал и добавил как правило выполнит задачу гораздо хуже чем человек который имеет системное видение либы в целом и может осмысленно выбрать решение.
Системное видение либы получается минимум после нескольких месяцев использования и как минимум изучения многих примеров
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Скорей с отраслью. Просто большинство людей у нас занимаются теми вещами, где все это нафиг не нужно. Грустно, товарищи.
Здравствуйте, Denwer, Вы писали:
D>А если например такой случай, человеку написали резюме, точнее помогли профессионально его составить? Или как уже сказали, человек может и не писал его не разу, а вот дал по сути первый вариан его за все время и что тогда? ТОже отсеить по резюме? А если это как раз тот самый 1 из 100? Проблема не в том что много трачу на беседы с людьми, а втом что хороших программистов нет. Ну пускай отсею я худших по резюме, но хороших то от этого не прибавится?
Если человек не поленился, узнал и составил грамотное резюме — это уже о чем то говорит.
Многие даже этого толком сделать не могут.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Хе хе, я когда первый раз на работу устраивался ( третий курс), мне такой же вопрос задали.
А у меня из головы вылетело, не помню толком.
Ээ.. Ну, говорю, если есть виртуальные методы, значит обязательно должен быть виртуальный деструктор.
Интервьюер — хм, логично. Ну довай следующий вопрос...
Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Деньги, деньги, деньги, деньги . Вы можете предложть 120к в месяц после налогов? По глазам вижу что бюджет не подразумевает. А если бы могли — то увидели бы вживую людей которые знают не только что такое виртуальный деструктор, но и sequence points, почему у i++ + ++i undefined behaviour, все типы объектов синхронизации, что такое слайсы и как их готовить.
На зарплату 50-80 сейчас, увы, высококлассные специалисты не пойдут
Здравствуйте, jazzer, Вы писали:
J>Ты можешь представть себе кораблестоителя, который не может ответить, для чего нужен киль?
Я просто не очень уверен, является ли вопрос о том зачем нужнен виртуальный деструктор
аналогом вопроса для чего нужен киль.
Аналогом вопроса про киль был бы вопрос а зачем нужен деструктор.
На этот вопрос большинство смогут что-то внятное сказать.
А о чем говорит незнание виртуальных деструкторов в С++?
Вариантов много, но скорей всего у человека проблемы с пониманием ООП в целом
или с пониманием особенностей ООП на С++
То, что С++ в целом не очень интуитивно понятный язык — это не секрет.
Ну и ООП увы дается тоже далеко не каждому.
Кстати, со временем про виртуальные деструкторы смогут ответить все меньше и меньше народу.
Так что будет еще хуже
Здравствуйте, IT, Вы писали:
J>>И это незнание не мешает нам правильно разговаривать и писать по-русски. Почему программист не может знать язык программирования на том же уровне — он знает что и когда надо сказать, вернее, написать, но плохо помнит формальные вещи. IT>Потому что одно дело не помнить к какой части речи относится слово 'говорить', 'кодировать', 'думать', а другое — не знать ни одного глагола.
то есть приходившие к топикстартеру не знали ни одного оператора?
Здравствуйте, мыщъх, Вы писали:
М>так ведь вопрос можно и перефразировать: М>1) что неправильно в коде бла-бла-бла (базовый + производный, деструкторы невиртуальные); М>2) какя функция вызовется здесь (базовй + производный, функция [не]виртуальная); М>3) а если деструктор будет невиртуальным — что тогда? М>4) виртуальный деструктор и оверхид М>по вашему можно писать на плюсах и не знать ответа на эти вопросы? ну-ну... а потом долго ловить странные "баги" компилятора, особенно касательно (1), где мы получаем ub со всеми вытекающими
по нашему, не нужно задавать общих вопросов на знание теории, а нужно задавать вопросы на знание практики. Если все, вышеперечисленное будет использоваться в работе соискателя, то написанное вами нисколько не противоречит тому, что мы считаем
J>>Кто сможет рассказать что такое наречие или какие бывают дополнения? Кто сможет разбить на части слово "последние"? Кто сможет определить как спрягается тот или иной глагол? М>ну и что это доказывает? что можно программировать даже не зная опций компилятора?
это доказывает что можно говорить, не зная формальной стороны языка.
J>>И это незнание не мешает нам правильно разговаривать и писать по-русски. М>и много вы знаете людей которые тут пишут правильно?
да
J>> Почему программист не может знать язык программирования на том же уровне — он знает что и когда надо сказать, вернее, написать, но плохо помнит формальные вещи. М>это -- другое. если программа собралась и как бы работает -- ура. если же нет, начинаем рыть. в конце-концов приходим к тому, что деструктор производного класса не вызывается. задаем вопрос на форуме или лезем в гугл. там нам дают на водку. и на пиво тоже. вот так все и работает
странно, но вы написали "программа собралась", а не "праграмай собрались" и вам даже не нужно лезть в Гугл, что бы понять что в моем словосочетании неправильно, вы просто не напишите его в таком виде
J>> Причем, если вы нанимаете на работу дворника, вам достаточно убедиться что он сможет понять несколько слов типа "мести", "двор", "зарплата" , М>допустим, человек не знает, что такое виртуальный деструктор. но он решает поставленные задачи быстее, чем ему успеют дать законченный тз. и все понимает с полуслова. так какое мне дело до его виртуальных деструкторов? исключение составляет ситуаця, когда он пишет базовый класс, а я -- производный. тут я ему скажу: вася, ты не прав. пофикси свой код и покури стандарт для расширения сознания. и все. чел покурит и даже все будет ну очень хорошо.
именно
J>> Если соискатель их использовал, приглашаете на беседу, иначе — нет, что бы сэкономить свое время. J>> Неужели для вас сложно придумать набор задач, покрывающий вашу предметную область? М>а вот это действительно сложно.
скорее неохота , спрашивать по топикам из Страуструпа проще, и привычнее (многие же сдавали экзамены в вузе)
Здравствуйте, ___Avatar___, Вы писали:
___>- очень часто человек может прийти на проект в середине разработки, когда все классы уже созданы и человеку необходимо решать исключительно задачи бизнес логики и GUI, поэтому на виртуальные деструкторы он внимания не обращает ___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
Интересно, где ты смотрел книги.
По С++ очень много подобных книг. На мой взгляд даже книг "Как не сделать что-то на С++" больше, чем "Как всёже что-нибудь сделать".
Кроме 30/50/100 советов по С++, 101 правила, порекомендую ещё Дьюхэрста "Скользкие места С++". Эта книга позволяет довольно быстро пройти по сложным местам языка и освежить свои знания.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
А какие еще были вопросы и как эти соискатели на них отвечали?
Вообще возмущает, что, например, разброс в цене между фотомыльницами и Canon EOS 1D mark IV — где-то 2 порядка. А хорошему специалисту и в 2 раза большую зарплату практически никто платить не хочет.
Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
EOH>Деньги, деньги, деньги, деньги . Вы можете предложть 120к в месяц после налогов?
допустим, на кассе 150k после уплаты. белыми ("допустим" в данном случае следует читать как: можно и до 200k сторговаться). вопрос: где найти спецов, умеющих и желающих работать? вопрос _совсем_ не риторический. а нету специалистов. уже разобраны. а те, что надумали сменить работу находят ее быстрее, чем до них удается дотянуться. так что дело все-таки не в деньгах. а в кадрах.
EOH> По глазам вижу что бюджет не подразумевает. А если бы могли — то увидели бы вживую людей которые знают не только EOH> что такое виртуальный деструктор, но и sequence points, почему у i++ + ++i undefined behaviour,
извините, но это даже я знаю. а ведь я ни разу не программер. и это на 120 ну никак не тянет. кстати, в данном случае у вас никакого ub нету. а вот в: int i = 0; int x; x = i++ + ++i; оно таки есть. а какого вы еще поведния ждете от? результат-то не используется.
EOH> все типы объектов синхронизации, что такое слайсы и как их готовить.
синхронизация и c/c++ никак не соотносятся. как и знание объектов синхронизации с умением писать код, стабильно работающий на многоЦПшной машине.
EOH> На зарплату 50-80 сейчас, увы, высококлассные специалисты не пойдут
кто бы спорил. но высоклассный специалист навряд ли уйдет с насиженной работы даже если ему предложить оклад тыщ в триста. я вот знаю пару высококлассных спецов, но все никак не соблазню их. у них как бы привычный стиль жизни уже выработался. и менять его они не хотят. мы бы взяли и юниора, но и юниоров толковых сейчас что-то не находится.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, Miroff, Вы писали:
Л>...
Л>Вообще возмущает, что, например, разброс в цене между фотомыльницами и Canon EOS 1D mark IV — где-то 2 порядка. А хорошему специалисту и в 2 раза большую зарплату практически никто платить не хочет.
кстати, да. если говорить за штаты и за фирмы с которыми столкнулся -- специалист средней руки $70k найдет себе всегда. хороший специалист $100k — влет, $150k — если хорошо поискать. $200k — хороший специалист с связями или просто повезло человеку. $300k — ключевой разработчик/архитектор, который осознавая свою ценность требует бабло на кассу. $400k+ на грани фантастики. столько можно получать с учетом идексации по месту жительства, но в реальности, это даже ниже $300k.
ну а так мы имеем устойчивую вилку между 70 и 150. с другой стороны, 150 в штатах это до хвоста бабла. на жизнь хватит. а толку? если весь день торчать в офисе. поэтому имеет смысл договориться с руководством: как вы мне платите, так я и работаю. вот я допустим не очень хорошо работаю. но мне и большие деньги как бы не нужны. на путешествия хватает и ладно.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Есть еще один момент.
Можно, например, совсем(ни разу не слышал) не знать, что такое виртуальный деструктор, а можно не помнить деталей, но помнить в каких ситуациях в нем возникает потребность и знать где посмотреть конкретно что и как.
Первый вариант конечно нехорошо, а второй имхо вполне нормальный...мне , например, их использовать давно не приходилось...
Другое дело, собеседование процесс особый и тут уж желательно знать все)))
допустим, на кассе 150k после уплаты. белыми ("допустим" в данном случае следует читать как: можно и до 200k сторговаться). вопрос: где найти спецов, умеющих и желающих работать? вопрос _совсем_ не риторический. а нету специалистов. уже разобраны. а те, что надумали сменить работу находят ее быстрее, чем до них удается дотянуться. так что дело все-таки не в деньгах. а в кадрах.
Если бы знать . Мне пока бюджета больше 80 не дают — поэтому приходится работать с нижним и средним сегментом. Скажем так — если бы мне дали бюджет от 120 — я бы разместил соответствующие вакансии на профильных ресурсах — здесь, на хабре, на вингарде и прочих. Хороший такой правильный текст. Завлекающий, так сказать. После чего бы стал ждать писем.
BTW, не очень праздное любопытство — а у вас 150к в Москве или другом городе / стране?
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
На мой взгляд есть еще один момент.
Сегодня объём информации и областей IT значительно больше, чем лет 5-10 назад. Часто молодые специалисты распыляются на решение очень разных задач и толком не знают ни того, ни другуго. Это если учесть, что основные знания человек приобретает в процессе работы. Опять же на мой вгляд, особенно это актуально в небольших городах с небольшими конторками, где одному нужно выполнять много разной по роду работы.
В своё время сам столкнулся с такой проблемой. Писал на нескольких языках под win/symbian + верстка и скрипты web + дизайн (!). Плюс к этому еще некоторые совершенно другие по роду вещи. В итоге пришел к тому, что всё умею, но ничего толком.
E>>А что подразумевается под знанием? Мне вот самому стало интересно — знаю я такое, или нет, потому небольшой оффтопик позволю себе. Вот навскидку попробую ответить, уже 4.5 года С++ не видел в глаза, а когда по собеседованиям бегал, ни разу такого не спрашивали. Итого у меня ответ навскидку следующий — для того же, для чего нужны виртуальные функции и модификатор virtual.
D>Меня бы такой ответ устроил на все 100% по данному вопросу, но нету их. Вот пример последнего человека сегодня.
То есть правильный ответ примерно такой, что "виртуальный деструктор — это то же самое, что виртуальный метод, только деструктор (автоматически вызывается при унижтожении объекта)", похоже? Я на C++ никогда не писал, но не должно же быть разницы между виртуальным деструктором и виртуальным обычным методом (в плане наследования)? То есть ответ на вопрос, "что такое виртуальный деструктор" действительно собирается из ответов "что такое деструктор" и "что такое виртуальный метод"?
Тогда на самом деле удивительно, не знать либо виртуальности, либо деструкторов, со стажем от трех лет.
Здравствуйте, minorlogic, Вы писали:
M>По резюме же видно что чел не спец по С++? Что же вы ожидали от него ?
Разница между мутексом, семафором, и spinlock не зависит от языка программирования.
Они довольно обязательно встречаются при memory & performance optimizations, которые в резюме есть.
Здравствуйте, Vamp, Вы писали:
D>>Думаете он знает что такое виртуальный деструктор? Или напрмиер синхронизация данных в многопоточных приложениях? Как оказалось он не понимает что такое мьютекс и симафор и в чем их разница. V>А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
В том, что семафор бывает не бинарный, а мутекс нет.
Здравствуйте, jhfrek, Вы писали:
М>> по вашему можно писать на плюсах и не знать ответа на эти вопросы? ну-ну... а потом долго ловить странные "баги" компилятора, особенно касательно (1), где мы получаем ub со всеми вытекающими J> по нашему, не нужно задавать общих вопросов на знание теории, а нужно задавать вопросы на знание практики.
в тех местах где я собеседовался, кстати, собеседования проваливал полностью. ну или вытягивал на тройку едва ли. но зачот мне все равно ставили, т.к. интегрировали все мои возможности в кучу и по совокупности я вполне набирал на проходной бал. правда, меня собеседовали те, кто не понтовался. а то бы меня запинали.
J>это доказывает что можно говорить, не зная формальной стороны языка.
да, но... "куртка привез" неправильно. а если это таки правильно, то куртра это нечто мужского пола (ну саша он тоже мужчиной бывает) и в активном залоге. даже если мы забыли падежи и глагол туби, объяснить что означает my wife is like a dog все равно сможем. и тут мы касаемся того пласта языка, когда нельзя говорить: это правильно потому что так говорят. оно-то, конечно, правильно. просто за такой комплимент и хвост могут оторвать. хотя помню что как раз такой вопрос и был на каком-то английском тесте. какое слово тут лишнее. дураку же понятно, что лишнее тут like потому как оно вообще вводное слово здесь как наше типа. ну знаешь, типа, моя жена -- собака. с чем я смогласен. а вот что она любит какую-то абстракную собаку... это случайно не мужа она имеет ввиду?
так и с языком программирования. да, говорить можно, не зная даже фундаментальных основ (кстати, почему так мало спецов знает что такое , и как ее можно юзать?), но... лучше не нужно
J>странно, но вы написали "программа собралась", а не "праграмай собрались" и вам даже не нужно лезть в Гугл,
у меня вообще много ошибок в rus, а еще больше в eng. увы.
J> что бы понять что в моем словосочетании неправильно, вы просто не напишите его в таком виде
зато могу сказать I've never been in Mexico, are you going to invite me there, sweetheart? и ошибки я не почувствую. потому что "так говорят". хотя так (первую часть предложения) говорят только после визита, а не до. но интуитивно это я не чувствую и мне нужно курить мануалы.
J>>> Если соискатель их использовал, приглашаете на беседу, иначе — нет, что бы сэкономить свое время. J>>> Неужели для вас сложно придумать набор задач, покрывающий вашу предметную область? М>>а вот это действительно сложно. J>скорее неохота , спрашивать по топикам из Страуструпа проще, и привычнее (многие же сдавали экзамены в вузе)
что неохота то правда. с другой стороны, когда я собеседую человека в свой тим, я таки потрачу какое-то время, чтобы подкинуть ему адекватные вопросы. например, те с которыми столкнулся сам. и ес-но дам ему иннет и время. если не дурак, то разберется. и если я увижу, что его уровень меня и моих коллег устраивает, то возьму отвественность на себя и буду грит вышестоящему руководству: берем, пока не взяли другие. если же меня простят посмотреть на человека для набора в соседний тим, но мне действительно проще взять любой вопросник и просто тупо его прогнать по всем вопросам. а потом показать результат начальству и сказать: рещайте сами. т.к. все равно я не знаю, что вы от него хотите реально.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Л>Вообще возмущает, что, например, разброс в цене между фотомыльницами и Canon EOS 1D mark IV — где-то 2 порядка. А хорошему специалисту и в 2 раза большую зарплату практически никто платить не хочет.
Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
Я так жалею, что не свалил, когда в своё время предлагали хоть и небольшие деньги, но без требования разговорного языка (всё одно в конторе одни русские работали). На месте язык, глядишь, бы подтянул. И занимался бы реальным делом. Дома не слышал бы соседской музыки и скандалов. Ходил бы не по грязи. Фантастика.
Здравствуйте, TarasCo, Вы писали:
TC>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
допустим, на кассе 150k после уплаты. белыми ("допустим" в данном случае следует читать как: можно и до 200k сторговаться). вопрос: где найти спецов, умеющих и желающих работать? вопрос _совсем_ не риторический. а нету специалистов. уже разобраны. а те, что надумали сменить работу находят ее быстрее, чем до них удается дотянуться. так что дело все-таки не в деньгах. а в кадрах.
EOH>Если бы знать
вот и я тоже озабочен поиском кадров, т.к. некотрым бюджетом распоряжаться уже могу (ну, не сам лично, но с моей подачи), и можно было бы инвестировать в россию нехилые деньги. были бы специалисты. в смысле не вообще в россии (в том, что у нас много классных и сильных никто и не сомневается), а чтобы они их удалось собрать вместе за разумное время. "хрен там" (с)
EOH>BTW, не очень праздное любопытство — а у вас 150к в Москве или другом городе / стране?
в москве. даже фирму могу сказать, т.к. это не секрет. McAfee. и конкретно наш тим работает над продуктом по имени NTR. R&D сосредоточено в городке рестоне, что под вашингтоном. куча кода вынесена в китай и индию. в России — трудоустройство по ТК, так что никаких серых зарплат нет. и никаких супер-требований к кандидатам тоже нет. обычный портабельный код, который должен ументь работать на многцпшных машинах под никсами с перспективой скорого перехода на 64 бита. ну английский разговорный на таком уровене, чтобы выдерживать интенсивную служебную переписку без отрыва от производства. кстати, на английском многие срезаются. хотя это и не экзамен, а просто тест — может ли кандидат общаться с нашим интернациональным тимом так, чтобы понимать что ему говорят и чтобы мы понимали его. гм, наверное, надо будет здесь таки размесить объяву. до этого размещал на васме и реакция была мягко говоря неадекватной. вопросы: а у вас морс на фирме есть? а туалет? ну я пытаюсь объяснить, что был бы человек хороший, а туалет ему и на рабочем месте смонтируют при необходимости и с морсом можно договориться какое счастье, что я не кадровый сотрудник и на хамство могу и на буй послать и мне ничего не будет. а вот кадровичнам я действительно не завидую.
но вообще-то, McAfee платит существенно выще вышерыночного. от всех своих коллег во всех странах пришедших туда за последние несколько лет слышал только одно -- что до этого они получали как минимум на 30% меньше. но проблемы кадров зарплата не решает.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Л>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
Ну да. А еще есть мерседесы по 100т$. И конечено обидно, что они не доступны хорошим программистам.
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, мыщъх, Вы писали:
Л>...
Л>Я так жалею, что не свалил, когда в своё время предлагали хоть и небольшие деньги, но без требования разговорного языка (всё одно в конторе одни русские работали).
а какие проблемы? я тут ухитрился какое-то время в корее работать. без знаний корейского. испанию до сих пор держку запасным вариантом. без знания испанского. а ни в корее, ни в испании английский не знают даже айтишники. и ничего. найти работу без требования языка совсем несложно.
Л> На месте язык, глядишь, бы подтянул. И занимался бы реальным делом. Дома не слышал бы соседской музыки и скандалов. Ходил бы не по грязи. Фантастика.
а что сейчас изменилось? ну кризис. немного тормознули набор юниоров. но вот даже у нас в mfe — только что написала коллега из орегона. юниор. по дотнету. приняли месяц назад. а вы говорите — кризис. у нас в тиме еще одна вакансия не закрыта. причем на юниора как раз.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Я это воспринимаю как лень и отсутствие мотивации у 90% соискателей.
Кстати, все эти боян-вопросы про виртуальные деструкторы охотники за деньгами знают. Вот тут они спецы. Что трудного в том, что бы поискать в инете и изучить стандартные вопросы на собеседовании.
Л>Сбережения за пару лет работы на обычные банковские депозиты положил, да и всё. Доход не хуже, чем у официанта Макдональдса. Инфляция, конечно, беспокоит. Если всю жизнь так жить, недвижимость потом придётся продавать.
Здравствуйте, Denwer, Вы писали:
D>Поправочку сделаю, я имел в виду не начинающих программистов, были даже с 10-15 летним стажем по с++(точнее это они так написали в резюме). Минимум с кем я беседовал, имели опыт более 3 лет по с++.
Всякое бывает. В моей молодости кто-то написал в резюме, что он работал с Дельфи 5 лет. Дельфи было от роду 3 года
Л>>Вообще возмущает, что, например, разброс в цене между фотомыльницами и Canon EOS 1D mark IV — где-то 2 порядка. А хорошему специалисту и в 2 раза большую зарплату практически никто платить не хочет.
TC>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
зависит от места. давайте так считать. возьмем то, что мне хорошо знакомо. а именно — окрестности вашингтона. возьмем программистов средней руки, так чтобы после всех поборов у них осталось $50k. съем семейного домика обойдется ну пусть в $20k. квариру в кредит в центре можно взять выплачивая всего $500 в месяц. но ладно пусть будет дом. питание? если обедать в ресторане, а ужин — брать только органическую пищу в дорогом супермаркете, то у меня всяко меньше $15k вылетало с учетом угощения коллег. коммуналка -- $5k хватит на все, включая иннет. итого, у нас остается $10k. это на одежду и на отдых с полетом бизнес-классом. а если брать эконом, то и на двоих спокойно выйдет.
а что может себе позволить хороший программист? увы. все тоже самое. ну домик побольше и в районе получше. ну там телевизор с действительно большим экраном... и все!!! разрыв в зарплате не позволяет жить качественно лучше. и это хорошо! потому как нет расслоения общества. во всяком случае оно не так заметно.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Если не секрет: на какую зарплатную вилку происходит набор?
Если на 30-40 тыс. для Москвы — то может и нормально (насчет 50 хз, а выше как бы перебор).
А что много дебилоидов хотят большую зарплату, при этом ничего не зная — ну пусть хотят дальше.
Для предварительной фильтрации еще простенькие тестовые задания бывают или ответить на несколько вопросов.
В некоторых крупных фирмах до собеседования дают пройти бреин-бенч например (чтоб не тратить время проводящего собеседования — т.к. прохождение бреин-бенча организует девчонка-HR). Например, в той же ЛК так. Чтоб предварительно отсеять заведомо мусор.
А все эти басни, мол, "да можно не знать, что такое виртуальный деструктор, но грамотно писать" — как правило, рассказывают те, кто сами такие же. И которые думают про себя, что они хорошо пишут.
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, TarasCo, Вы писали:
TC>>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
Л>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
$20k? чаво?! а она вам такая очень нужна, да? тасякаясь по портам я виду кучу неплохих зеркалок за $2k. а от $2k уже стабильно некропнутая матрица начинается. что вам еще нужно-то? вот некропную матрицу я наверное возьму как угроблю свой Nikon D80 (опять с ним попал под жуткий ливень в горах). а что сверх некропнутной матрицы можно поиметь — я даже не знаю. и главное, к камере за несколько килобаксов я могу относится как к рабочей лошадке. ходить с ней по темпным улицам. типа гопнки нападут — ну и хрен с ней. могу беззаботно с ней гулять при всех погодных условиях. могу вообще в малознакомых местах оставлять не думая, что ее угонят. потому как в состоянии купить себе еще такую же за разумное время. а выкладывать $20k... ну меня жаба задушит. я ж потом на нее молиться буду. а на фиг мне она нужна тогда?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
М>зависит от места. давайте так считать. возьмем то, что мне хорошо знакомо. а именно — окрестности вашингтона. возьмем программистов средней руки, так чтобы после всех поборов у них осталось $50k. съем семейного домика обойдется ну пусть в $20k. квариру в кредит в центре можно взять выплачивая всего $500 в месяц. но ладно пусть будет дом. питание? если обедать в ресторане, а ужин — брать только органическую пищу в дорогом супермаркете, то у меня всяко меньше $15k вылетало с учетом угощения коллег. коммуналка -- $5k хватит на все, включая иннет. итого, у нас остается $10k. это на одежду и на отдых с полетом бизнес-классом. а если брать эконом, то и на двоих спокойно выйдет.
М>а что может себе позволить хороший программист? увы. все тоже самое.
Нет уж. Давай сделаем нормально сравнение. У программиста средней руки останется 10к — сам посчитал. У хорошего программиста с теми же примерно бытовыми расходами получится 60к. Вот и искомая цифра — хороший программист получит "лишних" денег в несколько раз больше. А очень хороший программист — в десяток раз. Разве это не хорошая компенсация за разницу в классе.
Здравствуйте, любой, Вы писали:
Л>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
Я бы очень хотел зеркалку, у которой размер матрицы совпадает с размером кадра фотопленки (24x36 mm). Но увы, они стоят бешеных бабок и весят, как два кирпича. Производители не торопятся ставить такую матрицу навороченные любительские камеры.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, любой, Вы писали:
Л>>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
Pzz>Я бы очень хотел зеркалку, у которой размер матрицы совпадает с размером кадра фотопленки (24x36 mm). Но увы, они стоят бешеных бабок и весят, как два кирпича. Производители не торопятся ставить такую матрицу навороченные любительские камеры.
если не ошибаюсь, некропнутая матрица за $2k это уже реально. конкертные цены смогу уточнить через несколько дней. меня останавливает только вес. даже мой Nikon D80 + номальный стеклянный объектив + вспышка + ноут asus eee уже вместе съедают весь лимит ручной клади. не в багаж же их сдавать. и потому вес камеры для меня очень важен. а так бы уже давно купил некропнутую. тут как раз нравится снимать виды. нужен широкий угол.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Pzz, Вы писали:
Pzz>Я бы очень хотел зеркалку, у которой размер матрицы совпадает с размером кадра фотопленки (24x36 mm). Но увы, они стоят бешеных бабок и весят, как два кирпича. Производители не торопятся ставить такую матрицу навороченные любительские камеры.
Так, а в чем непосредственный плюс? У тебя много объективов под пленочный формат?
Здравствуйте, мыщъх, Вы писали:
М>$20k? чаво?! а она вам такая очень нужна, да? тасякаясь по портам я виду кучу неплохих зеркалок за $2k. а от $2k уже стабильно некропнутая матрица начинается. что вам еще нужно-то?
Да я фотографией не увлекаюсь. Просто сюжеты разные бывают. Одно дело просто пейзаж снимать. А другое — полёт стрекоз в играющих на солнце брызгах водопада.
Здравствуйте, TarasCo, Вы писали:
М>>зависит от места. давайте так считать. возьмем то, что мне хорошо знакомо. а именно — окрестности вашингтона. возьмем программистов средней руки, так чтобы после всех поборов у них осталось $50k. съем семейного домика обойдется ну пусть в $20k. квариру в кредит в центре можно взять выплачивая всего $500 в месяц. но ладно пусть будет дом. питание? если обедать в ресторане, а ужин — брать только органическую пищу в дорогом супермаркете, то у меня всяко меньше $15k вылетало с учетом угощения коллег. коммуналка -- $5k хватит на все, включая иннет. итого, у нас остается $10k. это на одежду и на отдых с полетом бизнес-классом. а если брать эконом, то и на двоих спокойно выйдет.
М>>а что может себе позволить хороший программист? увы. все тоже самое.
TC>Нет уж. Давай сделаем нормально сравнение. У программиста средней руки останется 10к — сам посчитал. У хорошего программиста с теми же примерно бытовыми расходами получится 60к.
и оба они живут в домике одинакового размера, нормально питаются, etc. и хотя имея $60k на руках можно позволить себе элементы роскощи типа любовницы, базовый уровень у них одинаковый. и вся разница в мелких удовольствиях. а вот в испании (например) разница уже существена. как раз в плане "квартира на окраине" vs "домик в хорошем месте".
> Вот и искомая цифра — хороший программист получит "лишних" денег в несколько раз больше. А очень хороший программист — в десяток раз. Разве это не хорошая компенсация за разницу в классе.
и в чем эта разница выражается по жизни? денег больше, согласен. но на них нельзя купить то, что доступно хорошему программисту, но недоступно плохому. плюс включаются общественные механизмы компенсации. когда несколько человек идут на ланч — платит кто? обычно тот, у кого самая высокая зарплата
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, bnk, Вы писали:
bnk>Но что движет этим "читающим" меньшинством? Страх того что они могут завтра "отстать от поезда"? Абстрактная тяга к новым знаниям? Желание прославиться и оставить след в истории? То есть, для чего человеку, которого все более-менее устраивает в текущей ситуации, продолжать само-совершенствоваться? bnk>Хотя наверное вопрос скорее "философский", но все же?
Потому что чтобы оставаться на месте- надо бежать. А если не бежать, то через N лет старый паровоз устаревшей технологии отправят в металлолом, а "опытных спецов" заменят вчерашними студентами с нужными скиллами и адекватными зарплатными ожиданиями.
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, мыщъх, Вы писали:
М>>$20k? чаво?! а она вам такая очень нужна, да? тасякаясь по портам я виду кучу неплохих зеркалок за $2k. а от $2k уже стабильно некропнутая матрица начинается. что вам еще нужно-то?
Л>Да я фотографией не увлекаюсь. Просто сюжеты разные бывают. Одно дело просто пейзаж снимать. А другое — полёт стрекоз в играющих на солнце брызгах водопада.
а если мне марс крупно хочется снять? боюсь, что тут и $200k не хватит.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, sss1024, Вы писали:
S>C++ устарел, что такое виртуальный деструктор мало кто интересовался раньше а теперь уж и подавно.
Тролль! Брысь в КСВ!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, RedUser, Вы писали:
>>LANGUAGES: C++, C, SQL, Pascal, FoxPro, Assembler 1C v7.7, 1C v8.0 (базовые навыки + запросы любой сложности), C# HTML, XML, VB, VBA for Excel, VBScript. RU>Вроде C++ на первом месте стоит.
Видимо переставил потому, что в вакансии С++ написано
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, shrecher, Вы писали:
S>По CV видно человек умеет решать конкретные задачи быстро входя в курс дела. Если придется, то через неделю напишет "читаю по-китайски со словарем". От таких людей ожидать глубокое знание предметных данных, но они быстро схватывают.
Да ну!
Из резюме скорее видно что специалист из категории "ничего толком не умеем". Куча названий намешана. В Responsibilities про разработку Software ничего. Про доработку написано, да. Но что именно он дорабатывал? VBА в excel?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, carpenter, Вы писали:
C>а то некоторые любят и триграфы в собеседование всунуть
Триграфы на собеседовании IMHO признак невменяемости собеседующего.
Платформ на которых без триграфов не обойтись уже вроде как в живом виде давно не встречается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, мыщъх, Вы писали:
М>у меня, кстати, тоже по работе бывают идиотские заморочки с амсатиками. типа опытный чел, уже давно работающий, неожиданно встречает lea и начинает грит, что она выбросит тут исключение. и что вообще не понятно как этот код работает. опс. приехали.
Видимо он по книжкам когда то асм осваивал.
Ну а у таких строго засело: LEA == Load Effective Address. Видимо думает что будет обращение по левому адресу и "АААаааа всёпропало мывсеумрём!"
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, мыщъх, Вы писали:
М>а какие проблемы? я тут ухитрился какое-то время в корее работать. без знаний корейского. испанию до сих пор держку запасным вариантом. без знания испанского. а ни в корее, ни в испании английский не знают даже айтишники. и ничего. найти работу без требования языка совсем несложно.
Т.е. за границей без разговорного английского работу найти легче, чем устроиться в московское представительство какой-нибудь западной конторы?
М>и в чем эта разница выражается по жизни? денег больше, согласен. но на них нельзя купить то, что доступно хорошему программисту, но недоступно плохому.
у меня случился brain panic.... ЧТО же ЭТО??!!!
M>плюс включаются общественные механизмы компенсации. когда несколько человек идут на ланч — платит кто? обычно тот, у кого самая высокая зарплата
Тебя по-моему коллеги просто разводят. Посмотри на них через телескоп и скажи бассом: "уймитесь, истинно говорю вам!".
Здравствуйте, ___Avatar___, Вы писали:
___>а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
___>я например первые 2 года тоже не знал зачем виртуальный деструктор нужен ___>по всем вышеуказанным причинам
Лично я делаю следующие выводы:
человек не знает зачем нужен виртуальный деструктор ->
человек не знает, зачем вообще нужны виртулальные методы ->
человек не понимает, что это такое ->
отладка классов, где используются виртуальные методы, будет для него магией.
Как ни крути, все-таки базовая вещь. Практически везде, где всплывут виртуальные методы, будут и виртуальные деструкторы.
Здравствуйте, TarasCo, Вы писали:
TC>Нет уж. Давай сделаем нормально сравнение. У программиста средней руки останется 10к — сам посчитал. У хорошего программиста с теми же примерно бытовыми расходами получится 60к. Вот и искомая цифра — хороший программист получит "лишних" денег в несколько раз больше. А очень хороший программист — в десяток раз. Разве это не хорошая компенсация за разницу в классе.
Нет уж. Давай сделаем нормально сравнение
Вы исходите из денег которые остались, а я считаю, что правильнее исходить из того, как они могут тратить все свои деньги (все-таки деньги нужны для того чтобы их тратить, а не смотреть на них), и тут мы опять вовращаемся к разнице в 1.5 — 2 раза между обычным программером и крутым программистом. Т.е. крутой программер не сможет кушать на порядок круче чем обычный программер, или купить себе квартиру на порядок круче чем обычный программер. А ведь разница в их уровне, знаниях, скорости и качестве работы — может быть действительно на порядок, а то и больше. Можно опять вспомнить книгу Роберта Гласса — Факты и заблуждения профессионального программирования, где приводятся исследования, что разница между программистами в пределах даже одной группы может отличаться на порядок, а разброс в производительности в 5 раз — вполне обычен. Если интересно, полностью данный факт я процитировал здесь
PS. Я не говорю что обычный программер должен получать 50К, а крутой — 500К, но когда обычный получает 50К, а крутой — 75К — это тоже ненормально. Разница должна быть более существенной. Почему программер, который работает в 5 раз медленее, делает больше багов и делает в 5 раз хуже поддерживаемый код должен получать почти столько же сколько крутой специалист с 10-15 летним опытом? Все-таки оплата должна быть более пропорциональна производительности труда программистов и качеству кода который они создают.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Потому что чтобы оставаться на месте- надо бежать. А если не бежать, то через N лет старый паровоз устаревшей технологии отправят в металлолом, а "опытных спецов" заменят вчерашними студентами с нужными скиллами и адекватными зарплатными ожиданиями.
Бежать за паровозом дело заведомо бессмысленное :) Надо умело и вовремя перепрыгивать с одного паровоза на другой
Здравствуйте, Pzz, Вы писали:
Pzz>Я бы очень хотел зеркалку, у которой размер матрицы совпадает с размером кадра фотопленки (24x36 mm). Но увы, они стоят бешеных бабок и весят, как два кирпича. Производители не торопятся ставить такую матрицу навороченные любительские камеры.
Потому что два кирпича никто не хочет таскать. Вообще с шумами можно бороться не только увеличивая размер матрицы, что они и пытаются.
MC>Вы исходите из денег которые остались, а я считаю, что правильнее исходить из того, как они могут тратить все свои деньги (все-таки деньги нужны для того чтобы их тратить, а не смотреть на них), и тут мы опять вовращаемся к разнице в 1.5 — 2 раза между обычным программером и крутым программистом. Т.е. крутой программер не сможет кушать на порядок круче чем обычный программер, или купить себе квартиру на порядок круче чем обычный программер.
А почему он собственно должен быть "на порядок круче"? Меня, лично, сама постановка вопроса оскорбляет. Я не хочу быть круче других моих коллег. Мы вместе работаем над проектом, почему я должен получать в разы больше других?
Здравствуйте, мыщъх, Вы писали:
М>>>а что может себе позволить хороший программист? увы. все тоже самое. М>и оба они живут в домике одинакового размера, нормально питаются, etc. и хотя имея $60k на руках можно позволить себе элементы роскощи типа любовницы, базовый уровень у них одинаковый. и вся разница в мелких удовольствиях.
М>и в чем эта разница выражается по жизни? денег больше, согласен. но на них нельзя купить то, что доступно хорошему программисту, но недоступно плохому. плюс включаются общественные механизмы компенсации. когда несколько человек идут на ланч — платит кто? обычно тот, у кого самая высокая зарплата
При вызове виртуальной функции (точнее метода) переопределенной потомком вызовется функция потомка,
а в переопределенном деструкторе вызовуться все деструкторы (начиная от верхнего) автоматически. Причем при явном вызове или через оператор delete.
#include <iostream>
using namespace std;
class A {
public:
virtual ~A(){ cout << "a" << endl;}
};
class B : public A {
public:
~B() { cout << "B" << endl; }
};
int main(){
A* a = new B();
((B*)a)->~B();
//delete a;
}
MC>>Вы исходите из денег которые остались, а я считаю, что правильнее исходить из того, как они могут тратить все свои деньги (все-таки деньги нужны для того чтобы их тратить, а не смотреть на них), и тут мы опять вовращаемся к разнице в 1.5 — 2 раза между обычным программером и крутым программистом. Т.е. крутой программер не сможет кушать на порядок круче чем обычный программер, или купить себе квартиру на порядок круче чем обычный программер.
TC>А почему он собственно должен быть "на порядок круче"?
Никто никому ничего не должнен. Просто так часто бывает. Что один программер на порядок производительнее и опытнее другого, а получает не намного больше.
TC>Меня, лично, сама постановка вопроса оскорбляет.
Какой ужас, сочувствую, простите если мой ответ вас чем-то оскорбил.
TC>Я не хочу быть круче других моих коллег.
А я хочу. И хочу получать соответствующую зарплату за то, что буду на порядок производительнее и писать на порядок более качественный код, а не так, что (беру пример из Тольятти) джуниор может устроиться на 20 — 25, хороший программер, который будет писать код в разы лучше и быстрее джуниора — на 25 — 30, а тим лид, который будет тащить весь проект — 35.
TC>Мы вместе работаем над проектом, почему я должен получать в разы больше других?
Опять же, повторюсь, никто никому ничего не должен.
PS. Вообще мне ваша позиция кажется странной и непонятной. Вы считаете что так и должно быть, что все программеры получают примерно одинаково, и если программер с опытом 15 лет получал бы в 2-3 раза больше чем джуниор с опытом 1 год — то это было бы неправильно?
Здравствуйте, COFF, Вы писали:
Pzz>>Я бы очень хотел зеркалку, у которой размер матрицы совпадает с размером кадра фотопленки (24x36 mm). Но увы, они стоят бешеных бабок и весят, как два кирпича. Производители не торопятся ставить такую матрицу навороченные любительские камеры.
COF>Так, а в чем непосредственный плюс? У тебя много объективов под пленочный формат?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Denwer, Вы писали:
D>>Поправочку сделаю, я имел в виду не начинающих программистов, были даже с 10-15 летним стажем по с++(точнее это они так написали в резюме). Минимум с кем я беседовал, имели опыт более 3 лет по с++.
PD>Всякое бывает. В моей молодости кто-то написал в резюме, что он работал с Дельфи 5 лет. Дельфи было от роду 3 года
Есть другая сторона медали, я по дельфи у нас был крус в лицее с самой первой версии, и начала мы еще толи с беты, толи с RC какого-то еще до официального анонса. Лицей тогда с борландом сотрудничал плотно — и если считать полные года, то у меня получалось больше чем "от роду".
Тоже самое с j2me было — мне "посчастливилось" работать с самыми первыми IDEN моторолами которые поддерживали j2me.
И когда я честно говорил сколько у меня лет опыта работы на j2me — я так же часто встречался со скепсисом.
MC>А я хочу. И хочу получать соответствующую зарплату за то, что буду на порядок производительнее и писать на порядок более качественный код, а не так, что (беру пример из Тольятти) джуниор может устроиться на 20 — 25, хороший программер, который будет писать код в разы лучше и быстрее джуниора — на 25 — 30, а тим лид, который будет тащить весь проект — 35.
Это нормально. Здесь другое не нормально: на должность джуниора берут человека, которые вообще не может писать код ( иначе хороший программист не писал бы в 10 раз лучше и больше ). Я полагаю, что весь коллектив, работающий над неким проектом, соответствует неким минимальным требованиям к квалификации. Соответственно, ситуация, когда один написал в 10 раз больше и 100 раз лучше — невозможна. Разница в зп 20-50% за квалификацию — допустима. Выше — значит команда отстой, неправильно подобран персонал, неверно распеределены роли.
То что в городе Тольятти не набрать команду квалифицированных программистов — поверю охотно. Но в данном случае — это общеэкономичсекая проблема. Рынок труда не развит. Хорошие кадры утекают не задерживаясь. Плохие кадры не имеют возможности "расти". В результате получаем такой "кадровый остеопороз". Но это не имеет отношения к обсуждаемой проблеме.
MC>PS. Вообще мне ваша позиция кажется странной и непонятной. Вы считаете что так и должно быть, что все программеры получают примерно одинаково, и если программер с опытом 15 лет получал бы в 2-3 раза больше чем джуниор с опытом 1 год — то это было бы неправильно?
Читай выше. Если два человека с такой разницей в опыте работают в одной команде, то одно из двух: либо это просто кадровый голод, либо джуниор совсем не так плох, чтобы ему платить в 3 раза меньше.
Здравствуйте, marx paul, Вы писали:
MP>Здравствуйте, Denwer, Вы писали:
MP>и в самом деле, ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР? MP>
для его вызова в производном классе (классах). в противном случае мы вообще получаем неопределенное поведение. это -- если совсем кратко и на пальцах.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, TarasCo, Вы писали:
MC>>А я хочу. И хочу получать соответствующую зарплату за то, что буду на порядок производительнее и писать на порядок более качественный код, а не так, что (беру пример из Тольятти) джуниор может устроиться на 20 — 25, хороший программер, который будет писать код в разы лучше и быстрее джуниора — на 25 — 30, а тим лид, который будет тащить весь проект — 35.
TC>Это нормально.
Твою позицию понял. Я же считаю, что это ненормально.
TC>Здесь другое не нормально: на должность джуниора берут человека, которые вообще не может писать код ( иначе хороший программист не писал бы в 10 раз лучше и больше ).
Кто говорил, что он не может писать код? Кто говорил, что хороший программист в этой команде пишет в 10 раз лучше и больше? Я говорил в разы. Да, у джуниора 2 года опыта, и он написать может в принципе что угодно, но там говнокодик получается, к тому же работает не очень быстро. Хороший программист на мой взгляд выполнил бы те задачи иногда до 3х раз быстрее и точно качественнее. И код хорошего программиста будет потом легче поддерживать, а код джуниора — надо будет конкретно рефакторить. Но это обычная ситуация и ничего удивительного я здесь не вижу. Удивительно как раз то, что они получают не сильно разные зарплаты.
И дело даже не в одной команде. Пойми это. Они могут быть и в разных командах, разных компаниях. Ключевой момент, повторю в очередной раз, в том, что человек с 10-15 летним опытом получает раза в 1.5 — 2 больше чем джуниор. К сожалению это обычная ситуация. Для непонятливых повторю — не обязательно они в одной команде. Просто на рынке труда сложилась такая ситуация, такая сетка.
TC>То что в городе Тольятти не набрать команду квалифицированных программистов — поверю охотно.
Я этого не говорил, это ты сам придумал. У нас в принципе далеко не деревня, все-таки крупнейший город в России (население 700-800 тысяч человек), который не является областным центром.
MC>>PS. Вообще мне ваша позиция кажется странной и непонятной. Вы считаете что так и должно быть, что все программеры получают примерно одинаково, и если программер с опытом 15 лет получал бы в 2-3 раза больше чем джуниор с опытом 1 год — то это было бы неправильно?
TC>Читай выше. Если два человека с такой разницей в опыте работают в одной команде, то одно из двух: либо это просто кадровый голод, либо джуниор совсем не так плох, чтобы ему платить в 3 раза меньше.
Я не вижу ничего плохого если джуниор и крутой программер (тим лид, с опытом допустим 10-15 лет) работают в одной команде. Вполне обычная и нормальная ситуация. Ненормальность получается тогда, когда этот тим лид получает только в 1.5 раза больше джуниора.
PS. В общем начинается из пустого в порожнее. Думаю мы позицию друг друга поняли, дальше спорить влом, работать надо..
Здравствуйте, Denwer, Вы писали:
D>А если например такой случай, человеку написали резюме, точнее помогли профессионально его составить? Или как уже сказали, человек может и не писал его не разу, а вот дал по сути первый вариан его за все время и что тогда? ТОже отсеить по резюме? А если это как раз тот самый 1 из 100? Проблема не в том что много трачу на беседы с людьми, а втом что хороших программистов нет. Ну пускай отсею я худших по резюме, но хороших то от этого не прибавится?
Это уже как считать...
Будет 30-50% программистов (знающих что такое эти самые), а не 10% — как сейчас, а это уже по крайней мере не повод ныть на форумах как сложно в наше время в бизнесе...
Здравствуйте, jhfrek, Вы писали:
IT>>Потому что одно дело не помнить к какой части речи относится слово 'говорить', 'кодировать', 'думать', а другое — не знать ни одного глагола. J>то есть приходившие к топикстартеру не знали ни одного оператора?
Они не знали что такое виртуальный деструктор. Т.е. как минимум эти люди никогда не открывали спецификацию языка, на котором писали по 10 лет.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Denwer, Вы писали:
D>А если например такой случай, человеку написали резюме, точнее помогли профессионально его составить?
Много таких видел? Пример резюме в студию — а здесь уже довольно неплохо оценят, на что способен этот программист. Пока я тут одно резюме видел — со знанием всего и сразу, и тут никто не сказал что это резюме хорошего специалиста.
Здравствуйте, jhfrek, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. J>я понимаю что я немного не по теме, и что к автору топика, скорее всего, приходили банальные балбесы, но, кто из участников дискуссии сможет сходу вспомнить хоть одно правило русского (или английского) языка?
'Жи', 'ши' — пиши через 'и' Уж не знаю того, кто бы их не знал.
Виртуальные деструкторы — это правило того же уровня. Не знать о них при программировании на С++ — это ужас.
Здравствуйте, TarasCo, Вы писали:
TC>Соответственно, ситуация, когда один написал в 10 раз больше и 100 раз лучше — невозможна. Разница в зп 20-50% за квалификацию — допустима. Выше — значит команда отстой, неправильно подобран персонал, неверно распеределены роли.
В 10 раз больше соседа редко кто будет писать. Разве что в качестве показательной демонстрации своего превосходства. Хотя я вот на первой в жизни работе по-молодости, как утверждало начальство, примерно во столько раз и превзошёл опытного специалиста, работавшего до меня. Но это пустяк. С опытом скорости поубавилось. Гораздо важнее не скорость набивания кода, а принципиальная разрешимость сотрудником тех или иных классов задач. Например, сделать опцию A продукта B лучше всех имеющихся на рынке конкурентов. Цена вопроса сводится к существованию компании, как таковой. Сколько это может стоить?
Здравствуйте, IT, Вы писали:
IT>Они не знали что такое виртуальный деструктор. Т.е. как минимум эти люди никогда не открывали спецификацию языка, на котором писали по 10 лет.
Спеки вообще почти никто не читает. Хрен знает почему так. Из сотен людей, с которыми мне доводилось работать, спецификацию языка читали от силы пятеро. Остальным это как-то не мешало быть вполне приличными программистами.
Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте, TarasCo, Вы писали:
TC>>А почему он собственно должен быть "на порядок круче"? MC>Никто никому ничего не должнен. Просто так часто бывает. Что один программер на порядок производительнее и опытнее другого, а получает не намного больше.
ну вообще-то с одной стороны это и хорошо. социальная уравниловка такое же зло как и сильное социальное расслоение. с другой стороны, людей нужно мотивировать как-то. потому как отдача от всех сотрудников отличается более чем существенно. и если фирма кладет на это с прибором, сотрудники начинают класть прибор на фирму. типа мы можем, но оно нам не надо. пока не пнут не полетим. это уже не говоря за разницу между простым инженером и тим лидом, внимания которого требует куча людей. а что простой инженер? кому он нужен?
TC>>Меня, лично, сама постановка вопроса оскорбляет. MC>Какой ужас, сочувствую, простите если мой ответ вас чем-то оскорбил.
действительно, кошмар какой. человек хочет получать по труду. а надо чтобы всем поровну.
TC>>Я не хочу быть круче других моих коллег. MC>А я хочу. И хочу получать соответствующую зарплату за то, что буду на порядок производительнее
ну меня относительный уровень моей зарплаты не волнует. главное -- чтобы хватало на достойную жизнь. если же я постоянно хочу жрать, живу в жопе, экономлю на всем... то здесь что-то не так. если же у меня есть хата, хавчик, нормальный комп и монитор... то что мне еще надо?!
> и писать на порядок более качественный код, а не так, что (беру пример из Тольятти) джуниор может устроиться на 20 — 25, > хороший программер, который будет писать код в разы лучше и быстрее джуниора — на 25 — 30, а тим лид, который будет тащить весь проект — 35.
да, тут конечно, все несправедливо. при таком раскладе я бы метил в юниоры верхнего звена. впрочем, уже попадал в такие ситуации, когда говорят, что позиции юниора нет, а вот тимлидом — давайте к нам. и по другому никак. только так, а не иначе. ну это и понятно. если фирма видит, что я не юниор, так какого ей не нагрузить меня в 10 раз большей работой пракически за теже деньги? так что не бойся показаться дураком. бойся показаться умным.
TC>>Мы вместе работаем над проектом, почему я должен получать в разы больше других? MC>Опять же, повторюсь, никто никому ничего не должен.
"мы пахали" (с)
MC> PS. Вообще мне ваша позиция кажется странной и непонятной. Вы считаете что так и должно быть, MC> что все программеры получают примерно одинаково, и если программер с опытом 15 лет получал бы MC> в 2-3 раза больше чем джуниор с опытом 1 год — то это было бы неправильно?
я бы еще добавил, что юниору достаточно мелких карманных денег на пиво да на пикап студенток. 15 лет опыта это, извините, ближе к 40 годам жизни только получается. типа семья, дети. а даже если детей нет, то все равно. хотя опыт не главное. тут главное умение себя продать на рынке туда. накопив богатый опыт скитания по разным фирмам я теперь вообще не понимаю за что мне платят деньги. но как-то так получается, что я ни хвоста не работаю. ну вообще ничего не делаю. а фирма довольна. и чем активнне я ничего не делаю, тем она все довольнее и довольнее. потому как вклад вношу. а чем я его вношу? кодингом? девелопингом? а вот и нет. языком. знанием всех буззвордов нашего века, а это уже макретинг. хотя и девелопинг тоже.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Л>Гораздо важнее не скорость набивания кода, а принципиальная разрешимость сотрудником тех или иных классов задач. Например, сделать опцию A продукта B лучше всех имеющихся на рынке конкурентов. Цена вопроса сводится к существованию компании, как таковой. Сколько это может стоить?
Когда от квалификации одного сотрудника зависит существование всей компании — абсолютно ненормальная ситуация. Это значит, лилипуты каким то образом поймали Гулливера. Ситуация в целом не правильная, и скорее сего закончится тем, что Гулливер как всегда свалит от лилипутов к своим собратьям. И если лилипуты слишком уж понадеятся на Гулливера, они, бедняжки, сильно пострадают. Такие риски с бизнесом не очень совместимы, лучше уж на бирже играть, чем Гулливеров ловить.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, мыщъх, Вы писали:
М>>у меня, кстати, тоже по работе бывают идиотские заморочки с амсатиками. типа опытный чел, уже давно работающий, неожиданно встречает lea и начинает грит, что она выбросит тут исключение. и что вообще не понятно как этот код работает. опс. приехали. CC>Видимо он по книжкам когда то асм осваивал. CC>Ну а у таких строго засело: LEA == Load Effective Address. Видимо думает что будет обращение по левому адресу и "АААаааа всёпропало мывсеумрём!"
это просто заскок к него был. бывает. мозги иногда клинит. просто устойчивая ассоциация со скобочками выработалась. все, что в скобках -- то вычитывается из памяти. правда, самое интересное, что человек так и не признал свой косяк. начал грить, что синтаксис тут неправильный, x86 кривой, все дэбилы и что если бы записали lea как оно "правильно" пишется (типа lea eax, ebx), то все было бы ништяк, а он увидел что-то типа xor ebx,ebx/lea eax, [ebx]. и грил, что это баг ЦП и дизасма, что lea eax, [ebx] и lea eax, ebx суть одно и тоже.
на счет все мы умрем. ну да, он примерно так и сказал. что x86 сам умрет скоро и нас погубит.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Vamp, Вы писали:
AL>>Вроде бы разница есть всегда. Как минимум, у мьютекса всегда есть "владелец", а у семафора -- нет. V>Только в конкретных реализациях.
Если можно, приведите пример ОС, в которой с мьютексом, так или иначе, не ассоциирована владеющая им нить, а также множество нитей, ожидающих освобождения.
Здравствуйте, vb-develop, Вы писали:
D>>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
VD>Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
А что, если не секрет, должно быть написано в резюме человека, знающего что такое и зачем нужен виртуальный деструктор? Какой характерный признак? Ну кроме "знаю C++", разумеется (а это утверждение в большинстве случаев является ложным).
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, ___Avatar___, Вы писали:
___>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
___>сейчас объясню в чем фигня ___>причин несколько
бред поскипан
А возврат временного объекта из ф-ии — это тоже высший пилотаж?
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, мыщъх, Вы писали:
М>>а какие проблемы? я тут ухитрился какое-то время в корее работать. без знаний корейского. испанию до сих пор держку запасным вариантом. без знания испанского. а ни в корее, ни в испании английский не знают даже айтишники. и ничего. найти работу без требования языка совсем несложно.
Л>Т.е. за границей без разговорного английского работу найти легче, чем устроиться в московское представительство какой-нибудь западной конторы?
в неанглоязычных странах (коей являются и штаты) разговорный английский не сильно-то и нужен. хватит письменного. работу там найти не только легче, чем у нас, но и вообще очень просто. даже с учетом этих заморочек с визами. как получить визу — это уже другой разговор. но визы выдаются. и за русскими все еще не померкла слава сильных программистов. но разговорный английский это вообще ерунда. захочешь выучить — выучишь. причем куда-то ехать для этого необязательно. начальные знания я получил из фильмов и ютуба. дальне начал читать лекции по реверсингу. обычно это пять дней. начинаются они часов в девять, дальще перерыв на обед, за которым ко мне подскаживаются с вопросами и я больше говорю, чем ем. потом лекции продолжаются часов до шести — семи. после забрасываю вещи в отель и мы с товарищами проводим вечер в ресторане, засиживаясь часов до 12, опять-таки обсуждая технические темы. то есть, выходит часов 16 непрерывной болтовни каждый день. и что? сильно мне это помогло? да ни фига. язык не подтянул, а только еще больше испортил. так что ютуб рулит.
московские представительства... ух... а сколько их не для маркетинга? очень мало. а работы на западе, европе и азиии -- просто валом. даже по моей узкой специфике (реверсинг).
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
AL>Если можно, приведите пример ОС, в которой с мьютексом, так или иначе, не ассоциирована владеющая им нить, а также множество нитей, ожидающих освобождения.
Не хочу. Я намеренно отделяюсь от реализации, ибо в вопросах по С++ допустимы только теоретические вопросы по синхронизационным примитивам. Но отмечу, что в Linux "нормальные" мютексы может разблокировать любой поток.
Здравствуйте, TarasCo, Вы писали:
TC>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
Это смотря о какой справедливости речь.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, TarasCo, Вы писали:
TC>>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку.
есть гипотеза, что тому кто работает за 50 зеркалка намного нужнее чем тому кто работает за 100
а работающему за 100 вполне сойдет и мыльница
жизнь такая хитрая штука
Здравствуйте, TarasCo, Вы писали:
TC>Когда от квалификации одного сотрудника зависит существование всей компании — абсолютно ненормальная ситуация. Это значит, лилипуты каким то образом поймали Гулливера. Ситуация в целом не правильная, и скорее сего закончится тем, что Гулливер как всегда свалит от лилипутов к своим собратьям. И если лилипуты слишком уж понадеятся на Гулливера, они, бедняжки, сильно пострадают. Такие риски с бизнесом не очень совместимы, лучше уж на бирже играть, чем Гулливеров ловить.
С этим я согласен. Только из одних Гулливеров ничего тоже не получится. А без Гулливеров может что-то выйти только вне рыночных отношений. В рыночных условиях если продукт ничем превзойти конкурентов не может, так он никому и не нужен.
Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте, TarasCo, Вы писали:
MC>Нет уж. Давай сделаем нормально сравнение MC>Вы исходите из денег которые остались, а я считаю, что правильнее исходить из того, как они могут тратить все свои деньги (все-таки деньги нужны для того чтобы их тратить, а не смотреть на них), и тут мы опять вовращаемся к разнице в 1.5 — 2 раза между обычным программером и крутым программистом. Т.е. крутой программер не сможет кушать на порядок круче чем обычный программер, или купить себе квартиру на порядок круче чем обычный программер.
на самом деле -- может. когда у тебя на кассе всего $50k, то ты все-таки начнешь пробивать варианты в стиле: жилье подешевле, пускай и место не такое живописное и от работы далеко. хавчик — а зачем ходить в ресторан? я его и с собой взять могу в коробочке. а уже при $150k у тебя намного более широкий выбор жилья. и ты не заморчаиваешься сколько оно стоит $20k, $23k или $25k. и хавчик с собой брать... ну зачем? сэндвич будет $5 стоить в лавке с максиканцами. а в ресторане тебе его приготовят за $20 да еще картошки насыпят. будешь ты париться из-за $15 разницы при хорошей зарплате? скорее всего нет. но как ни крути, а твой коллега со своими $50k так же может позволить себе тоже самое, что и ты.
качественной разницы нету. что такое качественная разница в моем понимании? это когда я в принципе не могу приобрести то, что могут другие. скажем, замок я даже в пожизненный кредит не приобрету. и у меня не будет денег на его содержание. даже минимальное. типа обогрева. и уж точно не хватит денег на прислугу. и этим я отличаюсь от тех кому хватает. не то, чтобы я сильно комплексовал, но давайте выделим три уровня дохода. первый — это когда даже базовые потребности не удовлетворяются (нет возможности купить жилье, жрать нечего). второй — полное удовлетворение базовых потребностей плюс развлечения (отдых, например). ну и третьий уровень — это грубо говоря "спец обеспечение" по всем пунктам (новый русский). так вот, если программисты разных категорий попадают между первым и вторым уровнем, то это очень и очень плохо. в ряде стран они таки попадают. в штатах — нет. в штатах это стабильный второй уровень с редкими выхлестами на третий. не, ну бывают случаи когда люди соглашаются программить и за $20k в штатах, но это их просто развели как лохов.
и вот на втором уровне особо понты не покидаешь. что может позволить такого себе крутой программист, чего не может позволить юниор?
MC> PS. Я не говорю что обычный программер должен получать 50К, а крутой — 500К, но когда обычный получает 50К, а крутой — 75К — это тоже ненормально.
увы, но это везде так. вот потому-то в штатах всех тянет организовать свою фиру. а потом продать ее, получив на руки с полста лямов (если фирма небольшая). и хотя шансов раскрутиться не так уж много, здесь мы имеем качественную разницу. _никогда_ простой работник не заработает столько, сколько может поиметь владелец. что, кстати, тоже неправильно. и не нужно говорить, что владелец несет риски. черта с два. деньги можно получить и по гос. программам. их куча разных. и в случае провала не возвращать. и ведь с утюгом никто бегать не будет. да и инвесторов полно. в приципе я знаю много примеров когда реально знакомые мне люди делали за несклько лет 10 лямов из ничего. только из своих знаний и бессонных ночей затоптанной клавы. так что $500k для крутого -- это реально.
MC> Разница должна быть более существенной. Почему программер, который работает в 5 раз медленее, MC> делает больше багов и делает в 5 раз хуже поддерживаемый код должен получать почти столько же MC> сколько крутой специалист с 10-15 летним опытом? Все-таки оплата должна быть более пропорциональна
а у меня еще и другой вопрос. почему люди, которые стояли у истоков проекта и сделали 90% всего. и придумали, и внедрили, и раскрутили. что получают они? зачастую хрен собачий. сначала им не платили потому что фирма была маленькая и бабла не было на кассе. а как бабло появилось -- тут же наняли кучу левых людей, сожравших весь бюджет. и они получают зачастую больше, чем те, кто внес и вносит реальный вклад.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М> меня останавливает только вес. даже мой Nikon D80 + номальный стеклянный объектив + вспышка + ноут asus eee уже вместе съедают весь лимит ручной клади. не в багаж же их сдавать. и потому вес камеры для меня очень важен.
Это что за авиалинии такие ?
Ноут вообще не имеют право взвешивать – пассажир имеет право пронести его в салон, безотносительно ситуации с ручной кладью.
Даже ублюдочные бюджетные линии типа EasyJet в которыx можно пронести в салон одну сумку не жужжат при виде второй с ноутом.
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, sss1024, Вы писали:
S>>C++ устарел, что такое виртуальный деструктор мало кто интересовался раньше а теперь уж и подавно. CC>Тролль! Брысь в КСВ!
да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.
Здравствуйте, мыщъх, Вы писали:
MP>>и в самом деле, ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР? MP>> М>для его вызова в производном классе (классах). в противном случае мы вообще получаем неопределенное поведение. это -- если совсем кратко и на пальцах.
Какое-то, имхо, неоднозначное оределение. Если кратко, я бы сформулировал так: Для освобождения обьекта производного класса через указатель на базовый.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Потому что чтобы оставаться на месте- надо бежать. А если не бежать, то через N лет старый паровоз устаревшей технологии отправят в металлолом, а "опытных спецов" заменят вчерашними студентами с нужными скиллами и адекватными зарплатными ожиданиями.
То есть, ты полагаешь, что мотивацией у таких людей является страх "отстать от паровоза"?
Ясно, спасибо за мнение
Здравствуйте, IT, Вы писали:
bnk>>Но что движет этим "читающим" меньшинством?
IT>Лень.
То есть, я тебя так понимаю, новые технологии и более широкий кругозор позволяют сократить трудозатраты и повысить производительность.
То есть, позволяют сделать ту же задачу меньшее время. А высвободившееся время использовать для чего-то другого.
Правильно?
Просто вспомнился анекдот
Под пальмой лежит мужик и млеет. Мимо проходит другой:
— Вот ты, лежишь, бездельничаешь, а мог бы на пальму залезть, нарвать бананов. Пойти на рынок и продать.
— А зачем?
— Ну как, зачем!? На деньги с проданного купишь тележку и отвезешь на рынок намного больше!
— А зачем?..
— Да ты с проданного уже сможешь купить грузовик и возить действительно большие объемы, потом наймешь работников, а сам будешь лежать и ничего не делать!
— А я, в принципе, и так лежу и ничего не делаю?!
Здравствуйте, EM, Вы писали:
EM>Здравствуйте, мыщъх, Вы писали:
М>> меня останавливает только вес. даже мой Nikon D80 + номальный стеклянный объектив + вспышка + ноут asus eee уже вместе съедают весь лимит ручной клади. не в багаж же их сдавать. и потому вес камеры для меня очень важен.
EM>Это что за авиалинии такие ?
да все почти. ограничение в 5 кг ручной клади — очень часто встречается. 7 кг это уже хорошие авиалинии. 15 кг — бизнес класс, да и то не у всех столько можно.
EM>Ноут вообще не имеют право взвешивать – пассажир имеет право пронести его в салон, безотносительно ситуации с ручной кладью.
у аэрофлота. и некоторых других. но не у всех. читайте правила каждой конкретной компании.
EM>Даже ублюдочные бюджетные линии типа EasyJet в которыx можно пронести в салон одну сумку не жужжат при виде второй с ноутом.
про то, что _можно_ пронести я в курсе. и в бюджнтные компании я влезал в салон с 3-4 сумками общим весом в 20+ кг когда там всего 5 было положено. это не так уже и сложно. остапа бендера читали? ну вот. вам говорят: сдавайте в багаж. а вы (ну тут возможны варианты, вот только один из них) -- сдавать не могу и не буду. я звонил вам на горячую линию, изложил ситуацию и мне сказали -- можно, везите. и ваааще вы кто такая будете?! вы представитель компании или агент регистрации от порта? ага, ну с вами все ясно. вас как всегда не проинструктировали. давайте мне кого-то более компетентного. ага, здравствуйте. ваше фио, должность. помедленние, я записываю. да я ж не против правил. я лояльный гражданин. и компания мне ваша очень нравиться. короче, давайте мне бумагу с вашей подписью, печатью и полным изложением ситуации. и кстати где полиция? вызовете кто нибудь. мне свидетели нужны, что меня не пускают на рейс. какой перевес?! не знаю никакого перевеса. у меня тут вещи ценные и хрупкие. ваша же справочная служба сказала, что в багаж их нельзя, а ручной кладью можно. ну что вы опять за перевес мне говорите. мне вас слушать совершенно не интересно. короче, давайте мне бумагу. ах, вы не уполномочены? а кто тут уполномочне? а вот тут и полиция. здравстуйте товарищи начальники. у меня тут ситуация требующая валшей помощи. пожалуйста, завсидетельствуйте факт отказа компании в предоставлении услуг. девушка, я же сказал, что вы мне не интересны. набрали вас тут по объявлению... читайте вот тут мелкими буквами ваши же правила. вот, видите: на усмотрение перевозчика. вот и пишите, что в данной конкретной ситуации вы мне решили отказать. ну типа вы перевозчик, да? и вот такое у вас усмотрение. вот я вам и говорю, что нужно усмотрение. девущка, да вы не в теме. усмотрение бывают разные. вот, допустим, вы мне устно говорите, что самолет полный и типа мой перевес не выдержит. ну то есть у вас нет технической возможности, да? и перебросить меня на партнерский рейс тоже возможности нет? девушка, я вам еще раз объясняю, что согласно же вашим правилам вы _вправе_ меня пустить. а вправе и не пустить. глядите вот люди что тащат. им значит, можно, а мне нельзя? а вы знаете почему? я вам скажу. потому что вы меня приняли за азиата. и у меня есть подозрение, что вы не ровно дышите к азиатам. вот такое мое видение ситуации. именно так и буду я излагать его суду. что дискриминация по национальному признаку. почему бред? девущка, короче, излагайте мне ситуацию на бумаге...
хотя обычно все решается миром. и в последнее время я наглею все больше и больше, и таскаю с собой такое... что оно вообще не лезет. и стьюардессы мои сумки по половине самолета распихивают. но... не всегда это работает. а сейчас фирма выдала рабочий ноут (на нем и пишутся эти строки). ноут в сумке, плюс пара маек и джинсы — 14 кг. камера в другой сумке. так что перевес конкретный был. но правда летел эмиратами. они не гоняют. кстати, первый раз летел на A380. зачотный самолет. теперь буду стараться побольше им летать.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, sss1024, Вы писали:
S>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.
Проект под Win 2008R2
С + С++ + С#
Ядро С + С++
Гуй на C#
Вноси в статистику
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, matcode, Вы писали:
M>Здравствуйте, мыщъх, Вы писали:
MP>>>и в самом деле, ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР? MP>>> М>>для его вызова в производном классе (классах). в противном случае мы вообще получаем неопределенное поведение. это -- если совсем кратко и на пальцах.
M>Какое-то, имхо, неоднозначное оределение. Если кратко, я бы сформулировал так: Для освобождения обьекта производного класса через указатель на базовый.
тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос. а если еще спросить когда он вызывается и когда не вызывается, то мы тут вообще увязнем.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, sss1024, Вы писали:
S>>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном. CC>Проект под Win 2008R2 CC>С + С++ + С# CC>Ядро С + С++ CC>Гуй на C#
CC>Вноси в статистику
09.03.2010 15:37, MozgC пишет: > Я не говорю что обычный программер должен получать 50К, а крутой — > 500К, но когда обычный получает 50К, а крутой — 75К — это тоже > ненормально. Разница должна быть более существенной. Почему программер, > который работает в 5 раз медленее, делает больше багов и делает в 5 раз > хуже поддерживаемый код должен получать почти столько же сколько крутой > специалист с 10-15 летним опытом? Все-таки оплата должна быть более > пропорциональна производительности труда программистов и качеству кода > который они создают.
Потому что в силу ряда причин в ИТ у начинающих необоснованно высокие
зарплаты (резкий старт), а потолок в большинстве компаний диктуется
экономическими ограничениями. По-хорошему вместо 50 должно быть 25-30,
тогда 75-100 смотрится совершенно нормально.
К тому же объективно измерить производительность труда программиста не
представляется возможным.
Здравствуйте, мыщъх, Вы писали:
М>тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос. а если еще спросить когда он вызывается и когда не вызывается, то мы тут вообще увязнем.
Здравствуйте, мыщъх, Вы писали:
М>так ведь вопрос можно и перефразировать: М>1) что неправильно в коде бла-бла-бла (базовый + производный, деструкторы невиртуальные); М>... М>по вашему можно писать на плюсах и не знать ответа на эти вопросы? ну-ну... а потом долго ловить странные "баги" компилятора, особенно касательно (1), где мы получаем ub со всеми вытекающими
Я б не сказал, что так уж UB. Под сам производный класс память нормально освободится.
Например:
struct A { int aa; A() { aa = 5; } };
struct B : public A { int bb; B() { bb = 6; } };
A* pa = new B; delete pa;
Здесь всё хорошо будет.
Отсутствие виртуального деструктора повлечет невызов деструкторов всех производных классов при удалении объекта через указатель на базовый класс. А повлечь это может что угодно, смотря что делают те самые деструкторы производных классов: утечку памяти, утечку хендлов, невыход из объекта синхронизации, ну и так далее...
Здравствуйте, Тот кто сидит в пруду, Вы писали:
ТКС>Здравствуйте, vb-develop, Вы писали:
D>>>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
VD>>Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
ТКС>А что, если не секрет, должно быть написано в резюме человека, знающего что такое и зачем нужен виртуальный деструктор? Какой характерный признак? Ну кроме "знаю C++", разумеется (а это утверждение в большинстве случаев является ложным).
Здравствуйте, 31415926, Вы писали:
3>Здравствуйте, мыщъх, Вы писали:
М>>тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос. а если еще спросить когда он вызывается и когда не вызывается, то мы тут вообще увязнем.
3>При всем уважении — Вы шутите?
нет, совсем не шучу. а давайте мысленно вообразим себе, что религия запрещает юзать десткруторы. вопрос: и что тогда? попробуйте поразмышлять на тему "пдюсы без десткруторов это минусы или нет"
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, cppboris, Вы писали:
C>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
C>На мой взгляд есть еще один момент.
C>Сегодня объём информации и областей IT значительно больше, чем лет 5-10 назад. Часто молодые специалисты распыляются на решение очень разных задач и толком не знают ни того, ни другуго. Это если учесть, что основные знания человек приобретает в процессе работы. Опять же на мой вгляд, особенно это актуально в небольших городах с небольшими конторками, где одному нужно выполнять много разной по роду работы.
А вот не надо потому что пытаться сесть одним местом на два стула. К тому же это вредно для индустрии. Когда один человек копает охапку безсвязных технологий не вглубь, а вширь и потом как бэ естественно считает просто своим долгом нагадить в своём резюме красивыми англицкими словечками, а хЫар естественно ведётся на колличество и красивость этих самых словечек в этих самых бумажках, то в итоге получаем что на собеседование часто попадают те кому собственно пофиг на чём писать ибо один фиг он ничего толком не знает, а работодатель зачастую вздыхает и решает мол стерпится-слюбится(да и к тому же такой с позволения сказать "специалист" кушать много не просит что играет в его пользу но не в пользу индустрии к сожалению), или же продолжает поиски кандидатов не меняя при этом технику поиска этих самых кандидатов ссылаясь на то что дескать мало спецов хороших осталось и эти поиски могут затянутся на очень долгий срок.
C>В своё время сам столкнулся с такой проблемой. Писал на нескольких языках под win/symbian + верстка и скрипты web + дизайн (!). Плюс к этому еще некоторые совершенно другие по роду вещи. В итоге пришел к тому, что всё умею, но ничего толком.
Здравствуйте, HolyNick, Вы писали:
HN>-А знаете ли, потерпевший, что такое виртуальный базовый класс?....Аа-а-а-а?...(программист подпрыгивает и радостно потирает ладошки)
базовый класс, объявленный виртуальным, и есть виртуальный базовый класс. не нужно быть гуру, чтобы вкурить в это. разницы никакой в общем-то. там только структура виртуальных таблиц меняется и методы доступа к атрибутам базового класса. от программера это скрыто компайлером. а что мы выигрываем, а что приграем... в общем случае хз. тут надо в компилятор углубляться конкретный. вот это точно глупый вопрос. типа на завалить. противники оптимизации ради оптмзации — ау!!!
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, vb-develop, Вы писали:
D>>>>Хорошие программситы нужны всегда, недели 2 назад все же попался хороший и адекватный кандидат. Из питера. Кстати за 3-4 месяца поисков нашолся. Но просто последний год у нас проектов гораздо больше чем людей, и получается что постоянно в поиске. Вот по сути и можно сделать выводы о статистике, 3-4 месяца посиков — 1 адекватный человек. Но сколько я потратил время на собеседования за эти 3-4 мес !!!
VD>>>Как здесь уже правильно сказали — не умеешь отбирать по резюме, причина потраченного времени.
ТКС>>А что, если не секрет, должно быть написано в резюме человека, знающего что такое и зачем нужен виртуальный деструктор? Какой характерный признак? Ну кроме "знаю C++", разумеется (а это утверждение в большинстве случаев является ложным).
VD>Могу сказать чего там не должно быть написано. Вот этого: http://www.rsdn.ru/forum/job/3728045.aspx
Тем не менее, приходят люди, у которых никакой пурги в резюме нет, работали в солидных компаниях и тем не менее на простейшие вопросы ответить не могут. Не, резюме писать и писать программы — это две не связанные сферы деятельности.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, мыщъх, Вы писали:
М>Здравствуйте, 31415926, Вы писали:
3>>Здравствуйте, мыщъх, Вы писали:
М>>>тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос. а если еще спросить когда он вызывается и когда не вызывается, то мы тут вообще увязнем.
3>>При всем уважении — Вы шутите? М>нет, совсем не шучу. а давайте мысленно вообразим себе, что религия запрещает юзать десткруторы. вопрос: и что тогда? попробуйте поразмышлять на тему "пдюсы без десткруторов это минусы или нет"
Не очень понимаю, к чему Вы клоните. В отсутствие сборки мусора какой-то должен быть механизм освобождения памяти (если, разумеется, язык допускает создание динамическмх объектов). Разумеется, без явных delete'ов можно, наверное, обойтись, а как быть c удалением объектов, "живущих" на стеке (при выходе из блока или при stack unwinding)?
Здравствуйте, 31415926, Вы писали:
3>Здравствуйте, мыщъх, Вы писали:
М>>Здравствуйте, 31415926, Вы писали:
3>>>Здравствуйте, мыщъх, Вы писали:
М>>>>тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос. а если еще спросить когда он вызывается и когда не вызывается, то мы тут вообще увязнем.
3>>>При всем уважении — Вы шутите? М>>нет, совсем не шучу. а давайте мысленно вообразим себе, что религия запрещает юзать десткруторы. вопрос: и что тогда? попробуйте поразмышлять на тему "пдюсы без десткруторов это минусы или нет"
3>Не очень понимаю, к чему Вы клоните. В отсутствие сборки мусора какой-то должен быть механизм освобождения памяти (если, разумеется, язык допускает создание динамическмх объектов). Разумеется, без явных delete'ов можно, наверное, обойтись, а как быть c удалением объектов, "живущих" на стеке (при выходе из блока или при stack unwinding)?
я там выделил куда клоню. погуглите. а теперь представим, что в деструктор мы впихнули что-то более важное, чем освобождение памяти. кстати, со стека объект удалят со свистом и без деструкторов. то есть зачем нужен деструктор вы похоже таки не понимаете
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, de_banderas, Вы писали:
_>Здравствуйте, мыщъх, Вы писали:
М>>так ведь вопрос можно и перефразировать: М>>1) что неправильно в коде бла-бла-бла (базовый + производный, деструкторы невиртуальные); М>>... М>>по вашему можно писать на плюсах и не знать ответа на эти вопросы? ну-ну... а потом долго ловить странные "баги" компилятора, особенно касательно (1), где мы получаем ub со всеми вытекающими
_>Я б не сказал, что так уж UB. Под сам производный класс память нормально освободится. _>Например: _>struct A { int aa; A() { aa = 5; } }; _>struct B : public A { int bb; B() { bb = 6; } }; _>A* pa = new B; delete pa; _>Здесь всё хорошо будет.
_>Отсутствие виртуального деструктора повлечет невызов деструкторов всех производных классов при удалении объекта через указатель на базовый класс.
не совсем так. в такой ситуации компилятор может подумать: вот, блин, программист-придукрок! и таки вызовет все деструкторы. а может и не подумать. зависит от реализации. отсюда и ub.
> А повлечь это может что угодно, смотря что делают те самые деструкторы производных классов: утечку памяти, утечку хендлов, невыход из объекта синхронизации, ну и так далее...
ну я имел ввиду, что если деструктор не виртуальный, то мы не можем гарантированно сказать какие десктруторы будут вызваны, а какие не будут.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
3>>Не очень понимаю, к чему Вы клоните. В отсутствие сборки мусора какой-то должен быть механизм освобождения памяти (если, разумеется, язык допускает создание динамическмх объектов). Разумеется, без явных delete'ов можно, наверное, обойтись, а как быть c удалением объектов, "живущих" на стеке (при выходе из блока или при stack unwinding)? М>я там выделил куда клоню. погуглите. а теперь представим, что в деструктор мы впихнули что-то более важное, чем освобождение памяти. кстати, со стека объект удалят со свистом и без деструкторов. то есть зачем нужен деструктор вы похоже таки не понимаете
Ну сам то объект, конечно, удалится, а вот то, на что из него торчат ссылки — нет. Возможно, что чего-то я в самом деле не понимаю.
Впрочем, последние 12 лет я программирую исключительно на Java. Нужно будет освежить память.
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, ___Avatar___, Вы писали:
___>>а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
___>>я например первые 2 года тоже не знал зачем виртуальный деструктор нужен ___>>по всем вышеуказанным причинам
M>Лично я делаю следующие выводы: M> человек не знает зачем нужен виртуальный деструктор -> M> человек не знает, зачем вообще нужны виртулальные методы -> M> человек не понимает, что это такое -> M> отладка классов, где используются виртуальные методы, будет для него магией.
M>Как ни крути, все-таки базовая вещь. Практически везде, где всплывут виртуальные методы, будут и виртуальные деструкторы.
Вещь то базовая. Но магией не будет.
Хотя странно что не знают Интересно, а если задать вопрос чем виртуальный от обычного отличается ответят или нет. Может просто тупят.
Здравствуйте, PepperPuh, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
PP>Так а денег сколько предлагается? Что в вакансии написано? Может это обусловлено условиями, предполагающими, к примеру, студентов подготовительных курсов?
PP>Хотя, если честно, виртуальный деструктор избит уже до состояния такой кровавой каши, что мне казалось даже программисты 1С знают это.
Не гнать на 1Сников Ну на тех которые из бывших дельфистов/сишников.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР.
ИМХО Вы делаете всё правильно. Матчасть знать надо в любом случае. Хотя вот совсем недавно вполне вменяемый товарисч молол какю-то чуш на интервью про статик/динамик касты. Ну всякое бывает
D>Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Вероятно крысис таки закончился. Год назад форум пестрил сообщениями типа "ну слава богу, наконец-то снова на интервью попадаются вменяемые люди, вакансии закрываются и т.д.". Куда делись куда делись, возможно все вменяемые уже трудоустроены, а приток молодёжи в плюсы давным-давно оскудел. А кроме того может как и говорили выше с вакансией/компанией/вилкой что-то не так?
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Потому что чтобы оставаться на месте- надо бежать. А если не бежать, то через N лет старый паровоз устаревшей технологии отправят в металлолом, а "опытных спецов" заменят вчерашними студентами с нужными скиллами и адекватными зарплатными ожиданиями.
bnk>То есть, ты полагаешь, что мотивацией у таких людей является страх "отстать от паровоза"? bnk>Ясно, спасибо за мнение
Мотивация таких людей- готовность к новым свершениям, а не над№№е на виртуальный деструктор. Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов.
Здравствуйте, skeptic, Вы писали:
S>А вот не надо потому что пытаться сесть одним местом на два стула. К тому же это вредно для индустрии. Когда один человек копает охапку безсвязных технологий не вглубь, а вширь и потом как бэ естественно считает просто своим долгом нагадить в своём резюме красивыми англицкими словечками, а хЫар естественно ведётся на колличество и красивость этих самых словечек в этих самых бумажках, то в итоге получаем что на собеседование часто попадают те кому собственно пофиг на чём писать ибо один фиг он ничего толком не знает, а работодатель зачастую вздыхает и решает мол стерпится-слюбится(да и к тому же такой с позволения сказать "специалист" кушать много не просит что играет в его пользу но не в пользу индустрии к сожалению), или же продолжает поиски кандидатов не меняя при этом технику поиска этих самых кандидатов ссылаясь на то что дескать мало спецов хороших осталось и эти поиски могут затянутся на очень долгий срок.
Вообще говоря такая ситуация имеет место обычно не по инициативе сотрудника. А как раз работодателя. Таковы условия — такова работа. Не сделаешь ты, не сделает никто. Проект загнётся.
Напомню, я говорю о небольших конторках в основном в провинциях. У на вот в городе, почти все такие. И не всегда есть альтернатива.
Так что тут ситуация двоякая. Нельзя говорить о полной вине сотрудника. Честно говоря, не вижу реально рабочего выхода из подобной ситуации. Может, вы подскажите?
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Жируют я в 99(!!!!!) году собеседование завалил потому что не помнил интерфейс std::list и не смог написать похожий свой. Кто знает историю С++ поймет весь юмор.
Здравствуйте, Eye of Hell, Вы писали:
EOH>На зарплату 50-80 сейчас, увы, высококлассные специалисты не пойдут
Виртуальные функции и деструктор в том числе входят в базовые знания по С++. Причем здесь высококлассные специалисты ? Или теперь если человек умеет включать комп, то ему 50 платить, а если знает виртуальный деструктор — то 150 ?
Здравствуйте, мыщъх, Вы писали:
3>>При всем уважении — Вы шутите? М>нет, совсем не шучу. а давайте мысленно вообразим себе, что религия запрещает юзать десткруторы. вопрос: и что тогда? попробуйте поразмышлять на тему "пдюсы без десткруторов это минусы или нет"
Если религия вообще запрещает их юзать, то пишем в стиле С.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Это хороший повод порадоваться, что, а я-то радимый знаю, что такое виртуальный диструктор
Шутка юмора.
Я понимаю автора темы. Главный тезис — почему человек за 10 лет не поинтересовался-таки, что такое он, проклятый, виртуальный, #$@, диструктор и что такое симафор.
Но. Всё равно на новой работе придётся заниматься немного другим. Я, например, на текущей работе уже несколько раз использовал WMI, но ведь никто меня, НИКТО, не спрашивал при приёме работу его знания. Но ведь как-то работаю, делаю своё дело. У нас используется система управления бизнес-потоками K2.NET. И тоже всё в порядке — работаю, выполняю свои функции — меня предупредили, что она есть, почитал, усвоил. Коллеги помогли.
Современный мир программирования — это мир командной работы! Скажите человеку, что у вас в проекте используются виртуальные диструкторы и что это важно и он будет их использовать.
А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.
Здравствуйте, мыщъх, Вы писали:
М>Здравствуйте, marx paul, Вы писали:
MP>>Здравствуйте, Denwer, Вы писали:
MP>>и в самом деле, ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР? MP>> М>для его вызова в производном классе (классах). в противном случае мы вообще получаем неопределенное поведение. это -- если совсем кратко и на пальцах.
—
мы получим вызов деструктора _только_ класса от которого ссылка; память под объект очистится- если new выделял через malloc, как в случае VC. Утекут ресурсы, которые освобождаются в наследниках класса по ссылке. В случае переопределенного new получим порчу памяти или UB.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов.
Не интересно задавать подобные вопросы. С 5-го раза надоедает слушать мычание с закатыванием глаз.
Здравствуйте, minorlogic, Вы писали:
M>Не только , конструктор и деструктор это специальные функции где нетривиально работают все остальные виртуальные функции.
Как конструктор может быть виртуальным? Ведь мы явно указываем тип при создании экземпляра ...
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Ну, удивляться нечему, если 80% имеют проблемы с виртуальностью
Здравствуйте, ___Avatar___, Вы писали:
___>- 90-99% кода в любом проекте не имеют к виртуальным деструкторам никакого отношения, человек сосредотачивается на решении задач работы с данными, бизнес логики и GUI, а не на языковых особенностях ___>- очень часто готовая иерархия классов с уже прописанными в них виртуальными деструкторами либо получается от архитектора/сеньора, либо автоматически генерится в IDE, либо вообще класс копируется вручную из уже готового класса и всякий ненужный код просто удаляется
Это только так кажется, что не имеет отношения.
___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
Это говорит только о тебе самом.
___>а это означает, что новичок просто утопает в море материала и начинает понимать что реально нужно знать лишь к 2-3 году работы в отрасли и посещения 20-30 собеседований, на половине из которых его спросят о виртуальном деструкторе и пр вещах
Да, в с++ это именно так — язык полностью осваиватеся где то через 2-3 года работы, а многие вообще никогда не освоят.
Здравствуйте, PepperPuh, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
PP>Так а денег сколько предлагается? Что в вакансии написано? Может это обусловлено условиями, предполагающими, к примеру, студентов подготовительных курсов?
Можно дать максималку по региону и процент упадет с 90 до 80
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, PepperPuh, Вы писали:
D>>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
PP>>Так а денег сколько предлагается? Что в вакансии написано? Может это обусловлено условиями, предполагающими, к примеру, студентов подготовительных курсов?
I>Можно дать максималку по региону и процент упадет с 90 до 80
Почему? По мне так наоборот...
Было — приходит 40 человек в месяц, знают 4
Станет — приходит 120 человек в месяц, знают 8
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
J>Видимо, "настоящих программистов" ваша вакансия не заинтересовала...
Настоящих программистов много не бывает. Их буквально единицы. Так что все в порядке — 90% показывает что расклад самый обычный.
Здравствуйте, Vaako, Вы писали:
V>Это общая тенденция, думаю дело серъезней чем кажется. Сопровождаю проект, так там вместо несколько десятков классов с продуманой иерархией наследования разработчики просто позапихали все в STL. Так что виртуальным деструкторам просто неоткуда появиться. Там даже просто деструкторов не предусмотрено. Похоже вместо класса содержащего набор элементов проще создать вектор и при каждом обращении обращаться к содержимому через итераторы. При этом получается куча векторов хранящих разные структуры, в то время как предметная область явно требует хотя бы примитивной группировка части свойств в базовых классах и систематизации методов доступа к данным. На вопрос а почему так сделано через ж****, отвечают — "там великие люди трудились тебе до них далеко".
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Denwer, Вы писали:
D>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
J>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
Ты с переводчиком сел большую лужу и даже не заметил этого.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, jhfrek, Вы писали:
J>>Здравствуйте, Denwer, Вы писали:
D>>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
I>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
Это еще почему?
Тот-же google translate наура переводит работая абстракциями на ровне слов и предложений, ничего не зная о буквах.
Тот-же ребенок 4-х лет пообщавшись несколько месяцев со сверстниками на ура переводит просьбу одного который говорит только по английски другому который говорит только на хинди. Совершенно не зная ничего о буквах данных языков (уж на хинди точно).
Тот-же другой знакомый мульти-лингвист утверждает что он готов изучить разговорный язык до бытового уровня только на уровне анализа устной речи — т.е. никаких букв, вообще при отсутсвия доступа к писменным источникам.
Более того, переводчики как-то же переводят с языков где букв как таковых вообще нет.
Вообщем буквы точно не причем.
Re: Виртуальный деструктор при множественном наследовании.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Эта тема навела на следующие рассуждения:
Класс наследуется от двух веток, в истоках одной деструктор виртуальный, в истоках второй нет, и мы его удаляем по указателю на ту ветку, где виртуальный. Будут ли вызваны все деструкторы?
Например:
struct A {
~A() {} // Non-virtual.
};
struct B {
virtual ~B() {}
};
struct C : public A, public B {}
B* pc = new C;
delete pc; // будет ли здесь вызван A::~A() ?
Вот так по памяти и не скажу... Надо смотреть.
Если найду раньше вас — напишу.
Re[2]: Виртуальный деструктор при множественном наследовании
Здравствуйте, de_banderas, Вы писали:
_>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
_>Эта тема навела на следующие рассуждения: _>Класс наследуется от двух веток, в истоках одной деструктор виртуальный, в истоках второй нет, и мы его удаляем по указателю на ту ветку, где виртуальный. Будут ли вызваны все деструкторы? _>Например:
_>struct A { _> ~A() {} // Non-virtual. _>}; _>struct B { _> virtual ~B() {} _>}; _>struct C : public A, public B {} _>B* pc = new C; _>delete pc; // будет ли здесь вызван A::~A() ?
_>Вот так по памяти и не скажу... Надо смотреть. _>Если найду раньше вас — напишу.
Сорри, это я тупить начал.
Вопрос снят.
Считайте, что я этот пост удалил, и его тут и не было.
Здравствуйте, мыщъх, Вы писали:
_>>Отсутствие виртуального деструктора повлечет невызов деструкторов всех производных классов при удалении объекта через указатель на базовый класс. М>не совсем так. в такой ситуации компилятор может подумать: вот, блин, программист-придукрок! и таки вызовет все деструкторы. а может и не подумать. зависит от реализации. отсюда и ub.
Про это первый раз слышу. Насколько я знаю, компилятор должен генерить то, что написано, а не выдумывать несуществующие вызовы (но из того, что про такое не слышал, не следует, что это точно не так — может, и бывают... найдешь доказательство — кинь сюда)
Ну и допустим даже если неизвестно, какие базовые деструкторы вызовутся, а какие нет — то это unspecified behaviour, а под UB принято понимать undefined behaviour, хотя обе фразы в сокращенном виде выглядят как UB. Ну это так...
>> А повлечь это может что угодно, смотря что делают те самые деструкторы производных классов: утечку памяти, утечку хендлов, невыход из объекта синхронизации, ну и так далее... М>ну я имел ввиду, что если деструктор не виртуальный, то мы не можем гарантированно сказать какие десктруторы будут вызваны, а какие не будут.
Здравствуйте, Ikemefula, Вы писали:
I>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
В некоей окрестности меня есть ненулевое количество лиц 4 лет от роду, не обладающими знанием как русских, так и английских букв, но тем не менее владеющих синхронным переводом.
P.S. Вот что бывает, когда начинают натягивать дурацкие аналогии.
Здравствуйте, Ikemefula, Вы писали:
I>Да, в с++ это именно так — язык полностью осваиватеся где то через 2-3 года работы, а многие вообще никогда не освоят.
Есть подозрение, что полностью С++ осваивает где-то один из 10000, и не за 2-3 года, а за 10.
Здравствуйте, cppboris, Вы писали:
C>Здравствуйте, skeptic, Вы писали:
S>>А вот не надо потому что пытаться сесть одним местом на два стула. К тому же это вредно для индустрии. Когда один человек копает охапку безсвязных технологий не вглубь, а вширь и потом как бэ естественно считает просто своим долгом нагадить в своём резюме красивыми англицкими словечками, а хЫар естественно ведётся на колличество и красивость этих самых словечек в этих самых бумажках, то в итоге получаем что на собеседование часто попадают те кому собственно пофиг на чём писать ибо один фиг он ничего толком не знает, а работодатель зачастую вздыхает и решает мол стерпится-слюбится(да и к тому же такой с позволения сказать "специалист" кушать много не просит что играет в его пользу но не в пользу индустрии к сожалению), или же продолжает поиски кандидатов не меняя при этом технику поиска этих самых кандидатов ссылаясь на то что дескать мало спецов хороших осталось и эти поиски могут затянутся на очень долгий срок. C>Вообще говоря такая ситуация имеет место обычно не по инициативе сотрудника. А как раз работодателя. Таковы условия — такова работа. Не сделаешь ты, не сделает никто. Проект загнётся. C>Напомню, я говорю о небольших конторках в основном в провинциях. У на вот в городе, почти все такие. И не всегда есть альтернатива. C>Так что тут ситуация двоякая. Нельзя говорить о полной вине сотрудника. Честно говоря, не вижу реально рабочего выхода из подобной ситуации. Может, вы подскажите?
А что, может и подскажу.
1. Прежде всего — проект делают люди, именно люди есть показатель развития конторы. Достаточно посмотреть на текучку кадров в конторе что бы понять насколько эта контора развита. В идеале люди приходить в контору должны, а уходить нет (вариант с наручниками и батареей себя изжил и не катит). Но для начала надо повысить качество персонала уже трудоустроенного у вас. И только потом можно набирать либо профи и/или если таковые отсутствуют на рынке в момент набора — джуниоров, но с чётко выраженными горящими алым пламенем глазами (это важно), ибо нам нужны люди любящие своё дело.
2. Люди хотят есть, и хотят есть всё больше пропорционально своему развитию , поэтому срубить бабла на развитии персонала без увелечения зарплатной миски не получится — люди пойдут кушать в соседнюю забегаловку.
3. Развивать надо не только программистов, а очень важно развивать продажников, менеджеров и прочий персонал который занят поиском клиентов и реальным зарабатыванием бабла для конторы. Ибо разивая только программистов можно столкнутся с той же проблемой что и в п.2. Проектов по пальцам пересчитать, а развитые программисты уже порядком проголодались и заскучали. Побредут в соседнюю забегаловку.
4. Под развитием понимать надо не 5-дневные 10-часовые курсы с аттестацией и пышногрудыми certified trainer-ами. Знания должны получаться только добровольно, и только теми кто хочет их получить. Над теми кто не хочет должен неумолимо зависнуть топор увольнения — только по тихому, без шума и внезапно(!), ибо если такой не желающий развиваться работник заподозрит вас в чём то — то начнёт притворяться и тогда это будет та ещё головная боль. Инвестировать надо в книги, даже в маленькой конторе можно сделать библиотеку, на первое время повесив обязанности библиотекаря на какую нибудь девочку-стажёрку(но только на первое время). Проверять знания не надо посредством экзаменов — это глупо, ведёт к недовольствам и зазубриванию, а нам нужны реальные знания и реальный интерес работника, если всё сделано правильно знания дадут о себе знать в порядке растущего качества ПО и уменьшения колличества свиданий проектов с дедлайном.
В общем и целом — нет стандартного рецепта быстро дающего 100% гарантированный результат. Но надо запомнить что набирать надо только тех кому нравиться продавать/разрабатывать/проектировать/рекламировать/тестить/etc — если у человека есть реальный интерес, то и знания к нему как к магниту гвозди лепяться, и работает он по большей части не за зарплату(она как важный но всё таки побочный продукт для него), а если нет то пусть он будет хоть с 30-летним стажем и 5 дипломами о высшем образовании во лбу — он не сыграет в сторону развития конторы, ибо работает только за
з/п. Ещё раз скажу что гарантировать какой либо результат невозможно. Риск? Риск! Но это и есть работа хорошего менеджера. Управлять рисками. Иметь чутьё на них. Взвешивать их и принимать правильное решение. И так уж вышло что одни всю жизнь перестраховываются и живут чем прийдётся и как прийдётся утешая себя тем что зато они в безопасности, а другие по жизни рискуют но зато потом если повезёт мчатся на мерседесах и ухмыляются смотря сквозь тонированное стекло на тех первых которые типа в безопасности. Случай? Случай! Везение! Но везение по большей части есть результат упорного труда и правильных, обдуманных решений. Вот как то так.
Здравствуйте, IT, Вы писали:
IT>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, IT, Вы писали:
bnk>>>Но что движет этим "читающим" меньшинством?
IT>>Лень.
bnk>То есть, я тебя так понимаю, новые технологии и более широкий кругозор позволяют сократить трудозатраты и повысить производительность. bnk>То есть, позволяют сделать ту же задачу меньшее время. А высвободившееся время использовать для чего-то другого. bnk>Правильно?
bnk>Просто вспомнился анекдот
bnk>
bnk>Под пальмой лежит мужик и млеет. Мимо проходит другой:
bnk>— Вот ты, лежишь, бездельничаешь, а мог бы на пальму залезть, нарвать бананов. Пойти на рынок и продать.
bnk>— А зачем?
bnk>— Ну как, зачем!? На деньги с проданного купишь тележку и отвезешь на рынок намного больше!
bnk>— А зачем?..
bnk>— Да ты с проданного уже сможешь купить грузовик и возить действительно большие объемы, потом наймешь работников, а сам будешь лежать и ничего не делать!
bnk>— А я, в принципе, и так лежу и ничего не делаю?!
Э нет, не из всего можно(и нужно) выделять материальную прибыль. Для чего мужчина/женщина начинает встречаться с девушкой/мужчиной а потом жениться/выходит замуж на ней/за него? Неужто только для продолжения рода или по расчёту? Нет, нет, и ещё раз нет. В большинстве случаев это любовь. Да, да. Банально, но факт. Это потом уже через какое то время это чувство может притупиться и вместо него остаётся лишь память о светлом прошлом и обязанности перед детьми, бытовуха и другие прелести жизни в браке. Но изначально это любовь, при чём до этой любви у человека может быть много случайных и не случайных связей и всё же они рвутся когда приходит любовь. Точно так же и с читающим меньшинством — читают не для того что бы получать з/п сокращать трудозатраты и т.д а потому что это — любовь, любовь к своему делу. И проблема индустрии заключается как раз в том что на данный момент в индустрии слишком много таких вот "браков по расчёту" — когда в индустрию приходят не те люди, люди без любви к своему делу но с огромной жаждой лёгких денег, занимают чужие места, и вообще ведут себя крайне нагло, и всей толпой рубят сук на котором кроме них к тому же сидит это "читающее меньшинство". И если после того как сук окончательно сломается эти случайные люди побредут в другую индустрию (ибо пофек же чем заниматься только бабло платили бы) то "меньшинству" скорее всего прийдётся ой как туго.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов. O>Не интересно задавать подобные вопросы. С 5-го раза надоедает слушать мычание с закатыванием глаз.
Странно, мне показалось наоборот- никого этим не удивить и "гвоздем" программы выступает ромбовидное наследование и "как сделать дедлок", а на закуску- паровозики с гномиками.
Здравствуйте, hrensgory, Вы писали:
H>Потому что в силу ряда причин в ИТ у начинающих необоснованно высокие H>зарплаты (резкий старт), а потолок в большинстве компаний диктуется H>экономическими ограничениями. По-хорошему вместо 50 должно быть 25-30, H>тогда 75-100 смотрится совершенно нормально.
при средней зарплате в 25 тыр по Москве?
Это не программисты много просят, это вы их труд неэффективно используете, раз даже рабочие без высшего образования получают больше.
Здравствуйте, Ikemefula, Вы писали:
J>>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни. I>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
оба-на, ты не обучен устной речи?
J>>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле. I>Ты с переводчиком сел большую лужу и даже не заметил этого.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов. O>Не интересно задавать подобные вопросы. С 5-го раза надоедает слушать мычание с закатыванием глаз.
А можно вопрос к слову, раз уж заговорили об auto_ptr?
Саттер вместе с Александреску выступают активно против auto_ptr, приравнивая к злу похуже голых указателей. Тем не менее во многих книгах уважаемых людей встречаю повсеместное использование этого умного указателя (в частности, сейчас читаю Lomow & Co "C++ FAQs" — тут любое remote ownership в классе упаковано в auto_pointer, а не в shared_pointer).
Так ли плох auto_pointer? Или верить никому нельзя, и нужно самому совершить все ошибки?
Здравствуйте, Denwer, Вы писали:
D>Как такое может быть? Что творится с людьми?
А люди просто изучили и используют boost, в частности shared_ptr. Привожу пример из книги об использовании boost.
The following example shows how to store shared pointers in a Standard Library container.
#include "boost/shared_ptr.hpp"
#include <vector>
#include <iostream>
class A {
public:
virtual void sing()=0;
protected:
virtual ~A() {};
};
class B : public A {
public:
virtual void sing() {
std::cout << "Do re mi fa so la";
}
};
boost::shared_ptr<A> createA() {
boost::shared_ptr<A> p(new B());
return p;
}
int main() {
typedef std::vector<boost::shared_ptr<A> > container_type;
typedef container_type::iterator iterator;
container_type container;
for (int i=0;i<10;++i) {
container.push_back(createA());
}
std::cout << "The choir is gathered: \n";
iterator end=container.end();
for (iterator it=container.begin();it!=end;++it) {
(*it)->sing();
}
}
The two classes, A and B, contain a single virtual member function sing. B derives publicly from A, and as you can see, the factory function createA returns a dynamically allocated instance of B wrapped in a shared_ptr<A>. In main, a std::vector containing shared_ptr<A> is filled with 10 elements, and finally sing is invoked on each element. Had we been using raw pointers as elements, the objects would need to be manually deleted. In the example, this deletion is automatic, because the reference count of each shared_ptr in the container is 1 as long as the vector is kept alive; when the vector is destroyed, the reference counters all go down to zero, and the objects are deleted. It is interesting to note that even if the destructor of A had not been declared virtual, shared_ptr would have correctly invoked the destructor of B!
собственно и не нужен получается виртуальный деструктор
Я знаю, как управлять Вселенной. И скажите, зачем же мне бежать за миллионом?!(c)
Здравствуйте, ArtemGorikov, Вы писали:
AG>Странно, мне показалось наоборот- никого этим не удивить и "гвоздем" программы выступает ромбовидное наследование и "как сделать дедлок", а на закуску- паровозики с гномиками.
Виртуальные функции и деструктор в том числе входят в базовые знания по С++
Зависит от того, что Вы называете базовыми знаниями. Если прочтение ISO стандарта... Кхм. Надо быть человеком с ОЧЕНЬ хорошей памятью, чтобы его запомнить. Обычно нюансы запоминаются и ПОНИМАЮТСЯ через некоторое количество лет практического использования. Нет, я ни коим разом не спорю с тем, что есть студенты, на третьем курсе знающие тот же C++ от и до. Но это, с моей точки обзора, скорее исключение чем правило. За свою долгую жизнь я нанял немало программистов C++, и практика показывает что с 2-3 годами опыта детали языка не знает почти никто. А вот с 10 годами — знают. Что-то вроде статистики .
и в самом деле, ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР?
Если мы отнаследовались от класса с обычным деструктором, сделали экземпляр наследника, привели его указатель к родителю и затем удалили объект по этому указателю — то деструктор наследника не вызовется О_О. Соответственно, если наш героический наследник в конструкторе выделяет память а в деструкторе ее того, то его родителю всячески рекомендуется иметь виртуальный деструктор. Дабы память не потекла. Особенно актуально для интерфейсов, которые в С++ реализованы как обычные классы с множественным наследованием .
P.S. Пишу по памяти, лучше конечно уточнить в википедии
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Странно, мне показалось наоборот- никого этим не удивить и "гвоздем" программы выступает ромбовидное наследование и "как сделать дедлок", а на закуску- паровозики с гномиками.
bnk>А это что? В гугле не ищется
Здравствуйте, мыщъх, Вы писали:
М>тогда уж — всех призводных классов. кстати, зачем нужен деструктор вообще — довольно каверзный вопрос
кстати да, в ассемблере деструкторов нет. Да и на С++ никто не мешает нам построить свою систему управления памятью и не вообще использовать деструкторы
Здравствуйте, jhfrek, Вы писали:
J>при средней зарплате в 25 тыр по Москве? J>Это не программисты много просят, это вы их труд неэффективно используете, раз даже рабочие без высшего образования получают больше.
Ужасает то, что 25-30 дают тем, кто вообще не может кодировать. Образования ноль (хоть и красный диплом, причем ведущего вуза, и по специальности), остаточных знаний после института ноль (математику чуть чуть помнят — это все), не могут написать перемножение матриц, слишком сложно, логического и абстрактного мышления тоже ноль, и нет надежды, что появится это. Даже в индусском стиле производительность ужасающая, но их берут, часто даже тимлида не спросив. На тебе типа сотрудника, и работай с ним как хочешь. Кто их собеседовал и как их взяли — загадка зачастую, на порядок более сильных и менее требовательных к зарплате часто бракуют, какие критерии отбора вообще непонятно, невооруженным глазом видно что толку с товарища не будет никогда, программирование это не его, ему это даже не интересно. Выхлопа от таких часто и через 3 года никакого, а то и через 10, но он отбирает ресурсы более сильных разработчиков, за ним постоянно смотреть надо, если не смотреть, то ресурсов еще больше отберет. И как результат, уравниловка — у более слабых зарплаты выше, чем они заслуживают, у более сильных намного меньше, чем их реальный вклад. Русский менеджмент, что можно еще сказать, скупой конечно платит дважды, но тут не проблема это получается, так как платить за это все будут более сильные разработчики, а не менеджмент.
Здравствуйте, elmal, Вы писали:
J>>при средней зарплате в 25 тыр по Москве? J>>Это не программисты много просят, это вы их труд неэффективно используете, раз даже рабочие без высшего образования получают больше. E>Ужасает то, что 25-30 дают тем, кто вообще не может кодировать.
ну я и говорю что менеджмент неадекватный: кто-то берет задешево идиотов, кто-то считает что обычным программистам надо платить меньше чем дворникам, что бы хорошие считали 50 тыр отличной зарплатой...
Здравствуйте, elmal, Вы писали:
E>Даже в индусском стиле производительность ужасающая, но их берут, часто даже тимлида не спросив. На тебе типа сотрудника, и работай с ним как хочешь.
Это вот надо оговаривать, когда вы тимлидом устраиваетесь, что через вашу голову никого в вашу группу не берут. А при попытке таки взять, если попытку не удается отбить цивилизованными средствами, увольняться.
5.3.5 - Delete [expr.delete]
-1- The delete-expression operator destroys a most derived object (intro.object) or array created by a new-expression.
delete-expression:
::opt delete cast-expression
::opt delete [ ] cast-expression
........snipped..........
-3- In the first alternative (delete object), if the static type of the operand is different from its dynamic type, the static type shall be a base class of the operand's dynamic type and the static type shall have a virtual destructor or the behavior is undefined.
Здравствуйте, Тот кто сидит в пруду, Вы писали:
ТКС>Тем не менее, приходят люди, у которых никакой пурги в резюме нет, работали в солидных компаниях и тем не менее на простейшие вопросы ответить не могут.
Ну и о чем это говорит?
Правильно, о том, что нельзя принимать людей на работу без собеседования.
С целью отсеить заведомо неподходящих кандидатов первичных отбор по резюме вполне справляется, если им разумно пользоваться.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, bnk, Вы писали:
bnk>>Но что движет этим "читающим" меньшинством? Страх того что они могут завтра "отстать от поезда"? Абстрактная тяга к новым знаниям? Желание прославиться и оставить след в истории? То есть, для чего человеку, которого все более-менее устраивает в текущей ситуации, продолжать само-совершенствоваться? bnk>>Хотя наверное вопрос скорее "философский", но все же?
AG>Потому что чтобы оставаться на месте- надо бежать. А если не бежать, то через N лет старый паровоз устаревшей технологии отправят в металлолом, а "опытных спецов" заменят вчерашними студентами с нужными скиллами и адекватными зарплатными ожиданиями.
Что-то мне подсказывает, что машинист с паровоза на электровоз пересядет без усилий.
Сам начинал с ИЗОТ-ов и МикроВаксов.
Л>>Вообще возмущает, что, например, разброс в цене между фотомыльницами и Canon EOS 1D mark IV — где-то 2 порядка. А хорошему специалисту и в 2 раза большую зарплату практически никто платить не хочет.
TC>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
С точки зрения Маркса (который считал, что рабочая сила должна воспроизводиться) должно хватать и на жильё.
И первому и второму.
EOH>Если мы отнаследовались от класса с обычным деструктором, сделали экземпляр наследника, привели его указатель к родителю и затем удалили объект по этому указателю — то деструктор наследника не вызовется О_О. Соответственно, если наш героический наследник в конструкторе выделяет память а в деструкторе ее того, то его родителю всячески рекомендуется иметь виртуальный деструктор. Дабы память не потекла. Особенно актуально для интерфейсов, которые в С++ реализованы как обычные классы с множественным наследованием .
EOH>P.S. Пишу по памяти, лучше конечно уточнить в википедии
в стандарте лучше уточнить На практике конечно потечет память и т.п., но в теории это просто undefined behaviour:
5.3.5 - Delete [expr.delete]
......snipped......
-3- In the first alternative (delete object), if the static type of the operand is different from its dynamic type,
the static type shall be a base class of the operand's dynamic type and the static type shall have a virtual destructor
or the behavior is undefined.
Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист.
Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
Вы сами интервьюиром поставились или вас поставили?
Здравствуйте, jhfrek, Вы писали: J>можно делать как в hflabs — высылать несложное тестовое задание и смотреть на него, а не на резюме
Лучше уж краткое телефонное собеседование, тестовым заданием можно легко хороших спецов распугать.
Здравствуйте, Denwer, Вы писали: D>Проблема не в том что много трачу на беседы с людьми, а втом что хороших программистов нет.
Неверно. То что к вам на собеседование попадает мало хороших программистов еще незначит, что их нет
10.03.2010 10:07, jhfrek пишет:
> H>Потому что в силу ряда причин в ИТ у начинающих необоснованно высокие > H>зарплаты (резкий старт), а потолок в большинстве компаний диктуется > H>экономическими ограничениями. По-хорошему вместо 50 должно быть *25-30*, > H>тогда 75-100 смотрится совершенно нормально. > > при средней зарплате в 25 тыр по Москве? > > Это не программисты много просят, это вы их труд неэффективно > используете, раз даже рабочие без высшего образования получают больше.
Возможно это будет для вас сюрпризом, но "рабочие без высшего
образования" в очень многих отраслях по всему миру получают
_значительно_ больше "программистов с высшим образованием". Это
обуславливается и большей ответственностью и худшими условиями труда.
Вообще считать что в районе средних доходов (MBA в приличном месте не
рассматриваем) высшее образование означает больший доход — это по-моему
какое-то чисто программистское заблуждение.
Здравствуйте, hrensgory, Вы писали:
H>Возможно это будет для вас сюрпризом, но "рабочие без высшего H>образования" в очень многих отраслях по всему миру получают H>_значительно_ больше "программистов с высшим образованием". Это H>обуславливается и большей ответственностью и худшими условиями труда.
это у дворника больше ответственность? Я напомню что вы упомянули зарплату уровня именно дворника, а не рабочих "многих отраслей".
Кстати, что это за отрасли, применительно к России?
H>Вообще считать что в районе средних доходов (MBA в приличном месте не H>рассматриваем) высшее образование означает больший доход — это по-моему H>какое-то чисто программистское заблуждение.
а можно цифры?
H>Хочешь больше денег? Полезай в шахту
Здравствуйте, Nik_1, Вы писали:
J>>можно делать как в hflabs — высылать несложное тестовое задание и смотреть на него, а не на резюме N_>Лучше уж краткое телефонное собеседование, тестовым заданием можно легко хороших спецов распугать.
в смысле распугать? Вы не станете решать тестовое задание если условия работы будут лучше, работа престижнее и зарплата на треть больше потому что хорошему спецу неохота, некогда и т.п.?
а что на телефонном собеседовании спрашивать — опять про виртуальный деструктор?
Здравствуйте, 31415926, Вы писали:
3>Здравствуйте, мыщъх, Вы писали:
3>>>Не очень понимаю, к чему Вы клоните. В отсутствие сборки мусора какой-то должен быть механизм освобождения памяти (если, разумеется, язык допускает создание динамическмх объектов). Разумеется, без явных delete'ов можно, наверное, обойтись, а как быть c удалением объектов, "живущих" на стеке (при выходе из блока или при stack unwinding)? М>>я там выделил куда клоню. погуглите. а теперь представим, что в деструктор мы впихнули что-то более важное, чем освобождение памяти. кстати, со стека объект удалят со свистом и без деструкторов. то есть зачем нужен деструктор вы похоже таки не понимаете
3>Ну сам то объект, конечно, удалится, а вот то, на что из него торчат ссылки — нет. Возможно, что чего-то я в самом деле не понимаю. 3>Впрочем, последние 12 лет я программирую исключительно на Java. Нужно будет освежить память.
Сдаюсь. Перечитал соответствующий раздел Страуструпа ("The C++ Programming language. Special Edition", 10.4). Выяснил, что забыл про тонкости при наличии custom allocator'а, а в остальном — вроде бы все просходит так, как я и излагал. Может быть, кто-нибудь объяснит? Спасибо.
Здравствуйте, jhfrek, Вы писали: J> в смысле распугать? Вы не станете решать тестовое задание если условия работы будут лучше, работа престижнее и зарплата на треть больше
Написанное в вакансии необязано соответствовать действительности, и тратить кучу своего времени ради непонятно чего невижу смысла.
Да, я никогда не трачу время на выполнение тестовых заданий( если оно конечно не на 15 минут расчитано).
J>а что на телефонном собеседовании спрашивать — опять про виртуальный деструктор?
Да, именно так. Это сыкономит время обоим — и нтервьюверу и кандидату : не надо будет зря ехать на собеседование.
08.03.2010 21:42, Denwer пишет: > > Но сколько я > потратил время на собесеования за эти 3-4 мес !!!
А вот здесь уже ты неправильно что-то делаешь.
Сначала вакансия должна отсеять кучу лишнего,
затем по резюме мусор выкинуть,
ну а затем 10 минут обычно достаточно, есть смысл с этим человеком
дальше общаться или нет.
Итого, максимум 30 мин на человека в среднем.
Здравствуйте, de_banderas, Вы писали: _>Я б не сказал, что так уж UB. Под сам производный класс память нормально освободится.
Не вызов деструктора — это уже и есть УБ, мало ли что деструктор должен был там делать.
Уменя, например, есть класс, который в деструкторе дерегистрирует себя в диспетчере обьектов. Соответственно если деструктор не вызовется — в диспетчере останется указатель на освобожденную память, обращение к которой может привести к чему угодно. Вот вам и УБ)))
Здравствуйте, alpha21264, Вы писали:
A>С точки зрения Маркса (который считал, что рабочая сила должна воспроизводиться) должно хватать и на жильё. A>И первому и второму.
А с точки зрения здравого смысла, зачем воспроизводиться первому?
10.03.2010 17:41, jhfrek пишет:
> H>Возможно это будет для вас сюрпризом, но "рабочие без высшего > H>образования" в очень многих отраслях по всему миру получают > H>_значительно_ больше "программистов с высшим образованием". Это > H>обуславливается и большей ответственностью и худшими условиями труда. > > это у дворника больше ответственность? Я напомню что вы упомянули > зарплату уровня именно дворника, а не рабочих "многих отраслей".
Если дворник перестанет зимой исполнять свои обязанности, ущерб от этого
для окружающих будет намного больше чем от потерявшегося в изучении
очередного мегафреймворка джуниора
> Кстати, что это за отрасли, применительно к России?
Например многие разновидности водителей, квалифицированные автомеханики
(это из того, с чем лично я имел дело), персонал на буровых, пилоты ГА
(про этих только слышал — точных цифр не знаю).
Машинисты в метро вроде бы тоже не обижены, хотя тут есть разные мнения,
некоторые говорят что до приличную ЗП получишь чуть ли не к пенсии. К
тому же работа в МПС всегда подразумевала довольно хорошую соцзащиту.
Квалифицированные рабочие на мехобработке имеют шанс на нормальный
дополнительный доход (это тоже проверялось на практике), но это зависит
сильно от начальства и от их собственных скажем так деловых качеств.
Про ларёчников и прочих героев торговли упоминать будем ?
Здравствуйте, msk78, Вы писали:
M>Современный мир программирования — это мир командной работы! Скажите человеку, что у вас в проекте используются виртуальные диструкторы и что это важно и он будет их использовать.
Навеяло из прошлой жизни:
1. Виртуальный деструктор (это круто)
2. memset(this,0,sizeof(*this)) в конструкторе (memset — это тоже круто)
3. Я же говорил — C++ мастдай!
M>А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.
Зато весь лес — твой. И виртуальный деструкторы — тоже
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, мыщъх, Вы писали:
М>начал грить, что синтаксис тут неправильный, x86 кривой, все дэбилы и что если бы записали lea как оно "правильно" пишется (типа lea eax, ebx), то все было бы ништяк, а он увидел что-то типа xor ebx,ebx/lea eax, [ebx]. и грил, что это баг ЦП и дизасма, что lea eax, [ebx] и lea eax, ebx суть одно и тоже.
Хоть x86 и кривой, но инструкция lea eax,ebx вполне реальна (8D C3), отличается от lea eax,[ebx] (8D 03) и безуловно будет иключение, ведь невозможно взять адрес регистра
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, мыщъх, Вы писали:
М>>начал грить, что синтаксис тут неправильный, x86 кривой, все дэбилы и что если бы записали lea как оно "правильно" пишется (типа lea eax, ebx), то все было бы ништяк, а он увидел что-то типа xor ebx,ebx/lea eax, [ebx]. и грил, что это баг ЦП и дизасма, что lea eax, [ebx] и lea eax, ebx суть одно и тоже.
GN>Хоть x86 и кривой, но инструкция lea eax,ebx вполне реальна (8D C3), отличается от lea eax,[ebx] (8D 03) и безуловно будет иключение, ведь невозможно взять адрес регистра
у кого-то из нас двоих камень неправильный. мой исключения на 8d 03 не вызывает
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, hrensgory, Вы писали:
H>Если дворник перестанет зимой исполнять свои обязанности, ущерб от этого H>для окружающих будет намного больше чем от потерявшегося в изучении H>очередного мегафреймворка джуниора
я же говорю — вы не умеете "готовить" своих программистов, раз, вместо работы, они у вас ненужной фигней занимаются.
а дворника у нас этой зимой и не было, ничего страшного не произошло — автомобилисты все сами раскапывали
H>Квалифицированные рабочие на мехобработке имеют шанс на нормальный
квалифицированный рабочий, на образование которого было потрачено много времени и средств не отличается, в контексте спора, от программиста с высшим образованием.
H>Про ларёчников и прочих героев торговли упоминать будем ?
и какой у них средний доход? Тем более что в ларечники и уходили из-за того что ваши идеи насчет 20-30 тысяч были претворены в жизнь.
Высшее образование повышает себестоимость "товара". Товар с высокой себестоимостью не может стоить дешево в нормальном случае.
ЗЫ. Я надеюсь вы понимаете что я говорю о людях с высшим образованием, а не о людях с корочками о высшем образовании.
Здравствуйте, vic.tep, Вы писали:
VT>Здравствуйте, minorlogic, Вы писали:
M>>Не только , конструктор и деструктор это специальные функции где нетривиально работают все остальные виртуальные функции.
VT>Как конструктор может быть виртуальным? Ведь мы явно указываем тип при создании экземпляра ...
В С++ нет виртуальных конструкторов, вы что то путаете или невнимательно читали мой пост. В конструкторе и деструкторе при вызове виртуальных функций, они не являются виртуальными.
Здравствуйте, vb-develop, Вы писали:
ТКС>>Тем не менее, приходят люди, у которых никакой пурги в резюме нет, работали в солидных компаниях и тем не менее на простейшие вопросы ответить не могут.
VD>Ну и о чем это говорит? VD>Правильно, о том, что нельзя принимать людей на работу без собеседования. VD>С целью отсеить заведомо неподходящих кандидатов первичных отбор по резюме вполне справляется, если им разумно пользоваться.
Скажем так — неадекватов на собеседовании был значительно больший процент, чем процент неадекватных резюме. Так что толку от отбора резюме особого нет, по крайней мере в некоторых случаях (фирмы разные, к кому тысячи кандидатов на позицию ломятся — тем, понятно, на всех стадиях отбор нужен).
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, мыщъх, Вы писали:
GN>>Хоть x86 и кривой, но инструкция lea eax,ebx вполне реальна (8D C3), отличается от lea eax,[ebx] (8D 03) и безуловно будет иключение, ведь невозможно взять адрес регистра М>у кого-то из нас двоих камень неправильный. мой исключения на 8d 03 не вызывает
Неправильно — так это ты меня понял. Исключение будет на 8D C3, то есть lea eax,ebx без скобочек. Такую команду не соберёт вменяемый ассемблер, но вполне можно руками, с точки зрения формата опкод вполне легален, только смысла не имеет.
А предыдущим постом я хотел показать, что возможно ты не понял о чём речь. Если же слова оппонента переданы верно, то вероятно он сам играл роль испорченного телефона, а недопонимание формата ModR/M не дало найти ошибку, либо это такой стёб.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР.
наверно shared_ptr всегда использовали ;)
Здравствуйте, jhfrek, Вы писали:
J>>>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни. I>>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
J>оба-на, ты не обучен устной речи?
Ты хочешь плавно увилинуть с переводчика на меня ? Ну, виляй.
J>>>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле. I>>Ты с переводчиком сел большую лужу и даже не заметил этого.
J>я помню о твоей неадекватности в дискуссиях
Здравствуйте, superman, Вы писали:
I>>Ну, удивляться нечему, если 80% имеют проблемы с виртуальностью
S>+10% проблеммы с деструкторами при отсутствии проблем с виртуальностью?
С деструкторами не замерял. В свое время про вирт. методы спрашивал на собеседованиях и вел статитику.
Здравствуйте, skeptik_, Вы писали:
I>>Да, в с++ это именно так — язык полностью осваиватеся где то через 2-3 года работы, а многие вообще никогда не освоят.
_>Есть подозрение, что полностью С++ осваивает где-то один из 10000, и не за 2-3 года, а за 10.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, IT, Вы писали:
IT>>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
S>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
Ну пара недель это мож ты сгаряча сказал, а вот за три-четыре месяца — вполне реально.
S>Большинство же знаний приходит "в работе", с практичным опытом. Тем более, эту рутину, которая не позволяет развиваться, зачастую программисту приходится выкладываться полностью. Добавь к этому дом, детей, семью, отдых, то на какое-то там еще развитие просто нет сил. Да, книжку почтитать, но не так много задерживается, если нет или мало практического применения. Да и зачем это все надо: будет потребность — выучишь.
Не совсем согласен. В твоем списке есть такой момент как "отдых", в который вполне может входить и чтение литературы (разной). Так вот если ты все+-таки человек увлеченный, то чтение соотвествующей проф.литературы это вполне себе отдых дома и одновременно развитие. Ну а если ты очень увлеченный,то можно дома еще и подпедаливать. Я вот уже 8 лет почитай в ИТ, и ничего, вкус к этому делу вроде пока не потерял — почитать литературку после ужина, чего-нить новенького запрограммить нифига не западло, а даже наоборот
Здравствуйте, landerhigh, Вы писали:
I>>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе. L>В некоей окрестности меня есть ненулевое количество лиц 4 лет от роду, не обладающими знанием как русских, так и английских букв, но тем не менее владеющих синхронным переводом.
Если переводчик не знает букв, то остается только синхронный перевод.
Но здесь проблема в том. что к синхронному переводу нужно готовиться, например освоить n-документов.
Как переводчик без знания букв освоит всякие спец-термины, не ясно.
Здравствуйте, Ikemefula, Вы писали:
I>>>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе. J>>оба-на, ты не обучен устной речи? I>Ты хочешь плавно увилинуть с переводчика на меня ? Ну, виляй.
нет, надеюсь на остатки адекватности и задаю наводящие вопросы, призванные тебе помочь в осознании твоей же неправоты
I>Сиди в луже, сынок, на своем сферическом коне.
Здравствуйте, Young, Вы писали:
I>>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе.
Y>Это еще почему?
Потому что переводчик живой человек а не гугл или конь в вакууме.
Кроме того, держать на работе двух переводчиков из за того, что один не знает букв, как то странно. Один из них как минимум лишний.
Y>Тот-же google translate наура переводит работая абстракциями на ровне слов и предложений, ничего не зная о буквах.
Avoid the naked conductor running along the bus.
Валяй, пусть твой гугл переведет это.
Y>Тот-же ребенок 4-х лет пообщавшись несколько месяцев со сверстниками на ура переводит просьбу одного который говорит только по английски другому который говорит только на хинди. Совершенно не зная ничего о буквах данных языков (уж на хинди точно).
Если говорить о переводчиках, то у них вполне четкие задачи. Если ты с ними ознакомишься, то поймешь, что незнание букв делает выполнение этих задач нвыполнимыми.
Y>Тот-же другой знакомый мульти-лингвист утверждает что он готов изучить разговорный язык до бытового уровня только на уровне анализа устной речи — т.е. никаких букв, вообще при отсутсвия доступа к писменным источникам.
Переводчик для бытового уровня ? тут не нужен мега переводчик. На таком уровне я и сам могу изъясняться.
Y>Более того, переводчики как-то же переводят с языков где букв как таковых вообще нет.
Здравствуйте, Young, Вы писали:
I>>Можно дать максималку по региону и процент упадет с 90 до 80
Y>Почему? По мне так наоборот...
Y>Было — приходит 40 человек в месяц, знают 4 Y>Станет — приходит 120 человек в месяц, знают 8
Процент зависит не от ЗП, а от контингента. Контингент же зависит от стратегии поиска используемой HR.
Какая то корреляция ЗП есть, крайне слабая, дело в том, что большинству свойственно завышать самооценку.
Здравствуйте, jhfrek, Вы писали:
I>>>>Если переводчик не знает английских букв то крути не крути, он не сможет переводить в принципе. J>>>оба-на, ты не обучен устной речи? I>>Ты хочешь плавно увилинуть с переводчика на меня ? Ну, виляй.
J>нет, надеюсь на остатки адекватности и задаю наводящие вопросы, призванные тебе помочь в осознании твоей же неправоты
Я владею устной речью.
Но раз уж ты взял меня за пример, то скажу, что на бытовом уровне мне переврдчик не нужен.
Переводчик нужен наприер по юридическим вопросам, или по предметной области конторы. Например если я буду говорить с англоязычным математиком-физиком, мне его будет реально сложно понять. Девелопера я могу легко понять, математика-физика — вряд ли.
Стало быть от переводчика хочется получит решение проблемы.
кроме того, если ты не в курсе, в задачи переводчика обычно входит вагон текстовых работ/переводов
Такая работа, как синхронный перевод на переговорах, требует предварительной подготовки по тематике будущей беседы.
Получается к твоему сферическому коню надо будет добавить еще и эксперта, который сможет объяснить всю тематику-терминологию.
Посему, если тебе непонятно написаное, лучше ничего не пиши в ответ.
Здравствуйте, Ikemefula, Вы писали:
I>Я владею устной речью.
молодец, а до изобретения письменности (надеюсь ты в курсе что ее изобрели позже устной речи) и переводчики и не переводчики не только переводили, но и общались вообще не зная букв.
I>Но раз уж ты взял меня за пример, то скажу, что на бытовом уровне мне переврдчик не нужен. I>Переводчик нужен наприер по юридическим вопросам, или по предметной области конторы. Например если я буду говорить с англоязычным математиком-физиком, мне его будет реально сложно понять. Девелопера я могу легко понять, математика-физика — вряд ли.
я уже понял из твоих других постов, что твоя убежденность базируется на твоем же частном случае. Тебе нужен переводчик только для разрешения юридических или специальных вопросов, значит всем нужен переводчик исключительно в этих случаях. Тебе не кажется что это несколько "эгоцентрично"?
I>Стало быть от переводчика хочется получит решение проблемы. I>кроме того, если ты не в курсе, в задачи переводчика обычно входит вагон текстовых работ/переводов I>Такая работа, как синхронный перевод на переговорах, требует предварительной подготовки по тематике будущей беседы.
да что ты говоришь. Представить себе переводчика для частных бесед ты не в состоянии. Представляешь, не все знают даже английский на бытовом уровне, а ведь это один из самых распространенных языков.
I>Посему, если тебе непонятно написаное, лучше ничего не пиши в ответ.
в "написаном" я действительно не разбираюсь, а читаю я написанное
IT>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
... что приводит при очередном кризисе к толпе прилично оплачиваемых бездельников на улице.
Здравствуйте, Ikemefula, Вы писали: I>Какая то корреляция ЗП есть, крайне слабая, дело в том, что большинству свойственно завышать самооценку.
С ЗП кореляция будет вполне неплохая. При ЗП стремящейся к джуниорской, кол-го получаемых резюме от адекватных спецов будет стремиться к нулю. А при ЗП стремящейся к максималке по региону кол-го резюме от адекватных спецов будет достаточное кол-го, чтоб было их кого выбирать для приглашения на собеседование.
Здравствуйте, Nik_1, Вы писали:
N_>Здравствуйте, Ikemefula, Вы писали: I>>Какая то корреляция ЗП есть, крайне слабая, дело в том, что большинству свойственно завышать самооценку. N_>С ЗП кореляция будет вполне неплохая. При ЗП стремящейся к джуниорской, кол-го получаемых резюме от адекватных спецов будет стремиться к нулю.
Джуниоры кстати говоря еще книжек могут начитаться по самые нидерладны и бывает на такое ответят, что опытному ни в жысть
N_>А при ЗП стремящейся к максималке по региону кол-го резюме от адекватных спецов будет достаточное кол-го, чтоб было их кого выбирать для приглашения на собеседование.
Т.е. для того, что бы определить, крут ли спец, надо сначала определить, крут ли он. Так что ли ?
Короче, не согласен я с тобой. Раница есть, но она не такая заметная как тебе кажется.
Здравствуйте, n-839, Вы писали:
N8>Так ли плох auto_pointer? Или верить никому нельзя, и нужно самому совершить все ошибки?
Никто не говорил что auto_ptr плох- просто у него др семантика.
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Боже, какое счастье что я уже столько лет не пишу на C++
Здравствуйте, ___Avatar___, Вы писали:
___>- я ни разу не видел книги по C++ в которой на первых страницах крупным жирным шрифтом было бы прописано "10/20/30 вещей, которые вы ОБЯЗАНЫ знать про С++, чтобы не делать ляпов" — строго говоря, я не видел такой книги ни по одной области или технологии программировании
а как же Голуб, Майерс и Саттер? Книг, imho, достаточно
Здравствуйте, catBasilio, Вы писали:
B>Здравствуйте, Ikemefula, Вы писали:
I>>Avoid the naked conductor running along the bus.
I>>Валяй, пусть твой гугл переведет это.
B>гугл перевел как: Избегайте голый проводник вдоль автобуса.
B>А в чем подвох?
Это же старо как мир. Naked conductor — неизолированный провод.
Здравствуйте, shrecher, Вы писали:
S>Тоже мне виртуальный деструктор супрер знание! Ты явно что-то не понимаешь в профессии программиста.
S>ЗЫ. Если не пользоваться наследованием, а к примеру, STL его не пользует, то виртуальный деструктор бессмысленный.
Откуда дровишки?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Виртуальные функции и деструктор в том числе входят в базовые знания по С++
EOH>Зависит от того, что Вы называете базовыми знаниями. Если прочтение ISO стандарта... Кхм. Надо быть человеком с ОЧЕНЬ хорошей памятью, чтобы его запомнить. Обычно нюансы запоминаются и ПОНИМАЮТСЯ через некоторое количество лет практического использования.
Виртуальные деструкторы — это именно одна из базовых вещей, равно как и последовательность вызова конструкторов, например.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Dog, Вы писали:
Dog>Боже, какое счастье что я уже столько лет не пишу на C++
з
— Какое было мое удивление, что 90% соискателей не знают таблицы умножения!
— Боже, какое счастье, что я работаю дворником и мне не надо знать арифметику
Есть ещё один интересный вариант. Приходит человек, и технически вполне вменяемый, про виртуальный деструктор всё знает и про вирт. наследование, но ведёт себя ТАК , что получает отлуп из-за полной невменяемости. Просто все интерьюеры заявляют в одни голос "я с этим $%$(#ом работать не буду"
Здравствуйте, superman, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
S>Есть ещё один интересный вариант. Приходит человек, и технически вполне вменяемый, про виртуальный деструктор всё знает и про вирт. наследование, но ведёт себя ТАК , что получает отлуп из-за полной невменяемости. Просто все интерьюеры заявляют в одни голос "я с этим $%$(#ом работать не буду"
Здравствуйте, catBasilio, Вы писали:
I>>Avoid the naked conductor running along the bus. I>>Валяй, пусть твой гугл переведет это. B>гугл перевел как: Избегайте голый проводник вдоль автобуса. B>А в чем подвох?
Подвох вот в таких фразах:
— How do you do?
— All right!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, gear nuke, Вы писали:
М>>начал грить, что синтаксис тут неправильный, x86 кривой, все дэбилы и что если бы записали lea как оно "правильно" пишется (типа lea eax, ebx), то все было бы ништяк, а он увидел что-то типа xor ebx,ebx/lea eax, [ebx]. и грил, что это баг ЦП и дизасма, что lea eax, [ebx] и lea eax, ebx суть одно и тоже.
GN>Хоть x86 и кривой, но инструкция lea eax,ebx вполне реальна (8D C3), отличается от lea eax,[ebx] (8D 03) и безуловно будет иключение, ведь невозможно взять адрес регистра
Здравствуйте, jhfrek, Вы писали:
J>молодец, а до изобретения письменности (надеюсь ты в курсе что ее изобрели позже устной речи) и переводчики и не переводчики не только переводили, но и общались вообще не зная букв.
Т.е. ты вернешься в прошлое и там наймешь на работу переводчика ?
Тогда да, в момент перехода во времени он перестанет быть конём в вакууме.
I>>Но раз уж ты взял меня за пример, то скажу, что на бытовом уровне мне переврдчик не нужен. I>>Переводчик нужен наприер по юридическим вопросам, или по предметной области конторы. Например если я буду говорить с англоязычным математиком-физиком, мне его будет реально сложно понять. Девелопера я могу легко понять, математика-физика — вряд ли.
J>я уже понял из твоих других постов, что твоя убежденность базируется на твоем же частном случае. Тебе нужен переводчик только для разрешения юридических или специальных вопросов, значит всем нужен переводчик исключительно в этих случаях. Тебе не кажется что это несколько "эгоцентрично"?
Я примерно представляю чем занимаются переводчики, т.к. есть знакомые среди оных. Все они имеют вагон работы с текстом. Даже синхронные.
На счет эгоцентрично — ты ведь сам взял меня в качестве примера, о чем я тебе сообщил "хочешь плавно увилинуть с переводчика на меня"
Теперь мой пример тебе уже не нравится и это "эгоцентрично" ?
Плоди дальше сфероконей в вакууме.
I>>кроме того, если ты не в курсе, в задачи переводчика обычно входит вагон текстовых работ/переводов I>>Такая работа, как синхронный перевод на переговорах, требует предварительной подготовки по тематике будущей беседы.
J>да что ты говоришь. Представить себе переводчика для частных бесед ты не в состоянии. Представляешь, не все знают даже английский на бытовом уровне, а ведь это один из самых распространенных языков.
Я примерно знаю кто такой синхронный переводчик.
Представлять можно что угодно, чем ты и занимаешься — плодишь сфероконей в вакууме.
Здравствуйте, Denwer, Вы писали:
D>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
На It Happens хорошая история про то, что первично — знание английского или знание английских букв
Лет пятнадцать назад в технике я разбирался ещё не очень, зато неплохо знал английский, чем пользовались все родственники и друзья.
История началась, когда друг отца приобрел какую-то приставку к телевизору — редкость на тот момент. При включении она выдавала загадочный текст на английском и продолжать работу не желала. На просьбу приехать и объяснить, что делать с этим чудом, я посоветовал ему взять словарь и перевести — со временем было туго. Мужик к делу подошел серьёзно и купил двухтомный словарь. Вскоре, полный отчаяния, он опять позвонил мне — не смог найти в словаре ни одного слова!
Раздосадованный и заинтригованный одновременно, приезжаю. Программа выдаёт длинный список имен разработчиков! Неудивительно, что в словаре их не нашлось. Последней строчкой шло указание, какую кнопку нажать для продолжения, но до неё горе-переводчик уже не добрался.
Здравствуйте, Ikemefula, Вы писали:
I>Т.е. ты вернешься в прошлое и там наймешь на работу переводчика ?
нет, я в настоящем найму переводчика на китайский, если поеду в Китай. И меня будет интересовать его умение переводить бытовую устную речь, ибо при бытовом общении я говорю, а не пишу.
J>да что ты говоришь. Представить себе переводчика для частных бесед ты не в состоянии. Представляешь, не все знают даже английский на бытовом уровне, а ведь это один из самых распространенных языков. I>Я примерно знаю кто такой синхронный переводчик.
Молодец. Если сумеешь выйти за узкие рамки знаний о жизни, основанные на профессиональной деятельности тебя и твоих знакомых, то сумеешь понять меня и свою неправоту.
Здравствуйте, Ikemefula, Вы писали:
I>Какое именно исключение должно быть по твоему ?
#UD
Не только должно, но и есть — Виндовс скажет STATUS_ILLEGAL_INSTRUCTION
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, jhfrek, Вы писали:
I>>Т.е. ты вернешься в прошлое и там наймешь на работу переводчика ?
J>нет, я в настоящем найму переводчика на китайский, если поеду в Китай. И меня будет интересовать его умение переводить бытовую устную речь, ибо при бытовом общении я говорю, а не пишу.
Ты опять виляешь. Речь была про английский язык.
В китайских языках письменный и устный это совершенно разные языки. Более того, письменноть одна на все китайские языки, которые отличаютяс между собой очень сильно, например грамматикой, настолько сильно, что не ясно, почему они именуются диалектами.
J>>да что ты говоришь. Представить себе переводчика для частных бесед ты не в состоянии. Представляешь, не все знают даже английский на бытовом уровне, а ведь это один из самых распространенных языков. I>>Я примерно знаю кто такой синхронный переводчик.
J>Молодец. Если сумеешь выйти за узкие рамки знаний о жизни, основанные на профессиональной деятельности тебя и твоих знакомых, то сумеешь понять меня и свою неправоту.
ты определись то с примерами, то мой пример хороший, то плохой, то ты себя в качестве примера взял, сначала был английских язык, потом какой то абстрактный, потом китайский.
Здравствуйте, Ikemefula, Вы писали:
J>>нет, я в настоящем найму переводчика на китайский, если поеду в Китай. И меня будет интересовать его умение переводить бытовую устную речь, ибо при бытовом общении я говорю, а не пишу. I>Ты опять виляешь. Речь была про английский язык.
ну сними же шоры Ты считаешь что все знают английский? Я тебе раскрою глаза — есть люди, для которых английский, что для тебя или меня китайский. Я тебе попытался помочь, привел пример языка в незнание которого тебе будет проще поверить, чем в незнание английского, а ты... похоже желание "победить" в споре у тебя сильнее любых доводов разума
I>В китайских языках письменный и устный это совершенно разные языки. Более того, письменноть одна на все китайские языки, которые отличаютяс между собой очень сильно, например грамматикой, настолько сильно, что не ясно, почему они именуются диалектами.
не важно как обстоят дела в китайском или прочих языках, если тебе нужен переводчик для общения, он должен быть хорошим переводчиком именно для общения, тем более что он еще и дешевле чем переводчик с совершенно бесполезным на бытовом уровне знанием юридической специфики.
J>>Молодец. Если сумеешь выйти за узкие рамки знаний о жизни, основанные на профессиональной деятельности тебя и твоих знакомых, то сумеешь понять меня и свою неправоту. I>ты определись то с примерами, то мой пример хороший, то плохой, то ты себя в качестве примера взял, сначала был английских язык, потом какой то абстрактный, потом китайский. I>виляй вобщем дальше.
вот я и говорю что ты неадекватен в общении — ты не читаешь то, что тебе пишут и тупо доказываешь свою правоту, даже когда неправ.
Здравствуйте, любой, Вы писали:
G>>Круто. А на основе чего получаешь проценты?
Л>Сбережения за пару лет работы на обычные банковские депозиты положил, да и всё. Доход не хуже, чем у официанта Макдональдса. Инфляция, конечно, беспокоит. Если всю жизнь так жить, недвижимость потом придётся продавать.
Полностью поддерживаю идею о том, что жить надо на процент от банковского вклада.
Но инфляция и траты на жизнь превышают банковский процент. Рано или поздно капитал утечет.
Поэтому мне кажется, что часть капитала должна крутиться в более рисковых, но и более доходных, инвестициях, например в доверительном управлении.
Здравствуйте, gyraboo, Вы писали:
G>Полностью поддерживаю идею о том, что жить надо на процент от банковского вклада. G>Но инфляция и траты на жизнь превышают банковский процент. Рано или поздно капитал утечет.
На этот случай небольшой запас недвижимости имеется.
G>Поэтому мне кажется, что часть капитала должна крутиться в более рисковых, но и более доходных, инвестициях, например в доверительном управлении.
Доверительное управление начинается с нехилых сумм. Впрочем, я тем, кто им занимается, никак доверять не могу. Так же как и ПИФам. Пока рынок растёт, туда просачивается куча придурков. Были тут статьи, типа инвест фондом управлял бывший официант без высшего образования.
Здравствуйте, RedUser, Вы писали:
S>>А что, может и подскажу.
RU>ИМХО, cppboris спрашивал, что делать рядовому работнику в этой ситуации, а вы написали, что делать работодателю/руководителю.
Ога, ога... только я сообщением ранее написал что делать работнику — не надо на два стула одним местом садиться — это раз, заниматься тем чем интересно и стремиться быть лучшим — это два, не нищебродствовать клепая формочки на делфи за паёк доширака — это три...далее надо говорить?
Здравствуйте, RedUser, Вы писали:
S>>А что, может и подскажу.
RU>ИМХО, cppboris спрашивал, что делать рядовому работнику в этой ситуации, а вы написали, что делать работодателю/руководителю.
НУ и конечно уважать себя в достаточной степени для того что бы уйти от туда где ты занимаешь чужое место. Только вот всё меньше и меньше народ себя уважает видимо, иначе откуда столько историй про — "2^8 = а накуй оно нужно, йа апще игры писать хачу!". =)
Здравствуйте, jhfrek, Вы писали:
J>>>нет, я в настоящем найму переводчика на китайский, если поеду в Китай. И меня будет интересовать его умение переводить бытовую устную речь, ибо при бытовом общении я говорю, а не пишу. I>>Ты опять виляешь. Речь была про английский язык.
J>ну сними же шоры Ты считаешь что все знают английский? Я тебе раскрою глаза — есть люди, для которых английский, что для тебя
или меня китайский. Я тебе попытался помочь, привел пример языка в незнание которого тебе будет проще поверить, чем в незнание английского, а ты... похоже желание "победить" в споре у тебя сильнее любых доводов разума
Я не выдумываю сферических коней что бы победить в споре
I>>В китайских языках письменный и устный это совершенно разные языки. Более того, письменноть одна на все китайские языки, которые отличаютяс между собой очень сильно, например грамматикой, настолько сильно, что не ясно, почему они именуются диалектами.
J>не важно как обстоят дела в китайском или прочих языках, если тебе нужен переводчик для общения, он должен быть хорошим переводчиком именно для общения, тем более что он еще и дешевле чем переводчик с совершенно бесполезным на бытовом уровне знанием юридической специфики.
А что ты будешь делать, если надо будет документ прочесть, подписать и тд ?
Будешь нанимать второго переводчика, который хоро читает/пишет, но не умеет говорить ?
I>>ты определись то с примерами, то мой пример хороший, то плохой, то ты себя в качестве примера взял, сначала был английских язык, потом какой то абстрактный, потом китайский. I>>виляй вобщем дальше.
J>вот я и говорю что ты неадекватен в общении — ты не читаешь то, что тебе пишут и тупо доказываешь свою правоту, даже когда неправ.
Я , прикинь, читаю и аргументирую, а не выдумываю аргументы вроде сфероконей в вакууме.
Для начала придумай хоть один более менее реальный сценарй, откуда может взяться переводчик английского без знания букв, а потом поговорим кто тут адекватен.
Здравствуйте, Ikemefula, Вы писали:
J>>ну сними же шоры Ты считаешь что все знают английский? Я тебе раскрою глаза — есть люди, для которых английский, что для тебя I>или меня китайский. Я тебе попытался помочь, привел пример языка в незнание которого тебе будет проще поверить, чем в незнание английского, а ты... похоже желание "победить" в споре у тебя сильнее любых доводов разума
I>Я не выдумываю сферических коней что бы победить в споре
то есть человек, не знающий китайский или английский — это, для тебя, "сферический конь". Да уж, ты "аргументируешь"
I>А что ты будешь делать, если надо будет документ прочесть, подписать и тд ?
какой раз уже прошу — сними шоры, люди не только в командировки за границу ездят
I>Для начала придумай хоть один более менее реальный сценарй, откуда может взяться переводчик английского без знания букв, а потом поговорим кто тут адекватен.
любой ребенок в двуязычной семье является таким переводчиком, к примеру, для бабушки с дедушкой, приехавших в гости
английского, а ты... похоже желание "победить" в споре у тебя сильнее любых доводов разума
I>>Я не выдумываю сферических коней что бы победить в споре
J>то есть человек, не знающий китайский или английский — это, для тебя, "сферический конь". Да уж, ты "аргументируешь"
Сферический конь это переводчик английского который не знает английских букв, которого ты выдумал.
Виляй дальше.
I>>Для начала придумай хоть один более менее реальный сценарй, откуда может взяться переводчик английского без знания букв, а потом поговорим кто тут адекватен.
J>любой ребенок в двуязычной семье является таким переводчиком, к примеру, для бабушки с дедушкой, приехавших в гости
... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
Как видишь, ты выдумал гораздо больше, чем про буквы, еще и грамматику приплел.
Боле того, сначала речь была про найм на работу, менталитет двух народов, перевод на лету и без ошибок и все это "любой ребенок в двуязычной семье является таким переводчиком"
Здравствуйте, minorlogic, Вы писали:
M>В С++ нет виртуальных конструкторов, вы что то путаете или невнимательно читали мой пост. В конструкторе и деструкторе при вызове виртуальных функций, они не являются виртуальными.
Виртуальный конструктор есть в GoF. Второе высказывание неверно.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, minorlogic, Вы писали:
M>>В С++ нет виртуальных конструкторов, вы что то путаете или невнимательно читали мой пост. В конструкторе и деструкторе при вызове виртуальных функций, они не являются виртуальными. AG>Виртуальный конструктор есть в GoF.
А у моей тети есть стеклянный глаз, как это относится к С++ ?
AG>Второе высказывание неверно. http://www2.research.att.com/~bs/bs_faq2.html
" In a constructor, the virtual call mechanism is disabled "
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Виртуальный такой деструктор... вообще то по умолчанию это обязан знать девелопер работающий на сложном проекте. Но! Дев который работал всю жизнь на маленьких проектах и разрабатывающий утилиты, разрабатывая на С++ некие мат алгоритмы — вполне могут прожить без знания виртуальных деструкторов.
Здравствуйте, любой, Вы писали:
Л>Доверительное управление начинается с нехилых сумм. Впрочем, я тем, кто им занимается, никак доверять не могу. Так же как и ПИФам. Пока рынок растёт, туда просачивается куча придурков. Были тут статьи, типа инвест фондом управлял бывший официант без высшего образования.
это что же, обезьяна может успешно управлять, а официант — нет?
Здравствуйте, avgur, Вы писали:
Л>>Были тут статьи, типа инвест фондом управлял бывший официант без высшего образования.
A>И как управлял? Прое...л все? Или на своем месте оказался?
Ну, типа, пока рынок рос, и фонд рос не хуже. А как крызис — приземлился по полной программе.
Здравствуйте, elmal, Вы писали:
E>Ужасает то, что 25-30 дают тем, кто вообще не может кодировать.
Тогда берите узбеков каких-нить. Они будут подешевле, да и толку побольше.
Здравствуйте, любой, Вы писали:
Л>Ну, типа, пока рынок рос, и фонд рос не хуже. А как крызис — приземлился по полной программе.
Тык вроде даже некоторые нобелевские лауреаты по экономике приземлились по полной
А обезьянка кстати в кризис наторговала лучше чем большинство профессионалов
Здравствуйте, Miroff, Вы писали:
M>Здравствуйте, IT, Вы писали:
IT>>Они не знали что такое виртуальный деструктор. Т.е. как минимум эти люди никогда не открывали спецификацию языка, на котором писали по 10 лет.
M>Спеки вообще почти никто не читает. Хрен знает почему так. Из сотен людей, с которыми мне доводилось работать, спецификацию языка читали от силы пятеро. Остальным это как-то не мешало быть вполне приличными программистами.
Чтение спецификации без цели нихрена не даст. Все забудется моментально. А вот в процессе... Буду говорить про джаву, потому как на плюсах я последнее что писал — курсач на 3 курсе(потом уже все на джаве). Я целиком спеку не читал. Потому, скажем, если бы у меня до того, как мне понадобилось однажды проигнорировать некоторые поля класса при сериализации, на собеседовании спросили без гугла, что означает модификатор transient, я бы не ответил. А вроде как тоже база — ключевое слово же.
Вобщем, запоминается то, что человеком уже использовалось. Хотя в 10 лет опыта на плюсах и полное отсутствие мыслей по поводу предназначения виртуального деструктора верится слабо. Даже мне, жависту, пришли в голову мысли, подобные мыслям elmal
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
S>>>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном. CC>>Проект под Win 2008R2 CC>>С + С++ + С# CC>>Ядро С + С++ CC>>Гуй на C#
CC>>Вноси в статистику
S>Один проект? Богато.
Всего-то си, плюсы и шарп? Ты, видимо, действительно "богатых" в плане используемых технологий систем не видел.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, jhfrek, Вы писали:
J>>>можно делать как в hflabs — высылать несложное тестовое задание и смотреть на него, а не на резюме N_>>Лучше уж краткое телефонное собеседование, тестовым заданием можно легко хороших спецов распугать.
J> в смысле распугать? Вы не станете решать тестовое задание если условия работы будут лучше, работа престижнее и зарплата на треть больше потому что хорошему спецу неохота, некогда и т.п.?
Уж не знаю, насколько я хороший спец, но лично я не стану. Указанные преференции не так велики плюс призрачны(и неизвестно, что может достаться в нагрузку: смена работы лотерея всегда), а треть зп — не тот порог. Денег лично мне в общем случае полностью хватает, и плюс треть зп ничего не изменит качественно в жизни. А тут еще и тестовое.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, catBasilio, Вы писали:
B>А в чем подвох?
Это классический пример фразы, которую вне контекста можно перевести несколькими способами. Начиная от "Остерегайтесь обнаженного проводника, бегающего под вагоном" до "Избегайте помещать оголенные проводники в жгут"
C>Позволить себе не учиться или не переучиваться — может , на самом деле , очень небольшой процент профессий. C>Программисты этого себе вообще не могут позволить . C>Учиться приходится постоянно ... мне пока это нравится . C>И меня сильно удивляют программисты , которые не любопытны , и считают что уже достигли вершин лондонского дна. C>Вот только со временем проблемы
Неа. обычно это не "считают что уже достигли вершин " а приходит осознание того что всю жизнь бежать за технологиями — рано или поздно споткнешься, и пора чтото в жизни кардинально менять, чтобы такой фигней больше вообще не заниматься.
On 03/12/2010 06:01 PM, vpchelko wrote: > > разрабатывая на > С++ некие мат алгоритмы — вполне могут прожить без знания виртуальных > деструкторов.
Но скромно в НИИ каком.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Хорошо нам, делфистам, у нас деструкторы изначально виртуальные и никто не задает по этому поводу глупых вопросов :)
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Ikemefula, Вы писали:
I>>А ты таки попробуй свою писанину перечитать.
J>к зеркалу — ты влез в чужой диалог, ты и перечитывай.
J>Заодно и свой ответ landerhigh, которомы ты возразил "вильнув" и переведя тему с бытового перевода на перевод профессиональный
Читать ты не умеешь. Так что тренируйся:
"то можно нанимать например переводчика, который даже не знает английских букв"
Если речь о найме, то и еду понятно, что перевод профессиональный.
Теперь читаем слова одного дурачка, который выдумыват коней только что бы взять вверх в споре (т.е. опускается ниже плинтуса)
"переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу,"
поскольку речь про перевод на лету, менталитет двух народов, перводчиков во множественном числе и обратно найм на работу, то речи про детей, китайский язык и вообще всего того, куда ты хочешь увильнуть быть просто не может.
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, IID, Вы писали:
IID>> Как он будет переводить не зная букв ? Ребята, включите мозги блин. Поощрять невежество нельзя!
J>сам включи, вместе с логикой а потом поговори в 2-х летним ребенком не знающим букв и подумай как невежество соотносится с профессионализмом и формализацией знания
Двухлетнего ребенка ты бы стал нанимать на работу, буде ты ответственным за найм переводчиков ?
Здравствуйте, jhfrek, Вы писали:
LVV>>Это все же больше исключение, чем правило...
J>у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов
Ога, двухлетних нативных детей для переводов разговоров на бытовые темы.
Здравствуйте, Vzhyk, Вы писали:
V>On 03/12/2010 06:01 PM, vpchelko wrote: >> >> разрабатывая на >> С++ некие мат алгоритмы — вполне могут прожить без знания виртуальных >> деструкторов. V>Но скромно в НИИ каком.
Имхо, работаю девелопером уже 4год на большом проекте. Вирт деструкторы ползовался ... забыл когда...
Здравствуйте, quwy, Вы писали:
Q>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми? Q>Хорошо нам, делфистам, у нас деструкторы изначально виртуальные и никто не задает по этому поводу глупых вопросов
Зато там много интересного, чего в с++ нет.
А ну-ка, как реализуется в делфи отношение [классов] типа "метакласс" ?
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, PepperPuh, Вы писали:
PP>>Хотя, если честно, виртуальный деструктор избит уже до состояния такой кровавой каши, что мне казалось даже программисты 1С знают это.
D>Сначала я этого не спрашивал, думал что это дейтсивтелньо стыдно спросить. Но после некоторого количества интервью я понял, что это многих ставит в тупик, и я просто теперь начинаю с этого вопроса.
еще один крутизень решил выступить с темой "какой я крутой, что валю кодерков на собеседованиях". мало человеку самоутверждаться за счет собеседуемых, так еще и на форуме выступить, так сказать, закрепить статус.
вот из-за таких и приходится повторять всю эту лажу про деструкторы и разницу интерфейсов и абстрактных классов, да задачи про амеб, перед каждым собесом (оно конечно полезно иногда для мозга).... а потом успешно все это забывать и через годик-другой работы не быть в состоянии на лету вспомнить.
кстати, в результате ни в одну из таких контор я так и не устроился, все где работал, были адекватными. но учить эти вопросы приходится не ради самого трудоустройства, а чтобы хоть чуть-чуть поменьше мямлить "ээээ" перед такими, как топикстартер. Ведь их большинство при прохождении интервью, и их тоже надо долго отсеивать, прежде чем найдешь нормальных.
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Denwer, Вы писали:
D>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика. Если бы я отвечал за прием переводчиков на работу, я бы взял его, а не вчерашнего студента, который наизусть знает все правила и запинается в реальной жизни.
J>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
действительно, кто лучше переведем — проживший в англии и россии по 10 лет и говоривший нейтивом на обоих языках, или закончивший недавно филфак студент, зато всегда знающий где надо инфинитив, а где герундий? последние, насколько я по опыту знаю, и в родной речи часто делают кучу ошибок.
или совсем уж живой пример — кому бы вы доверили работать водителем — только что закончившему автошколу или водиле с десятилетним стажем? по себе помню, что когда заканчивал автошколу, знал все нюансы ПДД почище инспекторов гаи, а сейчас не помню даже сигналов регулировщика...
Здравствуйте, vpchelko, Вы писали:
V>Имхо, работаю девелопером уже 4год на большом проекте. Вирт деструкторы ползовался ... забыл когда...
Значит ты не проектировал более-менее сложных иерархий классов. Скорее всего просто расширял существующие. Это не плохо, само по себе, просто хорошо характеризует твой опыт
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Какая-то страная дискуссия получилась. Разумеется, далеко не в каждом проекте требуется глубокое знание языка программирования. Более того, налицо очевидная тенденция к примитивизации. См. напр. здесь. С другой стороны, не всегда очевидно, какое именно подмножество языка адекватно конкретному проекту, так что, с моей точки зрения, позиция типа "а мне это никогда не приходилось использовать" — не очень корректная. А где гарантия, что использованное подмножество языка и в самом деле оптимальное? Не говоря уже о том, что легко применить
конструкцию, допускаемую языком, неправильно, даже не подозревая о том, что "прозой говоришь". В конце концов Эллочка-людоедка вполне успешно обходилась 30 словами! Или кто-то считает это нормальным? Хотя аналогия с естественными языками, на мой взгяд вообще некорректна. Естественная речь предназначена для людей, которые пока что значительно лучше компьютеров справляются с неоднозначными конструкциями, да и, в случае чего, переспросить могут.
Здравствуйте, egaron, Вы писали:
E>еще один крутизень решил выступить с темой "какой я крутой, что валю кодерков на собеседованиях".
собеседование -- это не экзамен. экзаментатору в общем по фиг, что тебе ставить. а вот твоему нанимателю уже не по фиг. и валить ему смысла нет. а если он действительно валит и кидает панты, то наивно надеяться, что вы с ним сработаетесь.
E> мало человеку самоутверждаться за счет собеседуемых, так еще и на форуме выступить, так сказать, закрепить статус.
да никто так уже давно не самоутверждается. не, ну я тоже грешен. бывает, словишь такое, что весь отдел ляжет и ни хвоста понять не может, и тут же берешь на заметку -- надо спросить на собеседовании. но не потому что панты кинуть (получи фашист гранату типа), а просто посмотреть на рекацию человека. ну да. у него стресс, а мы его гранатой. не гуманно. ну а у нас не стресс??? да у нас каждый день стресс...
E> вот из-за таких и приходится повторять всю эту лажу про деструкторы и разницу интерфейсов и абстрактных классов,
не, ну я плюсов _совсем_ не знаю. то есть абсолютно. но про виртуальные деструкторы и то в курсе. если же вы говорите, что знаете плюсы, то извольте отвечать за базар. знать язык и программировать что-то на нем -- не одно и тоже. я не знаю жаба скриптов. но пишу на них по ходу дела. потому как работа требует.
E> да задачи про амеб, перед каждым собесом (оно конечно полезно иногда для мозга)....
меня абемами не пытали. а всем, чем пытали -- пригодилось так или иначе.
E> кстати, в результате ни в одну из таких контор я так и не устроился, все где работал, были адекватными. E> но учить эти вопросы приходится не ради самого трудоустройства, а чтобы хоть чуть-чуть поменьше мямлить E> "ээээ" перед такими, как топикстартер.
да ладно вам. на 90% вопросов (в средем) из задаваемых мне на собеседованиях я вообще ничего не мог ответить. из последних запомнившихся — там dll писана на плюсах, а юзается из сишной проги. причем функция вызывается через GetProcAddr и имя у нее сишное. да еще и с прочерком. типа _CDecrypt__Decode. вопрос: что неправильно? ну я бравым маршем смотрю в dll, вижу в экспорте замагленное имя и грю — вот это и неправильно. ответ неверный. нет вызова конструктора. и нет деструктора. ну да. лопухнулся. смотрю в код. а констрктор-то ни хвоста не делает. и десктрутор тоже. то есть как бы я прав, а как бы не очень. но я действительно тормознул. в общем случае с именем проблем не будет (у нас же есть библиотека, да?) а вот на си выполнять работу приплюснутого компилятора придется руками. хотя я и прошел, но понял, что эту тему основательно подзабыл.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
кстати, по поводу темы.
в течение всей карьеры есть у меня одно наблюдение. Когда я читал код своих коллег, то заметил интересную особенность.
Наиболее работающий и эффективный код как раз пишут те, кто пишет без наворотов.
На нескольких работах были у меня коллеги, у которых, когда смотрел код, восхищался — как они много и правильно пишут, и все работает, и почти нет багов. лично у меня производительность на порядок ниже.
но... в их коде я часто замечал всякое отсутствие навороченности — более того, применяются конструкции и стиль кодирования, за который бы на любом собеседовании ехидно бы высмеяли, и детали, которые каждый второклассник-дотнетчик знает, не соблюдены. Так, например, сравнение строки с пустым литералом вместо сравнения длины с нулем, неиспользование стрингБилдера, сложение строк вместо стрингбилдера и string.format, чрезмерное и неоправданное использование сессии и элементов постбэка в вэбе, даже наименования параметров метода с большой буквы режут глаз, ибо ни под какую нейм-конвеншн не подходят.
работа с БД тоже построена так, что один и тот же запрос исполняется несколько раз, вместо того, чтобы создать класс, который достает всю инфу сразу, о кэшировании вообще нет и речи. и многое другое.
однако, возникала ли у меня хоть когда-либо мысль раскритиковать такой код? нет нет и еще раз нет! код простой, не использует паттернов, во многом не оптимален с точки зрения производительности, но главное... он работает! и работает, мало того, правильно и безбажно! и лопатит огромные объемы бизнес-логики, которые увлекающийся какими-нибудь фреймворкнаворотами, паттернами и фабриками талантливый кодерок попросту не осилит и погрязнет в них. Я вот, например, писать так много, быстро и правильно — не умею, и склонен, как тот кодерок, погрязать в абстракциях.
да даже элементарных проверок на нулл для полей методов во многих местах в этмо коде нету, из-за чего случаются падежи, (например, прямый обращения объект.метод1.поле2 при том ,что сам объект==нулл). ну и что — это поправляемо, зато код работает правильно, четко и выполняет свою задачу — а заказчик проверяет отнюдь не качество кодирования...
И такой, как я привел выше, код — встречал я на нескольких работах как раз у наиболее грамотных, продвинутых и высокопроизводительных коллег.
поэтому маловажность бизнес-логики тут напрасно недооценивают.
Здравствуйте, sss1024, Вы писали:
S>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.
Ты знаешь, ситуация ровно наоборот. В связи со всякими C# и Java в последние годы сообщество С++ программистов довольно неплохо очистилось от балласта, и я был приятно удивлен, что нынче практически не попадаются "невменяемые".
Здравствуйте, Ikemefula, Вы писали:
J>>у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов I>Ога, двухлетних нативных детей для переводов разговоров на бытовые темы.
да, придумать фигню, а потом ее опровергнуть — это твоя методика ведения дискуссии, я помню.
Здравствуйте, Ikemefula, Вы писали:
J>>к зеркалу — ты влез в чужой диалог, ты и перечитывай. J>>Заодно и свой ответ landerhigh, которомы ты возразил "вильнув" и переведя тему с бытового перевода на перевод профессиональный I>Читать ты не умеешь. Так что тренируйся: I>"то можно нанимать например переводчика, который даже не знает английских букв" I>Если речь о найме, то и еду понятно, что перевод профессиональный.
"еду" может быть и понятно, а про бытовой я тебе уже несколько раз написал. Так что с претензиями по умению читать к зеркалу.
к примеру здесь:
не важно как обстоят дела в китайском или прочих языках, если тебе нужен переводчик для общения, он должен быть хорошим переводчиком именно для общения, тем более что он еще и дешевле чем переводчик с совершенно бесполезным на бытовом уровне знанием юридической специфики.
я тебе выделил даже, что бы ты не путался в словах
I>Теперь читаем слова одного дурачка
Здравствуйте, jhfrek, Вы писали:
I>>Читать ты не умеешь. Так что тренируйся: I>>"то можно нанимать например переводчика, который даже не знает английских букв" I>>Если речь о найме, то и еду понятно, что перевод профессиональный.
J>"еду" может быть и понятно, а про бытовой я тебе уже несколько раз написал. Так что с претензиями по умению читать к зеркалу.
Да, ты несколько раз хотел поменять исходную задачу, это заметно.
Скажи ты что нибудь внятное, например, "человек со знанием двух языков, но без знания алфавита и грамматики в ряде случаев может быть полезнее студента ин-яза", то можно было бы согласиться
Но ты пошел дальшеи наплел ахинеи столько, что превратил идею в сфероконя.
J>
J>не важно как обстоят дела в китайском или прочих языках, если тебе нужен переводчик для общения, он должен быть хорошим переводчиком именно для общения, тем более что он еще и дешевле чем переводчик с совершенно бесполезным на бытовом уровне знанием юридической специфики.
J>я тебе выделил даже, что бы ты не путался в словах
Это хороший пример, показывае как ты пробуешь изменить условие.
I>>Теперь читаем слова одного дурачка
J>ты себя перечитываешь?
Вот ты уже свои слова перестал узнать, что неудивительно.
Здравствуйте, jhfrek, Вы писали:
J>>>у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов I>>Ога, двухлетних нативных детей для переводов разговоров на бытовые темы.
J>да, придумать фигню, а потом ее опровергнуть — это твоя методика ведения дискуссии, я помню.
Здравствуйте, Ikemefula, Вы писали:
I>Скажи ты что нибудь внятное, например, "человек со знанием двух языков, но без знания алфавита и грамматики в ряде случаев может быть полезнее студента ин-яза", то можно было бы согласиться
ты сумел превозмочь ЧСВ и понять что я имел в виду в самом начале — респект. Значит не зря я тратил свое время на переписку.
BTW, он может быть полезнее не только студента, но и супер-специалиста. Просто потому что дешевле и физически доступнее
Здравствуйте, любой, Вы писали:
Л>Здравствуйте, TarasCo, Вы писали:
TC>>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?
Л>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.
Если чё, то тут речь идет, видимо, про среднеформатные цифровые зеркалки целиком или цифровые задники для пленочных среднеформатных зеркалок. Только фигня в том, что они ни капли не скоростные и из-за огромного количества точек на матрице обладают весьма скромным диапазоном рабочих ISO — на 800 уже мало кто будет их использовать. Потому применяются они в довольно узкой области — студийная рекламная или fashion / glamour съемка. Так что простому любителю они вряд ли будут сильно полезны в чём-то.
Здравствуйте, AndrewVK, Вы писали:
AVK>Это ладно. Здесь были вакансии, требующие в 2003-2004 году опыт использования дотнета более 3 лет.
В 2004 — вполне возможно.
"By late 2000 the first beta versions of .NET 1.0 were released." (из wiki)
В этом не уверен, но в январе-феврале 2001 года Visual Studio .NET уже был широкодоступен.
Здравствуйте, Denis Mingulov, Вы писали:
DM>В этом не уверен, но в январе-феврале 2001 года Visual Studio .NET уже был широкодоступен.
First beta version без коммерческой лицензии довольно сложно засчитывать за реальный опыт использования. Помню я эту первую бету — хромала на обе ноги. Побаловаться можно, использовать нельзя даже без студии.
... << RSDN@Home 1.2.0 alpha 4 rev. 1466 on Windows 7 6.1.7600.0>>
Я не знаю, шутите Вы или всерьез, но все очень сильно зависит от рынка, на котором работаете.
Допустим, делается некрупная онлайн система (ну, так для числа посещений порядка 10 тысяч в сутки, скажем, число форм/страниц порядка 100). Заказ для забугорного заказчика, принцип примерно такой: сделали, протестировали на наборе данных, отдали заказчику погонять на его площадке, получили таньгу и забыли.
Тады да, соглашусь, подход неплохой, позволяет срубить побольше денег с меньшими затратами. Наколбасить кода, получить деньгу и перейти к следующему заказчику.
Ежели вы работаете над большим продуктом, каждый экземпляр которого пользуется кучей пользователей (скажем, некоторая веб-платформа для конечных клиентов, число инсталяций порядка 1000), и должны поддерживать его на протяжении сравнительно длительного времени, то это очень чревато получением проблем на свою пятую точку. Нужна производительность — запросы должны быть оптимальными чуть менее, чем полностью, проанализирована статистика, индексы где надо созданы и пр. Нужно качество, чтобы не плодить недовольных пользователей и не получать по голове от начальства за отказы кастомеров от использования продуктом и требования refund.
Например.
Не проверили объект на валидность — рано или поздно граблями получим по лбу, так как данные подсунули не те, которые ожидались, библиотека, которую пользуем, содержит косяки, или нашу утилитную функцию начали использовать в контексте, который мы не протестировали или не подозревали. В результате, не проверенный код возврата, не проверенные границы значений, да и null-pointer наконец привели к исключению, бросаемому, скажем, в 1% случаев. Помножим на 10 тысяч в день на кастомера — 100 случаев в день. Помножим на 1000 кастомеров — 100 тысяч инцидентов в день. Допустим, 0.1% из них получит жалобу, до нашего сапорта дойдет 100 запросов в день. Они сядут разбираться своими силами, день-два-три-неделю. Поднимут наверх. В конще концов дойдет до девелоперов.
Сесть поковырять и дойти до проблемы — 2-3 дня, решить — 1 день, проверить что не сломались остальные сценарии и этот починили — 2-3 дня. Выкатить фикс, сообщить кастомерам, написать инструкцию, написать в форумы, что пробему решили и пр. — еще время. В общем, от обнаружения проюдемы до решения у кастомера — от недели до месяца в остром случае, а иногда и годы требуются. Скока за это время инцидентов произойдет? Что конечные пользователи скажут про разработчиков (MS/Adobe/Google/Amazon/ebay must die?)
Помножим на число проблем. Обеспечены работой на долгие годы. Крутимся, на виду у начальства, показываем полезность и периодически просим повышения. Круто, но как-то грустно. Оно надо? Каждому — свое.
При этом, когда подходишь к некоторым таким разработчикам, самый первый и самый стандартный ответ — "у меня на машине все работает, я проверял, у этих кастомеров что-то не то с кривизной рук". Через полгода-год гонор у кого-то поутихает, но не всегда. Мы тут прогресс вперед двигаем, а какие-то пользователи под ногами путаются и жить мешают, мы же все о них заботимся, чтобы им было лучше, а они еще и возмущаются.
Причем, что интересно, люди достаточно часто, начинают использовать какие-то методы оптимизации своей работы, например, выносят код в библиотечные/утилитные методы, переходят на новую библиотеку/framework и пр. Те, которые обращают внимание на качество кода (своего и чужого), получают более качественное и более-менее оптимальное решение. Причем иногда получаются довольно удивительные вещи, например, одной строчкой кода в юнит-тесте протестировать реакцию метода на нулевые/пустые аргуметны поочередно, по одному (на .Net, ага, Expressions и пр. вкусности). И производительность (в количестве выполненной работы) хорошая, и кавчество с этой точки зрения не страдает.
Про соответствие вопросам на собеседованиях и тому, что надо делать в реальности на работе — избитый вопрос. Точно так же и то, что на собеседовании очень сложно понять психологический портрет кандидата и понять насколько он/она сможет решать важные нетехнические вопросы/проблемы. Сложно обеим сторонам, но как-то эту преграду можно туннелировать и решить. Кандидатам — подготовиться по списку стандартных вопросов. Работодателям — устраивать некоторое подобие аттестации.
Истина, как всегда где-то посередине между крайностями. Например, смотреть реакцию на разные вопросы с открытыми ответами — типа, начальство настаивает на таком варианте решения проблемы. Ваши действия? Или вот, есть такая глобальная проблема — какие подходы видите, как будете решать, плюсы и минусы? и пр. Причем, это не спасает во всех 100% случаев, да хоть и в 50%, тоже сложно все это проверить. Жисть такая.
В общем, резюме, я за непроверку объекта на null-reference бил бы линейкой по рукам. А наколбасить 500 строк кода за день особой заслугой не считаю. Даже хорошо документированного. Плавали-знаем. Нужен какой-то баланс качества и количества. В разных ситуациях — разный.
При этом, кодирование в общем объеме работы занимает от 5 до 95% времени на одного разработчика. Тоже от компании и проекта зависит. И кто какую нишу смог занять, там тому и счастье. Поменялось что — прыгай в другую лунку, при возможности.
За сим раскланяюсь,
Ваш Капитан Очевидность.
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС
Здравствуйте, quwy, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми? Q>Хорошо нам, делфистам, у нас деструкторы изначально виртуальные и никто не задает по этому поводу глупых вопросов
Ну, нам, жавистам, еще проще. Деструкторов вообще нет, и все методы по-умолчанию виртуальные. Правда, вопросы по тому, зачем нужен метод finalize есть(хотя в реале он используется крайне редко, и, в отличие от виртуальных деструкторов в плюсах, знание о нем таким уж необходимым не является), но это зависит от степени фимозности головного мозга у собеседующего.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, msk78, Вы писали:
M>Но. Всё равно на новой работе придётся заниматься немного другим.
но это не факт. придет такой человек и напортачит. деструктор виртуальным не объявит, где следует, память потечет, придется вылавливать странные баги. если считать, что понимание виртуального деструктора — это то, что можно по ходу работы узнать, то что, собственно, считать базой?
M>Я, например, на текущей работе уже несколько раз использовал WMI, но ведь никто меня, НИКТО, не спрашивал при приёме работу его знания. Но ведь как-то работаю, делаю своё дело. У нас используется система управления бизнес-потоками K2.NET. И тоже всё в порядке — работаю, выполняю свои функции — меня предупредили, что она есть, почитал, усвоил. Коллеги помогли.
мне кажется, что одно дело язык, другое — конкретные компоненты и фреймворки.
M>Современный мир программирования — это мир командной работы! Скажите человеку, что у вас в проекте используются виртуальные диструкторы и что это важно и он будет их использовать.
а потом ему надо будет сказать, что у нас используются виртуальные функции и что это важно, и он полезет узнавать, что это такое. потом про dynamic_cast какой-нить узнает, потом то, потом другое, а там, глядишь, уже и язык выучил
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, sss1024, Вы писали:
S>>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.
V>Ты знаешь, ситуация ровно наоборот. В связи со всякими C# и Java в последние годы сообщество С++ программистов довольно неплохо очистилось от балласта, и я был приятно удивлен, что нынче практически не попадаются "невменяемые".
В этой теме звучит несколько странно, не находишь?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, мыщъх, Вы писали:
М> однако, разница в стоимости вызова виртуальных и невиртуальных функций довольно-таки существенна
а сильно существенна? т.е. что я хотел узнать, это правда, что может быть такой случай, когда именно виртуальность вызова особенно сильно тормозит код?
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
По многу раз наблюдал на работе людей, которые и что такое вирт. деструктор знают и паттерны, там всякие шматерны, любят пообсуждать всякие архитектурные решения, да только вот загвоздка: работа у них движется по черепашьи, потому что, весь день у них уходит на бла-бла и сидение по форумам. При этом он считает, наверное, что бабло ему просто должны платить по факту, что он такой умный и знает про вирт.деструктор. Чтобы этот человек хоть что-то сделал, нужно над ним буквально стоять, при этом он тебе будет звучно рассказывать, про проблемы иерархии классов и межпоточной синхронизации..
В итоге сам садишься и делаешь за 50 минут. Или приходит молодой студентик с горящими глазами и тоже раз-раз и делает,
хотя действительно может местами и с глюкотроном. Я не говорю, что такое встречается повсеместно, но точно имеет место быть, и поэтому я бы все все-таки задумался, всегда ли надо ставить во главу угла, знает ли человек, чем dynamic_cast
отличается от static или про вирт. деструктор. Или зачем конструктору добавляется ключевое слово explicit. Я лично таких работодателей не совсем понимаю.. Лучше уж дать РЕАЛЬНОЕ практическое задание и посмотреть, как быстро справится, насколько оптимален и безглючен будет код..Сразу ведь все о человеке понятно! Если опытный пораспрашивать про предыдущие проекты.
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>Здравствуйте, мыщъх, Вы писали:
М>> однако, разница в стоимости вызова виртуальных и невиртуальных функций довольно-таки существенна
U_E>а сильно существенна? т.е. что я хотел узнать, это правда, что может быть такой случай, когда именно виртуальность вызова особенно сильно тормозит код?
ну это же можно составить тест и погонять если функция делает что-то полезное (например, занимается сортировкой), но накладыми расходами на виртуальность можно пренебречь. а вот популярный в некоторых кругах стиль: "функция из нескольких строк, вызывающая тучу других функций из нескольких строк" уже сильно проигрывает.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>ну это же можно составить тест и погонять если функция делает что-то полезное (например, занимается сортировкой), но накладыми расходами на виртуальность можно пренебречь.
и даже в подобном случае мне как-то пришлось переписывать классы, потому что виртуальность была всунута "на всякий случай", а профайлер показал существенное замедление на вызове виртуальной функции
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Ikemefula, Вы писали:
I>>Скажи ты что нибудь внятное, например, "человек со знанием двух языков, но без знания алфавита и грамматики в ряде случаев может быть полезнее студента ин-яза", то можно было бы согласиться
J>ты сумел превозмочь ЧСВ и понять что я имел в виду в самом начале — респект. Значит не зря я тратил свое время на переписку.
Тут нечего понимать, т.к. это банальность на уровне плинтуса.
Потому ты и сел в лужу, когда не смог внятно её сформулировать, более того, даже сфероконь понадобился.
Здравствуйте, COFF, Вы писали:
COF>Здравствуйте, vpchelko, Вы писали:
V>>Имхо, работаю девелопером уже 4год на большом проекте. Вирт деструкторы ползовался ... забыл когда...
COF>Значит ты не проектировал более-менее сложных иерархий классов. Скорее всего просто расширял существующие. Это не плохо, само по себе, просто хорошо характеризует твой опыт
Да приходится ковырять чужой код, добавлять что-то свое и переписывать. Очень много проблем с утечкой памяти, в основном изза того, что был код работающий с нативными указателями.
Для любой иерархии классов — для создания некого объекта — надо писать фарбики обьектов, возвращающие только безопасный указатель, который должен знать как правильно удалить объект. Как писали выше "а зачем оно же нужно", если есть boost::shared_ptr.
Здравствуйте, vpchelko, Вы писали:
V>Здравствуйте, COFF, Вы писали:
COF>>Здравствуйте, vpchelko, Вы писали:
V>>>Имхо, работаю девелопером уже 4год на большом проекте. Вирт деструкторы ползовался ... забыл когда...
COF>>Значит ты не проектировал более-менее сложных иерархий классов. Скорее всего просто расширял существующие. Это не плохо, само по себе, просто хорошо характеризует твой опыт
V>Да приходится ковырять чужой код, добавлять что-то свое и переписывать. Очень много проблем с утечкой памяти, в основном изза того, что был код работающий с нативными указателями.
V>Для любой иерархии классов — для создания некого объекта — надо писать фарбики обьектов, возвращающие только безопасный указатель, который должен знать как правильно удалить объект. Как писали выше "а зачем оно же нужно", если есть boost::shared_ptr.
П.с. последний раз использовать виртуальный деструктор в базовом классе, для того чтобы его наследники были виртуальными классами, чтобы работал dynamic_cast.
S>Глядя на этот топик начинающие программисты поидее должны тренироваться в изгнании из головы мыслей типа "перепейсать фсё нахъ ибо неподдержуимо!!!".
Здравствуйте, Vamp, Вы писали:
V>А можно мне объяснить, в чем принципиальная разница между бинарным семафором и мьютексом с теорической точки зрения (учитывая, что в С++ нет ни тех, ни других, вопрос можно ставить только в теоретичской плоскости).
У семафора нет понятия владельца. Его может освободить не только тот поток-процесс-whatever, который захватил, но и любой другой.
Здравствуйте, jhfrek, Вы писали:
J>что ЧСВ таки чешется, даже после признания моей победы
Ты вероятно не понял, что это значило
I>>Тут нечего понимать,
J>и тем не менее ты не понял и начал спорить
Тем не менее я тебе сразу заявил, что ты сел в лужу. Нужно время, что бы ты это понял.
I>>т.к. это банальность на уровне плинтуса.
J>рад что ты самокритично оцениваешь свой уровень
Здравствуйте, jhfrek, Вы писали:
J>>>рад что ты самокритично оцениваешь свой уровень I>>Слабенько
J>"слабенько" — это слабо сказано. Твой уровень запредельно низок
Здравствуйте, Eye of Hell, Вы писали:
EOH>На зарплату 50-80 сейчас, увы, высококлассные специалисты не пойдут
Сакральное знание о виртуальных деструкторах — это признак не высококлассного, а хоть какого-нибудь C++ программиста. Если не знает, ему лучше вообще этот язык в руки не давать.
Здравствуйте, jhfrek, Вы писали:
J>>>"слабенько" — это слабо сказано. Твой уровень запредельно низок I>>Тем хуже для тебя.
J>не просто хуже, это верх моей наивности, ввязываться в дискуссию с тобою, зная о твоей неадекватности при ведении оных.
Ничего необычного в этом нет — ты продолжаешь садиться в лужу раз за разом и замечаешь это слишком поздно.
Здравствуйте, Ikemefula, Вы писали:
J>>не просто хуже, это верх моей наивности, ввязываться в дискуссию с тобою, зная о твоей неадекватности при ведении оных. I>Ничего необычного в этом нет
в твоей неадекватности, действительно, нет ничего необычного
Здравствуйте, jhfrek, Вы писали:
J>>>не просто хуже, это верх моей наивности, ввязываться в дискуссию с тобою, зная о твоей неадекватности при ведении оных. I>>Ничего необычного в этом нет
J>в твоей неадекватности, действительно, нет ничего необычного
U_E>а сильно существенна? т.е. что я хотел узнать, это правда, что может быть такой случай, когда именно виртуальность вызова особенно сильно тормозит код?
учитывай, что сравнивать виртуальный вызов нужно не с обычным вызовом, а заинлайненной функцией.
Здравствуйте, jhfrek, Вы писали:
J>>>ты все еще неадекватен I>>Я от этого не страдаю, я этим наслаждаюсь
J>я так и подумал
Тут не надо думать, у меня в блоге про это казано русским по белому. Смешно читать твои "отркрытия"
I>>Сомневаюсь, что ты можешь сказать тоже самое про свои лужи.
J>тебе виднее какие эмоции я испытываю в твоих фантазиях
Здравствуйте, Ikemefula, Вы писали:
I>Тут не надо думать
и опять же, из твоих постов я уже давно понял, что это твой жизненный принцип, можешь не повторяться
I> у меня в блоге про это казано русским по белому.
у тебя еще и блог есть?
I>Смешно читать твои "отркрытия"
"открытия" — это, опять же, твоя фантазия. Я написал довольно простую и очевидную вещь, все ее поняли (посмотри на оценки) кроме тебя, решившего выставить себя идиотом и поспорить
Re[7]: Вы искали программиста для программирования деструкто
Здравствуйте, ayc, Вы писали:
ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
О, блин! Каких только тараканов люди себе в голову не насуют...
Здравствуйте, jhfrek, Вы писали:
I>>Тут не надо думать J>и опять же, из твоих постов я уже давно понял, что это твой жизненный принцип, можешь не повторяться
Очевидно, на это понимание у тебя ушел весь интелектуальный ресурс.
I>> у меня в блоге про это казано русским по белому.
J>у тебя еще и блог есть?
У меня много чего есть.
I>>Смешно читать твои "отркрытия"
J>"открытия" — это, опять же, твоя фантазия. Я написал довольно простую и очевидную вещь, все ее поняли (посмотри на оценки) кроме тебя, решившего выставить себя идиотом и поспорить
Точнее ты написал банальность на грани глупости, и даже не понял о чем тебе сказали минима четверо человек.
Ладно бы банальность, но ты эту банальность подал в виде сферичекого коня в вакууме, чем посадил себя в лужу, в которой до сих пор и сидишь по причине указаной мною чуть выше.
Здравствуйте, Ikemefula, Вы писали:
I>Точнее ты написал банальность
которую тебе не хватило ума осознать и по поводу которой ты, что бы не признавать свою ограниченность, строчишь уже фиг знает какой пост все больше и больше выставляя себя идиотом.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, IT, Вы писали:
IT>>Подавляющее большинство программистов не занимаются собственным профессиональным развитием. Приходят на работу в 9:00, решают текущие задачи до 6:00 и идут домой. Сложность решаемых задач позволяет не развиваться, а самим им не надо.
S>С опытом, понимаешь, что любую "новую" технологогию можно освоить за пару неделе, если будет надо.
S>Большинство же знаний приходит "в работе", с практичным опытом. Тем более, эту рутину, которая не позволяет развиваться, зачастую программисту приходится выкладываться полностью. Добавь к этому дом, детей, семью, отдых, то на какое-то там еще развитие просто нет сил. Да, книжку почтитать, но не так много задерживается, если нет или мало практического применения. Да и зачем это все надо: будет потребность — выучишь.
и... отправляет заказчику. Оно ведь работает!!! До поры, до времени.
Потом ошибку можно месяцами искать, а программер, который это написал будет сильно удивляться, когда не не очень вовремя получит зарплату.
ИМХО: тут нужно как в армии — раз уж все отвечают за оного, а один получает от всех.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, jhfrek-writeonly, Вы писали:
J>которую тебе не хватило ума осознать и по поводу которой ты,
Специально для jhfrek-writeonly
Дата: 10.03.10 00:04
J>А еще есть великие музыканты не знающие нотной грамоты — вы, с переводчиком, переводите дискуссию на проигрышное для вас поле.
Ты с переводчиком сел большую лужу и даже не заметил этого.
На всякий попроси что бы тебе прочли это вслух, лучше до трёх раз. О результатах просьба сообщить письменно в форум.
J> что бы не признавать свою ограниченность, строчишь уже фиг знает какой пост все больше и больше выставляя себя идиотом.
Меня, безусловно, интересуют мнение такого умного, остроумного, умеющего читать собесеника, как ты. Более того, я даже готов закрыть глаза на твои мокрые штанишки и подштанники.
Здравствуйте, jhfrek, Вы писали:
J>На It Happens хорошая история про то, что первично — знание английского или знание английских букв
J>
J>Лет пятнадцать назад в технике я разбирался ещё не очень, зато неплохо знал английский, чем пользовались все родственники и друзья.
J>История началась, когда друг отца приобрел какую-то приставку к телевизору — редкость на тот момент. При включении она выдавала загадочный текст на английском и продолжать работу не желала. На просьбу приехать и объяснить, что делать с этим чудом, я посоветовал ему взять словарь и перевести — со временем было туго. Мужик к делу подошел серьёзно и купил двухтомный словарь. Вскоре, полный отчаяния, он опять позвонил мне — не смог найти в словаре ни одного слова!
J>Раздосадованный и заинтригованный одновременно, приезжаю. Программа выдаёт длинный список имен разработчиков! Неудивительно, что в словаре их не нашлось. Последней строчкой шло указание, какую кнопку нажать для продолжения, но до неё горе-переводчик уже не добрался.
Вот объясни, как твоя сферическая лошадка сможет узнать что это были имена если не знает букв ?
Шота мне кажется я знаю проихождение, цвет и запах лужи в которой ты сидишь
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>а сильно существенна? т.е. что я хотел узнать, это правда, что может быть такой случай, когда именно виртуальность вызова особенно сильно тормозит код?
Таких случаев нет.
Если нужен полиморфизм, то быстрее можно сделать только одним способом: избавиться от таблицы виртуальных функций, храня адреса методов непосредственно в каждом объекте. Получится оверхед по памяти + расходы на конструирование. Но впринципе получили другое: полиморфным становится не тип, а каждый объект.
Сравнение скорости невиртуальных вызовов с ошибочно-виртуальными — пустая трата времени, лучше думать об архитектуре.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Геннадий Васильев, Вы писали:
S>>ЗЫ. Если не пользоваться наследованием, а к примеру, STL его не пользует, то виртуальный деструктор бессмысленный.
ГВ>Откуда дровишки?
Да, строго говоря, это не верно — в STL есть наследование от iterator_traits и input_iterator_tag, но эти классы не имеют членов-данных. В некоторых других частях стандартной библиотеки динамический полиморфизм есть
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Ikemefula, Вы писали:
J>> что бы не признавать свою ограниченность, строчишь уже фиг знает какой пост все больше и больше выставляя себя идиотом. I>Меня, безусловно, интересуют мнение такого умного, остроумного, умеющего читать собесеника, как ты.
я заметил. Тебя послали много постов назад, а ты так увлекся чтением что все не идешь и не идешь. И даже буквы, от увлеченности, не успеваешь набирать.
I>на твои мокрые штанишки и подштанники.
да ты секс гигант — столько времени фапать на фразу про мокрые штанишки, повторяя ее снова и снова
Здравствуйте, jhfrek, Вы писали:
J>я заметил. Тебя послали много постов назад, а ты так увлекся чтением что все не идешь и не идешь. И даже буквы, от увлеченности, не успеваешь набирать.
Не льти себе, сынок, это до добра никогда не доводит.
I>>на твои мокрые штанишки и подштанники.
J>да ты секс гигант — столько времени фапать на фразу про мокрые штанишки, повторяя ее снова и снова
Ну так прекрати сидеть в луже, смени штаны, буду другое говорить.
Если в течении 5 лет, человек программировал пусть даже только гуи, но так и не удасужился посмотреть про виртуальный деструктор. То любознательность у него на нуле. Поскольку нет любознательности, то нет и большого интереса к программированию и к решаемым задачам, а значит он их решает мало неохотно и из под палки. В топку таких программистов. Мне период написания гуи совсем не мешал интересоваться виртуальными деструкторами, алгоритмами, STL и boost-ом, и вообще колбасить по вечерам проектец, где я воплощал бы свои безумные идеи и использовал любой инструментарий, который мне хотелось бы
Думаю нет никаких оправданий для человека с 5-летним стажем программирования на с++ того что он не знает про виртуальные деструкторы
Здравствуйте, TarasKo, Вы писали:
TK>Если в течении 5 лет, человек программировал пусть даже только гуи, но так и не удасужился посмотреть про виртуальный деструктор. То любознательность у него на нуле. Поскольку нет любознательности, то нет и большого интереса к программированию и к решаемым задачам, а значит он их решает мало неохотно и из под палки. В топку таких программистов.
или в топку тех, кто вместо решения поставленных задач занимается удовлетворением любознательности за счет работодателя
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>а потом ему надо будет сказать, что у нас используются виртуальные функции и что это важно, и он полезет узнавать, что это такое. потом про dynamic_cast какой-нить узнает, потом то, потом другое, а там, глядишь, уже и язык выучил
У каждого своя правда и свои причины что то делать и что то не делать.
Кто то фигачит на двух работах и попутно на фрилансе — что бы заработать на жилье, обеспечить семью/родителей/сыну-дочке оплатить учебу и т.д. — и это правильно.
Кто то уже это сделал и теперь расслабляется хаскелами, лиспом, руби и другими интересными вещами — и это тоже правильно.
Ну а кто то занимается откровенно говоря, фигней — ну, и это вариант.
Ну и плюса еще тележка разных кейсов.
Не стоит осуждать что либо и делать такие категоричные выводы об интересах, целях и мотивациях. Кроме кода есть еще масса вещей.
5 ЛЕТ!!! это не 2 месяца
Задача на собеседовании заключается в том, чтобы отсеять тех кто безнадёжен. Можно брать стажёров без опыта, либо опытных специалистов. Но тех кто за 5 лет не разобрался в азах того, чем он всё это время занимался, брать нет смысла. Я считаю что виртуальный деструктор, это азы. Это не метапрограммирование, хотя и что бы вникнуть в метапрограммирование требуется от силы несколько дней.
Здравствуйте, TarasKo, Вы писали:
TK>5 ЛЕТ!!! это не 2 месяца TK>Задача на собеседовании заключается в том, чтобы отсеять тех кто безнадёжен. Можно брать стажёров без опыта, либо опытных специалистов. Но тех кто за 5 лет не разобрался в азах того, чем он всё это время занимался, брать нет смысла. Я считаю что виртуальный деструктор, это азы. Это не метапрограммирование, хотя и что бы вникнуть в метапрограммирование требуется от силы несколько дней.
5 лет меня учили в институте решать математические задачки и дифуры — блин, помню только как берется производная от много(стесняюсь сказать)члена
помнится-то то, чем все время занимаешься, остальное уходит в бэкграунд. сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу. ибо на работе приходилосаь его реализовывать раз или два. поэтому перед собесами приходится "переучивать"... то же и с деструкторами.
Здравствуйте, egaron, Вы писали:
E>сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу.
Здравствуйте, WPooh, Вы писали:
WP>Здравствуйте, egaron, Вы писали:
WP>Я не знаю, шутите Вы или всерьез, но все очень сильно зависит от рынка, на котором работаете.
рынок как рынок, те самые "веб-системы на 1000+ пользователей". везде, где я ни работал, использовалась примерно такая же методлогия разработки. даже когда поначалу пытались применять архитекруту-паттерны и все по правилам, реалии брали свое и скатывалось до превалирования концентрации на бизнес-логики.
то, что вы сказали, — экспешны, производительность, оттачивается на этапе внутреннего тестирования и тестирования заказчиком. конечно, бывают и перформанс ишшуи, как же без них. но в целом роль их не столь велика, чтобы загонятсья на архитектурной правильности системы.
и.... по моим наблюдениям. В начальство, руководство и просто под хорошую карьеру попадают как раз те люди, которые шарят в бизнес-логике проекта. А вот слишком больших умников, загоняющихся правильностью архитектуры и свысока относящихся к коллегам, не принимающим их точку зрения, на моей памяти не раз увольняли.
ценность и незаменимость специалиста заключается гораздо больше в том, какими он связями оброс в процессе работы, как понимает суть проекта, — и таких людей держат и молятся на них и платят большие бабки , хотя на моей памяти именно они зачастую были виновниками нулл-референсов. ну а что, референсы и кодер подчистит, и нанять человека, который умеет кодить на определенной технологии — это задача тривиальная,в отличии от задачи удержать от увольнения эксперта в части бизнес-логики проекта с наработанными связями с заказчиками.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, egaron, Вы писали:
E>>сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу.
L>Силен. Там аж целый 1 метод помнить надо.
метод фигня, надо помнить обвязку и структуру класса... а т к каждый день не используешь, то и запомнить — задача нетривиальная.
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Прямо по Спольски. Ты на конференции еще не ездил часом?
Мне, вот, интересно какую зарплату ты предлагал что люди прямо не могли отказаться?
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист.
Это точно. А бывает еще так, что знают С++ но пытаются впихнуть в код все фичи какие только знают. Тоже не программисты.
ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
14-16 лет — это сильно!
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
Как все легко. Только пойнт не в этом. В плюсах много мелочей которые надо знать и которые таки встречаются в реальном коде. Все их на интервью не спросить, но если человек не знает основ (виртуальный деструктор), то скорее всего он и других мелочей не знает.
ayc>Вы сами интервьюиром поставились или вас поставили? Нормальные вопросы у топик-стартера!
А я вот тут фигею от того сколько народу кричит что не нужно знать виртуальные деструкторы т.к. они не используются в проектах и т.д. Это основы и знать их С++ программист просто обязан. И дело даже не в этих виртуальных деструкторах. В плюсах много мелочей которые нужно знать и остерегаться. Всех их не спросить на интервью, а виртуальный деструктор — один из множества этих мелочей. Если интервьюируемый не может ответить на этот вопрос, то он, скорее всего, не сможет сказать и о других (мелочах). Соответсвенно будут проблемы в коде.
Вот один баг (одна из таких мелочей которые плюсовики должны знать) который я пофиксил совсем недавно:
_variant_t f();
void g(VARIANT &v)
{
v = f();
}
Ну-ка, кто из кричащих что виртуальные деструкторы знать не нужно или что их можно выучить в процесе скажет что тут происходит и где тут проблема? Hint: возвращаемый _variant_t содержит BSTR, к примеру.
Вообще с С++ программистов спрос должен быть выше чем с Джавистов или Шарповиков. А вопросы у топик-стартера нормальные, хотя вопрос про виртуальный деструктор на столько уже избит, что на него стыдно не ответить.
Re[7]: Вы искали программиста для программирования деструкто
Здравствуйте, ayc, Вы писали:
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист. ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
Учитывая что к 14-16 (даже если поднять планку до 20) годам в общем случае невозможно научиться писать правильный, годный код, и понимание о том что "всё уже украдено до нас" у столь юных кодеров отсутствует напрочь, а знания языка при этом минималистичные, рискну предположить что эти ваши "аффтары интиресных программ" тоже программистами как бэ не являются в тот момент когда вы им делаете предложение. Это они потом уже завалив пару проектов чему то учатся, и это тоже метод, растить профессионалов у себя в компании, это хорошо, но не надо так категорично утверждать что мол если в 14 — 16 ни одной софтины нет — вон из профессии, потому как это значит лишь то что человек по каким то причинам решил не выкладывать свой быдлокод на общее обозрение, а вот по каким причинам, программист ли он, и т.д вот для этого есть собеседование на котором с человеком общаться надо, а не методики тупые придумывать и применять, ибо на работу вы берёте человека а не как в старом бояне про машину переводящую кофе в код.
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
Да,да всё красиво так, только вот одну и ту же задачу можно решить тысячью и одним способом, при чём некоторые из решений настолько неочевидны обычным людям(которые в 14 — 16 лет однокласниц щупают а не быдлокодят в интернеты) что век не видеть бы таких решений.
Так вот, невозможно вот это ваше — "Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу." — потому что тут у нас заранее ясно какого качества решения человек может предоставить, и я думаю такие решения мало кому нужны. Тут у нас всё с точностью до наоборот — зная досканально <technology_name> мы можем изучить предметную область поставленной задачи и решить её в рамках нашей <technology_name>. То есть изначально надо отлично знать язык и потом уже будет понятно как эффективнее всего в рамках этого языка и сопутствующих ему технологий можно решить задачу в данной предметной области. Это если важно качество кода конечно.
Re[7]: Вы искали программиста для программирования деструкто
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
В дополнение — хотите ли вы лечится у доктора который занимаясь вашим лечением попутно будет учиться необходимым деталям своей профессии???
Ну... Дмитрий Гуртяк в 18 лет написал KeyRus, который был установлен практически на всех ПК (б)СССР. Боюсь, что большая часть профессиональных программистов на данном форуме не смогут похвастаться такими результатами.
Здравствуйте, De-Bill, Вы писали:
ОК>>14-16 лет — это сильно!
DB>Ну... Дмитрий Гуртяк в 18 лет написал KeyRus, который был установлен практически на всех ПК (б)СССР. Боюсь, что большая часть профессиональных программистов на данном форуме не смогут похвастаться такими результатами.
Сравнение не корректно. Промышленная разработка и coding4fun это две большие разницы. Тем более что в 1989 году не было такой гонки и награмождения технологий а следовательно можно было спокойненько неторопясь коротать вечера за ассемблером, и при этом иметь высоко оплачиваемую по тем временам работу, и никаких тебе аджайл, екстрим программинг, тестов, хитрых прожектманагеров и прочей билеберды которая сейчас занимают большую часть времени типичного программера. И если сейчас посмотреть на код этого вашего KeyRus'а через призму технологий сегодняшнего дня то окажется что это жуткое неподдерживаемое багоподделие достойное разве что места в музее для поностальгировать о юности.
S>Сравнение не корректно. Промышленная разработка и coding4fun это две большие разницы. Тем более что в 1989 году не было такой гонки и награмождения технологий а следовательно можно было спокойненько неторопясь коротать вечера за ассемблером, и при этом иметь высоко оплачиваемую по тем временам работу, и никаких тебе аджайл, екстрим программинг, тестов, хитрых прожектманагеров и прочей билеберды которая сейчас занимают большую часть времени типичного программера. И если сейчас посмотреть на код этого вашего KeyRus'а через призму технологий сегодняшнего дня то окажется что это жуткое неподдерживаемое багоподделие достойное разве что места в музее для поностальгировать о юности.
Что касается KeyRus'a, то он был не первым, по крайней мере не единственным. Он был лучшим. Представляешь, парень в 18 лет написал что-то, что стало лучшим в своём роде. Исходники KeyRus я не смотрел, но смотрел исходники некоторых других его программ. Мои коллеги "промышленные программисты" пишут убогий говнокод по сравнению с ним. Также видел ряд его софтин с пользовательским интерфейсом. Поражает воображение то, что он написал это в одиночку.
По поводу всего остального. аус чётко написал
Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Ему не нужны "промышленные программисты". Это также как Крис Касперски, aka мыщх, как промышленный программист никому нафиг не нужен, зато нужен много где нужен охрененный энтузиазм, пытливый ум и желание сделать что-нибудь крутое. А это от возраста не зависит, более того, с возрастом часто теряется.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
Народ, я фигею без баяна. Как можно не знать для чего нужен виртуальный деструктор, если каждый день сталкиваешься с иерархиями классов, виртуальными вызовами и т.д? Это же просто элементарная логика выходит:
1. Для чего нам виртуальный метод?
Для того чтобы при вызове метода через указатель на предка позвался соответствующий метод потомка
2. Для чего нам деструктор?
Компилятор гарантирует вызов деструктора при разрушении объекта
Объединяем:
Для чего нужны виртуальные деструкторы?
Для гарантированного вызова деструктора нужного класса при разрушении объекта через указатель на класс предка.
Элементарно же. Или сложность данной логики в том, что можно забыть что такое виртуальный метод или деструктор? А такой человек точно программирует на С++?
Здравствуйте, Cadet, Вы писали:
C>Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
C>Народ, я фигею без баяна. Как можно не знать для чего нужен виртуальный деструктор, если каждый день сталкиваешься с иерархиями классов, виртуальными вызовами и т.д?
"Отучаемся говорить за всех" (с)фидо
В твоем проекте разлапистая иерархия классов и виртуальные д-ры жизненно необходимы, в моем проекте этого нет. Хотя по программе и гуляют абстрактные интерфейсы, но все объекты создаются на стеке, поэтому время их жизни четко определено. При таком подходе виртуальные деструкторы не нужны.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, LaptevVV, Вы писали:
LVV>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... LVV>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
Кстати, можно быть по профессии инженером-стоителем и при этом быть программистом.
И чтобы стать инженером-стоителем нужно пять лет учиться, а чтобы стать программистом — нужа книга и 21 день Во, как.
Эволюция однако, программирование становится доступным каждому.
З.Ы.: Если работа не приносит ничего нового, то это не работа — это каторга
Учение свет, а неучение — чуть свет и на работу.
Re[7]: Вы искали программиста для программирования деструкто
Здравствуйте, ayc, Вы писали:
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Интересный подход... Но, боюсь, в масштабах даже обычной конторы, слабо реализуемый. Интересных-полезных программ — с гулькин нос, кроме того есть сто тыщ мульйонов факторов, которые заставят этого вашего кандидата отказаться от вашего интересного предложения (к примеру, он работает на себя — что скорее всего, если он выкадывает полезные программы в интернет, мож он этим на жизнь зарабатывает как раз... хз )
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист. ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
Если человек в 14-16 лет интересуется программингом настолько, что у него есть чем удивить матерого работодателя, то с одной стороны человек — гений, но как показывает практика, гениям хорошо в одиночку, в реальной жизни нужны хорошие середняки, которые будут без закидонов педалить, сдавать работу вовремя и не бубнить что вот мол, этот идиотский клиент ничего не понимает в том гениальном решении, которое я ему предлагаю. Кроме того, мне кажется, что в 14-16 лет все таки хорошо бы больше интересоваться девочками, чем компами — а то потом эта юношесткая неудовлетворенность будет выплескиваться на работе в бог знает каких формах.
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
думается мне, говоря о виртуальных деструкторах, автор топика тем самым описывал более широкую проблему — люди педалят на языке, не зная юазовых основ. говоря же об опыте, если девелопер на плюсах такой весь матерый, то он хоть рз в жизни должен был решать задачу, где вирт.деструкторы нужны, и он должен былразгрести зачем же они нужны. если жи он этого не знает, знач он скорее всего задачтаких (прям скажем, довольно тривиальных) не решал, ergo — опыта у него с гулькин нос.
ayc>Вы сами интервьюиром поставились или вас поставили?
26.03.2010 12:02, _nikita_ пишет: > > Эволюция однако, программирование становится доступным каждому.
Ага. И все вы видим последствия этого. Что не купишь и где есть хоть
какая программа работает плохо.
Здравствуйте, n-839, Вы писали:
N8>Здравствуйте, olegkr, Вы писали:
O>>Здравствуйте, ArtemGorikov, Вы писали:
AG>>>Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов. O>>Не интересно задавать подобные вопросы. С 5-го раза надоедает слушать мычание с закатыванием глаз.
N8>А можно вопрос к слову, раз уж заговорили об auto_ptr? N8>Саттер вместе с Александреску выступают активно против auto_ptr, приравнивая к злу похуже голых указателей.
Хм... давненько не читал уже че они там пишут, но насколько я помню, ничего такого там нет — саттер и все остальные просто говорят, что у авто-поинтера своя семантика, которую многие не понимают.
N8>Тем не менее во многих книгах уважаемых людей встречаю повсеместное использование этого умного указателя (в частности, сейчас читаю Lomow & Co "C++ FAQs" — тут любое remote ownership в классе упаковано в auto_pointer, а не в shared_pointer). N8>Так ли плох auto_pointer? Или верить никому нельзя, и нужно самому совершить все ошибки?
Здравствуйте, Glоbus, Вы писали:
G>Да все нормально с авто поинтером
Я погорячился, прошу прощения.
Во-первых, не Саттер с Александреску, а Мейерс — из-за местами пересекающихся материалов в их книгах я часто путаю, кто и что именно рекомендовал.
Во-вторых, не auto_ptr сам по себе зло, а контейнеры, содержащие auto_ptr.
Мейерс, "Эффективное использование STL", Совет 8: "Никогда не создавайте контейнеры, содержащие auto_ptr".
Здравствуйте, Олег К., Вы писали:
ОК>А я вот тут фигею от того сколько народу кричит что не нужно знать виртуальные деструкторы т.к. они не используются в проектах и т.д. Это основы и знать их С++ программист просто обязан. И дело даже не в этих виртуальных деструкторах. В плюсах много мелочей которые нужно знать и остерегаться. Всех их не спросить на интервью, а виртуальный деструктор — один из множества этих мелочей. Если интервьюируемый не может ответить на этот вопрос, то он, скорее всего, не сможет сказать и о других (мелочах). Соответсвенно будут проблемы в коде.
ОК>Вот один баг (одна из таких мелочей которые плюсовики должны знать) который я пофиксил совсем недавно: ОК>
ОК>Ну-ка, кто из кричащих что виртуальные деструкторы знать не нужно или что их можно выучить в процесе скажет что тут происходит и где тут проблема? Hint: возвращаемый _variant_t содержит BSTR, к примеру.
ОК>Вообще с С++ программистов спрос должен быть выше чем с Джавистов или Шарповиков. А вопросы у топик-стартера нормальные, хотя вопрос про виртуальный деструктор на столько уже избит, что на него стыдно не ответить.
Ага тут КОМ, надо определится кто выделяет ресурсы — кто их убивает. Это далеке не С++.
__>Эволюция однако, программирование становится доступным каждому.
просто спрос на программистов большой, поэтому любой может попробовать.
Попрактиковаться адвокатом или хирургом так просто не возьмут, а кодером пожалуйста.
Здравствуйте, n-839, Вы писали:
N8>Здравствуйте, Glоbus, Вы писали:
G>>Да все нормально с авто поинтером
N8>Я погорячился, прошу прощения. N8>Во-первых, не Саттер с Александреску, а Мейерс — из-за местами пересекающихся материалов в их книгах я часто путаю, кто и что именно рекомендовал. N8>Во-вторых, не auto_ptr сам по себе зло, а контейнеры, содержащие auto_ptr. N8>Мейерс, "Эффективное использование STL", Совет 8: "Никогда не создавайте контейнеры, содержащие auto_ptr".
N8>Как я понимаю, все зависит от задачи
Чорд, как вообще можно додуматься до контейнера с auto_ptr<>? В любой книжке же сказано, что при копировании передает владение объектом этот самый auto_ptr<>. То есть при большинстве манипуляциях с контейнером, его элементы auto_ptr<> превратятся в черт знает что, точнее указывать они будут в ж..у. А придуман auto_ptr, если склероз не изменяет, для передачи параметров в функции.
Здравствуйте, мыщъх, Вы писали: М>я там выделил куда клоню. погуглите. а теперь представим, что в деструктор мы впихнули что-то более важное, чем освобождение памяти. кстати, со стека объект удалят со свистом и без деструкторов. то есть зачем нужен деструктор вы похоже таки не понимаете
Полностью согласен. Всегда утверждал, что автосборка мусора — не более, чем пиар, и в целом она для мало-мальски ответственных объектов проблему не решает, откуда и берется IDisposable в .Net (а значит, мы вообще-то для каждого создаваемого объекта в должны задумываться, а не поддерживает ли он или не будет ли потом поддерживать — если это объект из нашего кода — интерфейс IDisposable). Обязанности конструктуров и деструкторов далеко выходят за рамки банального освобождения памяти, эти-то действия даже и на куче вполне можно штатными функциями выделения памяти осуществить =)
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, egaron, Вы писали:
E>5 лет меня учили в институте решать математические задачки и дифуры — блин, помню только как берется производная от много(стесняюсь сказать)члена
E>помнится-то то, чем все время занимаешься, остальное уходит в бэкграунд. сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу. ибо на работе приходилосаь его реализовывать раз или два. поэтому перед собесами приходится "переучивать"... то же и с деструкторами.
Ну тогда не надо писать в резюме "5 лет работы с IDisposable". Ведь проблема в том, что люди приходят я говорят о годах опыта, а на самом деле это означает "сегодня — дата знакомства с предметом". Если человеку больше 30, он около 10 лет "работал" с с++ и говорит, что не помнит зачем нужен виртуальный деструктор — я считаю, что он 10 лет программировал на с++ каждый день и ни разу не прочёл книжку по азам и моё право с ним после этого распрощаться. Почему меня должно волновать какие у него были мотивации и условия. Я беру человека выполнять определённую работу не планирую проверять поставил ли он virtual перед деструктором.
И ещё я видел какие решения изобретают программисты, не знающие хорошо свой инструмент (язык). Оверхед измеряется в сотнях строк.
Здравствуйте, leonty, Вы писали:
L>Ну тогда не надо писать в резюме "5 лет работы с IDisposable". Ведь проблема в том, что люди приходят я говорят о годах опыта, а на самом деле это означает "сегодня — дата знакомства с предметом". Если человеку больше 30, он около 10 лет "работал" с с++ и говорит, что не помнит зачем нужен виртуальный деструктор — я считаю, что он 10 лет программировал на с++ каждый день и ни разу не прочёл книжку по азам и моё право с ним после этого распрощаться.
Кстати тоже вариант — давайте будем честными.
Будем писать в резюме не "опыт работы N лет с языком программирования Z", а "N лет поддержки гавно-кода с багфиксингом и внедрением новых фич "которые уже вчера нужны, ;%::?*!".
Интересно сколько резюме при таком подхоже превратятся их конфетки в откровенное говно.
А я и сам при таком раскладе выгляжу как говно, ибо в новые проджекты редко судьба забрасывала, все больше "развить, доделать, пофисит, прикрутить, обновить".
Жизнь отматывает время, а IT с виртуальными деструкторами пролетает мимо меня, чорт.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Здравствуйте, avishnyakov, Вы писали:
A>Кстати тоже вариант — давайте будем честными. A>Будем писать в резюме не "опыт работы N лет с языком программирования Z", а "N лет поддержки гавно-кода с багфиксингом и внедрением новых фич "которые уже вчера нужны, ;%::?*!".
Одна из самых сложных задач, сопровождение и модификация унаследованного кода. Обычно если вы не в состоянии постепенно выравнивать любого качества код , вы и новый не можете писать.
Здравствуйте, minorlogic, Вы писали:
M>Одна из самых сложных задач, сопровождение и модификация унаследованного кода. Обычно если вы не в состоянии постепенно выравнивать любого качества код , вы и новый не можете писать.
Здравствуйте, avishnyakov, Вы писали:
A>Здравствуйте, minorlogic, Вы писали:
M>>Одна из самых сложных задач, сопровождение и модификация унаследованного кода. Обычно если вы не в состоянии постепенно выравнивать любого качества код , вы и новый не можете писать.
A>Слишком идеализированно.
Наоборот, очень прагматично. Готов поспорить, если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист.
Редко когда именно написание кода занимает даже 25% времени, в основном это обдумывание алгоритмов, предметной области , подходов к решению и декомпозиции . А навыки базового структурирования и т.п. у хорошего спеца должны быть уже рефлекторными.
Здравствуйте, minorlogic, Вы писали:
M>Наоборот, очень прагматично. Готов поспорить, если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист.
Ради интереса, есть какой то опыт саппортинга/внедрения новых фич?
Впрочем, проекты и код слишком разные, что бы отвечать на этот вопрос коротким "да/нет", как и спорить по выше написанному утверждению.
Здравствуйте, avishnyakov, Вы писали:
A>Ради интереса, есть какой то опыт саппортинга/внедрения новых фич? A>Впрочем, проекты и код слишком разные, что бы отвечать на этот вопрос коротким "да/нет", как и спорить по выше написанному утверждению.
Здравствуйте, minorlogic, Вы писали:
M>Наоборот, очень прагматично. Готов поспорить, если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист.
лучше не надо, проспорите. Бывает так что начальство предпочитает постоянно набирать/выгонять "студентов", а паре постоянных программистов постоянно приходиться это править.
Здравствуйте, jhfrek, Вы писали:
J>лучше не надо, проспорите. Бывает так что начальство предпочитает постоянно набирать/выгонять "студентов", а паре постоянных программистов постоянно приходиться это править.
Если я должен был увидеть противоречие или контраргумент, то не увидел. Расшифруйте.
Здравствуйте, minorlogic, Вы писали:
M>Наоборот, очень прагматично. Готов поспорить, если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист. J>>лучше не надо, проспорите. Бывает так что начальство предпочитает постоянно набирать/выгонять "студентов", а паре постоянных программистов постоянно приходиться это править. M>Если я должен был увидеть противоречие или контраргумент, то не увидел. Расшифруйте.
код реально плохой и реально становится хуже из-за того что набираемые "студенты" портят его быстрее чем программист исправляет. К тому же они постоянно новые, поэтому портят по разному.
Здравствуйте, minorlogic, Вы писали:
M>Наоборот, очень прагматично. Готов поспорить, если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист.
Ну да, раз не смог переплыть море/океан, значит программист плохой
Для написания нового код в старом проекте часто нужно изменить архитектуру/интерфейсы/структуру и тд.
А теперь представь, что продукт выставляет АПИ для клиентов. Это значит, что архитектуру/интерфейсы изменить нельзя, а структуру поменять тоже крайне сложно.
Если можно забить на обратную совместимость или можно удачно обойти, то, конечно, все можно поправить при наличии
1. времени на разработку
2. времени на тестирование,
3. чем сильнее изменения тем больше нужно тестировщиков
В любом случае просто не получается. Как правило код пишется коммандой/коммандами, а суппортится небольшим кол.вом людей.
Здравствуйте, Vzhyk, Вы писали:
>> Эволюция однако, программирование становится доступным каждому. V>Ага. И все вы видим последствия этого. Что не купишь и где есть хоть V>какая программа работает плохо.
Это так. Купил намедни Оксфордский словарь и заплатил спецально а CDROM к нему. Сейчас ищу ответственного за тот геморрой, что на диске, с целью ****** или, как минимум, нанесения ****** ******* *************.
Вроде бы почти работат, но пользоваться крайне сложно, туды его в качель.
Здравствуйте, jhfrek, Вы писали:
J>код реально плохой и реально становится хуже из-за того что набираемые "студенты" портят его быстрее чем программист исправляет. К тому же они постоянно новые, поэтому портят по разному.
J>А программист отличный.
Это другая ситуация и другие проблемы, совсем не сапорт.
Здравствуйте, Ikemefula, Вы писали:
I>Ты уверен, что этих сил достаточно для решеня любой проблемы огласно требованиям времени, бюджета, качества ?
Если этой фразе предполагается что я это утверждал, то ты ошибаешься. Перечитай
"Именно так, часто слышу подобные жалобы "да если бы не код , да я бы !!!! ". Плохому танцору .. ну вы в курсе. "
Т.е. если от сопровождения код становится хуже, это показатель непрофесионализма и доверять такому програмисту новый код не стоит. А если он ухудшения кода мотивирует качеством существующего, тогда он еще и психологически незрел.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Те которые знают, что такое виртуальные деструктор, сами не программируют, а резюмируют других
Здравствуйте, minorlogic, Вы писали:
I>>Ты уверен, что этих сил достаточно для решеня любой проблемы огласно требованиям времени, бюджета, качества ?
M>Если этой фразе предполагается что я это утверждал, то ты ошибаешься. Перечитай
M>"Именно так, часто слышу подобные жалобы "да если бы не код , да я бы !!!! ". Плохому танцору .. ну вы в курсе. "
см. ниже
M>Т.е. если от сопровождения код становится хуже, это "может быть, а может и не быть" показатель непрофесионализма и доверять такому програмисту новый код "может быть, а может и не быть" не стоит. А если он ухудшения кода мотивирует качеством существующего, тогда "может быть, а может и не быть" он еще и психологически незрел.
Я дополнил, что бы тебе было понятно о чем речь.
Теперь повторяю вопрос — Ты уверен, что сил 1-2 девелопера + 1-2 тестера достаточно для решеня любой проблемы огласно требованиям времени, бюджета, качества ?
Хочу услышать внятный ответ а не тот бред что ты выдал.
На мой взгляд этого недостаточно для решения _любой_ проблемы.
Следовательно, большАя часть проблем решаться не будет в принципе, т.к. на них не хватит сил.
Как ты в курсе, любой код в обход решения проблем есть говнокод, каким бы идиальным он не был сам по себе.
Следовательно нужно ожидать, что код будет становиться все хуже и хуже.
И это в случае со зрелым, опытным делопером !
Простой пример, на С++ в свое время мне надо было подфиксить баг в форме, сделать лайоут правильным. Сам баг был во фреймворке для этих лайоутов. Баг примитивный, но как выяснилось, код использовался в других проектах и фреймворк для лайоутов был закрыт от модификации. Где то наверху сидел мега руководитель вроде тебя, который повторял "плохому программисту код мешает".
Получил сверху отлуп — этот мега руководитель не дал добро на изменение кода.
Что я сделал ? Повторно обратился к непосредтвенному начальству и получил ответ фиксить как придется.
Я сделал наследника нужного класса и переопределил нужный метод, но затык был в том, что в базовом классе должен был быть virtual метод, что обратно потребовало модифицировать реадонли код.
Через пару тройку дней я взял и решил вопрос радикально — дублировал h и cpp у себя, модифицировал как мне было надо и закоммитил, добавил только warning при компиляции. Линкер такие ситуации разруливает на раз. В итоге в моей длл баг не воспроизводился, а во всех остальных он еще не был найден ибо там не было такой сложной формы
Т.е. в проекте появилось два почти одинаковых класса с одинаковыми именами и неймспейсами и тд и т, один из которых выбирался линкером в зависимости от проекта.
Плохое решение ? Да, очевидно, плохое. Все остальные решения такие же плохие, потому что источник бага реадонли.
Могу еще примеров привести как из своего, так и из чужого опыта.
Так вот
"если человек сапортил код и жалуется что код плохой , и сапортить его очень тяжело , и становится только хуже он очень плохой програмист"
эта ситуация "может означать" что это плохой программист. Но как правило, гораздо чаще это "может означать" что в "консерватории что то не так".
В любом случае, если сил девелоперов недостаточно для решения любой проблемы, код лучше становиться не может в принципе, а качество оного кода можно удержать только отказавшись от изменений.
Здравствуйте, De-Bill, Вы писали:
ОК>>14-16 лет — это сильно!
DB>Ну... Дмитрий Гуртяк в 18 лет написал KeyRus, который был установлен практически на всех ПК (б)СССР. Боюсь, что большая часть профессиональных программистов на данном форуме не смогут похвастаться такими результатами.
Был еще русификатор Бунича (автора ряда утилит для ЕСки) — уже не помню его названия.
Так он был заметно хуже из-за неприятного для глаз начертания букв.
Здравствуйте, TarasKo, Вы писали:
TK>Если в течении 5 лет, человек программировал пусть даже только гуи, но так и не удасужился посмотреть про виртуальный деструктор. То любознательность у него на нуле. Поскольку нет любознательности, то нет и большого интереса к программированию и к решаемым задачам, а значит он их решает мало неохотно и из под палки. В топку таких программистов. Мне период написания гуи совсем не мешал интересоваться виртуальными деструкторами, алгоритмами, STL и boost-ом, и вообще колбасить по вечерам проектец, где я воплощал бы свои безумные идеи и использовал любой инструментарий, который мне хотелось бы TK>Думаю нет никаких оправданий для человека с 5-летним стажем программирования на с++ того что он не знает про виртуальные деструкторы
Эх, не занимались Вы САПРом в одиночку (1-н большой и несколько маленьких САПРов).
Начиная его писать и эксплуатировать (постоянные изменения требований к объемному монтажу приборов) —
сначала на АЛГОЛе-60 (М220) потом на PL/1 в DOSe
потом на PL/1(плюс чуть Assemblera) для ОСа Потом уже до Buildera по-полгода делал то, что с компонентами
можно было сделать за неделю – при полном отсутствие документации и интернета.
При этом требования к САПРу почти всегда даются в стиле “паять здесь” (см. повесть Житинского “Глагол инженер”)
Помню на 286й (задолго до Windowsa) начал в свободное время делать графическую оболочку САПРа — c самодельными кнопками и иконками
(Надоело забесплатно — бросил)
Потом когда интернет появился по заявке поданной заранее — мог 1 час полазить (Выход в сеть только в особой комнате)
Высшее руководство считало, что машины купили и ладно. А документация – это баловство — лишняя трата денег.
Помню, купил на свои деньги серию книг Фроловых в начале 92 года(зарплата была 2 тыс),
а деньги вернули уже в конце года (зарплата 100 тыс)
И так уже 34 года на одном месте и год на преведущей работе.
Очень показательный случай – добавил в САПР требование A спустя какое-то время добавил требование B и далее.
В процессе, оказалось, достаточно было добавить условие !Z
— переписать этот кусок нет времени есть более приоритетные задачи
(пока так и работает там где можно было обойтись 30-40 строками работает 300-400 строк из-за заплаток)
— А самому изучать постоянно меняющиеся требования конструкций приборов(серийного производства нет) – это надо тогда забросить программирование.
Здравствуйте, _nikita_, Вы писали:
__>Здравствуйте, LaptevVV, Вы писали:
LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... LVV>>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
__>Кстати, можно быть по профессии инженером-стоителем и при этом быть программистом. __>И чтобы стать инженером-стоителем нужно пять лет учиться, а чтобы стать программистом — нужа книга и 21 день Во, как. __>Эволюция однако, программирование становится доступным каждому.
У нас в НИИ когда был отдел САПРов (около 200-от человек) кроме меня
(во время учебы были дисциплины — программирование на 2-х адресных Проминь (-2) и аналоговых машинах) – не было ни одного с дипломом программиста.
Да такой специальности кажется, официально и не было
Ну раз уж подняли тему, позволю и себе сказать пару слов.
Вот некоторые говорят, что собеседовать программистов должны ни в коем случае не технические специалисты, а исключительно управленцы. Я с этим не согласен. Я считаю, что собеседовать должны всё таки технические специалисты в том числе, но во-первых, это должны быть специалисты верхнего уровня (т.е. лидеры групп или архитекторы), и вопросы они должны задавать направленные не на выяснение знаний каких-то деталей, а на умение решать задачи и умение справляться со сложностями процесса. Мне по долгу, скажем так, службы приходится решать разные задачи, и бывает так, что какие-то из них я отдаю на аутсорс малознакомым мне людям, разработчикам, без какого-либо подтверждённого опыта подобных работ вообще. Так вот, я точно могу сказать, что таким образом мне удалось найти как минимум 3-х человек, не имевших до этого момента требуемого опыта, но всё таки решивших и доведших до конца (пусть и с небольшим запозданием) не совсем тривиальные задачи. В последствии, у меня сложились постоянные рабочие отношения с ними, чему я и рад, собственно.
А виртуальный деструктор я в гробу видал ибо сишник. Такие дела.
Здравствуйте, carpenter, Вы писали:
C>На практике — деструктор лучше сразу сделать виртуальным — а потом подумать , не сделать ли его невиртуальным. C>... знание о виртуальном деструкторе — это практически знание об указателях в контексте ООП ...
Зачем мне этот оверхед если я наследоваться не собираюсь в принципе?
FR>>По уму десктрукторы нужно было делать виртуальными по умолчанию, и ввести ключевое слово nonvirtual для тех кого оверхед не устраивает.
D>при таком решении нужно разное поведение для class и struct -- чтобы сохранить совместимость с C.
FR>>>По уму десктрукторы нужно было делать виртуальными по умолчанию, и ввести ключевое слово nonvirtual для тех кого оверхед не устраивает.
D>>при таком решении нужно разное поведение для class и struct -- чтобы сохранить совместимость с C.
FR>В С деструкторов нет, сохранять нечего.
не понял. У всех структур есть деструктор по умолчанию. Вопрос, делаешь ли ты его по умолчанию виртуальным? Если делаешь, то нарушаешь совместимость. Если не делаешь, то попадаешь на те же грабли, если кто-то от нее унаследуется и полиморфно использует.
Здравствуйте, dilmah, Вы писали:
D>не понял. У всех структур есть деструктор по умолчанию. Вопрос, делаешь ли ты его по умолчанию виртуальным? Если делаешь, то нарушаешь совместимость. Если не делаешь, то попадаешь на те же грабли, если кто-то от нее унаследуется и полиморфно использует.
Запретить наследование от структур без явного деструктора.
Всяко лучше чем те грабли что сейчас.
Здравствуйте, IID, Вы писали:
D>>>Если так рассуждать, то можно нанимать например переводчика, который даже не знает английских букв
J>>... и не может рассказать ни одного правила грамматики. Но зато переводит на лету, без ошибок и с учетом менталитета англичан и россиян — я за такого переводчика.
IID> Как он будет переводить не зная букв ?
На слух! Нафига буквы синхронисту?
IID>Ребята, включите мозги блин. Поощрять невежество нельзя! Незнание фундаментальных принципов языка === незнание языка! Эдак мы до мышей в итоге дое$%мся.
Это будет уже следующий шаг в дискуссии.
Чем совершеннее технически средство, тем более примитивные, никчемные и бесполезные сведения при его помощи передаются.(с)Станислав Лем
Последние два месяца прорезюмировал просто толпу соискателей на водителей Газели. Каково было мое удивление что 90% людей не знают ДЛЯ ЧЕГО НУЖЕН ДВОЙНОЙ ВЫЖИМ. Как такое может быть? Куда делись настоящие водители, а не оходники за деньгами? Что творится с людьми?
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Заметил забавную особенность
Если этот самый виртуальный деструктор "очень нужен и важен", то почему classwizard вижулстудии не создает деструктор класса сразу виртуальным?
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, Denwer, Вы писали:
Т>Последние два месяца прорезюмировал просто толпу соискателей на водителей Газели. Каково было мое удивление что 90% людей не знают ДЛЯ ЧЕГО НУЖЕН ДВОЙНОЙ ВЫЖИМ. Как такое может быть? Куда делись настоящие водители, а не оходники за деньгами? Что творится с людьми?
Виртуальный деструктор — затасканный вопрос. Cтыдно не знать ответ для C++ программиста, если чел его не знает, то он о C++ и не слышал.
С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, dilmah, Вы писали:
D>>>Вообще то в моем предложении был просто симафор, а не бинарный.
D>>вообще-то, я уже второй раз увидел написание "сИмафор". D>>Может подобное к подобному тянется? D>>Не хотят грамотные люди идти к неграмотному руководителю, да еще и зарплата наверно меньше 100 тыс.
D>Это вообще то транскрипция на английское слово, какая тут может быть неграмотность.
Вы хоть бы в словарик заглянули. Хоть бы в Мультитран.ру паршивенький.
Здравствуйте, Wolverrum, Вы писали:
W>Если этот самый виртуальный деструктор "очень нужен и важен", то почему classwizard вижулстудии не создает деструктор класса сразу виртуальным?
S>Виртуальный деструктор — затасканный вопрос. Cтыдно не знать ответ для C++ программиста, если чел его не знает, то он о C++ и не слышал.
S>С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.
Стыдно давать домашнюю работу должно быть. Я таким чудаковатым работодателям просто не отвечал. Некоторые через месяц-другой интересовались статусом "домашней работы" когда я о них уже забывать начинал
Здравствуйте, Handie, Вы писали:
S>>Виртуальный деструктор — затасканный вопрос. Cтыдно не знать ответ для C++ программиста, если чел его не знает, то он о C++ и не слышал.
S>>С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.
H>Стыдно давать домашнюю работу должно быть.
Ты хочешь сказать, что не надо давать домашнюю работу? Тогда на собеседования будут ходить очень странные личности получившие свои CV путем клонирования существующих. Так как они отнимают время, то повышают шанс не взять достойного кандидата.
Домашняя работа отсеивает где-то 50% подавших на позицию.
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, shrecher, Вы писали:
S>>Домашняя работа отсеивает где-то 50% подавших на позицию.
NBN>Не исключено что и реальных профессионалов
Здравствуйте, msk78, Вы писали:
M>А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.
круче! у нас предполагается, что он сидит один, в лесу, и без документации/интернета.
Здравствуйте, uhh, Вы писали:
uhh>Здравствуйте, msk78, Вы писали:
M>>А у нас на собеседованиях до сих пор (как это не пародоксально) предполагается, что программист сидит один. Как в лесу.
uhh>круче! у нас предполагается, что он сидит один, в лесу, и без документации/интернета.
Вау! Офис в лесу — да это прям работа мечты
S>С другой стороны, задавать этот вопрос на интревью тоже не этично: такие кандидаты отсеиваются на этапе домашней работы.
домашняя работа это грех. стрелять таких работодатeлей. он типа этим экономит врeмя hr и технарeй (30 мин), а о чeловeкe кот.дoлжен вылизать дoм заданиe и потратить на это день, он ссуко не думает. Может у него, соискателя, таких вариантов и подготовок к интервью еще штук 5, что ему неделю сидеть, код строчить для каждого задармо? А где вероятность что это его код?
Re: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Ну коль уж вы тут столько расписали в ответах к этому топику и причем все 50/50 -> надо знать/нахрена надо, ..вот у меня вопросы к спецам тогда и к навороченым собеседователям:
допустим определили что с виртуальным деструктором жить хорошо. Ну дык тогда при любом новом классо-написании тупо ставим каждый деструктор виртуальным.
1) Зачем тов.Страуструп завел эту тему отдельно (нет виртуального автоматически)?
2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?
3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
Здравствуйте, rsdntchkru, Вы писали:
R>1) Зачем тов.Страуструп завел эту тему отдельно (нет виртуального автоматически)? R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку? R>3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)
Не могу не присоединиться к вопросам. И правда, почему бы не возложить на компилятор определение необходимости виртуализовать деструктор и автоматически добавить вызовы базового в унаследованные классы (хотя последнее может и делается, все-таки на C++ не пишу)? Пока что ничего, кроме экономии скорости вызова деструктора в голову не приходит.
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?
нигде. За исключением того, что если класс изначально был неполиморфным (в нем не было виртуальных функций, он не наследовался виртуально или от полиморфных классов), то добавление виртуального деструктора делает его полиморфным. А полиморфные классы нельзя использовать в некоторых контекстах, скажем, включить такой класс в union.
R>3) Если в определенном классе нет разницы если деструктор виртуальный или нет, то чем плохо определение деструктора виртуальным? (скорость, ресурсы?)
некоторые люди просто этим не заморачиваются, потому что они используют классы как такую форму модульности, и они не используют их полиморфно -- это вовсе не везде нужно.
В остальных случаях -- да, скорость, ресурсы -- невиртуальный метод часто инлайнится и может быть абсолютно бесплатным. Виртуальный метод всегда платен. В зависимости от конкретного кода, это может быть неважно, а может давать десятки процентов оверхеда.
Re[3]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
Здравствуйте, rsdntchkru, Вы писали:
R>домашняя работа это грех. стрелять таких работодатeлей. он типа этим экономит врeмя hr и технарeй (30 мин), а о чeловeкe кот.дoлжен вылизать дoм заданиe и потратить на это день, он ссуко не думает. Может у него, соискателя, таких вариантов и подготовок к интервью еще штук 5, что ему неделю сидеть, код строчить для каждого задармо?
Аналогично, работодателю нужно в день еще 5 штук интервью провести.
R>А где вероятность что это его код?
О коде можно будет на интервью поговорить
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, sss1024, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
S>90% кода на С++ написано теми кто понятия не имеет что такое виртуальный деструктор.
S>C++ устарел, что такое виртуальный деструктор мало кто интересовался раньше а теперь уж и подавно.
Такие пионерские заявления постоянно слышу от некоторых дилетантов.
Которым потом надо объяснять, например, как пользоваться виртуальными функциями.
Ну, захотел человек первый раз ее использовать, написав до этого за много лет N мегабайт *овнокода.
Или чем NULL в базе отличается нуля.
Хотя о чем я. Просто достали!!!
От невежества и тупости не спасет самый современный, самый совершенный, самый супер-пупер язык.
Если проблемы с логикой на уровне ДНК и нет желания эволюционировать — значит в дворники.
Или хотя бы веб-странички раскрашивать.
Зы. Mobile еще тот покойничек... прямо скажем мертворожденный.
Хотя бы чем объяснить тот факт, что для программирования игр C++ был и есть до сих пор самой востребованной платформой.
Не веришь — почитай в на этом же сайте в других форумах,
тема платформы постоянно обсуждается.
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, _nikita_, Вы писали: J>>>... на работе надо делать дело, а не заниматься самообразованием. __>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот LVV>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... LVV>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
а еще в Раше бывают безграмотные начальники. Жесть...
Здравствуйте, Head Ache, Вы писали:
HA>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, _nikita_, Вы писали: J>>>>... на работе надо делать дело, а не заниматься самообразованием. __>>>Это лишь точка зрения работодателя. А точка зрения соискателя с точностью до наоборот LVV>>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... LVV>>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
HA>а еще в Раше бывают безграмотные начальники. Жесть...
Да этого добра не только у нас хватает...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, egaron, Вы писали:
E>ценность и незаменимость специалиста заключается гораздо больше в том, какими он связями оброс в процессе работы, как понимает суть проекта, — и таких людей держат и молятся на них и платят большие бабки , хотя на моей памяти именно они зачастую были виновниками нулл-референсов. ну а что, референсы и кодер подчистит, и нанять человека, который умеет кодить на определенной технологии — это задача тривиальная,в отличии от задачи удержать от увольнения эксперта в части бизнес-логики проекта с наработанными связями с заказчиками.
Страшно. Совок в чистом виде.
5 человек пишут код, чтобы Великая Марья Ивановна 3 раза нажала на ту кнопку...
Сам-то сильно оброс связями с MS или с Google?
А их услугами регулярно пользуешься.
С другой стороны, им нах не нужно с тобой "связями обрастать" для этого.
"а что, референсы и кодер подчистит..." — палишься, даже просто написать большими буквами "я 2 по 5" И ТО БЫЛО БЫ МЕНЕЕ ВЫРАЗИТЕЛЬНО.
На моей практике — чтобы их "подчистить" — вообще переписать полностью весь код потребовалось.
Разбираться в ветвях на 1000 строк вообще нереально, оказалось, кода требовалось примерно раз в 5 меньше.
Здравствуйте, Denwer, Вы писали:
D>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?
Я не С++ программер, но если немного поразмыслить, то получается:
деструктор — значит, нечто, что отвечает за уничтожение объекта
виртуальный — значит, скорее всего, объявленный в абстрактном классе и предназначенный для реализации (если нужно) в конкретном классе (полиморфный метод).
Получается, виртуальный деструктор — метод, объявленный в абстрактном (супер)классе, который может быть реализован в конкретном классе, и отвечает за уничтожение конкретного типа объектов.
В Perl-e это sub DESTROY {}
Re[2]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
Здравствуйте, rsdntchkru, Вы писали:
R>2) Где в практике может использоваться именно(!!!) не виртуальный деструктор а замена его на виртуальный даст критическую ошибку?
Встречал подобное в реальном коде, так что это не выдуманный пример. В принципе, действительно удобно для структур, хранящих какие-то наборы из большого количества числовых (или строковых с буфером фиксированной длины) значений, которые надо сохранять в файле. Каких-нибудь настроек программы, например. При добавлении новых полей или удалении старых не надо переписывать методы записи/чтения из файла. Но одновременно и очень опасный прием.
Пока деструктор не виртуальный, все будет работать, сделаете виртуальным — начнет крашиться.
Re[3]: Я в шоке-НУ ТАК ВСЕ ЖЕ ЗАЧЕМ ОН ВИРТУАЛЬНЫЙ???
[troll mode on]
Чем только не приходится заниматься сишникам в отсутствие нормальной сериализации
[troll mode off]
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.