Здравствуйте, mymuss, Вы писали:
M>Ваше мнение?
Однозначно no hire. Не портите кандидату карьеру. Таких чудес, что бы из-за забытой формулы площади круга однозначно отсеивали неплохих специалистов я не встречал. Тут ты переплюнул всех, абсолютный рекорд! Вы там чем, простите, занимаетесь? На Ajax пишете или площади люков считаете?
Вот поспорили с коллегой насчет собеседований.
У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
1. посчитать сумму элементов целочисленного массива
2. найти площадь круга по радиусу
3. записать текущую дату в текстовый файл
Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, jartur, Вы писали:
G>>>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
J>>А если просто вспомнить что предел sin(x)/x при x->0 равен 1, а cos(x) — нулю? И взять интеграл по углу.
L>Вы в своем уме? Раз человек не знает формулу площади круга, то интегралы он и подавно не знает.
Наверное, это на случай если человек на самом деле с мозгами, но просто вылетела формула площади круга из головы. Ну мало ли, со школы ни разу не использовал... столько лет прошло.
Вот вспомнился анекдот из советских времен:
Окончил парень университет, пошел работать инженером, женился,
ребенок у него родился - а на инженерскую зарплату не проживешь.
Пошел он лучшую работу искать. Куда ни сунется, его спрашивают
про образование, предлагают быть инженером, а на инженерскую
зарплату как проживешь? Спасибо, друзья научили:
- Ты говори, что 7 классов школы кончил.
Ну, он так и сказал, взяли его в цех помощником токаря, платят
две инженерские зарплаты, все хорошо. Через полгода подходит к
нему профорг:
- Ты у нас один из лучших рабочих. Мы посоветовались, решили,
что ты должен школу закончить. Пойдешь в 8-й класс вечерней школы.
Ну, куда денешься? Пошел. Сидит он на уроках по вечерам, спит
от усталости, учителя не слушает. Вдруг вызывают его к доске,
спрашивает его учитель найти объем цилиндра. А он школьной формулы,
хоть убей, не помнит. Заслоняя доску собой, взял он простенький
двойной интеграл, перешел к полярным координатам и получил ответ.
Только объем у него почему-то вышел отрицательным. Стер он интеграл,
написал новый, все перерешал - опять объем отрицательный! Вдруг слышит,
двоечник и худший ученик класса шепчет ему с парты:
- Ты пределы интегрирования перепутал! Переставь их, все получится!
Здравствуйте, Vzhyk, Вы писали:
V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение?
Ща расскажу тоже примерчик. Встретил недавно в коде конструкцию как-то:
if (!updateBtnShow || !(!updateBtnShow || !(isCustomer))) ...
Специально сохранил такой шедевр, делюсь . Так вот, тех, кто это написал я называю не иначе, как гениями. У меня просто не укладывается какой супермегавысокий IQ надо было иметь, чтоб вот это написать и поддерживать. Только вот это ... может лучше нанимать народ со средним IQ ?
Кстати, после того, как я это упростил и понял че там хотели проверить, оказалось, что условие выполняется вообще всегда и if надо убрать вообще.
Здравствуйте, catBasilio, Вы писали:
ГВ>>Математика — это не только школьная программа. Кстати, геометрия — это математика или нет? А алгебра?
B>И геометрия и алгебра и даже начертательная геометрия — это все разделы матемарики. Так что топикстартеру можно на собеседовании вполне задавать вопросы, как по двум имеющимся проекциям начертить третью. Как начертить болт и т.д.
Неправомерное сопоставление. Но я-то понимаю, почему вопрос по начертательной геометрии не сопоставим с "площадью круга". Он не сопоставим даже с "дискриминантом квадратного уравнения". Но это я понимаю...
Ладно, как бы то ни было, оказывается, что "площадь круга" — просто находка для технического собеседования. Такая же хорошая, как и неожиданная. Вообще, за эти два дня три вещи стали для меня нехорошим открытием:
— Что эту формулу помнят не все программисты (если это технари, то в этом мире что-то не так);
— Что некоторые программисты могут развизжаться как дети, если у них её спросить (если это выражение достоинства специалиста — то в мире явно что-то не так);
— Что кому-то может прийти в голову сравнить "площадь круга" с разделами ВМ в том смысле, что и то и другое — одинаковые пугающе глубокие познания в отвлечённых от программирования областях (если в головах такой хаос, то в мире точно всё будет не так).
Обрати внимание, я не пытаюсь апеллировать к "поколениям" и прочей белиберде. Судя по всему, это что-то вневозрастное.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Grizzli, Вы писали:
G>>>Более того, опытный разработчик на формуле круга пошлет нахрен собеседователя. Ибо не экзамен в вузе сдавает. И будет прав. ГВ>>За всех не расписывайся, ладно? G>Что, и таблицу умножения всю наизусть продекларируете если попросят, да? Действительно себя так не уважаете?
Забыл добавить, что я настолько уважаю себя, свою профессию и своих учителей (не только профессиональных), что не могу спокойно смотреть на то, как в эту профессию лезут беспардонные неучи, из-за которых дискредитированной окажется вся цепочка, включая меня любимого. А вести себя в манере "послать нахрен, из-за того, что задали простейший вопрос" — это вообще вульгарное хамство, которое у меня как-то совсем не вяжется ни с профессиональным, ни с деловым этикетом.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, ihatelogins, Вы писали:
I>Чем принципиально отличается знание для программиста площади круга от знания тезисов 20-го съезда КПСС?
Чем принципиально отличается умение сосчитать до десяти от знания площади круга?
Есть общечеловеческий бекграунд. Нам его дают в младших и средних классах школы.
Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
M>Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
У меня такой принцип, приходит разработчик, я ему предлагаю выполнить три простых теста:
— стать в правильную боксерскую стойку
— сделать сальто
— забросить трехочковый мяч в корзину для баскетбола
Если допускает ошибку в любом из тестов — "no hire". Только если правильно и быстро смог выполнить три теста, будем продолжать разговор.
Детские ошибки, типа "поднятый подбородок в боксерской стойке" — означают, что в лучшем случае получит рекомендацию на junior developer.
Недавно пришел разработчик, не смог сделать сальто, и плохо закрывает печень в боксерской стойке. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа T-SQL, C#, ASP.NET, ABAP, XSLT, WPF/Silverlight, WCF, IDEFX'ы на mid-level тянет. Коллега предлагает hire.
Считаю, что в собеседовании не должно быть вопросов, которые бы однозначно проваливали бы интервью (осбенно связанных с написанием кода). Человек может перенервничать, ляпнуть явнуую глупость, которой сам же через 5 минут удивится.
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, ihatelogins, Вы писали:
I>>Чем принципиально отличается знание для программиста площади круга от знания тезисов 20-го съезда КПСС?
SE>Чем принципиально отличается умение сосчитать до десяти от знания площади круга? SE>Есть общечеловеческий бекграунд. Нам его дают в младших и средних классах школы. SE>Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил.
Нуну. Вот альдегиды тоже в школе проходят, тоже в своем роде "общечеловеческий бэкграунд". Ну давай теперь распрашивать кандидатов про получение и применение альдегидов. А ведь еще и физика есть, и биология.
Мой вердикт: самоутверждение перед кандидатом — единственная причина подобных "вопросов".
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива
Эту наверное бы написал даже на бумажке.
M> 2. найти площадь круга по радиусу
Так получилось, что я ее помню каким-то образом, но за последние 10 лет не помню чтобы приходилось пользоваться. Мог бы и забыть. Если этот вопрос задается кандидату, а у него есть комп с инетом и гуглом, тогда нормально. Если нет, то смешно даже )) Если, конечно, ваша контора какие-нибудь игры не разрабатывает и не набирают разработчиком движка...
M> 3. записать текущую дату в текстовый файл
Без компа, MSDN и intellisense впал бы в глубокий ступор. Возможно бы и справился, но не уверен )
Не, не прошел бы я интервью )) Если конечно после этого с вашим коллегой не начали бы просто говорить на посторонии вещи...
Здравствуйте, mymuss, Вы писали:
M>Ага, мужики там ураган. Еще такая национальная черта: в резюме обязательно перечислить ВСЕ языки программирования, о которых когда либо слышал.
Ну, как правило, это вполне компенсируется перечислением в объявлении о работе ВСЕХ языков и технологий, о которых слышал работодатель, так что нормально .
Здравствуйте, mymuss, Вы писали:
M>Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
M>Ваше мнение?
Чем принципиально отличается знание для программиста площади круга от знания тезисов 20-го съезда КПСС?
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива
Нда, последний раз я массивами черти когда пользовался, аж синтаксис забываю. Я б точно попался на том, что я вообще блондин, даже в синтаксисе ошибку сделал . Вывож отсюда делаем — языка, на котором я пишу, я не знаю . M> 2. найти площадь круга по радиусу
Это еще помню, но если спросят таблицу производных или что-то из тригонометрии страшное, то за неприменением забыл, и запросто облажаюсь. M> 3. записать текущую дату в текстовый файл
Тоже самое, последний раз я с низкоуровневыми операциями с файлами я при учебе в в институте производил. А на практике как-то через врапперы все, почему-то, что-то сохраняешь, и вообще не знаешь куда это пойдет, в базу, в файл, или как смс на мобильный телефон, а врапперы написаны 100 лет назад и лезть туда не надо, они работают. А то и вообще все на аспектах сделано, и даже не знаешь, что в момент вызова этого метода в базу логается юзер, дата, время и параметры, с каким сервис вызывался. В результате для меня без справочника задание сейчас слишком сложно на любом языке программирования, я помню только ключевые слова, по которым надо искать в гугле.
M>Ваше мнение?
Итого, в студенческие годы или если б я претендовал на первое место работы, я бы эти тесты прошел влегкую. Сейчас у меня шансов мало . Ну и далее, мне что-то кажется, что люди, прошедшие ваш фильтр при работе как раз и будут использовать везде массивы там, где нужны коллекции, в коде каждый раз будут лепить операции с файлами, даже не вынося эту логику в отдельный метод, так и будут 1000 раз в коде в разных местах открывать файл, проверять коды возврата, писать туда что-то и закрывать файл. Метрики на количество строк кода, написанного в день, будут потрясающие, сразу будет видно, что народ работает .
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, SE, Вы писали:
SE>>Такие же проблемы, как и в других областях разработки ПО, и вообще в других областях, гм, народного хозяйства. O>Так какие именно? Я плотненько работал в нескольких областях разработки ПО и не могу придумать ни одной проблемы, которую могла бы создать забытая школьная формула. Я тебе даже больше скажу, довелось мне и с математикой поработать в свое время, так и там это не было бы проблемой, т.к. для формул есть справочники, как для параметров методов документация. Это не то что бы не гарантированная проблема, это гарантированное отсутствие каких либо проблем в разработке вообще.
Забытая формула дает проблемы не сама по себе, забытая формула — показатель того, что человек научившись крутить свою гайку, решительно и бесповоротно поставил крест на всем остальном. И наличие справочника по параметрам функции никак ему не помогает — ну не знает он даже что классы есть готовые, с нужными методами в которых параметры, на которые есть документация. Он ведь гордая птица, ему "левые" знания не нужны, и любознательности у него ноль.
SE>>В отличие от инженера, который знает как свою область, так и несколько смежных областей. O>Математика лишь одна из кучи областей, и я бы сказал — редко встречаемая.
Хм. А по-моему так же часто как и остальные. Вот конечные автоматы просто в каждом проекте из года в год. Может это специфика веба? Деревья тоже с завидной регулярностью встречаются. Тоже специфика? Да, это не вторые производные и не интегралы, это дискретка, но это тоже математика.
И по моему опыту, человек, который бравирует тем, что "это мне не надо", очень часть оказывается не в состоянии качественно сделать скажем хитрую навигаю по по опроснику, просто потому что понятие "конечный автомат" он считает чем то слишком заумным, знай себе клепает десятки if'ов.
Я не сомневаюсь в компетенции всех, кто присутствует на этом сайте, но оглянитесь вокруг, множество людей называют себя программистами, даже не зная разницу между рекурсивными вычислениями и итеративными. Потому что оно им не надо. Незнание площади круга ведь не мешает неподдерживаемый код писать.
Здравствуйте, landerhigh, Вы писали:
L>Я не знаю, как там в Индии, но просить человека с ВО и заментым послужным списком написать формулу площади круга есть оскорбление, за которое в иных кругах общества могут и по морде-с дать-с. Поэтому не стоит удивляться, есть матерый С++ пошлет трехэтажно на просьбу написать "запись даты в файл".
Этот "матёрый C++-ник" — стоеросовая дубина, не способная понять, что раз наниматели задают такой вопрос, то они сталкивались с тем, что кто-то таких элементарных вещей не знает. И не будь этого топика, я бы тоже в такое положение дел не поверил. Но увы, тут уже под две сотни сообщений, из которых добрая треть — защита ограниченности, лени и дремучего невежества под маркой "специализации".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, SE, Вы писали:
SE>>Тут выше дообсуждались до того, что программист это знать не обязан
AVK>Это ты к дообсуждавшимся обращайся.
Здравствуйте, mymuss, Вы писали:
M>Это первый кандидат, который не смог ответить на математический вопрос, но при этом относительно сносно отвечал на остальные. С одной стороны, технологию и платформу человек, вроде бы, знает (ну ладно, логарифмический скролер не напишет, ну не страшно, спросит у соседа). M>я пытаюсь предотвратить найм быдлокодеров, пишущих ужаснейший тормозящий код.
Вы еще про творчество Иосифа Бродского спросите. Тогда точно ни одно быдло не пройдет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, landerhigh, Вы писали:
L>Я не знаю, как там в Индии, но просить человека с ВО и заментым послужным списком написать формулу площади круга есть оскорбление, за которое в иных кругах общества могут и по морде-с дать-с. Поэтому не стоит удивляться, есть матерый С++ пошлет трехэтажно на просьбу написать "запись даты в файл".
Отлично! Сразу ясно, человек настроен не работать, а гонять понты. А если ему завтра дадут задание: срочно найти в чужом коде ошибку, проект горит, никто не может выяснить в чем дело. А он скажет "Я тут синьор, такой чепухой заниматься не собираюсь. Давайте я лучше буду архитектуру системы дизайнить и в паверпоинте рисовать". Ну и зачем такой "синьор"?
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива
Ключевое слово: целочисленнное переполнение. Почему об этом никто не вспомнил? mymuss, ты тоже об этом не сказал.
M> 2. найти площадь круга по радиусу
Ключевое программисткое слово: #INF, NaN. Почему об этом никто не вспомнил? Ишь, обидели их — вы ещё площадь квадрата "забудьте".
M> 3. записать текущую дату в текстовый файл
Две-три ключевых проверки: что файл открылся (открыт) и что запись прошла успешно и полностью, и что удалось нормально закрыть, если открывали. Интересно, почему о второй проверке никто не вспомнил?
M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
M>Ваше мнение?
См. пункт 1.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да?
Есть кстати, офигительный пример на тему важности CS бэкграунда. Мне много раз приходилось видеть, каких монстров плодят в качестве парсеров, если человек не знает азов теории формальных грамматик.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, mymuss, Вы писали:
M>Как я уже не раз писал, помощь по библиотечным ф-циям предоставляется. Конечно, хотелось бы, чтоб кандидат хорошо знал фреймворк, иначе будет заниматься изобретательством велосипедов. Но если человек последние Х лет только с вебсервисами работал, то неудивительно, что он забыл IO. Однако в этом случае я сделаю себе пометку: поговорить по фреймворку и буду ожидать, что, скажем, System.Xml он знает хорошо.
C System.Xml тоже самое, на практике весь этот Xml оборачивается так, что не знаешь, что внутри Xml, текстовый файл, база, класс, вебсервис или еще что. Соответственно хорошее знание System.xml будет у того, кто вместо оборачивания этого все время копипастил, и ему было не лень. А то, что используется на практике очень часто — это различные коллекции.
M>Мое мнение такое, если человек вообще не знает стандартные средства (.NET class library, STL, boost, whatever) то это junior.
Если я перехожу с .NET на Perl допустим, и у меня 10 лет опыта, то даже если я ни синтаксис перла, ни его библиотеки в глаза не видел — у меня один черт квалификация будет больше, чем у джуниора, на среднего я точно потяну. А когда набью руку (а я набью ее меньше чем за год), то снова стану сеньером. И относительно библиотек — проверять надо не на доскональное знание всего этого, а на предмет того, знает ли он о том, что в этих библиотеках содержатся. Не надо знать имена, передаваемые параметры, надо знать только что приблизительно есть в библиотеках, что библиотеки есть, что перед тем как городить собственный велосипед надо посмотреть, нет ли этого уже в библиотеках. Ну и можно поспрашивать — как бы они реализовали библиотечный класс, если бы были авторами фреймворка.
PS Я похожие рассуждения о требованиях к кандидатам чаще всего слышу от людей, которые очень быстро сделали карьеру, но так и не успев научиться программировать. И в результате они очень далеки от понимания того, чем же занимаются разработчики под их руководством, и кого им следует искать.
Здравствуйте, landerhigh, Вы писали:
ГВ>>По-моему, он отвечал на этот вопрос раз десять. Беда в том, что его оппоненты ждут вполне определённого ответа. По существу — крайне наивного ответа, выражающего непосредственную связь явлений. Логично, что mymuss его не может дать. L>Конкретно ни разу не ответил. Ломается, как барышня.
А по мне, так всё кристально ясно. Вот такая эмпирика у mymuss — что как не знает человек формулы площади круга, так и геморрои с ним начинаются. Как оно работает, это нехай нейробиологи разбираются, а пока что это будет народной приметой.
L>Какие гарантированные проблемы? Только не надо ссылаться на mymussа и его наблюдения.
mymuss утверждает, что какие-то заморочки есть, остальное меня не волнует. Меня здесь больше шокирует (повторяю в j+1-й раз), что некоторые эту злополучную формулу не просто не знают, а ещё и пищат, аки девы непорочные в ложе влекомые.
L>Похожий пример — у матерого С++ника на собеседовании спросили определение полиморфизма. L>Вопрос — кто идиот?
Зависит от. Вообще, сами по себе вопросы на слабоопределяемую тематику "ОО-определений" — отдельный разговор. Может статься, что идиоты в данном случае — работодатели.
ГВ>>Ну, как показывает весь этот топик, уважать одно только резюме и корочки — контрпродуктивно. По меньшей мере — самонадеянно. Можешь поверить мне на слово — ещё неделю назад я так не думал. L>А никто не обещал, что будет легко.
Оппоненты mymuss.
L>В примере с С++ прграммистом спрашивать определение полиморфизма, когда у него в резюме ясно сказано, что проект А под его руководством был построен с использованием подхода с полным использованием почти классического ООП, проект B использовал статический полиморфизм в хвост и гриву и так далее есть проявление грубейшего неуважения так как показывает, что резюме никто не читал и кандидат имеет полное моральное право не просто занести контору в самое глубокое место своего личного черного списка, но и высказать собеседователю все, что о нем думает.
Честно сказать, подобное резюме уже показатель некоторой неадекватности кандидата. Статический/динамический полиморфизм вряд ли достоин упоминания в резюме. Тем паче — в резюме "матёрого C++-ника". А наипаче — в контексте описаний отдельных проектов. Тоже мне, важность великая — аж динамический полиморфизм! Он бы ещё написал, что использовал const-ссылки и explicit-конструкторы. Будь я собеседующим — я бы тоже спросил, что такое "полиморфизм", раз уж оный так особо выделен. Мало ли, может меня сейчас сразят потоком знаний, доступных этому великому гуру и я потом буду ходить полдня осчастливленный? А иначе на кой хрен вообще упоминать про полиморфизм отдельно в резюме? Он считает, что знание о полиморфизме не подразумевается по умолчанию? Это точно матёрый C++-ник?
И прости, я вообще не понимаю, что значит — использовать СП "в хвост и в гриву"? Может, я от жизни отстал, и это некий такой предмет, который можно пользовать так или эдак? По-моему, он просто используется где нужен и всё.
L>Вопрос о площади круга, поданный именно в таком ключе — есть именно оскорбление.
Меня терзают смутные сомненья.
L>Хотите сгладить? Нет проблем, сделайте тест на "общую эрудицию" и спрашивайте там хоть "-жи -ши пиши с И", но не удивляйтесь, что наиболее квалифицированные кадры станут обходить вашу контору за семь верст.
Узкий специалист подобен флюсу. (c) Козьма Прутков.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
M>Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
M>Ваше мнение?
Выбирайте, как в том самом присловутом анекдоте. "или шашечки, или ехать".
Здравствуйте, Dog, Вы писали:
Dog>>>зы. А вообще автор зря не указал в первом посте, что это "индусская специфика". ГВ>>Хм. Ты уверен, что это только "индусская специфика"? Я вот, уже не стал бы так говорить. Dog> а что, нонче русские сеньёры уже такие пошли(массово) ?
Та смотрю на ответы в этом топике и разные мысли грызут меня...
Здравствуйте, olegkr, Вы писали:
AVK>>Вот это уж вряд ли. Может ты просто не осознавал. O>Нет. Я ее просто не учил. Точнее все эти булевые выражения я знал задолго до учебы в универе и отнюдь не по книжке по математике.
И что? Это отменяет их полезность?
O>А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра? Да ненамного сложнее +-/*
Не, не все так просто. Кроме простейших правил преобразования логических выражений там много интересного, навроде методов устранения избыточности. Это, к примеру, применяется, когда функция описана только таблицей истинности, и нам нужно преобразовать эту таблицу в минимальный набор логических выражений в заданном базисе.
O>, разобраться и понять можно за несколько часов
Ну, в институте на это полсеместра тратится.
O>, а сколько гонора и спеси.
Гонор и спесь я в этом топике вижу не от мифических "математиков", а как раз таки от товарищей, которые гордятся полным отсутствием знаний в базовых разделах дискретной математики.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
AVK>>Это у всех так. O>Не у всех. У тех, кто помимо книжек еще и работал во время учебы все гораздо кошернее.
Непринципиально. Главное. что практика вполне себе нарабатывается и без участия ВУЗа.
O>И будут они "печально" кодить и зарабатывать денежку, даже не зная, чего они лишились
Вот в этом и состоит одна из серьезнейших проблем софтостроительной индустрии, что можно "кодить и зарабатывать денежку", имея весьма посредственную квалификацию.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Да. Ты задаешь просто типичный вопрос работодателя, у которого проблемы с набором персонала. На этом форуме таких немало
M>Ну мы как бы обработкой графики занимаемся, хотя, конечно ваятелю веб-интерфейса, возможно всех деталей знать не надо.
Для ваятеля веб-интерфейса достаточно вот каких познаний о площади круга — "то ли Пи-Эр-Квадрат, то ли Два-Пи-Эр, забыл, блин". И забыл не потому, что тупой, не потому, что и не знал — а потому, что _другие проблемы у человека в жизни, в т.ч. профессиональной_.
Вспоминается: анекдот про Мойше, ответившего на такой вопрос — "мне бы ваши проблемы, господин учитель".
Здравствуйте, игппук, Вы писали:
И>я ознакомился с этим принципом. паттерном мне его назвать сложно.
А паттерном его никто и не называл.
И> принцип — это более правильное определение.
Он так и называется — принцип Ты с кем споришь то?
И>принцип лисков там не был описан, потому про него не в курсе.
Отож.
И> сейчас в курсе, благодаря вам, спасибо. и тем не менее, я не могу сказать, что знание/не знание этого принципа сможет охарактеризовать уровень программиста.
Программисты, они разные бывают. И задачи тоже разные. Проиллюстрирую. Когда только появлялись самолеты, паровые машины, первые ДВС и электродвигатели, и прочая машинерия времен разбега НТР, их как раз и делали по похожему принципу. Т.е. понимаем принцип действия (причем даже знания физических законов не нужно), берем эмпирически составленные справочники физ. величин и гнотовых решений, комбинируем и модифицируем это все, исходя из здравого смысла и интуиции, и получаем результат. Иногда получался неплохой результат, иногда не очень, но современную технику так уже нико не делает.
Поэтому да, пользуясь потрясающей гибкостью программных сред, превосходным запасом ресурсов, и тяжелой ситуацией с детальным анализом реальных программных систем ввиду их чудовищной сложности, вполне получается создавать коммерчески пригодные программные продукты, не отягощая голову математикой, принципами проектирования и прочей чешуйней. Особливо если нужно не что то принципиально новое, а yet another web site.
Так что каждый решает для себя сам — то ли ему достигнуть среднепотолочного уровня, а дальше просто, как советуют в соседнем топике, относится к программированию как к неизбежному злу для зарабатывания бабок, то ли реализовать свое желание покомандовать и уйти в менеджеры, то ли продолжать развиваться дальше в качестве технического специалиста. Знание теории необходимо только для последнего варианта развития событий.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
M>Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
M>Ваше мнение?
Эээ. Это вот эту формулу?
Ну точно no-hire. Это же так важно.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K?
программисту не нужен математический бэкграунд выше +-*/. за все годы работы математика мне понадобилась всего лишь пару раз, и даже не математика, а геометрия и физика. я к математике не причисляю умение работать с булевыми и битовыми операциями (с ними работаю очень часто), по той простой причине, что они есть часть компьютерной логики, которую знать нужно.
для специфический областей, типа геймдевелопинга, обработка звука, изображений и так далее, математика, безусловно нужна. всем остальным — нет. не насаждайте свою маниакальную любовь к другим программистам, так как на практике реально она им не нужна.
Здравствуйте, olegkr, Вы писали:
M>>Ваше мнение? O>Однозначно no hire. Не портите кандидату карьеру. Таких чудес, что бы из-за забытой формулы площади круга однозначно отсеивали неплохих специалистов я не встречал. Тут ты переплюнул всех, абсолютный рекорд! Вы там чем, простите, занимаетесь? На Ajax пишете или площади люков считаете?
Ваша категоричность суждений по трём предложениям (вопросам) ни в чём не уступает категоричности автора. Точно так же: белое-чёрное, ноль-еденица.
Человек же, работник, специалист — шире и выше этого. Я сейчас не о кандидате на джодлжность, а о нанимателе.
Представьте ситуации. Компания ищет С++-ника, а приходит человек с исключительно php-бэкграундом. За отрицательный ответ на один-единственный вопрос "знаете ли С++?" работодатель _имеет_ [моральное] право (не "обязан"!) отказать. Согласны?
Теперь: в конторе круто используется буст, а кандидат, хоть и С++-ник, но кроме MFC ничего не видел. Имеет моральное право компания по одному этому критерию отказать?
Кто-то, например, не вспомнит площать круга, но минут за пятнадцать выведет её сам, но зато не сможет написать ни одного алгоритма сортировки.
Кто-то, наоборот, чудно умеет готовить алгоритмы, но пишет небрежный код.
Все мы разные. И работодатель, смотря на нас, имеет право (и должен) настраивать фильтры как ему надо, на свой страх и риск (именно это и просил автор — не слишком ли круто).
В некоей компании уже может может быть сформировавшийся сработавшийся коллектив с определёнными взглядами на мир и на профессиональную деятельность, и ничего странного, что человек без некоторых знаний может оказаться в нём (коллективе) не в своей тарелке. Позвольте это решать нанимателю и постарайтесь удержаться от оскорблений в его адрес. Ругать можно за обман, например, а не за алгоритм принятия решения.
В общем, всё вышесказанное было написано под влиянием негатива, опустившегося на уши топикстартера, и не вы один виновник всего
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, игппук, Вы писали:
И>другими словами, ответа на мой вопрос нет? можно сколь угодно долго рассказывать про теорию, но если она не доходит до практики, то здесь тоже много вопросов возникает.
Мой ответ кристально чист и прозрачен, и я всем сердцем скорблю, что он ускользнул от тебя. Даже если до нас снизойдет откровение и мы будем знать абсолютно точный ответ на поставленный тобою вопрос, это не решит проблему целесообразности упоминания о Великой Формуле S = Pi * R * R на собеседовании.
Но если без ответа на свой вопрос дни твои пасмурны, жизнь лишена смысла, то первым моим побуждением было ответить на него нет, не нужна. Но потом в голову пришла мысль, что применение Формулы Площади Круга настолько естественно, что те мгновения, когда ты пользуешься ею в жизни, пролетают без следа в памяти. Это посеяло в моей душе зерно сомнения в правильности столь категоричного ответа. Перед моими глазами промелькнули некоторые мои скромные поделки: контролы в виде измерительных приборов, web-приложение связанное картографией. Посему моим окончательным словом будет скорее всего не понадобится.
Что попало Я бы даже сказал так: дешевые понты. Типа широким жестом кидаем вопрос, не получаем ответа за 30 секунд и с миной звезды оперы и балета, высоко подняв голову, демонстративно выплываем из комнаты, бросая через плечо "No hire!"
Мое мегасубъективное мнение таково, что если вы ищете типа на Ajax, то и спрашивать его нужно по Ajax и смежным "дисциплинам". Какая к идрене фене разница, знает ли он площадь круга, помнит ли доказательство теоремы Пифагора и способен ли написать уравнение колебания маятника. Он педалит аякс? Педалит. Ну так берите его, закрывайте вакансию и пусть начинает работать.
З.Ы. Кстати, а почему по физике из школьного курса никаких вопросов? Или там по химии — че-нить про бензольные колца? Тоже ведь школа, элементарщина...
Здравствуйте, mymuss, Вы писали: M> 1. посчитать сумму элементов целочисленного массива
Хороший вопрос на синтаксис. Неправильный ответ — no hire. (исключение — мелкие ошибки, например точку с запятой от волнения забыл поствавить)
M> 2. найти площадь круга по радиусу
Вопрос на общую эрудицию. Лично я бы не захотел работать с человеком, который не помнит таких вещей. Но это — личное мнение, которое никак не относится к его служебным обязанностям.
M> 3. записать текущую дату в текстовый файл
А вот это — лишнее. Хочешь копнуть уровень — поспрашивай реально востребованные вещи. Пусть кандидат напишет че-нить типа класса Point. С парой конструкторов, cо свойствами X и Y, переопределит метод ToString(). Время — 5 минут, а срез знаний более полный.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, olegkr, Вы писали:
ГВ>>Просто раньше это не обозначали на англоязычный манер "IT-индустрия", а пользовались другим термином: "Электронная и радиотехническая промышленность". O>Каким боком это относится к разработке ПО???
Ты правда не понимаешь, или прикалываешься? А под чьим крылом тогда велась разработка вычислительной техники и ПО? Сорока на хвосте принесла, что ли?
На вскидку первая ссылка из гугля: http://50.tsure.ru/encikl/cafedras/niimvs/text3.htm
ГВ>>Следовательно, подготовка по этим специальностям была вполне современной O>Я прекрасно помню ту "подготовку" в ВУЗ-ах. Как и сейчас она была близкой к нулю. Учится приходилось самому на практике.
Чему учиться? Новые API, тулзы, языки, ОС растут как грибы — ни один вуз за ними не угонится. Правильный вуз даёт прежде всего фундаментальную подготовку, подкрепляя её определённой практикой, но ни в коем случае не наоборот! Под "фундаментом" я не имею в виду "фундаментальные знания об устройстве ОС Windows", конечно... Вот, например, много тебе пришлось изучать такую штуку, как нормальные формы БД после вуза? Мне не пришлось совсем, вполне хватило институтских конспектов, потом купил пару книжек, чтоб не забыть. Та же история с теорией графов, статистикой, формальными грамматиками, теорией автоматов и т.п. И почему-то всё из перечисленного пригодилось. Что я делал не так?
Да, Win32 API пришлось изучать самостоятельно (надо же, какая беда, на то, чтобы въехать цельных полдни ушло!), прерывания DOS, какой ужас — тоже. А вот PL/1, представляшь, забыл совсем, за компанию с фортраном и языком пакетных заданий ЕС ЭВМ — сто пудов, повод объявить институт отстоем и маздаём, кто бы спорил.
ГВ>>Вот так приблизительно, а ты говоришь — никакого проку с теоретиков. O>И какой же? Не вижу аргументов.
Ну я ж сказал, что LSP сильно повлиял на развитие ОО-проектирования. Почитай внимательно те же паттерны, поймёшь, о чём речь. В свою очередь сам LSP сформулирован "теоретиком" CS — Барбарой Лисков. Ну, как я ещё должен перефразировать очевидную вещь? Картинки со стрелочками нарисовать?
O>Куда более наглядно видна нулевая подготовка выпускников ВУЗ-ов.
Это связано с двумя явлениями: первое — объективно стали хуже учиться, второе — стало намного больше истерики по поводу "неподготовленности" молодых специалистов. Ни в том, ни в другом по большому счёту прямой вины вузов нет. Если ты подумаешь, то поймёшь — почему.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Для ваятеля веб-интерфейса достаточно вот каких познаний о площади круга — "то ли Пи-Эр-Квадрат, то ли Два-Пи-Эр, забыл, блин". И забыл не потому, что тупой, не потому, что и не знал — а потому, что _другие проблемы у человека в жизни, в т.ч. профессиональной_.
Если человек всерьез принимает 2πR за возможный вариант, то это и в самом деле говорит о проблемах с элементарной математикой. Если он сказал бы, например, «πR²/4», вот это говорило бы о том, что он просто забыл формулу.
Не станет же кандидат отнимать время у собеседующего расчетами вроде
верно? А вот не заметить, что вариант «2πR» не подходит по размерности, — грубая ошибка. Он с тем же успехом не заметит разницы между O(n²) и O(n³), а это даже для AJAX бывает важно.
Я всегда был против жестких правил того, что же программист должен знать. Некоторые вот начинают, что мол, например, программист должен знать и быть способным реализовать хотя бы 3 стандартных алгоритма сортировки и т.д. в таком духе. Я всегда был против этого. Но случай с площадью круга — это по-моему п...ц, я бы скорее всего постремался такого специалиста брать на работу.
С другой стороны действительно всякое бывает... хз... Скорее всего правильным решением было бы более жесткое собеседование, так сказать дать человеку второй шанс.
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, ihatelogins, Вы писали:
I>>Чем принципиально отличается знание для программиста площади круга от знания тезисов 20-го съезда КПСС?
SE>Чем принципиально отличается умение сосчитать до десяти от знания площади круга?
Умение считать до десяти постоянно требуется. И часто повторяется. Забыть тяжело.
Площадь круга требуется единицам. Я не могу придумать случая, чтобы она действительно требовалась в повседневной жизни.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, olegkr, Вы писали:
O>>Однозначно no hire. Не портите кандидату карьеру. Таких чудес, что бы из-за забытой формулы площади круга однозначно отсеивали неплохих специалистов я не встречал. Тут ты переплюнул всех, абсолютный рекорд! Вы там чем, простите, занимаетесь? На Ajax пишете или площади люков считаете?
M>Ого, неужели я много требую? Ну мы как бы обработкой графики занимаемся, хотя, конечно ваятелю веб-интерфейса, возможно всех деталей знать не надо.
Сколько вам времени надо что бы в интернете найти формулу?
а если вы этим занимаетесь, я думаю, у вас и справочники под рукой всегда .
Блин, ну вот 99% процентов уверен что эту формулу знаю, а вы знаете уравнение Бернулли? А в моей области каждый знает, а кто не помнит за пару сек в инете найдет — и от этого его алгоритм не будет хуже моего
Здравствуйте, olegkr, Вы писали:
ГВ>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? O>Мимо. Когда-то учили. Не пригодилось за 15 лет, хотя чем только ни приходилось заниматься.
Хм. Значит, никогда не приходилось преобразовывать выражения вот так:
if (!a || !b) ==> if (!(a && b))
?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Glоbus, Вы писали:
G>З.Ы. Кстати, а почему по физике из школьного курса никаких вопросов? Или там по химии — че-нить про бензольные колца? Тоже ведь школа, элементарщина...
Предлагаю на собеседовании добавить вопрос про пестики и тычинки
---=== С наилучшими пожеланиями, Phoenics ===--- _
Здравствуйте, Vzhyk, Вы писали:
V>gandjustas пишет: >> >> A>И что дальше? Код работает — работает. А значит, нечего трогать. Есть >> вещи и поважнее, чем крастоу наводить. >> >> Сначала "не трогать пока работает", а потом "легче переписать, чем >> разбираться где оно не работает". >> Рефакторингом заниматься надо. Может очень много времени сэкономить. V>Или потратить.
V>З.Ы. Я не против рефакторинга, а только за, но в жизни все не так V>красиво, как хотелось бы.
Самая интересная отговорка не повышать качество кода.
В жизни как раз гораздо проще поддерживать качественный код, чем ковыряться в говне.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Flying Dutchman, Вы писали:
FD>>TextWriter я использовал неоднократно, но не помню наизусть, как он используется.
AVK>Там помнить нечего просто. Особенно весело становится, если вспомнить о том, что Console полностью повторяет его интерфейс.
FD>> Когда мне нужно использовать в новой программе вывод в файл
AVK>TextWriter используется всегда, когда речь идет о потоковой обработке символьных данных в дотнете. Нет, я конечно понимаю, что могут быть задачи, когда это совсем совсем не нужно, но на моей практике почему то TextWriter и его наследники — чуть ли не самый используемый класс во всей библиотеке. Круче только string.
А на моей практике нет. Разные люди занимаются разными вещами. В нашем текущем проекте
базовыми являются другие классы. Последний раз я использовал TextWriter не меньше года назад.
FD>>Помнить все детали языка слишком сложно.
AVK>Все не надо. Но такие вещи как TextWriter ... AVK>Я вообще сильно не фанат всяких заковыристых вопросов на собеседовании, но если человек не способен вспомнить подобные вопросы без "копирования куска кода", то это серьезнейший минус.
Ну виноват, не могу вспомнить без заглядывания в код. Хотя мне лично это
совершенно не мешать писать программы. Тебе, возможно, мешает. Ну что же,
все люди разные. Наверное, я бы не прошел у тебя собеседования.
FD>> Это, может быть, возможно для программиста, знающего один-два языка. Но С# для меня не первый, не второй и не третий, а двенадцатый или пятнадцатый язык программирования.
AVK>А у меня на 2 сантиметра длиннее.
Я не сомневаюсь .
AVK>Ты несколько меня не понял. Помнить специально наизусть — не нужно. Но я не представляю, как можно, если ты написал не одну игрушечную программку, не запомнить такой базовый момент. Это как для С++ программиста не помнить, что такое cout и с чем его едят. А уж если ты постоянно используешь .net в повседневной работе ...
Опишу, как я работаю.
Программист, действительно, должен помнить базовые понятия ввода/вывода, такие как:
— Существует такая вещь, как файл.
— В файл можно писать и/или из него можно читать.
— Для использования файл нужно открыть (явно или неявно), поработать с ним и закрыть.
— Файлы бывают текстовые и бинарные.
— Программа обычно имеет доступ к стандартным файлам stdin, sеdout и stderr (или их аналогам).
— Ввод/вывод можеть быть буферизованным или нет.
— Файлы могут быть с прямым и последовательным доступом.
и т.д.
Если программист не знает этих базовых понятий, то это плохо.
В каждом языке программирования эти понятия реализуются по-своему.
Когда я изучаю новый язык программирования, я обычно стараюсь создать для себя
набор небольших примеров (с поясняющими комментариями), иллюстрирующих использование
базовых понятий типа ввода/вывода. При этом я досконально изучаю, как эти базовые понятия
реализуются в этом конкретном языке.
Потом я пользуюсь этими примерами для написания программ.
Если я не использую какое-то время класс TextWriter, я забываю о том, как как он используется.
Если я не использую его долгое время, то я вообще забываю имя этого класса. Но я всегда
помню базовые понятия ввода/вывода. И если мне надо что-то записать в файл, я помню,
что у меня есть для этого пример, которым я могу воспользоваться.
То есть для меня совершенно не важно, помню ли я в данный момент, как используется
TextWriter или нет. Важно то, что я в любой момент времени могу восстановить это знание,
заглянув в примеры. Даже если я годами не использовал TextWriter (или что-то другое),
я могу вспомнить за несколько минут, как это делается.
Выводы:
1. Программист должен знать и понимать базовые понятия.
2. Программист должен один раз написать программу с использованием
базовых понятий для используемого языка.
3. После этого совершенно не обязательно (хотя и желательно) постоянно помнить, как базовые
понятия реализуются в этом языке, потому что это знание можно быстро восстановить.
Здравствуйте, AndrewVK, Вы писали:
AVK>LSP это не постановка в театре, это базовый принцип ООД.
Да почитал я про него. Теоретики, как обычно, в своем духе. Сформулировать и обозвать по-научному то, что и так используется на практике без всяких теорий.
И что спрашивается я нового узнал из этого принципа? Да ничего.
IT-индустрия, в современном понимании этого слова, фактически стартовала в начала 90-х. Да и массовое обучение программистов тоже только тогда началось.
O>Ой как нехорошо выхватывать фразы из контекста. В вышеприведенной ссылке обсуждалась IT-индустрия России, а не всего мира.
Это неправильно и по отношению к России тоже. Просто раньше это не обозначали на англоязычный манер "IT-индустрия", а пользовались другим термином: "Электронная и радиотехническая промышленность". Да, структура специализций отличалась, но и ты, и я очень многим обязаны как раз тому, что в СССР на самом деле была весьма развитая IT-промышленность.
Во-первых, не будь эта промышленность развита, никто не озаботился бы подготовкой специалистов вузах, так что наши с тобой дипломы — прямо производны от этого факта. Следовательно, такая индустрия была давно, особено, если учесть, что преподавателями у нас были отнюдь не переучившиеся "на Web" таксисты. Жаль, не помню, когда в Севастопольском приборостроительном был образован факультет АСУ.
Во-вторых, мы смогли вписаться в мировую "IT-индустрию" когда заглушили чуть не всю остальную индустрию СССР (не ИНДУСтрию ). Следовательно, подготовка по этим специальностям была вполне современной, чтобы подготовленные специалисты смогли без особых препятствий выйти на мировой рынок.
Так что, в какой контекст ни положи — всё равно приведённая цитата демонстрирует достаточно узкое понимание реалий.
Ну да шут с ней, с IT-индустрией. Меня на самом деле позабавило то, что ты хоть и прочитал про LSP, но похоже, что так и не понял, какое влияние этот принцип оказал на всю культуру проектирования ПО. В том числе — и на принципы ОО-проектирования. По большому счёту, достаточно вместо десятков приципов ОО, "паттернов проектирования" и прочих производных помнить об одном только LSP, остальное выводится.
Вот так приблизительно, а ты говоришь — никакого проку с теоретиков.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Dog>>Если вам ответили формулу это ещё не значит что они её знают. M>Согласен. Но если не ответили, то 100% что не знают. ))
"Не знает" и "не помнит" — 2 разные вещи. Для всяких формул есть справочники. Некоторые специально не забивают этим голову.
- Никак не могу найти себе помощника, — пожаловался однажды Эдисон
Эйнштейну. — Каждый день заходят молодые люди, но ни один не подходит.
— А как вы определяете их пригодность? — поинтересовался Эйнштейн.
Эдисон показал ему листок с вопросами.
— Кто на них ответит, тот и станет моим помощником.
"Сколько миль от Нью-Йорка до Чикаго?" — прочел Эйнштейн и ответил:
"Нужно заглянуть в железнодорожный справочник". "Из чего делают нержавеющую
сталь?" — "0б этом можно узнать в справочнике по металловедению,..".
Пробежав глазами остальные вопросы, Эйнштейн сказал:
— Не дожидаясь отказа, свою кандидатуру снимаю сам.
Здравствуйте, olegkr, Вы писали:
O>Описываешь эти операции на C#. Если есть повторяющиеся или похожии операции, то группируешь их в одну сборку и цепляешь к ней конфиг. Нет, я правда не понимаю в чем сложности.
+1, тоже ни черта не понимаю. Более того, за счет строгой типизации + очертененной гибкости C# я не представляю, как можно на самописном языке что-то описать лучше и понятнее, чем средствами самого C#. При нормальном проектировании код на С# будет как понятнее, так и компактнее написанного на наколенном языке. И кроме того, в случае с С# кроме нормального языка еще получаем нормальную среду разработки (особенно вместе с решарпером ), потенциальные баги вообще находятся до компиляции, а тем более до выполнения.
PS С наколенными языками или вкраплениями чужеродных языков сталкиваюсь постоянно. И всегда это языки оказывались самым узким местом, вынуждают копипастить логику, ограничевают в возможностях, содержат черти какое количество багов, приходится на них программировать в ноутпаде, падают и глючат в самом неожиданном месте, даже не записав в лог никакой ошибки, тормозят и жрут память черти как. Мое мнение, что наколенные языки придумывают с целью оправдать большее количество народа в проекте, с целью замедлить разработку и не отпустить заказчика от себя, так как кроме писателей уже в творчестве не разберется никто. И кроме времени на разработку языка, прибавляем сюда время на написании документации (которая не поддерживается в актуальном состоянии — если что не так — надо спрашивать у авторов, а документация листов на 100 минимум английского текста с кучей опечаток). Далее пишем под наш мегаязык плагин к студии, в результате чего студия начинает безбожно тормозить и постоянно падать, а при багфиксинге языкового движка изменяется синтаксис языка, и приходится героически искать ошибку — вчера все работало, никто ничего не менял, а щас половина функциональности не работает (да, для этого есть еще обратная совместимость, в результате в одном файле потом четырьмя стилями пишем). Слов называется нет, создаем себе трудности и потом героически их преодолеваем.
Я не сомневаюсь, что автор языка прекрасно будет на нем программировать, вот только этот автор мгновенно становится незаменимым, кроме него в этом никто не разберется.
Здравствуйте, olegkr, Вы писали:
O>Я не агитирую за то, что бы не преподавать CS, как науку. Преподавать, конечно, тем кому это интересно. Важно на мой взгляд выделить преподавание разработки ПО, как отдельную инженерную дисциплину со своими акцентам в обучении.
имею глупый вопрос. а что такое CS? контр страйк чтоль?
Нет смысла на техническом интервью тестировать память и знание деталей.
А.Пуанкаре (Математическое творчество. М., 1909) выделял три уровня способностей к математике.
1. Совершенно неспособные. Не обладают ни силой памяти, ни вниманием.
2. Одарены редкой памятью и большой способностью внимания. «Они запомнят наизусть частности, одну за другой; они смогут понять математическую теорию и даже иной раз сумеют ее применить, но они не в состоянии творить». По моим наблюдениям, такие программисты склонны «думать руками»: перебирать и пытаться применить все возможные комбинации из уже известных пакетиков своих знаний. «Паковщики» ((с) Алан Картер, Колстон Сенджер, «Программистский камень», 1997).
3. Не только смогут понять математику, не обладая особенной памятью, но они смогут оказаться творцами. «Творчество состоит как раз в том, чтобы не создавать бесполезных комбинаций, а строить такие, которые оказываются полезными; а их ничтожное меньшинство». «Картостроители» ((с) тот же).
ИМХО, программирование и математическое доказательство имеют много общего, поэтому «картостроители» гараздо более полезны в в программировании.
О себе Пуанкаре пишет: «Что же касается, например, меня лично, то я должен сознаться, что неспособен сделать без ошибки сложение».
. В качестве примера, ИМХО, вполне. A>И что дальше? Код работает — работает. А значит, нечего трогать. Есть вещи и поважнее, чем крастоу наводить.
Эту красивую декларацию я слышал несчётно. Код и правда не надо менять, если он работает и...
И если нет возникает потребности его изменить.
Вот эта оговорка отрезвляет кого хошь.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Ну а как проверить знание элементарной математики?
Такими вопросами не проверишь. Собеседующийся не в институт собрался поступать, и специально все формулы, методы решения задач и т.д ничерта скорее всего не помнит, если только он не со школьной скамьи. А знания математики проверить элементарно. Берешь достаточно сложную задачу, и спроси как собеседующий будет пытаться ее решить. Не просить решать, а просить рассказать план решения, на основании чего. Грубо говоря, я не помню формулу для нахождения площади по трем сторонам, но я не забуду, что такая формула есть, и в результате план решения какой-либо задачи будет например такой — на попробовать найти на основании взаимосвязей длины сторон, а по ним вычислить площадь. Заодно отсеются те, кто наизусть помнят все формулы, но воспользоваться этими знаниями не могут.
Также и с остальным. Даешь вводную, написать мегапрограмму или элементы программы. И спрашиваеш, как товарищь будет ее пытаться решить, тоже план решения, что он хочет добиться, каким он хочет видеть решение, почему и т.д. Это на практике надо при разработке, а не знания тонкостей библиотек и языка программирования. А если не разработка, а поддержка кода — берешь сверхдерьмовый исходник, вноси в него баг, и проси найти и исправить, а также спроси как человек собирается поступать с этим кодом в дальнейшем и что он о нем думает.
AVK>Букав может и много, но вот это уже действительно помнить необязательно. А вот забыть, как работать с TextWriter сотоварищи, если ты давно используешь .NET, вот это уже странно.
TextWriter я использовал неоднократно, но не помню наизусть, как он используется.
Но я помню, где находится файл с когда-то написанной мною программой,
в которой есть пример использования TextWriter. Когда мне нужно использовать в
новой программе вывод в файл, я копирую кусок кода из старой программы и изменяю его.
И так я поступаю в десятках других случаев. (Правда, иногда не удается вспомнить, где
находится нужный файл. Это уже проблема . Но я собираюсь решить ее радикально — составить
базу данных с информацией, где какой пример лежит.)
Помнить все детали языка слишком сложно. Это, может быть, возможно для программиста,
знающего один-два языка. Но С# для меня не первый, не второй и не третий, я двенадцатый или
пятнадцатый язык программирования. Помнить, как происходит вывод в файл (и прочие детали)
для каждого из языков — это выше моих сил. Поэтому я помню вещи типа использования
TextWriter только когда я их непосредственно использую, а потом сразу же забываю.
(Причем забывать абсолютно необходимо, иначе получится каша в голове и вообще невозможно
будет работать) Часто приходится программировать на нескольких языках одновременно,
так что все помнить невозможно.
Кроме того, некоторые вещи никах не могу запомнить, несмотря на то, что работаю с ними
постоянно. Язык SQL уже больше 10 лет использую, но никак не могу запомнить для
внешнего соединения — когда нужно из левой таблицы получить все записи, а из
правой не все — это left outer join или right outer join ? Вышел из положения
путем создания файла с примером, в который заглядываю всякий раз, когда
сомневаюсь.
А помнить наизусть, как используется TextWriter (и вообще то, что этот класс так называется)
программисту нужно только в одном случае — если этот программист преподает C#. Несолидно
будет, если он не сможет ответить на вопрос студента или проверить код, студентом
написанный.
Здравствуйте, alzt, Вы писали:
A>Если дать мне листок бумаги и время подумать — подберу коэффициенты, но вспомнить точно не смогу.
Не надо ничего подбирать. Береш круг и нарезаешь его на дольки. Эти дольки выстраиваешь в ряд. Получаешь ряд треугольников. Высота каждого — примерно равна радиусу круга r, сумма длин оснований — 2*П*r. Сумма площадей соответственно — r * (2*П*r) / 2. В итоге — П*r^2
B>>Лучше спрашивай как найти клощадь треугольника. Про круг помнят с младших классов, и это въедается в голову. А вот площадь треугольника я думаю сходу более 90% не сможет найти. M>Не, так смысл не завалить всех, а лишь отсеять плохих кандидатов. Я иногда задаю найти площадь прямоугольного треугольника, это даже если не знать, то надо быть полным тормозом чтобы не догадаться.
Если вам ответили формулу это ещё не значит что они её знают. Просто в мозгу забита очень сильная ассоциация (слуховая, визуальная...). Я вот помню формулу площади круга или треугольника чисто на слух. А ещё я помню формулу дискриминанта, просто как "бессмысленную" скороговорку. И это совсем не значит что я смогу решить квадратное уравнение.
Вот и задумайтесь, какие "знания" вы проверяете.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Ваше мнение?
Сдается, что ты сам только что со школьной скамьи, и кроме выше указанных вопросов ничего и не знаешь.
Интервью — это тебе не 2Х2, опыта наберись для начала сам, а уж потом подавайся в "оценщики городского ломбарда"
В действительности все выглядит иначе, чем на самом деле (Станислав Ежи Лец)
Не давайте такой тест людям с нормальным опытом работы. Как уже много раз обсуждалось, это может обидеть.
Добавлю свои пять копеек. Если вопрос идет не о найме мастера-зомбивода который будет всех за ниточки дергать, то хотелось бы чтобы человек нормально уживался в колективе. Если человек обижается по мелочам... .
Здравствуйте, Vzhyk, Вы писали:
>> Они как раз необходимость проверки всего убирают. V>Напиши простой враппер на FILE*? Где fclose делать будешь?
std::istream/std::ostream — в качестве первого приближения.
V>Ну и сами исключения не везде есть еще.
Уже везде. Там где их нет — сами виноваты.
>> V>Поехали дальше, а что сделает вышестоящий слой? >> Возвратит ошибку в вышестоящий слой V>И так до господа бога дойдем?
Как вариант. Или до слоя, способного предпринять осмысленные действия.
Здравствуйте, Vzhyk, Вы писали:
V> Нет, переделывают только только тогда, когда это нужно для бизнеса.
Не очень хорошее правило. ИМХО.
1. Как быть, например, с рефакторингом компонентов системы для подготовки их
к будущим изменениям. Бизнесу до него реально пофигу. Он просто не представляет своих
потребностей (если ему в этом не помочь). Как на него можно полагаться в той области,
в которой он не шарит потому что не должен?
2. Так можно и до копипейст-программирования скатиться ибо бизнесу пофиг как оно
там внутрях подсобляет ему зарабатывать деньги — быстро скопипейстили костыль,
чтобы не переделывать, и забыли — работает и ладно. Через какое-то время бизнес
может стать заложником тех подходов, к которым прямыми или косвенными действиями
подталкивает своих разработчиков — его попросту может завалить изнутри.
3. Если смотреть на Бизнес не как на цельномонолитное нечто, а разложить его хотя бы
на две составляющие:
Бизнес = СобственноБизнес + ТехнологическаяСоставляющаяБизнеса;
то можно сказать, что за разработчиком (за коллективом), в каком бы бизнесе он
не принимал участие, лежит ответственность за поддержку и развитие технологической
составляющей бизнеса.
Поддержка и развитие (особенно второе) предполагает некоторую (здесь, технологическую)
инициативу — результат которой представляет ту дельту, на которую осуществлятся прирост
на каждом цикле развития. Инициатива же происходит изнутри и подразумевает постановку
целей, и выработку плана действий, прямой необходимости со стороны СобственноБизнеса
часто вообще не озвучивается. Ибо СобственноБизнес "едет" распальцованный на
"ТехнологическойСоставляющаяБизнеса", сорит вниз деньгами за это и ему пофиг, что там внутри.
В силу этого "пофиг" никакой СобственноБизнес не определит объем работ по возведению системы,
которые должны проводиться — это область ответственности разработчика. И тут ориентация на
правило "только когда это нужно для бизнеса" в данном случае может сослужить плохую службу,
так как минимально достаточное решение для текущих нужд СобственноБизнеса далеко не самое
подходящее даже в самой ближней перспективе.
К сожалению большинство систем и их составляющих, с которыми приходилось сталкиваться мне,
реализованы именно с таким подходом и представляют (представляли) убогое зрелище — набор
хитросвязанных костылей от разных "микропроизводителей" (даже в пределах одного модуля) —
явный пример к чему приводит минимализм разработчика, вызванный пофигизмом бизнеса на свое
технологическое внутриустройство. Т.е. сначала мы в течении полугода экономим на разработке,
выполняя "только то, что нужно для бизнеса", а потом со взмыленной задницей в течение лет #б#мся
со своим детищем содержа при этом раздутый штат поддержки, тестировщиков, все тех же разработчиков
и прочих. При этом время внедрения новых разработок непредсказуемо, как и последствия установки
патчей. Просто потому, что в систему никто не заложил таких необходимых базовых возможностей —
ведь их необходимость с точки зрения бизнеса неявная, о ней не то, что не думали — просто не знали.
Нет. Я решительно против рождения уродов по принципу "переделывают только только тогда, когда
это нужно для бизнеса".
Здравствуйте, mymuss, Вы писали:
M>Кстати, тут была недавно тема, кандидат отказался тесты писать, дескать простые слишком, оскорбляют его достоинство.
Там был не в простоте тестов прикол.
Но то, что в этом топике творится — честно говоря, я в шоке. Что-то как-то привык, что культурный человек знает, как померить длину окружности или площадь дна стакана. Ан нет...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Vzhyk, Вы писали:
>> Хм. Значит, никогда не приходилось преобразовывать выражения вот так: >> >> if (!a || !b) ==> if (!(a && b))
V>И самое что важное, задача эстетического удовлетворения от чтения кода V>минимально приоритетна — это когда делать програмеру нечего.
код пишется один раз, а читается 10. и если второе будет понятней, то я обязательно перепишу
Здравствуйте, catBasilio, Вы писали:
B>>>P.S. а какой ответ правильный: 1000м2 или 1024м2 ? M>>оба неправильные B>Блин, собеседование провалил. Пойду Стандарт С++ читать.
Думаешь там написан правильный ответ? Не те книжки ты читаешь, похоже
Здравствуйте, игппук, Вы писали:
И>о моих пробелах в образовании? да ну? может показать диплом, в котором стоит оценка "отлично"? и который я получил в 99-ом году.
Зависит, что у тебя за специальность в этом дипломе написана. Подозреваню, что ни к программированию, ни к математике оно отношения не имеет, коль про булеву алгебру тебе ничего не рассказывали.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
O>А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра? Да ненамного сложнее +-/*, разобраться и понять можно за несколько часов, а сколько гонора и спеси.
Вообще-то булевая алгебра это дистрибутивная решетка, в которой каждый элемент имеет дополнение. Если ты с нуля за пару часов в состоянии понять, что максимальный идеал булевой алгебры совпадает с прообразом нуля при ее двузначных гомоморфизмах, то я снимаю перед тобой шляпу.
Здравствуйте, CreatorCray, Вы писали:
CC>Да как то с С# у них тоже не фонтан.
Индусы немножко по другому думают. Вот как рассуждает типичный русский, когда его просят сделать новую фичу — да я щас так крута замучу, что бы и расширяемость была и красиво вписалось в архитектуру и побочных эффектов не было, ну понятно дело еще кучу кода отрефакторить придется. И делает русский эту фичу неделю.
Индус думает по другому — начальник сказал сделать, надо сделать быстро-быстро, он меня выделит за то, что я быстро работаю и я получу повышение, а если все потом упадет или код некрасивый, так потом русский поправит, его недавно начальник ругал, что он в сроки не уложился, вот глупый какой русский.
Здравствуйте, msk78, Вы писали:
M>Мой ответ "Чемберлену"
В твоем ответе Чемберлену совершенно непонятна логическая цепочка, по которой ты перешел от человека, обладающего хорошим теоретическим бекграундом к человеку, который переписывает WCF. В последнем обычно замечены как раз таки юниоры, которые считают, что уже познали все программирование и сам черт им не брат.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, elmal, Вы писали:
E>А логика проста. Очень нехорошо, когда кандидата собеседует человек с квалификацией ниже, чем у него. Хорошо бы чтоб стресс был с обеих сторон. Своими вопросами проверяешь народ на стрессоустойчивость и быстроту мышления, значит у вас работа такова, это крайне важно, и ты, естественно, этими качествами обладаешь в избытке. Ну так и докажи кандидатам, что у тебя лично все это наблюдается. А так — посади меня, я любого гуру подрежу, если захочу, причем подрежу самыми простыми вопросами. Уж что что, а руководить методом "я начальник, ты дурак" много ума не требуется, как и квалификации.
Хм... я таки не догоняю, что я должен кандидатам доказывать? Они приходят на собеседование, значит, имеют хотя бы минимальное представление о конторе и продукте (кстати, если бы пришел кандидат, не знающим, чем занимается контора, то я бы его сразу "послал", но это прерогатива руководства). На собеседовании они, среди прочего, выяснят степень гнилости конторы, и если посчитают ее достаточно гнилой (ну например, потому что задают им детские вопросы), то просто отклонят оффер. По идее, обе стороны довольны.
Если, скажем, я прихожу к боссу и говорю ему, мол, моя зарплата не соответствует рынку, а он мне: "Я тебе задаю 3 простейших вопроса. Отвечаешь -- повышу з/п, нет -- пиши заявление". То да, я посчитаю такой подход обоснованным.
Здравствуйте, olegkr, Вы писали:
_>>No hire, sorry. O>Кстати, да. Неплохой тест на собеседовании. Позволяет отсеить "умников", которые ради решения элементарной задачи на пару дней будут год городить огород с зоопарком вместе взятые.
Да лучше сразу в объявлении писать: "в нашей компании самый умный оказывается самым крайним" — глядишь, умники сами отсеятся.
Здравствуйте, Pzz, Вы писали:
Pzz>И, замечу, неплохо бы знать теорию регулярных выражений хотя бы в такой степени, чтобы с уверенностью отличать, в каких случаях их хватает, а в каких — нет.
ИМХО достаточно основ. Даже если возможностей регулярных выражений достаточно для решения задачи, в случае, когда в результате получается такое регулярное выражение, что сам черт ногу сломит чтоб в нем разобраться (или разберется только тот, кто каждый день годами только и занимается, что пишет регулярные выражения, и в результате любой ужас понимает), это уже достаточно веские основания чтоб от использования регулярных выражений отказаться. А то, что возможности этих регулярных выражений ого-го, это я в курсе, вот только до тонкостей у меня ни малейшего желания разбираться — а то меня потом в подъезде подкараулит тот, кто после меня мое сверхгениальное суперрегулярное выражение будет поддерживать .
Здравствуйте, Erop, Вы писали:
E>Да нет, с ним бодались, в принципе, он что-то там доказывал, что-то показывал, какие-то трудности изобретал, якобы объективные.
Не, я с вас фигею. Ну прям куча беспомощных начальников перед лицом коварного работника. Самому не смешно?
E>IMHO просто жалко было его выгонять, так как реально мужчина много знал и умел.
Я где то писал, что его надо выгнать?
E>Ну уволили его по его обоюдному желанию.
Это ничего не меняет. Если человек негодной квалификации — надо было выгнать после испытательного срока. Если годной — значит ваши менеджеры не смогли его эффективно задействовать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
Pzz>>Впрочем я допускаю, что другая конструкция внутренних тормозов тоже может быть работоспособной.
E>IMHO внутренние тормоза должны быть очень надёжны и многоплановы. Если ты что-то не можешь описать регэкспом за час (этот таймаут с большим пребольшим запасом взят), то точно надо тормознуть и подумать почему не получается...
С тормозами, с другой стороны, важно не перестараться. Слишком хорошие тормоза превратят все, что угодно, в недвижимость
Здравствуйте, landerhigh, Вы писали:
SE>>В отличие от инженера, который знает как свою область, так и несколько смежных областей. Невеждество в сопредельных областях знаний для инженера именно потому и недопустимо, что мешает качественно решать творческие задачи. L>Если инженер-электронщик не помнит наизусть параметры какой-нить TDAшки или, (о ужас!) забыл, какой глубины потенциальная яма, то его тоже в расход?
Вы уже четвертый человек, который так или иначе задает этот вопрос, начиналось все со школьной программы, мы прошли уже через сочинения по русскому языку, альдегиды и преобразования Лапласа с законом Ома . Уже дошли до физики твердых тел Прогресс налицо!
Я опасался, что очередной вопрос будет про деление в столбик, которое ну совсем не применяется в реальной жизни, и потому может быть заслуженно забыто
Я до сих пор благодарен одному из своих преподавателей, который требовал от студентов понимания сущности явлений, а не их точных численных характеристик, как тут уже неоднократно говорилось — для этого есть справочники. Он на экзаменах позволял выписывать на доске любые формулы и константы, данные из любых справочников. Вот я уже ни одного числа не помню, а особенности поведения различных материалов до сих пор при необходимости "выскакивают". При этом от зубрежку другого предмета знания остались точно такие же — ни одной цифры, но зато понимание, громадного количества "почему".
Это ответ на ваш вопрос.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>А вот незнание (судя по озвученным наблюдениям mymuss) — напротив, гарантирует некоторые существенные проблемы в том числе и в области "правки багов". И что же нужно выбрать? Гарантированные проблемы в угоду шибко специализированным специалистам?
O>Какие именно проблемы в области написания веб-приложений? Да еще причем и гарантированные.
Такие же проблемы, как и в других областях разработки ПО, и вообще в других областях, гм, народного хозяйства.
Мой коллега по поводу этой дискуссии сказал так. Есть техники, а есть инженеры. Техник отлично крутит свою гайку на 24, но и только. Как примерить заклепку и что такое точечная сварка, он уже имеет право не знать, ну не нужно оно чтоб крутить гайку на 24.
В отличие от инженера, который знает как свою область, так и несколько смежных областей. Невеждество в сопредельных областях знаний для инженера именно потому и недопустимо, что мешает качественно решать творческие задачи.
Я, пожалуй, приму точку зрения AndrewVK (если я правильно ее понял), что спрашивать такие вопросы на собеседованиях оскорбительно в такой же степени, как стыдно на них не суметь ответить.
С удивлением обнаружил, что всё еще помню формулу площади круга. И даже объем помню. С интегралами на память, конечно, гораздо хуже. Но реально, товарищи, ну если с этим не сталкиваешься в повседневной жизни — оно по-любому вылетает из головы. Безусловно согласен с Васильевым Геннадием (если это настоящее имя ) в том, что программеру не мешало бы иметь хороший math-background, но нельзя забывать, что программер тоже человек. Если при выполнении обязанностей не сталкиваешься напрямую с мат.задачами, то со временем эти знания будут улетучиваться. Конечно, можно периодически повторять некоторые вещи, но ведь помимо этого есть и насущные проблемы — освоение новых технологий, паттернов и т.п. Всё это требуется здесь и сейчас на твоей работе, на которой тебе платят з/п, на которую ты можешь кормить свою семью и оплачивать отдых. Голова хошь не хошь переключается на запоминание того, что реально необходимо, а не где-то там в возможном будущем при еще менее возможной попытке пройти собеседование в контору XXX. Обучение в школах и ВУЗах ставит своей целью не столько привить знания, сколько уметь научаться. Здесь я подразумеваю, что, забыв все эти формулы и правила, вспомнить их, пролистав учебник, не составит большого труда — всё выплывёт и восстановится. Но не факт, что прямо здесь и сейчас во время обдумывания ответа на явно неожиданный вопрос. Может кто и помнит формулу площади круга и избранные производные, но знает ли он, чем отличается Index Scan от Index Seek? Вы скажете "этому он сможет легко научится"? Ну так и я скажу, что формулу площади круга восстановить в памяти будет на порядок быстрее
Что хотелось посоветовать автору. На мой взгляд была правильно высказана мысль, что не нужно требовать конкретных формул. Лучше составить какие-нибудь задачи не на знание самой формулы, а на знание того, что такая формула есть и уметь эту формулу применить где нуна (кто там бассейны заполняет ? И обязательно отказаться от манеры "если в течении 5 минут не отвечает — no hire". Это — самое ужастное. Это, во-первых, некрасиво, во-вторых, может вообще очень пагубно сказаться на самооценке кандидата. А оно вам надо? Представьте, что вам понравилась какая-то девушка, ну прямо она нереальной красоты! Вы подбираете к ней подход, осторожно, боясь спугнуть, завязываете разговор, в какой-то момент она спрашивает у вас что-то банальное, но вы почему-то теряетесь, ну просто разволновались! И вот она тут же, не получив ожидаемого ответа, разворачивается и уходит, всем видом показывая, что вы ее просто недостойны. Неприятно правда? Примерно тоже и здесь. Контора всегда должна создавать благоприятное впечатление.
Здравствуйте, SE, Вы писали:
SE>Вот интересно, а как часто пользователь RSDN используют при регистрации адрес, "слишком сложный" для регекспа из одной строки?
Я имею ввиду синтаксис, с помощью которого можно указать одновременно адрес и имя-фамилию. Например
Vasya Pupkin <vasya@pupkin.com>
Там достаточно много вариантов, и все равномерно используются. В общем, посмотрел бы я на то регулярное выражение, которое способно с этим аккуратно справиться.
SE>Рассказывал мне когда-то коллега, в мейлер-демонах ранних версий была уязвимость, при передаче почтового адреса в качестве командной строки, этот вполне корректный с точки зрения RFC, но содержащий управляющие последовательности, адрес валил к чертям мейлер демона, и хорошо, если только его, и хорошо, если не перехватывал управление
В мейлер-демонах ранних версий было много чего интересного. Например, можно было написать письмо произвольной программе, которая выполнилась бы от имени получателя.
Мир в те времена был безопаснее, и ключи от дверей можно было смело оставлять под ковриком
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior. M>Ваше мнение?
Вам и конторе автоматическое no hire.
Для того, чтобы отсеивать совсем нулей, можно давать простой тест. Сделайте штук 10 очень простых вопросов по всем темам. И, например, не отвечает на 7 — сразу до свидания. Только две вещи:
1) Сначала раздайте тест коллегам в конторе — результаты Вас удивят!
2) Не давайте такой тест людям с нормальным опытом работы. Как уже много раз обсуждалось, это может обидеть.
ironwit пишет: > > V>Ну если хвастаться кодом, который я видел, то этот if — вообще > V>прекрасно читабельная вещь. Могу выслать в личку. > нет уж. ты не стесняйся — ты всем покажи.
Я себе еще не враг. И место работы меня вполне пока удовлетворяет.
А со старых мест, некоторых уж нет, я подобное Г. забыл, как страшный сон.
Ну например: Порядка сотни классов в проекте, почти все члены и методы
классов public, но это еще не все — 95% функциональности было
сосредоточено в одном методе на 100 экранов.
Но код тот работал и вполне правильно и ожидаемо и даже расширялся и
правились баги. И то, что контора потом обанкротилась, код к этому имел
минимальное отношение.
Здравствуйте, игппук, Вы писали:
И>приведи практический пример, где мне потребуется знание математики выше уровня "найти площадь круга". из следующих областей: И>1. системное программирование И>2. прикладное программирование (грамотный пользовательский интерфейс + грамотное проектирование) И>3. веб программирование И>4. создание библиотек контролов И>5. низкоуровневое программирование аля драйвера.
Понимаешь, при решении всех этих задач нужно математическое мышление. Надо иметь определенный уровень математической культуры, умение математически рассуждать и доказывать. То, что обычно выполняется на автомате и над чем не надо задумываться. Но что начинает проявлятся, когда ты пытаешься научить программировать, например, психолога. Да и сама идея компьютерных вычислений сугубо математична по своей форме и возникла еще до появления компьютеров.
Далее возникает вопрос, как получить достаточный уровень математической зрелости. Я, конечно, допускаю вариант, что ее можно получить окольными путями ни разу не сталкиваясь с элементарной геометрией. Но это наводит на размышления. Сама формула площади круга для этих пунктом может быть и не нужна, но более интересен вопрос как человек получил достаточный уровень математической зрелости пройдя мимо этого. Давай устроим опрос, сколько практикующих программистов помят эту формулу, оценим корелляцию.
Здравствуйте, Abalak, Вы писали:
A>Здравствуйте, Mystic, Вы писали:
M>>Здравствуйте, olegkr, Вы писали:
A>И как это знание мне поможет решать повседневные задачи по реализации бизнесс-логики? Логическое выражение надо записывать читабельно, а не "по-научному". Нормальные отступы и пусть даже излишние скобки делают условия читаемым, а оптимизатор сам все упростит если сочтет нужным.
Я отвечал на это сообщение: O>>>А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра? Да ненамного сложнее +-/*, разобраться и понять можно за несколько часов, а сколько гонора и спеси.
Просто когда человек абсолютно не в курсе вопроса начинает делать глубокомысленные выводы... Типа ненамного сложнее +-*/... Булевая алгебра, как таковая, в основном не входит в институтскую программу, разве только где-нить ма мехмате. Поэтому логично сделать вывод, что она мало помогает решать повседневные задачи. Так, раздел алгебры, который изчается на последних курсах или в аспирантуре.
Что касается логических выражений, то я согласен, что их надо писать "читабельно". Вот умение оперировать логическими выражениями и позволяет записывать их более читабельно. Первая мысль, которая приходит в голову, далеко всегда не ясная и понятная. Иногда результат условного выражения это результат разнесенных во времени размышлений. Мозг не всегда идет к цели кратчайшим путем. Бывает, что он ломится в открытую дверь, делает замысловатые изгибы и т. п. Результат этого---рабочее логическое уловие, но повторяющее все эти изгибы. Если его преобразовать можно (1) получить интересные открытия (например, ветвление совсем не зависит от переменной, которая казалась нам необходимой) (2) устранить все лишние изгибы и сделать его более понятным. Никогда не было такого: упрощаешь условие и думаешь "надо же, как все просто, а такого наворотил?"
Например, в го если защищающая сторона пошла в область своего глаза, то глаз видоизменил форму, надо обновить критические пункты для него. Стоя условное выражение для этого, я вполне могу прийти до красивого и понятного решения:
Тут все понятно, ходит защищающаяся сторона, это не пас, и ход попадает в критическую точку. Но иногда тебя клинит, и ты можешь записать нечто более страшное, например
Тут рассуждение могло также всестись в терминах "или". Первая мысль: если пас или ход не в глазное пространство, то ничего обновлять не надо. Значит обновлять надо если сделать этому всем not. В рузельтате получается
Это иллюстрирует ход моей мысли. То, как я догадался до выражения. Но сама запись не так понятна читающим код. А потом, преобразовав его ты думаешь: надо же как все просто
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, elmal, Вы писали:
M>>> 2. найти площадь круга по радиусу E>>Это еще помню, но если спросят таблицу производных или что-то из тригонометрии страшное, то за неприменением забыл, и запросто облажаюсь.
M>Ну я даже не знаю что еще проще придумать. Среди вариантов, которые я ранее использовал: решить квадратное уравнение, найти гипотенузу по катетам, найти площадь равнобедренного прямоугольного треугольника.
M>Ну а как проверить знание элементарной математики?
Знания элементарной геометрии вряд ли нужны, не так ли?
Проверяй лучше алгебру, т.е. квадратное уровнение ближе всего к требуемым навыкам. Или типа сколько итераций займет выполнение трех вложенных циклов, внутри которых бегаем по массиву длиной N. А сколько итераций удет, если в цикле стоит break; который равтовероятно может сработать на каждой итерации.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, alcotras, Вы писали:
ГВ>>>>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? A>>>>Зачем этот rocket science при разработке типичных бизнес-приложений? ГВ>>>Ну ты сам не понимаешь или стебёшься?
A>>Ни капли стеба. Из десятка людей, кого по отрасли знаю, ни одному незнание этих вещей не мешает поднимать 90-120000р в месяц.
ГВ>На колу мочало...
ГВ>Посмотри, например, сюда
Здравствуйте, landerhigh, Вы писали:
ГВ>>Ништяк! Испросить базовых знаний — это "религиозность". А фактически настаивать на незнании — это, надо думать, признак просвещённости. L>Кто-то настаивает на незнании? Ссылочки можно?
Уф-ф-ф... Издеваешься, да? Почти половина топика об этом.
L>Mymus так и не смог внятно ответить на вопрос, чего он собирается добиться площадью круга.
По-моему, он отвечал на этот вопрос раз десять. Беда в том, что его оппоненты ждут вполне определённого ответа. По существу — крайне наивного ответа, выражающего непосредственную связь явлений. Логично, что mymuss его не может дать.
L>Что-то невнятно промямлил про то, что якобы кто не ответит, то и баги чинить не сможет (замечательная логика, не правда ли?), при том, что постом позднее сам же и написал, что факт знания площади это гаратнирует.
И где же тут невнятность? Вот такие у него наблюдения. Имеет полное право опираться на свой опыт. Да, действительно, знание формулы площади круга не гарантирует способности править баги. А вот незнание (судя по озвученным наблюдениям mymuss) — напротив, гарантирует некоторые существенные проблемы в том числе и в области "правки багов". И что же нужно выбрать? Гарантированные проблемы в угоду шибко специализированным специалистам?
L>Еще раз — испрашивать "базовые знания" (не имеющие никакого отношения к позиции, к слову) у человека с ВО и резюме есть проявление неуважения.
Ну, как показывает весь этот топик, уважать одно только резюме и корочки — контрпродуктивно. По меньшей мере — самонадеянно. Можешь поверить мне на слово — ещё неделю назад я так не думал.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
O>В чем смысл собственного языка, можешь пояснить на наглядном примере?
Могу, конечно. Скажем тебе надо выциплять из русского текста согласованные фразы. IMHO написать спец. язык, позволяющий адекватно описывать понятие "согласованная фраза" сильно облегчит тебе работу, по сравнению с "голым C#"
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, mymuss, Вы писали:
M>Как я уже не раз писал, помощь по библиотечным ф-циям предоставляется. Конечно, хотелось бы, чтоб кандидат хорошо знал фреймворк, иначе будет заниматься изобретательством велосипедов. Но если человек последние Х лет только с вебсервисами работал, то неудивительно, что он забыл IO. Однако в этом случае я сделаю себе пометку: поговорить по фреймворку и буду ожидать, что, скажем, System.Xml он знает хорошо.
Я, например, помню только то, с чем работал последние несколько недель. То
есть ответить на вопрос по большей части фреймворка я просто не в состоянии.
Скажем, по поводу записи в файл могу только сказать что файл нужно открыть,
записать в него что-нибудь и закрыть. Если же это нужно сделать на практике,
заглядываю в свои старые программы или в Интернет.
M>Мое мнение такое, если человек вообще не знает стандартные средства (.NET class library, STL, boost, whatever) то это junior.
Ну, не все так просто. Несколько лет назад я участвовал в большом проекте по написанию
системы реального времени для управления полиграфическим оборудованием на языке
Си. Мой коллега, который был специалистом по системам реального времени и написал
значительную часть этой программы, понятия не имел о том, как в языке Си записать что-нибудь
в файл. И это не мешало ему успешно работать (мы работали в среде,
в которой вообще не было понятия файла).
FD>>Но я надеюсь, что senior'ам на собеседовании ты таких вопросов не задаешь ?
M>На собеседование приходят только синьоры и не менее 15 лет опыт в .NET M>Региональная специфика
Ну, если бы у меня на собеседовании стали спрашивать про разного рода технические
детали, то я бы интервьюера вежливо послал . (Правда, такое интервьюеры за
последние годы попадались всего пару раз). Но у нас это, наверное, тоже региональная
специфика — у senior'ов не принято спрашивать технические детали.
M>Та да, правильно сделает. Людей с избыточным самомнением я, например, в команде видеть не хочу.
не, я понимаю, хочется найти специалиста со знаниями синьера, и самомнением джуниора. Не знаю как в индии, но в россии по этому поводу говорят и на **й сесть, и рыбку съесть.
Здравствуйте, mymuss, Вы писали:
M>Отлично! Сразу ясно, человек настроен не работать, а гонять понты. А если ему завтра дадут задание: срочно найти в чужом коде ошибку, проект горит, никто не может выяснить в чем дело. А он скажет "Я тут синьор, такой чепухой заниматься не собираюсь. Давайте я лучше буду архитектуру системы дизайнить и в паверпоинте рисовать". Ну и зачем такой "синьор"?
К слову,
если у Вас проект уже горит из-за чужих ошибок в коде, а Вы до сих пор не определились кто архитектуру будет в поверпоинте дизайнить, то у Вас что-то явно не так в консерватории.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, alzt, Вы писали:
A>>Если дать мне листок бумаги и время подумать — подберу коэффициенты, но вспомнить точно не смогу.
L>Не надо ничего подбирать. Береш круг и нарезаешь его на дольки. Эти дольки выстраиваешь в ряд. Получаешь ряд треугольников. Высота каждого — примерно равна радиусу круга r, сумма длин оснований — 2*П*r. Сумма площадей соответственно — r * (2*П*r) / 2. В итоге — П*r^2
А показать откуда взялось 2 \pi r ? Если знать длину окружности, то площадь берется элементарным интегралом по радиусу концентрических окружностей, я его ниже писал. Вопрос в том, сможете ли вы вывести формулу длины окружности? Я бы вот не смог, наверняка.
Из функционального задания полуокружности получаем интеграл для длины . Так как мы не знаем, что это r arcsin(x/r), да и вообще arcsin явно слишком сложно вспомнить, нужно догадаться, представить это в виде , где r f(x/r) — первообразная. Ну вот и все. И никаких \pi. Чтобы было \pi надо вспомнить определение. , т.е. . Вот вам и формула. Но все равно, надо кучу чего знать и помнить, чтобы её вывести хотя бы так.
Здравствуйте, mymuss, Вы писали:
M>Если забудет проверить что вернуло open(), но при этом проверит, что вернуло write(), то я это вообще ошибкой не считаю. А так, предложу подумать, что можно улучшить в коде.
Хочу сказать, что open() было популярно лет 30 назад, когда не было C++. Пора бы уже почитать у Страуструпа про std::stream. Также почитайте про стратегию обработки ошибок через исключения — это тоже уже давно изобрели.
M>Но как я уже говорил, есть 2 типа кандидатов: M> — нормальный M> — полный ступор
—
Вопрос про площадь круга конечно оригинальный в своей детской простоте.
Здравствуйте, Flying Dutchman, Вы писали:
FD>TextWriter я использовал неоднократно, но не помню наизусть, как он используется.
Там помнить нечего просто. Особенно весело становится, если вспомнить о том, что Console полностью повторяет его интерфейс.
FD> Когда мне нужно использовать в новой программе вывод в файл
TextWriter используется всегда, когда речь идет о потоковой обработке символьных данных в дотнете. Нет, я конечно понимаю, что могут быть задачи, когда это совсем совсем не нужно, но на моей практике почему то TextWriter и его наследники — чуть ли не самый используемый класс во всей библиотеке. Круче только string.
FD>Помнить все детали языка слишком сложно.
Все не надо. Но такие вещи как TextWriter ...
Я вообще сильно не фанат всяких заковыристых вопросов на собеседовании, но если человек не способен вспомнить подобные вопросы без "копирования куска кода", то это серьезнейший минус.
FD> Это, может быть, возможно для программиста, знающего один-два языка. Но С# для меня не первый, не второй и не третий, я двенадцатый или пятнадцатый язык программирования.
А у меня на 2 сантиметра длиннее.
FD>А помнить наизусть, как используется TextWriter (и вообще то, что этот класс так называется) FD>программисту нужно только в одном случае — если этот программист преподает C#.
Ты несколько меня не понял. Помнить специально наизусть — не нужно. Но я не представляю, как можно, если ты написал не одну игрушечную программку, не запомнить такой базовый момент. Это как для С++ программиста не помнить, что такое cout и с чем его едят. А уж если ты постоянно используешь .net в повседневной работе ...
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
SE>Я вот не пойму, действительно тут есть те, кто не понял суть моего сообщения про общечеловеческие знания (см. мое исходное сообщение)? SE>AVK, вот скажите площадь круга и закон Ома — это должен знать любой образованный человек, или это ниже Вашего достоинства?
проблема в том, что масса достойнейших специалистов, весьма успешно работающих и создающих софт в сотни раз более сложный чем упомянутоя формула эту собственно формулу и закон банально не помнят. Потому что ну ни разу она им после школы/универа не приренялась. И получается идиотизьм — человек безусловно успешен, безусловно достоин, но вот, "no hire" изза того что ктото считает что подобный мусор успешный специалист ОБЯЗАН держать в своей явно не резиновой головушке, а не скажем знать в какой справочник слазить нужно. Это да, злит. Т.к. заявка идет на человека который прежде всего умеет решать задачи, а спрашивают как с человека который экзамены умеет сдавать. Т.е. студента зубрилу.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>[...] лучше сократить бесполезные предметы и за счёт них изучать во-первых практические ньюансы профессии (тестирование, жизненный цикл, методологии, паттерны...)
Значит, в оригинале (в пресловутой институтской программе) тестирование так и называлось — тестированием. В частности, объясняли, что такое тестирование методом граничных условий, что такое тестовое покрытие, тестирование методом "чёрного ящика" и т.п. То есть, само по себе "тестирование" полагалось чем-то само собой разумеющимся и никак особо внимание не привлекающим. Ну да — программа. Ну да — программы нужно тестировать. Ну да, тесты нужно писать с учётом внутреннего устройства проограммы или как минимум предполагая определённый выход в ответ на определённый вход. И кстати, ни одна лабораторка по программированию, по сути, без тестов не обходилась. Напоминаю, что речь идёт приблизительно о периоде 90-92 г.г. прошлого века.
Иными словами, в памяти студентов отложился совершенно банальная и очевидная часть разработки, включающая в себя разработку простенькой модульной программы (о нет! Это — Unit Testing Framework!), и систематическую сборку модулей и тестовые прогоны (нет-нет, типун мне на мой лживый язык! Это — Continuous Integration & The Unit Testing!). Ну понятно, программы бывают сложные, потому при длительной разработке и многочисленных модификациях что-то можно упустить, поэтому ввод-вывод отдельных модулей нужно как-то зафиксировать в других программах, которые можно запустить и проверить — не сломалось ли чего-нибудь. Также очевидно было, например, что если не совсем понятно, как именно программа должна работать, то нужно сделать тестовый набор данных и подогнать алгоритмы под него (прошу прощения за то, что так уничижительно отозвался о Test-Driven Development-е, Ктулху, не ешь мой мозг, пожалуйста!). Занятия эти, разумеется, полагались до определённой степени скучными и нудными, но в то же время не было ни малейших сомнений, что так или иначе всем этим заниматься нужно, про лабораторки я уже сказал.
Велико же было моё удивление (позволю тут себе определённое брюзжание), когда спустя несколько лет я узнал, что:
а) Мои коллеги об этом почти не знают;
б) Тестирование — это искусство и Чёрная Магия;
в) Для постижения этого искусства нужно покупать специальные книги (в которых рассказывалось то же самое, что и на лекциях, которые можно было пересчитать по пальцам одной руки, но гораздо-гораздо многословней);
г) Что (чуть позже) банальное модульное тестирование переобозвали unit-testing-ом и возвели почти в ранг культа;
д) Что за ради постижения этой Чёрной Магии и Эзотерического Искусства нужно выкинуть из институтской программы чуть ли не всю математику и едва ли не ввести отдельный курс.
А всё почему? Потому что в погоне за "скорей-скорей" напрочь похерили сию важную составляющую — работает как-то и фиг с ним. Восстанавливать справедливость пришлось через возведение тестирования в ранг квазирелигии. Только ты уж поверь, нормальным инженерам вся эта "религия", что называется, "нах не впала". За исключением одного применения — оперируя такими визгами можно таки добиться от менеджеров выделения ресурсов на соответствующую работу. Ну если не способен руководитель опираться на знания и трезвые расчёты своих инженеров — пусть делает то же самое под религиозным соусом, нам-то какая разница?! Не мытьём так катаньем добились того, что разрабтка входит в нормальное русло.
А ты говоришь — "практические нюансы", "тестирование".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Это первый кандидат, который не смог ответить на математический вопрос, но при этом относительно сносно отвечал на остальные. С одной стороны, технологию и платформу человек, вроде бы, знает (ну ладно, логарифмический скролер не напишет, ну не страшно, спросит у соседа). С другой стороны, я пытаюсь предотвратить найм быдлокодеров, пишущих ужаснейший тормозящий код.
Согласен, есть куча людей, которые бросаются модными словами из технологий, которые они знают. А код пишут такой, что потом переписывать почти все приходится. Зато человек ночами сидел и варил у себя в голове кашу из кучи новомодных технологий. А сам я считаю, что кроме испытательного срока ничто не скажет о релальном уровне кандитата. На собеседовании почти всегда человек совсем на другое способен.
Здравствуйте, millevi, Вы писали:
M> — глянули и выпали в осадок: в том месте, где был простой функционал на пяток методов и разобраться в нём любой программист смог бы за полчаса, появились пара классов с функционалом, пара классов-хелперов, абстрактные фабрики и прочее O_o Если под дебагом смотреть по шагам что и куда ходит и наблюдать за кол-стеком, то обнаруживается, что функций 10 вызывается...
Вот тоже был случай — написали "как бы побыстрее", потому что "это просто" и "расширять не понадобится" и "любой программист может разобраться за полчаса". Через год глянули и выпали в осадок — классы с сотней методов, дублирование кода, глобальные функции, дикие зависимости в коде. Никаких юнит-тестов, а если под дебагом смотреть, до функций 100 вызывают друг друга непонятно для чего.
Здравствуйте, Davader, Вы писали:
D>Спрашивать надо только то, чем реально придется заниматься кандидату после приема на работу (он же берется на какой-то конкретный проект, конкретную должность).
Уверены, а давайте я в шутку вам отвечу (конечно я знаю ответы на ваши вопросы, но это не то "чем я реально занимаюсь после приема на работу").
D>Пример вопросов: "Есть ли множественное наследование в С#?",
У меня не было неоходимости во множественном наследовании, поэтому я не знаю есть ли оно. В реальной работе оно мне не нужно.
D>"Где можно хранить состояние в ASP.Net"
Я ни разу не хранил состояние нигде кроме "in process". В реальной работе мне не нужно знать где "можно" его хранить.
D>"Чем отличается Responce.Redirect от Server.Transfer?"
Последний раз делал Server.Transfer еще в 2001 году на ASP. В ASP.NET не делал ни разу. На практике оно мне не надо даже знать про Server.Transfer.
D>"Чем плох тип Double для работы с денежными суммами?"
Ни разу не считал деньги на C#. Про тип Money предложенный Фаулером не слышал (оно ж мне не надо на практике, ага)
D>"Тип String — value или reference type?"
А зачем оно мне? Мне достаточно знать, что String "неизменяемый". На практике этого достаточно. Плюс знание StringBuilder.
D>Таким образом, правильно сделанный тест является предметом дальнейшего разговора и экономит массу времени. Любой mid level и выше с легкостью отвечает на все вопросы.
Таким образом если бы я знал только то, что мне надо в работе, я бы на ваши "сугубо рабочие" вопросы не ответил бы. А все что вы спрашиваете было узнано не столько в процессе работы, сколько из любопытства "а как же оно там внутри"
D>Но пока не начнешь проводить собеседования — и не узнаешь, сколько неадекватов и людей с гипертрофированной самооценкой приходят к HR.
Это да.
D>В общем, проведя около трех десятков собеседований:
Я за два года провел их пять десятков. Это не показатель. Показатель — слаженная команда и успешно завершенный командой проект.
D>большая часть т.н. "тим-лидов" путались в эл. вещах и кричали об каком-то опыте "руководства", "анализа", "проектирования" и т.п.
Вы спутали лид-инженера/архитекта и тим-лида. Кстати даже лид инженер и архитект могут быть так задолбаны бюрократией и всякой тянучкой-текучкой, что забудут как "Hello World" написать. Это свойство роста по карьерной лестнице.
D>Имхо, максимально конкретные вопросы, ответы на которые реально требуются для работы на проекте, куда берется кандидат — лучший способ проведения техн. интерью.
Ага, меня так в одной конторе насобеседовали на тему делегатов и потоков, а потом я их ПМ насобеседовал на тему SMMI и риск-менеджмента. В итоге они мне сделали оффер на джун девелопера, а я их ПМа посчитал неквалифицированным как для его должности.
И ушел сениором в другую контору, где уже два года со смехом вспоминаю тот эпизод.
Здравствуйте, mymuss, Вы писали:
M>Хм... резонный вопрос. Ну ок, а зачем вообще устраивать тех. собеседование. Все ведь можно в интернете посмотреть? Главное, чтобы человек был хороший.
Ну так и здорово, что можно посмотреть. Качество своего кода вот посмотреть нигде нельзя, его можно только показать .
Вам что, хуже будет, если человек точно не помнит, чего там передаётся в функцию, зато знает, что это за пару секунд находится в msdn?
Он же от этого плохим программистом не становится. Зато он вам, например, сможет рассказать, чем агрегирование от наследование отличается.
Странные вы какие-то.
Здравствуйте, mymuss, Вы писали:
M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
И вот приходит к вам ушлый человек вроде меня и пишет
1. +/
2. [:o. ] ^ 2:
3. date > time.txt
hire или no hire ?
Вообще все зависит от того, какая цель преследуются. Отсеять совсем дураков или найти умных. По моему опыту собеседований спрашивать конкретику типа формул или там какой 3-й параметр у функции YYY стандартной бибилиотеки XXX и какое исключение оно кидает при ошибке имеет мало смысла.
Гораздо полезнее поговорить за жизнь. Спросить о выполненных проектах. Какие задачи выполнял. Что там делал. Какие решения понравились ? Какие нет ? Какие грабли встретились ? А вот если бы требования изменились таким вот образом, как бы он их решал ? Притом, что эти вопросы вполне подходят и для джуниора и для архитектора.
Такое вот мое мнение. А стандартные функции — баловство имхо. Они ничего не скажут о том, что человек УМЕЕТ. они говорят только о том, что человек помнит\читал\видел. А между читал и делал есть все же разница
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
.....
Решение о приеме на работу всех разработчиков, которых я взял в отдел, было принято еще ДО технического интервью, просто поговорив о прошлых проектах, об интересах, о причинах смены места работы, о желаемых переспективах и направлении развития и т.п.
При этом, в ходе технической части собеседования, на ряд вопросов некоторые ответить не смогли. С тех пор они успешно работают и я ими очень доволен
А Вы какими-то дурацкими вопросами готовы сразу отшить человека...
Сложно сказать не зная насколько большой поток собеседующихся и кто они. Вполне нормальный фильтр в некоторых ситуациях. Я вот помню лет так несколько назад вообще человека без коммерческого опыта (банки, нии etc) даже до собеседования не допускали. Только тогда за один день приходило столько же резюме как сейчас за месяц
M>Незнание какая ф-ция используется для чтения из файла -- fail. M>Использование read() без open() -- fail.
А я думаю — незнание того что нужно читать и что с этим делать — вот это fail ...
а так — получите кучу обезьян , которые умеют открывать и закрывать файлы
Здравствуйте, Vzhyk, Вы писали:
V>mymuss пишет: >> >> V>Т.е. площади кругов считаете? >> >> Гм... странный вопрос. Думаете, в Гугле программеры ребусы решают? V>Понты здесь Вы раскидывали, я не я. Мне просто интересно стало, как V>площадь круга относиться к обработки графики?
Ок, разжевываю.
Площадь круга относится к обработке графики так же, как решение ребуов к алгоритмам поиска. Цель собеседования -- приблизительно определить уровень знаний кандидата за минимальное время.
В Гугле считают, что умение решать головоломки есть признак хорошего разработчика. В Гугле хотят нанять хороших разработчиков. Поэтому для отсева кандидатов им предлагают порешать головоломки.
Я считаю, что знание простейщих математических фактов есть признак знания элементарной математики. Я хочу нанять кандидатов со знанием элементарной математики. Поэтому для отсева кандидатов я спрашиваю знание простейших математических фактов.
Впрочем, я не утверждаю что этот способ единственно правильный. Поэтому и спрашиваю тут.
Здравствуйте, mymuss, Вы писали:
M>Отлично! Сразу ясно, человек настроен не работать, а гонять понты. А если ему завтра дадут задание: срочно найти в чужом коде ошибку, проект горит, никто не может выяснить в чем дело. А он скажет "Я тут синьор, такой чепухой заниматься не собираюсь. Давайте я лучше буду архитектуру системы дизайнить и в паверпоинте рисовать". Ну и зачем такой "синьор"?
Понты тут пока гоняет кто-то один.
Как знание формулы круга поможет найти в чужом коде ошибку, о великий гуру?
Здравствуйте, Grizzli, Вы писали:
G>>>Более того, опытный разработчик на формуле круга пошлет нахрен собеседователя. Ибо не экзамен в вузе сдавает. И будет прав. ГВ>>За всех не расписывайся, ладно? G>Что, и таблицу умножения всю наизусть продекларируете если попросят, да? Действительно себя так не уважаете?
Уважаю. И себя, и свою профессию. Но mymuss, вроде, не просит таблицу умножения вслух декламировать. Хотя ты знаешь, много за то, что скоро уже это будет не лишним.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали: M>Здравствуйте, Vzhyk, Вы писали: V>>Т.е. площади кругов считаете? M>Гм... странный вопрос. Думаете, в Гугле программеры ребусы решают? M>Да, минимальные знания школьной математики необходимы. Я хочу на собеседовании прикинуть их наличие/отсутствие.
Тогда нужно несколько вопросов на эту тему.
Наиболее значимыми имхо являются формулы сокращенного умножения — они на оптимизации влияют.
Здравствуйте, alcotras, Вы писали:
A>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>Здравствуйте, alcotras, Вы писали:
ГВ>>Ладно, извини, я погорячился в предыдущем сообщении.
ГВ>>>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? A>>>Зачем этот rocket science при разработке типичных бизнес-приложений?
ГВ>>Ну ты сам не понимаешь или стебёшься?
A>Ни капли стеба. Из десятка людей, кого по отрасли знаю, ни одному незнание этих вещей не мешает поднимать 90-120000р в месяц.
Здравствуйте, alcotras, Вы писали:
A>Я думаю, что профессия служит для подсчета денег в бумажнике, а не для подсчета, прости Господи, логарифмов всяких. Ежели конечно кто с rocket science имеет дело, то тогда понятно, без вопросов.
Да я тоже думаю, что не профессия для логарифмов, а наоборот — логарифмы для профессии.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, игппук, Вы писали:
И>обычная, школьная математика, аля "реши квадратное уравнение", "посчитай интеграл" и так далее, программисту не нужна.
Без обычной школьной математики программист не поймет, что такое O(n^3) и чем это хуже O(n), не сможет вынести выражение за пределы цикла, и.т.д.
ГВ>Забыл добавить, что я настолько уважаю себя, свою профессию и своих учителей (не только профессиональных), что не могу спокойно смотреть на то, как в эту профессию лезут беспардонные неучи, из-за которых дискредитированной окажется вся цепочка, включая меня любимого. А вести себя в манере "послать нахрен, из-за того, что задали простейший вопрос" — это вообще вульгарное хамство, которое у меня как-то совсем не вяжется ни с профессиональным, ни с деловым этикетом.
Имхо, вы перегибаете палку. В открытую пошлют не многие, тех что пошлют и так видно будет по другим вопросам, а вот мысленно думаю пошлёт большинство. А не пошлёт, так резко упадёт интерес к продолжению разговора и самой вакансии. Я ещё понимаю если спрашивают задачку про домики или люки...
зы. А вообще автор зря не указал в первом посте, что это "индусская специфика".
Здравствуйте, Vzhyk, Вы писали:
>> Вот эта оговорка отрезвляет кого хошь. V>Так вот именно эту оговорку ты выше и трактовал по своему, а не так как V>написано (в ней есть "если").
Ха-ха! Так формальные знания, это всегда инструмент, применяемый в необходимых случаях. И есть подвох: не обладая ими нельзя понять, что из них нужно, а что — нет. И когда случаются изменения, то наперёд неизвестно, какие знания нам пригодятся, а без каких можно будет обойтись. Во всяком случае, это справедливо как раз для тех пресловутых 90% "паковщиков", поскольку "картостроители" индуктивно могут нащупать непознанную область формальных знаний (это если брать картеровскую интерпретацию).
Следовательно, сугубо логически (тоже — область знаний), если нам неизвестно, какие знания могут пригодиться при очередных изменениях, но мы не хотим вляпаться в сложное положение, то мы не можем априорно объявить какую-то область знаний ненужной. По крайней мере, мы не можем так поступать по отношению к областям, смежным с нашей работой. Я допускаю, что, например, капитан корабля может обойтись без знаний о быстром преобразвании Фурье, но вот тригонометрию и астрономию ему точно нельзя обойти вниманием, даже если он ни разу не будет самостоятельно прокладывать курс, и ходить только по GPS. Вот такой вот киножурнал "Хочу всё знать!" получается.
Так что, не надо ля-ля, всё я правильно трактовал.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
craft-brother пишет: > > > Посмотрел. Увидел: эти 10% приносят 90% дохода
Ну так попробуйте уволить остальных 90% и впечатлитесь громадными
потерями, ну или банкротством.
Здравствуйте, игппук, Вы писали:
И>про логические выражения я уже писал. точнее, что для меня есть подобные выражения. кстати, расскажите, как вы будете это выражение упрощать за счет выноса его части за скобки. я так понимаю, что мощное знание школьной математики вам это сделать позволяет.
Дать ссылку на учебник по булевой алгебре?
И>ни в школе (среднее образование), ни в универе (высшая математика) лично мне никаких подобных выражений мне не преподавали.
Это свидетельствует о пробелах в твоем образовании, которые неплохо бы восполнить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, SE, Вы писали:
SE>>Искал бы химика, спрашивал бы про альдегиды. Искал бы спичрайтера, попросил бы сочинение написать. Ищу программиста — проверяю его алгоритмический и математический бекграунд. Предваряя вопрос: искал бы математика, спросил бы что нибудь из теории множеств.
AVK>А если бы электрика искал — спрашивал бы преобразование Лапласа?
Нет, спрашивал бы закон Ома. Как раз школьная программа. И того же уровня, что вопрос про площадь круга. Недостойный настоящего программиста.
Я вот не пойму, действительно тут есть те, кто не понял суть моего сообщения про общечеловеческие знания (см. мое исходное сообщение)?
AVK, вот скажите площадь круга и закон Ома — это должен знать любой образованный человек, или это ниже Вашего достоинства?
Здравствуйте, игппук, Вы писали:
И>я привел эти дисциплины в качестве примера
Примера чего?
И>, так как в них тоже очень серьезно используется математика
Ну и что?
И>. а в программировании, математика если и используется, то в основном не выше уровня +-*/, о чем я и писал ранее.
В программировании математика таки используется намного шире, только не те разделы, о которых тебе рассказывали в твоем оптико-инженерном. То, что ты этого не видишь, как раз и свидетельствует о том самом пробеле.
И>значит, программисту вся математика не нужна
Разве это кто то утверждал? Вся математика нужна разве что математикам, и то вряд ли.
И> а вот умения считать площадь круга (геометрия) не нужна сто лет в обед.
Это понятно (я, собственно, уже не раз говорил, что считаю подобные вопросы на собеседовании как минимум непрофессионализмом). Тут, главное, не оправдывать ненужностью собственное незнание.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, landerhigh, Вы писали:
L>Хорошо. Ответил тебе человек про площадь круга. Это гарантирует, что он блестяще будет находить баги, заботливо расставленные его предшественниками (кстати, их случайно не так же нанимали?) Нет? В чем смысл этого, с позволения сказать, вопроса?
Если ответил — ок, можно говорить дальше о предметной области.
Если не ответил, а честно сказал, что забыл, но при этом может объяснить как площадь считается, или захочет ответить на вопрос про площадь треугольника (ну раз про круг забыл) — тоже нормуль.
Смысл вопроса — это не понять профессиональные качества, а просто выяснить адекватность сотрудника Ну зачем работодателю разработчик, впадающий в истерику при просьбе сделать что-то простое из немножко смещенной области?
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, olegkr, Вы писали:
AVK>>И что? Это отменяет их полезность? O>Нет. Но я не вижу в этих примитивах ничего особенного, что требует полсеместра.
"Эти примитивы" начитываются за одну лекцию.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
ГВ>>Ну не учил, так хоть погугли. O>Зачем? Есть намного более интересные темы для изучения, чем то, что не пригодится в обозримом будущем
Странно, как ты можешь знать, пригодится оно тебе или нет, если ты даже не представляешь, о чём речь.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
AVK>>И что? Это отменяет их полезность? O>Нет. Но я не вижу в этих примитивах ничего особенного, что требует полсеместра.
Потому что булева алгебра это не только те примитивы, о которых ты знаешь.
O>Понятия не имею, что это такое.
Я об это и говорю.
O> В рабочей обстановке не встречается.
Тут, видишь ли какое дело, есть одна засада. В некоторых случаях, чтобы понять, что Х поможет тебе решить некоторую задачу, нужно более менее представлять о том, что такое Х. Поэтому знание булевой алгебры не только на уровне примитивов как минимум полезно. В советское время это называли системностью знаний.
O>Ты меня не удивил. Лучше бы эти полсеместра потратили на более полезные вещи.
Хм, я конечно не специалист в оптических инженерах или какое там у тебя образование, но вот высшее образование в областях, связанных с программированием в частности и цифровой электроникой вообще без курса дискретной математики, это нечто феерическое.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
O>Вот именно. И потом пытаются эти теоретики CS устроится на работу и ожидает их горькое разочарование, т.к. учили их совсем не тому, что надо
Это у всех так. Только практику они быстро наберут, а вот с теорией у тех, кто с ней не знаком, так все печально и останется.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Вот в этом и состоит одна из серьезнейших проблем софтостроительной индустрии, что можно "кодить и зарабатывать денежку", имея весьма посредственную квалификацию.
Квалификация хорошего программиста имеет мало общего с квалификацией хорошего теоретика CS. С точки зрения теоретика нынешние программисты вообще полные профаны, даже не помнят площадь круга. С точки зрения практика-программиста — теоретики вообще ничего не умеют, пишут кривой код, лепят левую архитектуру, занимаются заумствованиями.
На самом деле — это классическое разделение между учеными и инженерами, все дисциплины прошли через это, программирование просто слишком молодо.
Я не агитирую за то, что бы не преподавать CS, как науку. Преподавать, конечно, тем кому это интересно. Важно на мой взгляд выделить преподавание разработки ПО, как отдельную инженерную дисциплину со своими акцентам в обучении.
Я прекрасно помню, как обучают архитекторов (строительных), очень много практических знаний, которые непосредственно потребуются в дальнейшей работе, очень много работы руками. Теория тоже есть, как база, но не более того.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Можно взять и что попроще, например — Аммераля. Есть такой почти классический четырёхтомник по машграфике.
Интересно, а что метод Монте-Карло никто не вспомнил? Стандартный вроде ж метод определения площади сложных фигур?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Э-э... Так, вроде, не площади считаем. Хотя, вообще, определять площадь круга методом МК — это прикольно.
А чего ж
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе ГВ>>Только это всё стоит на теории графов и прочей ДМ. BZ>ну да, ну да. а сложение стоит на теории групп. как я в первом класе учился — просто не понимаю
Да вот и я думаю, что больше трёх классов вообще — вредная штука. Три класса + полгода веб-программирования и в путь! Понавыдумывают яйцеголовые всякой фигни — только детям деньги зарабатывать мешают.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, SE, Вы писали:
L>>>Похожий пример — у матерого С++ника на собеседовании спросили определение полиморфизма. L>>>Вопрос — кто идиот? SE>Рекомендую провести эксперимент. Скажите С++снику, что перегрузка — это яркий пример полиморфизма.
Хм. Ну вот ты мне об этом сказал.
SE>Если он знаком с историей понятия полиморфизм и его изначальным определением, то это вызовет лишь вопрос "И что?"
И правда — ну и что?
SE>А если это матерый практик, но теория для него пустой звук, то его реакция вас удивит и будет отличной иллюстрацией поведения буйнопомешанных.
Правда, что ли? И где только вы таких C++-ников берёте?
SE>Наблюдал неоднократно, это у меня своего рода развлечение
Забавно, надо будет запомнить.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
CC>>Да как то с С# у них тоже не фонтан. Имею на данный момент сомнительное удовольствие копаться в коде написанном штатовскими индусами. Индусский С# такое же говно как и индусский С++. Область — финансы.
M>Вам попалась неудачная команда.
Почему-то вспомнился анекдот.
Секретарь звонит шефу, который едет домой на авто.
— Але, шеф, будьте осторожны на шоссе — там какой то псих несется по встречке!
— Какой-то псих?! Да тут их сотни!!!
Это я к чему. К тому что "неудачная команда" — это так каждый раз получается почему-то. Особенно если в ней есть индусы.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>[...] заменив философию/физику/диффуры [...]
Я так понимаю, эти предметы нужно подвергнуть остракизму из-за наличия в их названии буквы "фы".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, alcotras, Вы писали:
ГВ>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да?
A>Зачем этот rocket science при разработке типичных бизнес-приложений?
Чтобы на отладку уходило не 80% рабочего времени, а 20.
Здравствуйте, The Lex, Вы писали:
TL>Вот, кстати, хороший пример: дело программиста — заставить программу читать файл "в определенном формате" — ХМЛ там или еще что — дело десятое и это дело программиста — в этом он специалист. А вот что там за данные такие и по каким хитрым формулам они высчитываются — неужели нет для этого специального специалиста?
Э... Ну я по складу своего ума универсал, что дает мне определенные преимущества в жизни, в т.ч. финансовые, и возможность относительно свободно распоряжаться своим временем
Недостатком является то, что я очень неуютно себя чувствую в задачах, где я не в состоянии понять какой-то кусочек без помощи специального специалиста.
Здравствуйте, Pzz, Вы писали:
Pzz>Я спрашиваю, каким образом вы собираетесь парсить текстовые файлы, если нет готового парсера?
Элементарно. Воспользуюсь методам класса String. И точно не буду городить лексический анализ логов типа
Здравствуйте, Ikemefula, Вы писали:
I>файлы(всё множество) хранят состояние объектной модели с рутовым объектом. I>Подобное в БД решается через хибернейт, только ни один движок БД не дает нужного перформанса да и sql нам ни к чему.
Два вопроса.
1) Зачем они всё это хранят в виде текстов?
2) Зачем везде разный сложноразбираемый формат, а не какой-нибудь унифицированный, например XML?
Ну и ещё один комментарий. IMHO если люди утверждают, что они хранят сложную модель в виде вороха разноформатных текстовых конфигов, разбираемых скриптами на самописном интерпретаторе, и при этом рвут по быстродействию СУБД, то они не умеют таки пользоваться СУБД, или что-то недоговаривают
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, игппук, Вы писали:
И>имею глупый вопрос. а что такое CS? контр страйк чтоль?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Меня именно аналогия приколола
К сожалению, лучше аналогии в рамках С++ я придумать не могу. Точного аналога стандартной библиотеки дотнета в С++ нет. Даже STL некоторые не используют ( ), пишут свои велосипеды.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>IMHO вывод проги на коболе, да ещё такой, что регулярных выражений мало для разбора -- это немного фантастично звучит. Попробуй придумать пример такого вывода? Я вот могу пока придумать такой, например:
Ну например, понимать e-mail адреса клиентов во всем том разнообразии синтаксических оттенков, которое допускает RFC822.
Не очень понятно, при чем тут Кобол. Ну ОК, пусть будет Фортран
E>прога выдаёт строчки из плюсиков и минусиков и надо отобрать строчки, где плюсиков больше, чем минусиков. Ну что тут делать на голом C# довольно таки понятно...
Если наложить ограничение на длинну строки, это точно совершенно описывается конечным автоматом. А значит, и регулярное выражение можно подобрать
Здравствуйте, Erop, Вы писали:
E>За руководство другими проектами. Более важными и нужными.
А этого товарища он бросил на произвол судьбы? Ну и кто тогда в сложившейся ситуации виноват? ИМХО — начальник начальника, который устроил бардак с разделением зон ответственности и не чесался в течение 10 месяцев.
E> Идеально было бы, если бы этот крутой перец, после внятной постановки задачи за месяц, например, разобрался как что используется и сделал бы это исследование.
Очевидно, что этот крутой перец совсем не так крут. Опять ошибка того человека, который неверно оценил квалификацию, пустил в свободное плавание, да еще и не потрудился за 10 месяцев ни разу проверить.
И да, то что человека уволили, вместо того чтобы найти ему более нормальное применение, это тоже показатель.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>Дык поинт в том, что чотрудник должен сотрудничать, а иначе он нам не нужен.
Ты все таки хочешь вместо вопроса технической квалификации обсудить менеджеров? Ок, тогда ответь на второй вопрос — почему нежелание сотрудничать не было замечено во время испытательного срока?
E>Зато я писал. Было много разных менеджеров, которые пробовали разные варианты воздействия. IMHO самый компетентный уволил
Вы 10 месяцев тянули волынку.
E>Ну я считаю, что негодной, потому что очень большой
Ты так и не смог доказать, что проблемой была черезмерная квалификация.
E> Ну он повыпендривался и свалил в конце концов.
Я повторюсь — желание повыпендриваться это признак низкой квалификации.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
ГВ>>Пока ясно только то, что обе стороны упрямо гнули свою линию, не считаясь с потерями. При чём тут квалификация? E>При том, что чел, неспособный одной левой пяткой творить всемогутеры, собрал нормальную установку и быстренько сделал всю работу...
Ну и напрашивается вопрос об адекватности применения термина "квалификация".
E>Вот у нас есть очередной мегамозг, кстати, который всё время хочет локфри очередь реализовать, хотя в реальности у нас нет потребности в такой структуре. Но он не понимает, что отладки и поддержка такого изделия дорога, так как ему кажется, что это просто (возможно ему это и правда просто, но пока не ясно действительно ли его поделие локфри ) E>И вот так каждый раз
У меня складывается всё более стойкое впечатление, что ты называешь "мегамозгами" и "сильно квалифицированными", если сказать мягко — тех, кто увлечён какой-то идеей.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
S>Недавно пришел разработчик, не смог сделать сальто, и плохо закрывает печень в боксерской стойке. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа T-SQL, C#, ASP.NET, ABAP, XSLT, WPF/Silverlight, WCF, IDEFX'ы на mid-level тянет. Коллега предлагает hire.
А должность-то какая?
S>Ваше мнение?
Кто-то из вас, с коллегой, недавно открыл в стойке голову...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
По-моему, полный бред. Спрашивать надо только то, чем реально придется заниматься кандидату после приема на работу (он же берется на какой-то конкретный проект, конкретную должность). Вот в прошлом проекте я в течение месяца помогал проводить техн. часть интервью, собеседовали ASP.Net разработчиков от mid до тим-лид уровней. Как это было в нашем случае:
Дается небольшой (20 вопросов) тест по C# и ASP.Net. Все вопросы уровня junior-mid. Пример вопросов: "Есть ли множественное наследование в С#?", "Где можно хранить состояние в ASP.Net", "Чем отличается Responce.Redirect от Server.Transfer?", "Чем плох тип Double для работы с денежными суммами?", "Тип String — value или reference type?" и т.п. Таким образом, правильно сделанный тест является предметом дальнейшего разговора и экономит массу времени. Любой mid level и выше с легкостью отвечает на все вопросы.
Но пока не начнешь проводить собеседования — и не узнаешь, сколько неадекватов и людей с гипертрофированной самооценкой приходят к HR. Никогда бы не подумал, что человек, написавший в резюме, что он 2 года работал тим-лидом на ASP.Net проекте не сможет мне сказать, чем отличаются value и reference types, где может храниться сессия и можно ли реализовать несколько интерфейсов одному классу. Оказывается, есть и такие "работники". При этом наверняка человек знал площадь круга и сумму массива может быть и написал бы... Только зачем мне это, если человека завтра сажать за сложный .Net проект?
В общем, проведя около трех десятков собеседований, получилось вот, что:
всего несколько человек прошли тест без ошибок (подтвердили заявленный в резюме уровень)
большая часть т.н. "тим-лидов" путались в эл. вещах и кричали об каком-то опыте "руководства", "анализа", "проектирования" и т.п.
Имхо, максимально конкретные вопросы, ответы на которые реально требуются для работы на проекте, куда берется кандидат — лучший способ проведения техн. интерью. Если человек не помнит площадь круга, треугольника, квадрата и не знает, что 2+2=4, но при этом видно, что он за короткий срок "въедет" в проект и обладает всеми необходимыми скилами для работы — надо его брать.
Здравствуйте, Erop, Вы писали:
E> Правда это самый вопиющий, из известных мне случаев излишнеквалифицированного сотрудника.
Да не является этот случай демонстрацией проблем с "излишнеквалифицированным"
сотрудником. Как бы он не демонстрировал обратной ситуации с отсутствием
квалификации:
— человек вероятно неправильно построил архитектуру системы;
— неправильно расставил приоритеты;
— не оценил своих сил;
— вероятно некорректно выбрал инструменты и технологии для реализации;
и:
— непосредственный технический руководитель, который в данном случае не выполнил
своих функции вообще никак.
Здравствуйте, SE, Вы писали:
SE>Тогда понятно, мы тоже отсеяли пару лидов просто потому что у лидов знания вымылись. Кстати мы вынуждены были забраковать и человека, который ответил на все вопросы, решил все задачи, но вот проблема был помешан на оптимизации кода настолько, что ставил его важней понятности.
оптимищация кода на C# — это что-то в стиле "баня, через дорогу — раздевалка"
Здравствуйте, МихаилС, Вы писали:
E>> Так что бывает и так, что разработчик для данной задачи слишком таки умён E>> Даже для очень сложной задачи...
МС>Ситуация известная. Но думаю, что здесь производится подмена понятий.
ты полагаешь, что Эйнштейн справится с закручиванием лампочек не хуже обычного фонарщика? есть целые профессии, в которые не пускают мужчин, поскольку в них нужна сосредоточенная монотонная работа
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>>Но то, что в этом топике творится — честно говоря, я в шоке. Что-то как-то привык, что культурный человек знает, как померить длину окружности или площадь дна стакана. Ан нет...
J>>Длину окружности можно померить с помощью курвиметра. Ясен пень =)
ГВ>Точно! И география ни к чему — извозчик же есть!
Можно я чуток встряну? По обсуждаемой теме — полностью разделяю твои "выпученные глаза". А про географию хочу сказать отдельно: пользы от неё никогда не видел, в школе преподавали её не интересно, поэтому моим девизом всегда было это самое "А извозчики на что?". Теперь вот выискиваю в Гугл-картах всякие заумные слова типа "Пакистан", "Венесуэлла" — и чувствую себя при этом круглым дураком.
Или вот, рванул я недавно с юга на север, в Карелию. Тут полярный круг неподалёку, а температура -5. А на Байкале, гораздо южнее, уже -20. Спросил у местных о причине сего явления, и получив ответ, завис намертво: это я такой беспамятный, или нам правда на уроках не рассказывали про Гольфстрим?
Здравствуйте, МихаилС, Вы писали:
BZ>> ты полагаешь, что Эйнштейн справится с закручиванием лампочек не BZ>> хуже обычного фонарщика? есть целые профессии, в которые не BZ>> пускают мужчин, поскольку в них нужна сосредоточенная монотонная работа
МС>Я полагаю, что когда мы говорим о "квалифицированности" сотрудника мы рассматриваем МС>это явление в рамках некоторой области, в которой мы собираемся сотрудничать с этим МС>сотрудником.
знаешь, это только у мистера Вульфа на визитке было написано "решаю проблемы". программист же умеет программировать. бизнес-ориентированный программист — это уже наполовину менеджер, а молодой бизнес-ориентированный программист — это вообще Дед Мороз поэтому я считаю, что бизнес-ориентированность — это дополнительный плюс к квалификации, но никак не обязательная черта. это как раз за что менеджеру деньги плотят — за то, что он берёт квалифицированных спецов и с их помощью решает бизнес-задачи. говоря иначе, to manage
я сейчас с таким дело имею — человека просят реализовать готовый алгоритм jpeg-пережатия, а он отказывается, говоря что он может сделать новый, гораздо лучше. и это при том, что такого типа алгоритмов в мирен разработано всего 4-5. скажешь, у него недостаточна квалификация?
> G>Если он, как ты утверждаешь, квалифицированный специалист в этой области, он на практике доказал это? Если нет, то он может быть высококлассным специалистом с блестящей теоретической подготовкой. Но не кваликом. Ещё раз напомню, квалификации "в теории" не бывает. Предлагаю придерживаться этого критерия. > > Я конечно не знаю что там у Булата, но таки вполне могу представить себе ситуацию, что тот сотрудник уже пару-тройку-десяток аналогичных задач успешно решил...
Эйнтштейн тоже дома сам лампочки закручивал. Но квалификация закручивателя лампочек может быть второй, первой и высшей. Вторая, это junior. К сведению, для первой квалификации уже нужно иметь опыт работы, а не опыт закручивания десятка лампочек, теоретическую подготовку включающую знания о лампочках более 1КВт и 500 Вт, их принципах, цоколях, технику безопасности по закручиванию лампочек на высоте до и выше 5 метров. И это только средняя, то есть нормальная квалификация. А есть ещё высшая.
Так что на Эйнштейн, несмотря на то, что знает в патрон пальцы совать не надо, дюбнет, про физику вольфрамовой спирали в газе, пробоя, дуги, теплоемкость, теплопроводность, тепловое расширение патрона и колбы, зависимость сопротивления от температуры, температуру плавления и всё-такое, всего лишь тянет на вторую (низшую) категорию закручивателя ласпочек. И по большому счету даже кваликом низшей категории считаться не может, свою квалификацию он ещё не подтвердил и корочек у него нету.
Ещё раз: квалифицированным закручивателем лампочек он не является.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Угу, суть одна и та же — ошибочная.
Перечитал сорец, согласен, 360 там не к месту совсем, ведь градусы никуда не переводим, и так всё в радианах считаем. Там нужна только двойка. Но как real-time иллюстрация кода, пишущегося прямо на собеседовании, на бумажке, пример пойдёт =) (специально же написал, для таких вот придирщиков: "что-то типа такой убогой реализации (хз — работает или нет, набрал для поста)"
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>бред какой. в классификации хомского 4 уровня языков — от 0 до 3 (самый сложный), RE afaik это 1-й уровень. например ими нельзя описать язык с согласованием скобок (последовательность '(' и )' где в любой момент времени закрывающих скобок не больше чем открывающих)
Наоборот, 0-самый сложный. RE это 3-й уровень. Но это придирки.
E>Теперь по существу. Придумай, пожалуйста, реалистичный вывод каких-то полезных данных, якобы печатаемых прогой на КАБОЛе, который не разбирается регулярным выражением. Про скобочки все тут знают, про Хомского, скорее всего тоже, так что на халяву за умного сойти не получится.
Как вариант (пример из реального лога, правда прога не на КОБОЛЕ) — выводится строчка в кавычках, а внутри также могут быть кавычки. Строго говоря, это баг — внутренние кавычки не эскейпятся. Но прога (как и мифическая прога на КОБОЛЕ) с историей, и просто так лезть в нее не хочется. Приходится применять эвристику — считать _" и "_ (_ == пробел) как открывающую и закрывающую скобку. В этом случае логи читаются, проблем не возникает. Регуляркой уже не описывается. Можно, конечно, еще одну эвристику применить и ограничить вложенность — тогда можно будет описать регуляркой. Мы просто сварганили КА со стеком и все.
Второй пример — вывод некой вложенной структуры — я выводил как S-выражение (правда опять же не из Кобола ) Хотя тут можно поспорить — можно было выводить в XML и не париться с разборщиками.
Интересно кстати, как прога на КОБОЛЕ выводила бы дерево — XML тогда не в моде был.
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, Flying Dutchman, Вы писали:
FD>>у senior'ов не принято спрашивать технические детали.
SE>А что тогда, простите, спрашивать? Разглагольствовать на любую тему могут и дилетанты. Профессионалов как раз отличает знание деталей.
Естественно, что вопросы к начинающему программисту должны быть другими,
чем к опытному.
Я как профессионал с многолетним стажем ожидаю таких примерно
вопросов:
— Расскажите подробнее о сделанных вами проектах.
— Есть ли у вас опыт работы с XXX ?
— Можете ли вы реализовать YYY при помощи ZZZ ?
— У нас есть такая-то проблема. Как бы вы ее решили ?
— Насколько хорошо вы работаете в условиях стресса ?
— Умеете ли вы ладить с людьми ?
Опять таки дело в традициях.
Насколько я понял, читая RSDN, имеются культурные различия между Западной Европой
(конкретно Голландией) и Россией/Украиной. У вас принято задавать много технических
вопросов, независимо от уровня интервьюируемого. То есть если приходит человек
с многолетним опытом и обширным CV, заранее подразумевается, что он весь свой
опыт выдумал и ему нужно задать побольше технических вопросов, чтобы
вывести его на чистую воду . У нас же, при наличии обширного опыта в CV,
считается само собой разумеющимся, что в деталях человек разбирается и
вопросы ему следует задавать более высокого уровня.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип... M>Коллега считает подход неправильным...
M>Ваше мнение?
По моему, ваш подход к собеседованию верен за исключением одного момента.
Смотрите — у вас есть свой критерий отбора кандидатов, на мой взгляд несколько странный ( но это ваш монастырь =) ). Но то что собеседование проводится вами и вашим коллегой ( у которого критерий другой ), полностью окупает ваш подход. Т.е. вы проверяете кандидата двумя способами, с двух сторон, так сказать. Если кандидат забыл формулу или долго думает над способом суммирования элементов массива ( например, какой тип использовать для хранении суммы и как узнать о переполнении этой переменной ), то в дело вступает ваш коллега, который поговорит с кандидатом о языках программирования, технологиях, дизайне/архитектуре, IDE и т.д. и т.п.
Единственный момент — это нужно больше доверять мнению своего коллеги. Если он хочет взять кандидата — то нужно брать, в противном случае не очень понятно, зачем он вообще присутствовал на собеседовании и тратил своё время.
Здравствуйте, Gradient, Вы писали:
G>Здравствуйте, Lloyd, Вы писали:
L>>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>осталось доказать, что неучтённая площадь пренебрежимо мала
L>>Это уже мелочи.
G>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
А если просто вспомнить что предел sin(x)/x при x->0 равен 1, а cos(x) — нулю? И взять интеграл по углу.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, landerhigh, Вы писали:
ГВ>>>Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя. L>>Уверен, что не встанем раком вместе с ОС или не удалим такой же файл с другой, только что воткнутой флешки? ГВ>Можем и удалить. Я ж говорю — не надо флешки дёргать, когда ни попадя. Но с другой стороны — фиг с ним, с удалением. Достаточно того, что неудачное закрытие файла может служить признаком неудачи всей транзакции.
А может и нет. И чаще всего не является.
Определяется исключительно задачей и контекстом. Так вот, задача "записать дату в файл" такого не подразумевает даже неявно.
L>>Такие вещи нужно оставлять на откуп ОС. Если там атомная война в рантайме случилась, то все равно рухнем. ГВ>Я бы поправил — "можно", а не "нужно".
Точнее, нужно, если нет необходимости сделать обратное.
Здравствуйте, Ikemefula, Вы писали:
I>Вопрос не в том, кто может или не может опозориться. Просто геморрой в течении 10 месяцев на проекте это заслуга никак не девелопера, хотя вины девелопера это не снимает.
Да конечно безобразие. Ну да там пробовали разные подходы типа. Я, например, теперь занимаю такую позицию, что подчинённый, который настолько умнее меня, что я его не понимаю, мне не нужен
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, mymuss, Вы писали:
N_>>>Не использовать индию. Например, отдать на аутсорс в РФ/Украину. M>>Пробовали в Украину. Там свои проблемы. В целом, Индия лучше ИМХО.
ГВ>А что не так с Украиной?
1. Нету людей. Не приходят даже. Для нас хайрили 2 аутсорсинговых фирмы в Киеве, Харькове и Черкассах. Мы старались не называть конкретных цифр до интервью, так что дело не в деньгах. Выехали все, или трудоустроены, или HR такие попались? В Индии же наоборот, надо отсеять 100 человек, но 101-й будет отличный специалист.
2. Дорого. С услугами аутсорсеров нам выходило от 25 в час. Я не знаю сколько из них перепадало сотруднику, а сколько уходило на взятки, налоговые итд. Но за 30-35 уже можно поискать в США, а это будет, как правило, повыше уровень, никаких проблем с английским и часовыми поясами.
3. Трудолюбие. Индусу без проблем поработать овертайм или там на выходных. Украинцы же раздуют такое...
(Я подозреваю что сейчас многим хочется написать гневный ответ в стиле "проклятые эксплуататоры, мало того что площадь круга требуют, так еще и овертайм им" и кинуть в меня тухлый помидор... Не стоит, я не буду отвечать. Или не в этом топике, пожалуйста. Здесь лишь излагаю причины, побудившие руководство принять решение не в пользу Украины)
Здравствуйте, zakima, Вы писали:
M>> 2. найти площадь круга по радиусу Z>Так получилось, что я ее помню каким-то образом, но за последние 10 лет не помню чтобы приходилось пользоваться. Мог бы и забыть.
В этом и состоит магия этой формулы. Почти все программисты ее помнят, но не помнят когда последний раз нею пользовались.
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, mymuss, Вы писали:
CC>>>Да как то с С# у них тоже не фонтан. Имею на данный момент сомнительное удовольствие копаться в коде написанном штатовскими индусами. Индусский С# такое же говно как и индусский С++. Область — финансы.
M>>Вам попалась неудачная команда.
SE>Почему-то вспомнился анекдот. SE>
SE>Секретарь звонит шефу, который едет домой на авто.
SE>- Але, шеф, будьте осторожны на шоссе — там какой то псих несется по встречке!
SE>- Какой-то псих?! Да тут их сотни!!!
SE>Это я к чему. К тому что "неудачная команда" — это так каждый раз получается почему-то. Особенно если в ней есть индусы.
Встречаются нормальные. Правда, их сразу расхватывают Google, MS, IBM etc, прямо с кампуса. Или же они идут в бодишопы типа Infosys, WiPro в надежде, что их вывезут в штаты.
Нам вот удалось набрать довольно неплохую команду, я доволен в целом.
Здравствуйте, SE, Вы писали:
SE>А что тогда, простите, спрашивать? Разглагольствовать на любую тему могут и дилетанты. Профессионалов как раз отличает знание деталей.
У Михаила Гука в одной из его книг была фраза — знание принципов освобождает от знания множества деталей. А во вторых, детали могут поменяться и меняются очень быстро. И на них закладываться не надо. И, как правило, когда при работе требуется знание деталей, это значит что что-то очень криво.
Приведу пример из реальной жизни. Кто-то, кто прекрасно знает детали фреймворка (spring web flow), воспользовался знанием того, как исключения передаются во flow. Детали — они кидаются во флоу как параметр _exception. Ну и используя это знания он взял, и в логике отображения ошибок брал значения прямо оттуда. Работать работало, но потом при очередных изменениях всплыл баг — этот параметр иногда не очищается. Как можно пофиксить? Явно null присваивать? А я пофиксил баг очень просто, выделил в объекте, который содержит состояния view дополнительный аттрибут, содержащий то, что надо отобразить во view, и во view использовал только этот объект. А исключение ловил с помощью try catch и в обработчике catch устанавливал объекту информацию о том, что надо отобразить на экране. И в результате ушел от знания мелких технических деталей, и ошибка сама собой устранилась. А что, я мегавырос бы чтоль, если б проявил знание технических деталей и засетал бы _exception параметр в null вместо этого? Мне надо стремиться теперь к знанию вот таких мелочей, и постоянно применять их в работе? Я не сомневаюсь, что я стану незаменимым сотрудником в таком случае, так как в моем творчестве никто не разберется, ну будет ли сложность поддержки моего кода мерой моего профессионализма? Чем непонятнее я пишу и чем больше я на мелкие детали завязан тем я круче чтоль?
Здравствуйте, Grizzli, Вы писали:
M>>Та да, правильно сделает. Людей с избыточным самомнением я, например, в команде видеть не хочу.
G>не, я понимаю, хочется найти специалиста со знаниями синьера, и самомнением джуниора. Не знаю как в индии, но в россии по этому поводу говорят и на **й сесть, и рыбку съесть.
Безотносительно к регалиям и положению на служебной лестнице. Если у человека зашкаливает самомнение и гонор брызжет из ушей, то такой человек в коллективе принесет больше вреда чем пользы. ИМХО отказ на собеседовании решать простые задачи однозначно сигнализирует об этом. (Могу, конечно ошибаться, я все-таки не психолог)
Кстати, тут была недавно тема, кандидат отказался тесты писать, дескать простые слишком, оскорбляют его достоинство.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Vzhyk, Вы писали:
>>> Они как раз необходимость проверки всего убирают. V>>Напиши простой враппер на FILE*? Где fclose делать будешь? C>std::istream/std::ostream — в качестве первого приближения.
и что это заменит? std::istream/ostream::open тоже не генерит исключение при невозможности создать файл и после открытия нужно всеравно проверять, что файл создался нормально.
V>>Ну и сами исключения не везде есть еще. C>Уже везде. Там где их нет — сами виноваты.
Нет. Некоторые даже объектно ориентированные библиотеки сознательно избегают исключений.
Например назовите хоть одно исключение которое генерит библиотека QT?
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, AndrewVK, Вы писали:
AVK>Такую. И про Liskov Substitution Principle тоже никогда не слышал?
Нет, разумеется. Что-то мне все это напоминает случайно подслушанный разговор в театре двух театралок (произносить с романтически-напыщенной интонацией):
Театралка 1: Вы уже смотрели новую постановку "Х" от "Y"
Театралка 2: Нет, не довелось, к сожалению
Театралка 1 (всплескивая руками): Боже мой! Кааакооой пробеел!!!
Здравствуйте, SE, Вы писали: J>>Проблема в том, что неизвестно, каким языком придется заниматься. J>>Скорее всего, всеми, но поверхностно, по-этому тратить время на J>>нюансы языка будет нецелесообразно. Специализация такая
SE>Ой-ей-ей. Это что же за специализация такая-то? Что, приходится одновременно писать на С++, С#, Java и LISP и на десятке другом похожих языков под совершенно разные платформы?
Не совсем, но немножко похоже.
Нужно, например, делать интранет на Perl, дополнять Axaptу
и делать систему на Access.
Или освоить и дополнять системы управления ИТ, делать отчеты (репорты),
внешние скрипты, веб-версию с использованием Java API, еще
на .NET подключаться к Active Directory.
Причем проще, быстрее, дешевле, чем компания-разработчик.
Здравствуйте, Anton Batenev, Вы писали:
AB>Здравствуйте, mymuss, Вы писали:
>>На собеседование приходят только синьоры и не менее 15 лет опыт в .NET >>Региональная специфика
AB>2008 — 15 = 1993
AB>мужики в регионах на столько суровы?
Ага, мужики там ураган. Еще такая национальная черта: в резюме обязательно перечислить ВСЕ языки программирования, о которых когда либо слышал. Поэтому иногда требуется приложить усилия, чтобы понять на каком языке человек программировал серьезно, а про какой читал на форуме.
Геннадий Васильев пишет: > > V>Да потому, что это в индию идет. > > То есть? В Индии разрядность процессора равна бесконечности? Нирвана, > однако.
Возможно и нирвана. Это у автора ветки спрашивать надо.
> > Какая связь? Параноидальный код или не параноидальный, но признак > успешности завершения должен означать успешность всех нижележащих > операций. Если это open/write/close то и проверять их надо все.
А вы попробуйте так писать код...
Ну и вопрос по сути. Вы получили по close не 0, что делать будете?
Жду рецепта "серебрянной пули".
MozgC пишет: > > Или просто хотят Эйнштейна за рубль. > > Вы просто не работали с индусами
Работал.
И с индусами и с французами и русскими и беларусами — разница по сути,
только в жизненной философии. А как профессионалы, процент бестолковых и
безграмотных практически одинаков.
Например вот я не помню сходу площадь круга. Но это заняло 15 секунд сообразить.
Примерно так: Площадь круга меньше площади описанного квадрата, т.е. меньше чем 2*r*2*r = 4r*r. Число Pi это 3.14...
и похоже что площадь круга будет Pi*r*r ...
Всё помнить неможно но соображать в нашем бизнесе надо уметь. Вопрос состоит в том что человек на экзамене и человек спокойно рассуждающий это два разных состояния конечно. Ну дык и стрессов в нашем бизнесе хватает поэтому способность рассуждать в обстановке стресса тоже важна. Зависит от специфики индустрии и особенностей компании.
Здравствуйте, olegkr, Вы писали:
ГВ>>Интересно, в чём ты видишь различия? Я не ёрничаю, мне в самом деле интересно. O>В buzzwords. Математики в индустрии производства ПО действительно мало. Что требуется от разработчика — знание языка, сопуствующих фреймворков, процессов и инструментов разработки, умение дизайнить систему. Да что там говорить, требования в вакансиях прописаны.
Понятно.
ГВ>>Теоретики CS? Ну вот тебе пример — Барбара Лисков, теоретик из теоретиков. Напомнить об остальном? O>Не знаю такового, увы.
А зря.
ГВ>>Какие акценты, например? У нас, например, делался некоторый акцент на организации самого процесса разработки. А что ты имеешь в виду? O>Это хорошо. Я имею в виду акценты практической разработки.
Например?
ГВ>>Причём тут строительные архитекторы? Это, по сути, дизайнеры пользовательского интерфейса. O>Дизайнеры — это отдельная специализация.
Так вот я и не понимаю, почему ты про архитекторов вспомнил.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
ГВ>>Теоретики CS? Ну вот тебе пример — Барбара Лисков, теоретик из теоретиков. Напомнить об остальном? O>Не знаю такового, увы.
Такую. И про Liskov Substitution Principle тоже никогда не слышал?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, landerhigh, Вы писали:
L>Почти пять сотен коментов, а mymuss с какой-то слепой религиозностью защищает свое право спрашивать площадь круга.
Ништяк! Испросить базовых знаний — это "религиозность". А фактически настаивать на незнании — это, надо думать, признак просвещённости.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Вот в этом и состоит одна из серьезнейших проблем софтостроительной индустрии, что можно "кодить и зарабатывать денежку", имея весьма посредственную квалификацию.
Да ладно вам. Конечно хорошее образование -- это скорее плюс, особенно если к нему прилагается ещё и голова, позволяющая не переусложнять без нУжды, но таки те же формальные грамматики, это не что-то такое запредельное, не гомотопическая топология, всё-таки. Можно поботать какую-нибудь толковую книжку, скажем Ахо Ульмана, например, и сразу всё при них узнаешь. И про КС и про какие хочешь ещё.
Я бы, кстати, скорее про конечные автоматы советовал ботать, а не про грамматики. IMHO, концепция автоматов намного более полезна программисту, чем парсеры...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, olegkr, Вы писали:
O>Однозначно no hire. Не портите кандидату карьеру. Таких чудес, что бы из-за забытой формулы площади круга однозначно отсеивали неплохих специалистов я не встречал. Тут ты переплюнул всех, абсолютный рекорд! Вы там чем, простите, занимаетесь? На Ajax пишете или площади люков считаете?
Ого, неужели я много требую? Ну мы как бы обработкой графики занимаемся, хотя, конечно ваятелю веб-интерфейса, возможно всех деталей знать не надо.
Здравствуйте, elmal, Вы писали:
M>> 2. найти площадь круга по радиусу E>Это еще помню, но если спросят таблицу производных или что-то из тригонометрии страшное, то за неприменением забыл, и запросто облажаюсь.
Ну я даже не знаю что еще проще придумать. Среди вариантов, которые я ранее использовал: решить квадратное уравнение, найти гипотенузу по катетам, найти площадь равнобедренного прямоугольного треугольника.
Ну а как проверить знание элементарной математики?
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, elmal, Вы писали:
M>>> 2. найти площадь круга по радиусу E>>Это еще помню, но если спросят таблицу производных или что-то из тригонометрии страшное, то за неприменением забыл, и запросто облажаюсь.
M>Ну я даже не знаю что еще проще придумать. Среди вариантов, которые я ранее использовал: решить квадратное уравнение, найти гипотенузу по катетам, найти площадь равнобедренного прямоугольного треугольника.
M>Ну а как проверить знание элементарной математики?
Здравствуйте, SkyDance, Вы писали:
SD>Надеюсь, кандидату дается комп + google? Потому как помнить, например, синтаксис open(), особенно если редко этим пользуешься, малореально.
Нет, на доске. Вопросы типа "какие у open параметры/возврат" допускаются, опять же ошибки в сигнатурах системных/библиотечных ф-ций не считаются, это справедливо для любых задач на доске в течение всего интервью.
Незнание какая ф-ция используется для чтения из файла -- fail.
Использование read() без open() -- fail.
Здравствуйте, MozgC, Вы писали:
MC>Я всегда был против жестких правил того, что же программист должен знать. Некоторые вот начинают, что мол, например, программист должен знать и быть способным реализовать хотя бы 3 стандартных алгоритма сортировки и т.д. в таком духе. Я всегда был против этого. Но случай с площадью круга — это по-моему п...ц, я бы скорее всего постремался такого специалиста брать на работу. MC>С другой стороны действительно всякое бывает... хз... Скорее всего правильным решением было бы более жесткое собеседование, так сказать дать человеку второй шанс.
А я не помню площадь круга.
Догадываюсь, что должна зависеть от квадрата радиуса, и плюс там должен быть коэффициент пи. Но требуется ли умножить ещё на константу я вспомнить не смогу.
Если дать мне листок бумаги и время подумать — подберу коэффициенты, но вспомнить точно не смогу.
Здравствуйте, mymuss, Вы писали:
M>Наверное, архитектору я бы именно такие вопросы и задавал. M>Но в данном случае речь идет о девелоперах.
Чтобы эффективно реализовывать то, что понаписал архитектор, разработчик должен понимать, почему архитектор сделал именно так, а не иначе. Плюс не забываем, что архитектор определяет общую концепцию развития, а у рядового разработчика обычно достаточно свободы, чтобы проектировать на микроуровне. Архитектор оперирует подсистемами, а иерархию классов набросать в силах рядового разработчика, общую концепцию да, спустить может сверху и архитектор, но разработчик может учавствовать в обсуждении архитектуры, и предложить свое лучшее решение. Архитекторы не боги, а разработчики не идиоты, они просто с разных сторон смотрят на систему и дополняют друг друга.
Здравствуйте, Flying Dutchman, Вы писали:
FD>хотя и закончил университет 20 лет назад). А на третий уже не могу ответить. С .NET FD>лет пять работаю, но как там в C# в текстовый файл писать — не помню, года два как уже не писал.
Как я уже не раз писал, помощь по библиотечным ф-циям предоставляется. Конечно, хотелось бы, чтоб кандидат хорошо знал фреймворк, иначе будет заниматься изобретательством велосипедов. Но если человек последние Х лет только с вебсервисами работал, то неудивительно, что он забыл IO. Однако в этом случае я сделаю себе пометку: поговорить по фреймворку и буду ожидать, что, скажем, System.Xml он знает хорошо.
Мое мнение такое, если человек вообще не знает стандартные средства (.NET class library, STL, boost, whatever) то это junior.
FD>А представь, что к тебе на собеседование пришел бы Ларри Уолл, разработчик FD>языка Perl. Вполне возможно, что он и формулы для вычисления площади круга не знает FD>(как известно, Уолл по образованию лингвист).
К сожалению он бы не прошел (допускаем, мы понятия не имели кто он такой). Хорошо это или плохо? Я думаю что плохо. Потому что creative brain всегда полезен в любой команде.
А с другой стороны, если ищется рядовой веб-девелопер, то возможно, Ларри Уолл overqualified и просто не сможет эффективно взаимодействовать с такими посредственностями, как я?
FD>Но я надеюсь, что senior'ам на собеседовании ты таких вопросов не задаешь ?
На собеседование приходят только синьоры и не менее 15 лет опыт в .NET
Региональная специфика
Здравствуйте, alzt, Вы писали:
A>Умение считать до десяти постоянно требуется. И часто повторяется. Забыть тяжело. A>Площадь круга требуется единицам. Я не могу придумать случая, чтобы она действительно требовалась в повседневной жизни.
Месяц назад я прикидывал объем бассейна. Как раз потребовалась формула площади круга.
Потребовалось для того, чтобы хоть приблизительно прикинуть время спуска воды. С виду небольшой, а больше 35 тонн зараза.
Здравствуйте, mymuss, Вы писали:
M>Она не пройдет интервью, это предварительный отсев, если человек может ответить на эти вопросы, тогда мы говорим предметно.
Уже объясняли, что этим фильтром ты отсеиваешь кучу кандидатов. Причем возможно отсеешь наоборот лучших кандидатов с реальным опытом, а проходят фильтр те, кто только недавно прочитал книжку.
На простой вопрос элементрано ошибиться. Сегодня ко мне подошли возле дома и спросили какая эта улица. А я не смог сразу уверенно ответить — забыл. Когда же мне спросили по другому, назвали улицу и спросили, она ли это — тут я смог ответить без проблем. Итого — я вообще слабоумный получается, так как не знаю по какой улице я каждый день к метро хожу?
А с твоими вопросами тоже самое, человеку в лоб задаешь вопросы, который он может и знает, но так как он их не применял много лет они спрятаны у него очень далеко, и он может в результате крайне неуверенно на них отвечать, а то и сделать детскую ошибку.
Здравствуйте, spbnt, Вы писали:
S>ИМХО такие вопросы имеет смысл задавать студентам, у которых опыта нет ни в чем, кроме как зубрить формулы для удовлетворения преподавательских бзиков.
И студентам такие вопросы задавать не следует. От студента требуется умение быстро обучаться и логически мыслить. И надо проверить как-то, что он может хоть как-то, пусть криво, но решить поставленную ему задачу. Конечно я знаю до черта студентов с красным дипломом в области программирования, которые не способны пробежаться по массиву и найти сумму элементов, а уж тем более записать что-то в файл, но задание надо давать посложнее. Например пусть посчитает число уникальных слов в текстовом файле (эх, было время, когда я такую хрень с блеском провалил, так как начал мешать строки С (читал то я через fscanf) со строками std::string С++ и в результате огреб черти какой глюк, который не смог побороть за указанное время, хотя алгоритм и структура были нормальные и рабочие, если б не странности поведения компилятора — cтыдно до сих пор, облажался по полной . ). Более — менее рабочая задача кстати, поиск уникальных элементов приходится делать очень часто на практике, по крайней мере мне.
Здравствуйте, Lloyd, Вы писали:
L>Не надо ничего подбирать. Береш круг и нарезаешь его на дольки. Эти дольки выстраиваешь в ряд. Получаешь ряд треугольников. Высота каждого — примерно равна радиусу круга r, сумма длин оснований — 2*П*r. Сумма площадей соответственно — r * (2*П*r) / 2. В итоге — П*r^2
осталось доказать, что неучтённая площадь пренебрежимо мала
топик почитал. жестко. в том смысле, что если вы хайрите в индии, то там вряд ли девелопер ответит на эти 3 вопроса.
а тот, кто ответит — к вам не заходит видимо, судя по вашим отзывам.
возможно мало предлагаете денег. приличный девелопер в бангалоре стоит не сильно меньше русской провинции.
так я о чем? вы там давно? в душе простого индо-девелопера уже разобрались?
эти "сеньеры с 15 лет" — не могут сами ничего родить. но могут копать "от забора до обеда" без перерыва на обед.
и еще. если вы выберете самых сообразительных из тех, кто к вам приходит, то или вы им зарплату быстро поднимите, или они от вас свалят "как только, так сразу".
все из собственного опыта.
для России — вроде нормальные вопросы для завязывания беседы. мне бы не влом было ответить.
...хотя когда я спрашивал про разницу между интерфейсом и абстрактным классом, обычно извинялся, что типа проверяю адекватность базовых знаний. во
mymuss пишет: > > 2. найти площадь круга по радиусу
Сразу вспоминается бородатый анек:
- Молодой человек, подскажите, как найти площадь Ленина?
— Чтобы найти площадь Ленина (пых...), надо бабушка (пых...), длину
Ленина умножить на ширину Ленина
ГВ>Две-три ключевых проверки: ..... что удалось нормально закрыть, если открывали.
Похоже это только на интревью люди красиво пишут. В реалиях не видел, что бы у close коды возврата проверяли. Тем более всякие .net сами за тебя все проверяют и если что не так — кидают исключение.
Здравствуйте, Lloyd, Вы писали:
L>сумма длин оснований — 2*П*r.
Это тоже знать надо. Вот так вот сходу понять откуда здесь взялось Pi будет посложнее, чем вспомнить формулу круга
Здравствуйте, Vzhyk, Вы писали:
V>Вероятность здесь неприменима. Применима только Ваша уверенность что V>скорее всего будет или не будет успешна, а это исключительно V>субъективная вещь и притом зависит от опыта.
Нет. Именно вероятность, которая и становится основой "уверенности". Например, вероятность отказа памяти достаточно мала, чтобы в большинстве случаев обойтись без дублирования и мажоритарной организации вычислений.
V>Но исходя из опыта и самой задачи я могу предположить, что в конкретном V>мете операция завершится успешно. V>А вот когда опыта мало, параноидальный код выходит.
Не надо обобщать. Наличие проверок не всегда означает, что к коду можно приклеить ярлык "параноидальный". И опыт — тоже не всегда надёжный советчик.
>> >> Кстати, C-шный fclose тоже можно не проверять, если а) предварительно >> сделать fflush и б) программа корректна и не корёжит дескрипторы. V>Ага, только вот не корежит ли кто... и т.д. Ну и еще не забыть под какой V>платформой мы находимся, ой нюансов всплывает.
Угу. Всплывёт.
V> вы правы, но в реальности часто выгоднее допустить подобный недочет в V>программе, именно по причине редкости подобной проблемы, чем увеличить V>время разработки, особенно, если программа не для управления атомной V>станцией. V>Ну а решений данной ситуации, еще можно напридумывать и различных.
Э... Зависит от многих факторов. Понятно, что "в реальности" требования к качеству зачастую снижаются. Но как тебе сказать... Собеседование, это своего рода игра. В сущности, игра несложная. Если даже в неё играть по правилам "тяп-ляп", то в этой самой пресловутой "реальности" всё может оказаться гаже и плоше.
>> >> Именно. И именно в случае тестового задания на собеседовании имеет смысл >> показать полную обработку ошибок. V>Это уже Ваше видение, я противник такого. Собеседование — практически V>всегда стресс и гарантировано, практически каждый человек наделает ошибок.
Ошибки ошибкам рознь. Можно забыть последовательность параметров или название метода. То о чём я здесь говорю — принципиальные вещи.
V>Мне важнее увидеть, как человек сможет работать, что он делал и как и V>почему, или если опыта нет, как он будет решать определенную задачу, V>конечно в плотной связи с программированием.
Ну, если бы я увидел тест без проверок открытия/записи, то однозначно бы засомневался в кандидате. Что он показывает? Что может быстро-быстро прилепить одну команду к другой в более или менее правильном порядке?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Зависит от контекста. В случае простой функции, которая должна вернуть true/false, вернул бы false, и попытался бы удалить только что созданный недозаписанный файл. С большой вероятностью удаление прошло бы успешно или вернуло бы код какого-нибудь FILE_NOT_EXIST, что тоже есть успех для такой операции.
RSDN в своем амплуа. Опять решаем сферические задачи в вакууме. А потом удивляемся, откуда берутся "ошибки записи при чтении".
А если файл на флешке, которую только что вытащили, тоже удалять будем, да?
Что там возвращает close — это, по большому счету, уже не наше дело. Может, файловой системе пришел зелененький и мерзкий, но это нужно оставить на откуп ОС.
Здравствуйте, mymuss, Вы писали:
M>Безотносительно к регалиям и положению на служебной лестнице. Если у человека зашкаливает самомнение и гонор брызжет из ушей, то такой человек в коллективе принесет больше вреда чем пользы. ИМХО отказ на собеседовании решать простые задачи однозначно сигнализирует об этом. (Могу, конечно ошибаться, я все-таки не психолог) M>Кстати, тут была недавно тема, кандидат отказался тесты писать, дескать простые слишком, оскорбляют его достоинство.
Я не знаю, как там в Индии, но просить человека с ВО и заментым послужным списком написать формулу площади круга есть оскорбление, за которое в иных кругах общества могут и по морде-с дать-с. Поэтому не стоит удивляться, есть матерый С++ пошлет трехэтажно на просьбу написать "запись даты в файл".
Здравствуйте, landerhigh, Вы писали:
ГВ>>Этот "матёрый C++-ник" — стоеросовая дубина, не способная понять, что раз наниматели задают такой вопрос, то они сталкивались с тем, что кто-то таких элементарных вещей не знает. И не будь этого топика, я бы тоже в такое положение дел не поверил. Но увы, тут уже под две сотни сообщений, из которых добрая треть — защита ограниченности, лени и дремучего невежества под маркой "специализации". L>Этот матерый С++ уже в сотый раз сталкивается с там, что гнущие пальцы наниматели его резюме даже не удосужились прочитать.
Наниматели отфильтровали не один десяток крутоопытных, которые на поверку несли такую чепуху, что уши закладывало...
Эдак мы до многого доспоримся.
L>Видимо, поэтому и умудрялись нанять описанных тобой добывателей творога из вареников. L>Это — неуважение к кандидату. Стоит ли идти работать в такую контору, каждый решает сам.
В некотором смысле я с тобой согласен, идиотизм среди нанимателей тоже встречается. Но с другой стороны, мощность множества кандидатов, проходящих перед нанимателем как правило, намного больше множества мест работы, где собеседуется кандидат. Искусство оформления "привлекательного резюме", думаю, уже многие освоили, так что, хорошее резюме — уже не показатель. Скорее это даже "антипоказатель". Соответственно, негативное воздействие мутного потока на нанимателя существенно сильнее, чем на кандидата. Потому, нанимателя, в общем, можно понять, когда он спрашивает нечто идиотское — хотя кандидату это может быть и покажется странным.
Знаешь, если человеку 10 раз сказать "свинья", то он захрюкает. Здесь то же самое — если 15 кандидатов оказались распальцованными пустышками, то будь ты хоть мегагуру, но 16-м по счёту, то тебя на сформировавшихся рефлексах и встретят как 16-ю пустышку. Тут уже впору не беситься, а сочувствовать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>В Гугле считают, что умение решать головоломки есть признак хорошего разработчика. В Гугле хотят нанять хороших разработчиков. Поэтому для отсева кандидатов им предлагают порешать головоломки.
Но там и не задают таких вопросов как записать строчку в файл... Т.е. лично мне больше всего не нравится третий вопрос — про второй — ну некоторые конторы практикуют вообще собеседование по алгоритмам (Гугл и МС, например). И там много чего нужно продемонстрировать, что потом никому не нужно будет. Правда нужно приготовиться платить хорошо за тех, кто их проходит.
Кстати, интересный вопрос — где-то гуляет анекдот про индийских программеров — что приходит первый срезается на первом вопросе, приходит второй — на втором вопросе и т.д. В Вашем случае это не так?
Здравствуйте, jartur, Вы писали:
G>>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
J>А если просто вспомнить что предел sin(x)/x при x->0 равен 1, а cos(x) — нулю? И взять интеграл по углу.
Вы в своем уме? Раз человек не знает формулу площади круга, то интегралы он и подавно не знает.
Здравствуйте, Lloyd, Вы писали:
O>>Это тоже знать надо. Вот так вот сходу понять откуда здесь взялось Pi будет посложнее, чем вспомнить формулу круга
L>Да ничуть не сложнее, достаточно помнить, что пи это и есть отношение длины к диаметру. по определению, так сказать.
Ага, только сейчас Вам тут расскажут, что знать это программисту не обязательно, это ж не на пальцах до десяти считать, а знание, которое в реальной жизни бесполезное
Здравствуйте, mymuss, Вы писали:
M>Ну пусть это все добавит 10%, это несравнимо с затратами времени ПМ-ов на координацию работы с оффшорной командой.
Да как тебе сказать, офис может быть разным. Когда я работал на англикоскую контору в Москве я как-то поинтересовался у менеджера в чем основная выгода от аутсорса. По его словам получилось, что зарплаты — это такая мелочь. А вот офис... около килофунта на человека в день в Лондоне (Сити).
Но в любом случае твой ответ весьма показателен. Нафига нанимать аутсорсера, если за сравнимые деньги можно взять программиста онсайт и не терять деньги на проблемах с коммуникацией. Понемногу это стало доходить до менеджеров. Тем более, что в индусятии найти приличного девелопера — как иголку в стоге сена.
Здравствуйте, olegkr, Вы писали:
O>Да как тебе сказать, офис может быть разным. Когда я работал на англикоскую контору в Москве я как-то поинтересовался у менеджера в чем основная выгода от аутсорса. По его словам получилось, что зарплаты — это такая мелочь. А вот офис... около килофунта на человека в день в Лондоне (Сити).
держать программистов в офисе класса А делового квартала деловой столицы мира — это действительно стильно. они бы там ещё кроликов разводили
Здравствуйте, net_work_search, Вы писали:
__>Если при выполнении обязанностей не сталкиваешься напрямую с мат.задачами, то со временем эти знания будут улетучиваться.
Безусловно. Вопрос в том, насколько быстро человек сможет найти и восстановить в памяти нужное.
__>Конечно, можно периодически повторять некоторые вещи, но ведь помимо этого есть и насущные проблемы — освоение новых технологий, паттернов и т.п.
С одной оговоркой: паттерны не осваивают, паттерны — узнают.
__>Всё это требуется здесь и сейчас на твоей работе, на которой тебе платят з/п, на которую ты можешь кормить свою семью и оплачивать отдых. Голова хошь не хошь переключается на запоминание того, что реально необходимо, а не где-то там в возможном будущем при еще менее возможной попытке пройти собеседование в контору XXX. Обучение в школах и ВУЗах ставит своей целью не столько привить знания, сколько уметь научаться. Здесь я подразумеваю, что, забыв все эти формулы и правила, вспомнить их, пролистав учебник, не составит большого труда — всё выплывёт и восстановится.
+1
__>Но не факт, что прямо здесь и сейчас во время обдумывания ответа на явно неожиданный вопрос. Может кто и помнит формулу площади круга и избранные производные, но знает ли он, чем отличается Index Scan от Index Seek? Вы скажете "этому он сможет легко научится"? Ну так и я скажу, что формулу площади круга восстановить в памяти будет на порядок быстрее
Честно сказать, я всё равно не слишком понимаю, как можно не помнить формулу площади круга/длины окружности. Ну да не суть. Я больше оспаривал позицию, которая заключается в том, что подобные знания не нужны и за попытку осведомиться о них нужно немедленно покидать собеседование.
Но много больше меня удивило то, что "целочисленное переполнение" упомянул, по-моему, я один.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Один известный блоггер, который нанимает людей в Китае (не ИТ), использует такой метод: первый вопрос "сколько квадратных метров в квадратном километре?" Не знает -- no hire. Говорит, 90% кандидатов засыпаются. Он тоже неправ?
а в китае метричиская система или как?
если меня спросят сколько квадратных футов в квадратной миле я например тоже засыплюсь.
P.S. а какой ответ правильный: 1000м2 или 1024м2 ?
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, olegkr, Вы писали:
ГВ>>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? O>>Мимо. Когда-то учили. Не пригодилось за 15 лет, хотя чем только ни приходилось заниматься.
ГВ>Хм. Значит, никогда не приходилось преобразовывать выражения вот так:
ГВ>if (!a || !b) ==> if (!(a && b))
ГВ>?
Я про такие выражения узнал на первом курсе.
А про теорию множеств, булеву алгебру на 2-м или на 3-м. И уже запоминал, что U это как ||, а ^ это как &&, ну чёрточка вверху — это ! .
Проходил это я очень подробно, с кучей доказательств. Но в голове ничего не осталось.
А как применить отрицание к целому выражению я и до этих курсов знал.
Gradient пишет: > > > Код красив тогда, когда его легко читать, понимать, дебажить и > модифицировать. > И в таком случае развитие продукта будет проходить планируемо и с > минимальными трудозатратами.
Как тут уже писали. "RSDN в своем стиле". Как мантру читаете...
Да, в идеальном сферическом мире с идеальными сферическими
программистами, так и есть. В реальном же все по другому. И требование к
качеству кода вырастает в первую очередь из максимизации прибыли
конторы, а здесь зависимость может быть как прямая, так и обратная.
Здравствуйте, net_work_search, Вы писали:
__>Того гляди, дашь задачу человеку, а он из-за этого с работы убежит!
А я как-то наблюдал подобное. Пришёл к нам один деятель, которого бросили на довольно сложный кусок (был у нас убойной готичности генератор отчётов). На третий день только ботинки сменной обуви остались, а деятель испарился.
"Ботинки остались" — стало афоризмом.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Vzhyk, Вы писали:
V>>Т.е. площади кругов считаете?
M>Гм... странный вопрос. Думаете, в Гугле программеры ребусы решают?
M>Да, минимальные знания школьной математики необходимы. Я хочу на собеседовании прикинуть их наличие/отсутствие.
Ну так нанимайте на работу школьников тогда!
Здравствуйте, Vzhyk, Вы писали:
V>Gradient пишет: >> >> Код красив тогда, когда его легко читать, понимать, дебажить и >> модифицировать.
V>Да, в идеальном сферическом мире с идеальными сферическими V>программистами, так и есть. В реальном же все по другому. И требование к V>качеству кода вырастает в первую очередь из максимизации прибыли V>конторы, а здесь зависимость может быть как прямая, так и обратная.
Как раз в идеальном сферическом мире я бы писал программы, пытаясь сделать это оригинально и интересно. Рефакторил бы и перерефакторил бесконечно, стремясь, чтобы код блистел как я..а у кота. Обвешивал бы программу разными фичами, и пофигу, что кроме меня никто толком ими пользоваться не будет.
А реальность такова, что нужно писать максимально просто и быстро, реализовать минимум функционала (насколько позволяет ТЗ). На минимальном уровне качества, который позволит закончить проект. И минимальный уровень обязан быть обеспеченным!
Если в начале проекта юзать копипасты, трехэтажные булевые выражения, не писать тесты — то проект имеет шанс вообще не закончится. Что для конторы, понятно, невыгодно.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, Dog, Вы писали:
Dog>зы. А вообще автор зря не указал в первом посте, что это "индусская специфика".
Хм. Ты уверен, что это только "индусская специфика"? Я вот, уже не стал бы так говорить.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Vzhyk,
V>Геннадий Майко пишет: >> Подставьте вместо "профессионал" название любой другой профессии >> (включая сантехнические и оцените, как резко может увеличится "ценность" >> такого специалиста, если он умеет еще и программировать.
V>Ни на сколько.
--
Ну что ж, Ваше мнение (на мой взгляд, ошибочное) понятно и принято.
Здравствуйте, Kernan, Вы писали:
M>>Да, минимальные знания школьной математики необходимы. Я хочу на собеседовании прикинуть их наличие/отсутствие. K>Ну так нанимайте на работу школьников тогда!
У Вас логика неисправная. Путаете "необходимое" и "достаточное" условия.
>> ГВ>Хм. Ты уверен, что это только "индусская специфика"? Я вот, уже не >> стал бы так говорить. >> а что, нонче русские сеньёры уже такие пошли(массово) ? V>Сеньоры не сеньоры, но уже немало.
А что ты хочешь, народ стареет, школьные формулы забываются
Здравствуйте, Kernan, Вы писали:
SE>>Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил. K>Ряды Лагрнджа проходят на 2-ом курсе института. Если вы мне не отвечаете на этот вопрос, то значит вы не закончили институт?
Неудачная аналогия. Площадь круга выбрана как достаточно широко известный факт, который:
1. Сравнительно легко вывести из более простых фактов (например, из определения числа pi)
2. Очень часто используется позднее в самых разнообразных приложениях, как в школе (напр. в стереометрии), так и в институте (например, в аналитической геометрии).
Здравствуйте, Геннадий Васильев, Вы писали:
И>>позвольте уточнить термины. для этого прошу ответить на следующий вопрос:
И>>это математика? И>>
И>>add ax, bx
И>>
ГВ>Да. Притом не самая простая.
вопросов больше не имею, бо с фанатиками не спорю.
напоследок отмечу только то, что для понимания вышеизложенной команды, в свое время пришлось перечитать много книг, и ни на одной из них не было написано "введение в математику" или "математика для dummy".
Здравствуйте, IID, Вы писали:
IID>Здравствуйте, mymuss, Вы писали:
M>>Современные компьютеры пока что не умеют работать с числами из R. Только с Q. Поэтому, решить такое уравнение если в нем коэфициент скажем, корень из 2 или там pi как правило, невозможно. А на бумажке -- запросто.
IID>Решить-то возможно, только результат будет с некоторой (довольно высокой) точностью близок к аналитическому.
Это лирика. В условии четко сказано x1, x2 \in R. Нет оговорки "с точностью не менее \epsilon".
То, что можно с любой заданной точностью решить (ну в пределах возможностей оперативки, конечно), это понятно.
Букав может и много, но вот это уже действительно помнить необязательно. А вот забыть, как работать с TextWriter сотоварищи, если ты давно используешь .NET, вот это уже странно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
O>Мимо. Когда-то учили. Не пригодилось за 15 лет, хотя чем только ни приходилось заниматься.
Вот это уж вряд ли. Может ты просто не осознавал. К примеру, наверное использовал SQL? А это ведь реляционная алгебра. Размер таблицы истинности для функции с N входами можешь вычислить? А это булева алгебра. И т.п.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
И>>ни в школе (среднее образование), ни в универе (высшая математика) лично мне никаких подобных выражений мне не преподавали.
AVK>Это свидетельствует о пробелах в твоем образовании, которые неплохо бы восполнить.
о моих пробелах в образовании? да ну? может показать диплом, в котором стоит оценка "отлично"? и который я получил в 99-ом году.
Здравствуйте, игппук, Вы писали:
И>моя специальность "инженер оптик-конструктор", а специализация "оптические приборы и системы". физики и математики там было выше крыши, особенно на последних курсах.
Дискретная математика была?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, IID, Вы писали:
M>Коллега, не стоит вводить сущности. Задача поставлена предельно просто и корректно: решить в действительных числах. Запись можно использовать какую хочешь. Ничего про "машинное представление" в условиях нету. Можно придумать любое. Только float и double это нисколько не действительные числа.
Непонятно что вы хотите мне доказать Что общем виде "Решить в действительных числах" задачу невозможно ? (всей памяти под разряды не хватит). Это, ИМХО очевидно и понятно. А так же и бессмысленно. Что задача нерешаема ? Неправда, тривиально решаема, даже двумя способами: приближённым и аналитическим. Приближённый вы отмели, ок. Аналитический же подходит под ваше условие прекрасно. Т.о. задача сводится к созданию аналитического представления чисел. Можно перефразировать вашу задачу: создать аналитическое представление чисел из поля R (включая операции, допустимые в этом поле).
M>Когда ко мне приходит бизнес-аналитик и говорит, "надо расчитать cash flow на такой-то период, вот тебе входящие данные", его абсолютно не интересует никакое машинное представление. В частности, ему плевать что числа представленны битами и байтами в двоичной системе или еще в какой-то системе.
Но когда вы приносите ему рассчёты он же не вопит о том, что точность слишком низкая ? И что корень из двух он хочет видет ввиде корня из двух
Кстати, в общем виде
Здравствуйте, Flying Dutchman, Вы писали:
FD>А на моей практике нет.
Вот это и удивляет.
FD> Разные люди занимаются разными вещами.
Это понятно. Но пройти мимо TextWriter, это надо особо стараться.
FD>Ну виноват, не могу вспомнить без заглядывания в код.
Ты не читаешь, что я пишу. Ты виноват не в том, что не помнишь, а в том, что "использовал не меньше года назад". Это меня, мягко говоря, очень сильно насторожит. Либо использование дотнета при этом было крайне эпизодическим, либо это признаки крайней узости его использования. И то и другое — серьезно сказывается на способности кандидата решать задачи, а третьего варианта я не вижу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
net_work_search wrote: > Здравствуйте, Геннадий Васильев, Вы писали:
> Меня недавно на собеседовании попросили написать фукнкцию, которая находит корни квадратного > уравнения. Вызвало улыбку, что формулу то я оказывается не фига уже и не помню! Написал более > менее (дискриминант еще сидит где-то в глубинах , интервьюер подошел, добавил парочку > множителей в формулу (я забыл про A в знаменателе и про минус перед B в числителе) и попросил
А я постоянно забывал формулу корней кв. уравнения в школе, приходилось каждый раз заново ее
выводить (уж про тригонометрия я вообще молчу).
В общем, я считаю, что как правило можно вывести то, что забыл (забыл площадь круга — попробуй
вывести из известных тебе фактов, из тех же площадей треугольников, как тут показали). В этом
случае, я думаю, интервьюер оценит *умение решать конкретные задачи*, а не просто знания. Даже если
ответ окажется неверным (его же всегда можно проверить).
Здравствуйте, landerhigh, Вы писали:
ГВ>>Угу, и имя ему — легион. L>И кто-то один в белом фраке, да?
Нет.
L>>>Как знание формулы круга поможет найти в чужом коде ошибку, о великий гуру? ГВ>>Знание формулы круга может быть, и не поможет. А вот соответствующее поведение на собеседовании может служить косвенным признаком того, что человек настроен отвечать только на вопросы определённого характера, притом исключая даже смежные области знания. Это ни хорошо ни плохо. Но такой стиль работы может быть неприемлемым для отдельно взятой организации. L>Хорошо. Ответил тебе человек про площадь круга. Это гарантирует, что он блестяще будет находить баги, заботливо расставленные его предшественниками (кстати, их случайно не так же нанимали?) Нет? В чем смысл этого, с позволения сказать, вопроса?
Это ничего не гарантирует, но позволяет за 5 секунд снять опасения, что у кандидата откровенно пустая голова. Ты пойми, я не считаю, что площадью круга можно заменить сугубо профессиональные знания и навыки. Просто для меня дико, когда таких элементарных вещей не только не знают, но ещё и возмущаются тем, что про них могут спросить.
Хотя казалось бы — ну спросили и спросили. Быстро ответил, поржали вместе. Заодно, глдишь, и стресс снял бы.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Вот это уж вряд ли. Может ты просто не осознавал.
Нет. Я ее просто не учил. Точнее все эти булевые выражения я знал задолго до учебы в универе и отнюдь не по книжке по математике.
А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра? Да ненамного сложнее +-/*, разобраться и понять можно за несколько часов, а сколько гонора и спеси.
Здравствуйте, olegkr, Вы писали:
AVK>>Есть кстати, офигительный пример на тему важности CS бэкграунда. Мне много раз приходилось видеть, каких монстров плодят в качестве парсеров, если человек не знает азов теории формальных грамматик. O>Это скорее от неумения использовать готовые парсеры.
Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Но то, что в этом топике творится — честно говоря, я в шоке. Что-то как-то привык, что культурный человек знает, как померить длину окружности или площадь дна стакана. Ан нет...
Длину окружности можно померить с помощью курвиметра. Ясен пень =)
Здравствуйте, olegkr, Вы писали:
AVK>>Вот это уж вряд ли. Может ты просто не осознавал. O>Нет. Я ее просто не учил. Точнее все эти булевые выражения я знал задолго до учебы в универе и отнюдь не по книжке по математике. O>А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра?
Ну не учил, так хоть погугли.
O>Да ненамного сложнее +-/*, разобраться и понять можно за несколько часов, а сколько гонора и спеси.
Товарищи учёные, не сумлевайтесь, милые:
Коль что у вас не ладится,— ну, там, не тот аффект,—
Мы мигом к вам заявимся с лопатами и с вилами,
Денёчек покумекаем — и выправим дефект!
(c) В. Высоцкий
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Букав может и много, но вот это уже действительно помнить необязательно. А вот забыть, как работать с TextWriter сотоварищи, если ты давно используешь .NET, вот это уже странно.
Можно немножко перейти на личку? Без обид, но у меня сложилось мнение, что ты из категории "зубрил"
Я вот совсем недавно писал эту пресловутую запись в файл (месяц назад, да и вообще с файлам до тошноты приходилось работать). Но мне даже и в голову не пришло запоминать аргументы и названия методов. Зачем? Пусть решарпер помнит. Мне достаточно помнить, что есть такой TextWriter, который надо использовать внутри using, в конструктор ему передается имя файла и возможно что-то еще (решарпер подскажет) и у него есть метод, что-то типа Write (решарпер подскажет), который принимает в качестве параметра строку.
Получать текущее время требуется частенько, поэтому DateTime.Now запомнилось хорошо. Ну а если бы не помнил, то я бы искал у DateTime static property возвращающее текущее время.
Т.е. информацию я запоминаю скорее ассоциативно и приблизительно.
Как писать код на бумаге — я даже не представляю. Последний раз таким страдал в школе на уроках информатики по причине отсутствия компьютеров.
Здравствуйте, Aikin, Вы писали:
A>Интересно какие? Забодяжить веб-приложение за 5 минут?
Хотя бы. Потому что выпускники ВУЗов с математической кашей в голове на это неспособны
Здравствуйте, olegkr, Вы писали:
AVK>>В этом и проблема. O>В чем? В том, что я знаю свою и кучу других областей?
В том, что ты не знаешь, и знать не хочешь.
Нет, если твоя задача слепить очередной ХХХ, каких много, то можно и так. Но если ты что то новое пытаешься создавать, то тут как бы кругозор совсем не помеха.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Действительно, фундаментальные основы CS. Какая фигня.
Вот именно. И потом пытаются эти теоретики CS устроится на работу и ожидает их горькое разочарование, т.к. учили их совсем не тому, что надо
Здравствуйте, olegkr, Вы писали:
ГВ>>Э... Ты хочешь сказать, что в 1994-м свежепостсоветский вуз выпустил CS-специалиста (названия специальностей могут быть разными), которому не читали ДМ? O>Кто тебе сказал, что не читали? Читали, разумеется. Практическая ценность = НОЛЬ
Понятно: "сам не умею и другим не позволю". В принципе, я чего-то подобного и ожидал.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
AVK>>Только практику они быстро наберут, а вот с теорией у тех, кто с ней не знаком, так все печально и останется. O>И будут они "печально" кодить и зарабатывать денежку, даже не зная, чего они лишились
Не скажите. Я уж насколько "рисовальщик формочек", правда для веба, а очень даже печалюсь и отлично осознаю чего лишился.
Я в КПИ (Киевский политех) учился на факультете "второй свежести", тоже неплохая подготовка, но больше в электронике и прикладном программировании, чем в математике и программировании системном.
Электроника не пригодилась, зато пригодилась дискретка. И очень жалею, что ДМ давали неглубоко и обрывочно. Все приходится своими силами
комрад, я не сужу о кандидатах по подобным вопросам, бо считаю их глупыми. мои критерии лежат в другой области. ваш код не дает никакой полезной иниформации о том, какой вы есть программист. может отличный, а может и не очень. именно поэтому методику топикстартера считаю неадекватной. возможно, причина в том, что топикстартер — ленивый человек и не хочет думать над тем, как провести нормальное собеседование. ему проще шаблончик набросать, заточенный под его видение мира, а потом всех гребсти одной трещеткой.
Здравствуйте, IID, Вы писали:
IID>При этом я знаю про целочисленные алгоритмы (см. пост выше), и вскользь о них упомяну (на собеседованиях, как и в РСДН постах мне напрягаться лениво). Что вы скажете обо мне-кандидате ?
PI * 360 — это звучит гордо, да...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
лично я бы нарисовал окружность точками, вычисляя их координаты по формуле окружности. уравнение окружности наизусть не помню, поэтому обратился к гуглю. вот что он мне выдал.
(x – a)^2 + (y – b)^2 = R2
второй этап: организация двойного цикла, в котором бы перебирались все координаты x,y. и по формуле вычислял бы, принадлежит ли точка окружности или нет. если принадлежит, то точка становится видимой.
это первое.
второе — я отлично понимаю, что это решение нерациональное с точки зрения ресурсов. при увеличении радиуса круга такое решение будет работать все медленее и медленнее, при этом откушивая все больше и больше процессорного времени. поэтому, вероятно, самым лучшим решением является поиск готового математического модуля, запрограммированного таким образом, чтобы быть максимально адаптирован для компьютерных вычислений. и использовать его.
возникает вопрос, говорит ли то, если я знаю формулу окружности, что я смогу сходу написать хороший и оптимизированный код? однозначно — нет. а раз так, зачем по ней судить об уровне разработчика? лучше поинтересуйтесь его мнением, как он бы решал поставленную задачу?
в том же DirectX. там широко используются матрицы: матрица поворота, матрица движения, матрица наклона. комбинируя между собой эти матрицы, можно добиваться нужных нам эффектов. я сто лет назад изучал матрицы, и совершенно не помню, как их складывать между собой. и на данный момент мне это не нужно, так как DirectX дает мне необходимые функции для их сложения. все что мне нужно помнить, что для поворота фигуры мне нужно использовать матрицу поворота. если вдруг возникнет необходимость изучить матрицы поближе, то я возьму учебник по высшей математике и за пару вечеров восстановлю свои забытые знания. но требовать их на собеседовании нельзя. я имею информацию, что такие матрицы существуют, что их используют для определенных эффектов, и где можно достать информацию по ним. все — это главное, больше и не нужно.
то, что градусы нужно переводить в радианы, вы бы вспомнили во время первого запуска вашей программы. уверен в этом. ошибка, которая не имеет никакого значения.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Интересно, в чём ты видишь различия? Я не ёрничаю, мне в самом деле интересно.
В buzzwords. Математики в индустрии производства ПО действительно мало. Что требуется от разработчика — знание языка, сопуствующих фреймворков, процессов и инструментов разработки, умение дизайнить систему. Да что там говорить, требования в вакансиях прописаны.
ГВ>Хуже того, они не всегда понимают, чем O(log N) отличается от O(N*N).
Это действительно хуже.
ГВ>Теоретики CS? Ну вот тебе пример — Барбара Лисков, теоретик из теоретиков. Напомнить об остальном?
Не знаю такового, увы.
ГВ>Какие акценты, например? У нас, например, делался некоторый акцент на организации самого процесса разработки. А что ты имеешь в виду?
Это хорошо. Я имею в виду акценты практической разработки.
ГВ>Причём тут строительные архитекторы? Это, по сути, дизайнеры пользовательского интерфейса.
Дизайнеры — это отдельная специализация.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Плохо, что эти же самые потом полезут в менеджеры (а куда ещё податься бедному кодеру?) и устроят свистопляску.
Я тебе скажу, что математики-теоретики в менеджерах еще веселее будут. Менеджмент — это вообще отдельная песня.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Э-э... Так, вроде, не площади считаем. Хотя, вообще, определять площадь круга методом МК — это прикольно.
Вот, кстатии, и оно. И сакральных математических знаний нужно только "квадрат гипотенузы равен сумме квадратов катетов".
using System;
using System.Collections.Generic;
using System.Linq;
namespace PieArea
{
public static class Extensions
{
private static readonly Random _rnd = new Random();
public static IEnumerable<int> Rnd(int max)
{
while (true)
yield return _rnd.Next(max);
}
public static IEnumerable<R> Merge<T1, T2, R>(
this IEnumerable<T1> left,
IEnumerable<T2> right,
Func<T1, T2, R> selector)
{
using (var leftEn = left.GetEnumerator())
using (var rightEn = right.GetEnumerator())
while (leftEn.MoveNext() && rightEn.MoveNext())
yield return selector(leftEn.Current, rightEn.Current);
}
}
class Program
{
static void Main()
{
Console.WriteLine(PieArea(1000));
}
private static double PieArea(int radius)
{
const int iterations = 1000000;
var hits =
Extensions.Rnd(radius)
.Merge(Extensions.Rnd(radius), (l, r) => new { X = l, Y = r })
.Select(pos => Math.Sqrt(pos.X * pos.X + pos.Y * pos.Y) < radius)
.Take(iterations)
.Aggregate(0, (agg, value) => agg + (value ? 1 : 0));
return (double)radius * radius / iterations * hits * 4;
}
}
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
А вы сами готовы ответить на три простых вопроса от человека, который к вам пришел на собеседование и в случае какой то ошибки написать заявление на увольнение?
Здравствуйте, Infernal, Вы писали:
I>А вы сами готовы ответить на три простых вопроса от человека, который к вам пришел на собеседование и в случае какой то ошибки написать заявление на увольнение?
Если я к нему пришел на собеседование, то, разумеется, готов.
А если он ко мне пришел, то я не улавливаю логики.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, mymuss, Вы писали:
M>>Это как-то следует из моих слов? Если да, то из каких? L>Уже бы определился, честное слово.
Это был вывод, который Вы сделали из своих же собственных тезисов.
L>>>Только не надо обижаться услышанному в свой адрес от настоящего сеньера. M>>Я не буду обижаться нисколько. Напротив, буду благодарен ему за то, что не надевал маску приличия, а прямо дал понять, что он не тот человек, которого мы хотим видеть в колективе. L>При определенной ситуации на рынке труда выбираете вовсе не вы. L>Подумайте об этом.
В настоящий момент я не выбираю ни при каких условиях. Я такой же наемный сотрудник. Все что я делаю -- довожу свое мнение до руководства. За ним последнее слово.
L>ЗЫ — Вам проводить собеседования еще рано.
У меня есть такое правило: если собеседник переходит на личности, то разговор с ним заканчивается. Всего Вам хорошего.
Здравствуйте, mymuss, Вы писали:
L>>Уже бы определился, честное слово. M>Это был вывод, который Вы сделали из своих же собственных тезисов. M>В настоящий момент я не выбираю ни при каких условиях. Я такой же наемный сотрудник. Все что я делаю -- довожу свое мнение до руководства. За ним последнее слово. L>>ЗЫ — Вам проводить собеседования еще рано. M>У меня есть такое правило: если собеседник переходит на личности, то разговор с ним заканчивается. Всего Вам хорошего.
Что и требовалось доказать.
Почти пять сотен коментов, а mymuss с какой-то слепой религиозностью защищает свое право спрашивать площадь круга.
Никто этого права у Вас, уважаемый, не отбирает, если Вы не заметили. Вам пытаются объяснить, что для того, чтобы не получать дурацких ответов, не следует задавать идиотских вопросов, только и всего.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, landerhigh, Вы писали:
L>>Почти пять сотен коментов, а mymuss с какой-то слепой религиозностью защищает свое право спрашивать площадь круга.
ГВ>Ништяк! Испросить базовых знаний — это "религиозность". А фактически настаивать на незнании — это, надо думать, признак просвещённости.
Кто-то настаивает на незнании? Ссылочки можно?
Mymus так и не смог внятно ответить на вопрос, чего он собирается добиться площадью круга. Что-то невнятно промямлил про то, что якобы кто не ответит, то и баги чинить не сможет (замечательная логика, не правда ли?), при том, что постом позднее сам же и написал, что факт знания площади это гаратнирует.
Еще раз — испрашивать "базовые знания" (не имеющие никакого отношения к позиции, к слову) у человека с ВО и резюме есть проявление неуважения.
Здравствуйте, Abalak, Вы писали:
A>В целом соглашусь с рассуждениями, но как это коррелирует с A>
A>Вообще-то булевая алгебра это дистрибутивная решетка, в которой каждый элемент имеет дополнение. Если ты с нуля за пару часов в состоянии понять, что максимальный идеал булевой алгебры совпадает с прообразом нуля при ее двузначных гомоморфизмах, то я снимаю перед тобой шляпу.
A>?
А это в стороне от общей темы. Я булеву алгебру не знаю, поэтому я ничего не могу сказать о том, как ее можно применять в сельском хозяйстве. Вообще-то у меня нет в/о, так, читаю книги по алгебре в качестве хобби И помощь от этого иногда таки есть---всплывает в предметной области. Или в большей чистоте рассуждений.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Для того, чтобы не зубрить "паттерны"
Паттерны бесполезно зубрить в любом случае, достаточно просто помнить их название, просто чтобы букварь при разговоре о дизайне был общий, не более того.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
O>С этого момента поподробнее. Каким образом знание теорий, имеющих весьма отдаленное отношение к практике, может помочь развиться абстрактному программисту?
Думаю, тебе это объяснять бесполезно, ты для себя уже все решил.
O> Да и развиться куда, в каком направлении?
В направлении технического специалиста.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, SE, Вы писали:
SE>Хм. А по-моему так же часто как и остальные. Вот конечные автоматы просто в каждом проекте из года в год. Может это специфика веба? Деревья тоже с завидной регулярностью встречаются. Тоже специфика? Да, это не вторые производные и не интегралы, это дискретка, но это тоже математика.
это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Очень просто. Берём операцию "создать объект по параметру selector и работать с его интерфейсом SomeClass" и последовательно устраняем упоминания реализующих типов.
если ты будешь думать в терминах high-order functions, то жить станет гораздо проще. хотя я понимаю, "поколению ООП" это недоступно, несмотря на всю их веру в своё "умение учиться"
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе ГВ>>>Только это всё стоит на теории графов и прочей ДМ. BZ>>ну да, ну да. а сложение стоит на теории групп. как я в первом класе учился — просто не понимаю
ГВ>Да вот и я думаю, что больше трёх классов вообще — вредная штука. Три класса + полгода веб-программирования и в путь! Понавыдумывают яйцеголовые всякой фигни — только детям деньги зарабатывать мешают.
Здравствуйте, SE, Вы писали:
L>>Если инженер-электронщик не помнит наизусть параметры какой-нить TDAшки или, (о ужас!) забыл, какой глубины потенциальная яма, то его тоже в расход? SE>Я до сих пор благодарен одному из своих преподавателей, который требовал от студентов понимания сущности явлений, а не их точных численных характеристик, как тут уже неоднократно говорилось — для этого есть справочники. Он на экзаменах позволял выписывать на доске любые формулы и константы, данные из любых справочников. Вот я уже ни одного числа не помню, а особенности поведения различных материалов до сих пор при необходимости "выскакивают". При этом от зубрежку другого предмета знания остались точно такие же — ни одной цифры, но зато понимание, громадного количества "почему". SE>Это ответ на ваш вопрос.
Это ответ на другой вопрос.
Мой вопрос будет звучать так — мало кто из нас использовал формулу площади круга после школы, но 99% процентов сразу вспомнят, что это либо 2*pi*r либо pi*r^2 (ну проходят их вместе). Кто-то перепутает и "вспомнит" pi*D^2. Кого брать на работу — того, кто не задумываясь выпалил ответ, пусть и правильный, либо того, что сказал, что сто лет не пользовался, но вроде бы pi*r^2, но нужно проверить? И что нам тут mumus пытается доказать?
Тот, кого научили учиться, вместо гадания на кофейной гуще, откроет гугл, справочник или просто прикинет на пальцах. Ибо глупая ошибка может дорогого стоить.
Собеседователей же, спрашивающих элементарные вещи в начале собеседования, нужно слать по азимуту.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, genre, Вы писали:
G>>А у нас, что уже "джентельменам на слово верят"? L>А если "не верят", та так и напишите в вакансии, что резюме можно не отправлять, так как Вы там все врете.
L>Верить-не верить — проблемы работодателя. Задавать человеку вопросы, ответы на которые есть в его резюме есть непростительная грубость, ценящий себя специалист сразу отметит "no hire".
В резюме формулы площади круга как раз и нет, давайте ее спрашивать Ну это шутка юмора, конечно, а вот собственно то, чего я не понял — что тогда спрашивать то.
Если у меня написано 2 года работы с MS SQL и Oracle — это как, совсем вопросов не задавать, попросить SELECT написать, или два часа пытать на предмет разницы в архитектурных решениях самих серверов?
Я у себя в резюме знание серверов БД вообще убрал. И отлично все. Никто даже не сомневается, что знаю, хотя в резюме этого нет.
И наоборот, человек пишет, что дотнет у него шесть лет, ну думаешь, вот он мегагуру, он и Рихтера за пояс заткнет. Сейчас он мне расскажет все, чего не знал, но сетснялся спросить у Рихтера. Ан нет, опыта то у него шесть раз по году.
Остается спрашивать про роль в проектах, дык тут можно просто рядом посидеть, а потом рассказать, какой ты мега-архитектор в проекте был. Я поэтому про роль в каждом проекте честно пишу, даже если это "полгода крутил гайку на 24, научился крутить гайки". Опять таки во избежание.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>вероятно ты имел в виду матосновы, вот и обрати внимание что в наших вузах не изучают не cs, ни матаппарат cs, за исключением булевой алгкбры.
Не знаю как в ваших, а в моем вузе многое из этого изучали на нескольких курсах под общими названиями "ПТЦА", "прикладная математика", "системное программное обеспечение", "базы данных". А страшную и ужасную булеву алгебру нам читали в первом семестре в рамках курса под названием "введение в специальность".
Здравствуйте, BulatZiganshin, Вы писали:
ГВ>>Не знаю, как сейчас, но почти всё по этой ссылке было в программе советского технического вуза. За исключением, пожалуй, теории категорий, теории квантовых вычислений, и ещё относительно слабо был подан раздел символических вычислений.
BZ> ну и что вы например изучали по теории типов, теории вычислимости, анализу алгоритмов?
Именно под такими названиями предметов не было, отдельные положения были собраны в других курсах — всё той же прикладной теории цифровых автоматов (ПТЦА) и последующей прикладной математики (ПМ, де-факто включала дискретку). Анализ алгоритмов был, если не ошибаюсь, в курсе системного программирования (не помню уже точно, в каком именно виде). Теория типов в чистом виде, AFAIK, тоже не фигурировала, отдельные моменты были всё в той же ПМ/ДМ.
ГВ>>Ну как, можем мы гордиться своим *компьютерным* образованием? Дозволяешь? BZ>чем меньше знаешь — тем больше гордишься, так что у тебя самые веские основания
Странная у тебя логика. Коль скоро, по твоим словам, "наши" студенты ничего не знают про CS, то они вполне могут гордиться своим образованием в этой области. Так что, вы уж либо трусы наденьте, либо крестик снимите.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
ГВ>>А почему это я должен об этом думать? Тем более, что я сам учился на кафедре КиВТ (кибернетика и вычислительная техника) факультета АВТ (автоматика и вычислительная техника), а не на ВМК. BZ>одним словом, ты и не училося на программиста
Ой, как интересно. А почему?
ГВ>>Кстати, между нами, девочками, перечисленные тобой теории, ИМХО, нет смысла выделять в отдельные курсы. Они вполне укладываются в более общие, вроде какой-нибудь "теории вычислительных процессов". Ничуть не умаляю значения, скажем, анализа алгоритмов, но если хорошо представлять себе, что такое граф и его свойства, то, в общем, постижение весьма ускоряется.
BZ>в техничексих вузах таким же макаром изучают и математику. не потому, что "нет смысла подразделять" — просто у них (у вас?) укороченная программа.
Ты не понял. Теория типов и анализ алгоритмов — это вещи, которые без дискретной математики принципиально нельзя преподавать. Я тебе потому про граф и напомнил.
BZ>это вот как раз есть "полгода поучиться достаточно чтобы формочки клепать". в ваших условиях было бы лучше сократить бесполезные предметы и за счёт них изучать во-первых практические ньюансы профессии (тестирование, жизненный цикл, методологии, паттерны...),
Ключевое из этого тоже было — жизненный цикл, тестирование.
BZ>во-вторых популярные фреймворки — чтобы на выходе из советского вуза получался не полуфабрикат, а реальный специалист, которого не надо лдоучивать и следить за каждым его шагом
Это называется "производственная практика". Альтернатива — НИРС. Ещё одна альтернатива — мы попросту работали начиная где-то с третьего-четвёртого курса.
BZ>университетская программа же должна выключать всё перечисленное на той странице в виде полноценных предметов — опять же за счёт предметов на букву фы
И ещё в университете непременно нужно изучить все модели мониторов, клавиатур и мышек. А то, вдруг, новая попадётся, а выпускник знать не будет, как с ней обращаться.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Ikemefula, Вы писали:
I>У меня был период, гдето 4 года на проекте, когда ни разу не было нужды писать код для открытия/закрытия файлов. Во как !
Но если бы тебя через 4 года спросили, то ты бы смог сказать open() -> write() -> close(), правда?
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, mymuss, Вы писали:
M>>Если же базовые математические знания отсутствуют, то даже если он и способен найти в справочнике, сколько времени на это уйдет? O>Замерил секундомером. Секунд 15-30 в зависимости от тормознутости интернета. На мой взгляд ты путаешь незнание (школьную программу проходили все) и забытое за ненадобностью. Я ради эксперимента задал такой вопрос коллеге. Отвечал он примерно в таком духе — pi*r2... или нет pi*d2... или как же его 2*pi*r2... pi*d2/4
Найти ф-лу площади круга, конечно, не составляет труда. Как насчет понимания того, откуда взялся log в оценке сложности quicksort?
Человек со знаниями элементарной математики, конечно, разберется, может не за 15 сек, а за полчаса, но разберется.
А вот человек без знаний элементарной математики? Ну найдет он статью о символах Ландау за 15-30 сек. Сильно поможет?
(Ну что, кто раньше скажет: "И как знание площади круга связано с асимптотической оценкой сложности?")
O>Думаю, если тебе позадавать вопросы по школьной программе, то получим примерно такой же результат. Вот ты вспомнишь все три закона ньютона сходу? Если вспомнишь, то ты либо недавно школу закончил, либо обладаешь воистину энциклопедическим типом памяти :D
Думаю, что по школьной математике ты меня не завалишь. По физике или биологии, возможно. Но мы же говорим об инжинерах.
Здравствуйте, Abalak, Вы писали:
A>Программирование это инженерное ремесло, тут часто важно логическое/пространственное восприятие цепочки Имеем -> Хотим Получить. Если этого нет, то ты хоть трижды помни все постулаты булевой алгебры — результата не будет. Много раз в универе наблюдал, как народ уходил в отл. на экзаменах, где в ответы подрузамевали кучу теорем и выводов, а в следующем семестре на курсовике не могли толком ничего реализовать (специальность — робототехника). Зато позаканчивали все с красными дипломами и кучей гонора. Где они сейчас, через 5 лет — , мне отсюда не видно. Вроде презентации Интела устраивают на выставках.
А как вы себя убеждаете в том, что тот код, который вы понаписали, действительно решает поставленную задачу (или хотя бы завершается)? Методом научного тыка?
Здравствуйте, olegkr, Вы писали:
Pzz>>А если язык, на котором написаны эти файлы, не является регулярным языком, а, следовательно, не может быть разобран с использованием регулярных выражений? O>Тогда пишешь подключаемую сборку на C#. Получаешь то же, что и при использовании самописного языка, но сборка скомпилируется, все будет летать и не будет прикольных багов.
Я не понимаю, каким образом подключаемая сборка на C# помогает парсить текст на языке, отличном от C#?
Pzz>>Ну это не говорит ни о чем. O>Это говорит только о том, что нефиг писать парсер языка, если есть готовые.
А если нет готового? Вот выдал вам заказчик задание — понимать текстовые файлы, которые выплевывает из себя программа, написаная на Коболе. Синтаксис этих файлов более-менее известен, но поменять его нельзя, поскольку Кобола никто уже не знает (да и вообще, кто ж вас пустит ковырать драгоценный доисторический код, написанный на нем?). Синтаксис при этом такой, что регулярными выражениями не обойдешься.
Здравствуйте, Pzz, Вы писали:
Pzz>Я не понимаю, каким образом подключаемая сборка на C# помогает парсить текст на языке, отличном от C#?
Про то, что бы парсить исходники программы ты не писал. Речь шла про текстовые файлы
А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML?
Pzz>Ну и чего вы делать будете?
Зависит от того, что именно выплевывает.
Здравствуйте, Erop, Вы писали:
Pzz>>А как вы себя убеждаете в том, что тот код, который вы понаписали, действительно решает поставленную задачу (или хотя бы завершается)? Методом научного тыка?
E>Неужели ты проводишь формальные доказательства?
IID>const int iLinesInACircle = 100;
// абсолютно не понятная константа.
IID>void DrawCircle(int x, int y, int r)
IID>{
IID> int x1,y1,x2,y2;
IID> double angle = 0;
IID> double angle_add = 360.0 * PI / iLinesInACircle;
// Абсолютно не понятная формула. Во-первых тут есть ошибка с переводом углов, на которую тебе указали
// Во-вторых тут нет зависимости от r, что как-то странно и неожиданно.
IID> for(int i=0; i<iLinesInACircle+1; i++, angle+=angle_add)
// непонятно зачем у цикла два параметра от чего бы по углу не итерировать?
IID> {
IID> x2 = x + r*cos( angle );
IID> y2 = y + r*sin( angle );
IID> if ( 0 != i )
// Тоже не понятно зачем так сурово. Неужели sin( 0 ), cos( 0 ) тебе не известны?
IID> DrawLine(x1,y1,x2,y2);
IID> x1 = x2;
IID> y1 = y2;
IID> }
IID>}
IID>
Ну и как-то не понятно зачем бы не рисовать окружность стразу в восьми направлениях? Сильно реже тригонометрические функции считать бы пришлось...
Или это прога для плоттера?
IID>При этом я знаю про целочисленные алгоритмы (см. пост выше), и вскользь о них упомяну (на собеседованиях, как и в РСДН постах мне напрягаться лниво). Что вы скажете обо мне-кандидате ?
Ну что скажу? Неаккуратный и ленивый кодер, не умеющий ясно думать, даже когда понимает, что это важно для его карьеры/репутации...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Интересно, на хрена бы cout в Windows-программе? А ещё интереснее, нахрена в программе под MAC OS...
Это была просто иллюстрация. Не надо пытаться делать выводы на основании аналогий. Если плохо представляешь себе дотнет — просто поверь, без TextWriter там обходится весьма сложно, Windows это или MacOS.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>Но для того, чтобы понимать, что регэкспами описывается далеко не всё, совсем не обязательно что-то знать о КС-грамматиках или ещё о чём.
При чем тут КС грамматики? Регулярные выражения это вполне конкретный класс грамматик, и понимать, что это за класс без знания хотя бы каких то азов невозможно. Ну то есть здравый смысл в чистом виде тут вряд ли будет эффективен.
E> Вполне достаточно попробовать написать регэксп, который проверяет баланс скобок
И каждый раз так пробовать до просветления?
E>Я к тому, что через хороший уровень ДМ -- это только один из путей к тому, чтобы научиться хорошо разбирать логи
С логами — это не ко мне. Мне приходится решать задачки посложнее, нередко даже в LL(k) уложиться не получается.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
>А обсуждаемый мужчина склепал на дельфи крутую очень оболочку, к которйо склепал крутое средство разработки фильтров, что-то вроде скрипта приладил, позволявшего строить эти фильтры прямо из оболочки. Потом быстро выяснилось, что скрипт нужный тип обработчиков описывает хреново, и он талантливо приделал возможности по использованию из всей этой байды dll, потом эти dll стали от чего-то испытывать трудности с инициализацией crt, ну и так далее. Короче через десять месяцев героической борьбы с трудностями про этот проект вспомнили нормальные менеджеры. Начальника очень основательно поимели, а самого сотрудника выгнали, после чего сотрудник средних способностей с успехом закончил всю эту разработку менее чем за месяц. Тупо просто и эффективно, и даже переиспользовав часть результатов своего предшественника...
Проблема не в девелопере, а в начальстве. Уволили не того. Через короткий срок будет точно такая же проблема.
E>Так что бывает и так, что разработчик для данной задачи слишком таки умён Даже для очень сложной задачи...
Бывает. Надо уволить начальство в этом случае ибо оно не справлятся с задачами.
Здравствуйте, Erop, Вы писали:
E>Ну и физтеховское. Физтеховское -- вычматы... E>А что, так заметно?
Не, просто сделал вывод исходя из твоего места работы . Заметно отсутствие базы в дискретке.
E>Увы, но тянет. Если ты хрошего умного разработчика посадишь клепать формочки, он, скорее всего, либо сбежит, либо утратит мотивацию
А при чем тут знания? Это уже другое — каждый ищет предел собственной некомпетенции.
E>, либо навернёт с тоски мега-супер-пупер-всемогутер...
А это уже признак непрофессионализма. Я вот никак не могу понять — откуда этот миф, что чем выше квалификация программиста, тем сильнее его тянет навернуть на ровном месте? Лично моя практика показывает ровно обратное — такими загибонами страдают обычно вчерашние студенты. А профессиональный код обычно не наворотами характеризуется, а наоборот, предельной простотой и прозрачностью.
AVK>>Опять же — я не очень понимаю, как быть хорошим инженером в области софтостроя без знания самых самых основ дискретки. E>Ну у некоторых как-то получается...
Ну, тут уже все сильно субъективно и зависит от обстоятельств. Вон, те, которые писюковый софт для мобильников ваяют, наверное тоже хорошими инженерами считаются.
AVK>>При чем тут я? E>Ну и не ты, тоже. IMHO суть КА на булеву алгебру никак не завязана
Ну, скажем так, ты ошибаешься. ПТЦА на 100% построена на булевой алгебре.
E>Ну лично меня поразило, что люди сначала думают непонятные мысли, а потом упрощают логические выражения.
Булева алгебра это не только упрощение логических выражений.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>Зачем? "Очень сложно" и "не хватает" -- это почти одно и то же. Удобно ли описать формат регэкспом, IMHO, довольно очевидно. А можно ли в принципе -- не суть важно на самом деле...
Ну например, чтобы не убить неделю, пытаясь описать регекспом то, что им "почти" описывается
Впрочем я допускаю, что другая конструкция внутренних тормозов тоже может быть работоспособной.
Правда, я на собеседовании такой изврат писать не решился бы — я только минут 10 просто синтаксис уточнял, зато потом написал за несколько минут и заработало сразу без отладки
E>Но эта вечная проблема всяких дурацких вопросов на интерьвю -- совершенно не понятна предполагаемая подробность проработки требуемого решения...
Ну обычно подробность проработки задается фразой "я выйду минут на десять, чтобы вам не мешать"
Здравствуйте, olegkr, Вы писали:
SE>>При выборе способа решения у адекватного программиста всегда стоит вопрос легко/тяжело. Причем как в отношении сделать, так и в отношении понять. O>Адекватному программисту и в голову не придет разбирать все варианты e-mail адреса по RFC. Если обойтись без экзотики и фанатизма, то регэксп получится на одну строчку. Речь шла о возможности вообще такового разбора.
Т.е., если программа не понимает половину корректных вариантов — это значит, "адекватный программист" приложил руку, и обошелся регулярным выражением на одну строчку?
Здравствуйте, Pzz, Вы писали:
E>>IMHO вывод проги на коболе, да ещё такой, что регулярных выражений мало для разбора -- это немного фантастично звучит.
бред какой. в классификации хомского 4 уровня языков — от 0 до 3 (самый сложный), RE afaik это 1-й уровень. например ими нельзя описать язык с согласованием скобок (последовательность '(' и )' где в любой момент времени закрывающих скобок не больше чем открывающих)
E>>прога выдаёт строчки из плюсиков и минусиков и надо отобрать строчки, где плюсиков больше, чем минусиков. Ну что тут делать на голом C# довольно таки понятно...
Pzz>Если наложить ограничение на длинну строки, это точно совершенно описывается конечным автоматом. А значит, и регулярное выражение можно подобрать
кол-во строк ограниченной длины ограничено n^m, значит любой такой язык описывается конечным автоматом с не более чем n^m состояниями
Скажите — какую цель вы преследуя задавая тот или иной вопрос... Что бы хотите узнать о кандидате этими тремя вопросами? Подумайте — что вы реально узнаете о человеке как специалисте, о его специализации, о его профессионализме, умении работать в комманде и многое другое?
Считаю 3х вопросов не достаточными, что бы оценить уровень и компетенцию того или иного специалиста.
По уровню вопросов — ничего выяснить не возможно, по подходу — не ответил на один — свободен, подобную позицию — считаю пренебрежительным отношением к человеку, по этому работать с таким человеком (который проводил бы собеседование) я бы не хотел — и для меня как возможно собеседуемого — это был бы большой минус при выборе места работы...
Так что это бред сивой кабылы...
Таких собеседующих считаю низкоквалифицированными, допускать их до собеседований не стоит, так как не владеют элементарными методами проведения собеседования.
Здравствуйте, Erop, Вы писали:
E>IMHO, для разных работ нужна разная квалификация, и излишняя тоже не хорошо, но я не про это. Я про то, что для нормального разработчика важнее всего быть хорошим инженером. А уж мат. подготовка -- уже опциональна, хотя и крайне желательна.
А как это — инженер без матподготовки? Типа, на одной интуиции? Шаман-с?
E>А вот блестящий математик, но плохой инженер совсем не годится
Давай, не будем передёргивать? Профессиональный математик и математическая подготовка — не одно и то же.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
E>Так что бывает и так, что разработчик для данной задачи слишком таки умён Даже для очень сложной задачи...
Это не показательный пример и не противопоказание к образованию. ИМХО, человеку просто скучно было. Ну и менеджмент, конечно, тоже хорош.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
E>В любом случае это всё увело нас очень далеко от первоначальной темы. Я привёл эту историю в пример того, что вообще бывает таки излишняя квалификация, и что большие знания не обозначают большую производительность труда...
Причинно-следственная связь между квалификацией и тем, что он вам не подошёл — не выявлена. С производительностью труда тоже не совсем понятно: он же аж целый всемогутер сотворил. Для такой программы 10 месяцев разработки — семечки.
Пока ясно только то, что обе стороны упрямо гнули свою линию, не считаясь с потерями. При чём тут квалификация?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>Это не показательный пример и не противопоказание к образованию. ИМХО, человеку просто скучно было. Ну и менеджмент, конечно, тоже хорош. E>Ну дык вот. Именно скучно. А продвинутому математику будет скучно разрабатывать программы...
А сферолошади будет нечего жрать в офисе... Вывод: не нанимайте сферолошадей.
P.S.: Сюрная дискуссия, прям скажем.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>А как это — инженер без матподготовки? Типа, на одной интуиции? Шаман-с? E>А так, если я непонятно пишу, то значит я тебе увы и ах не смогу помочь меня понять.
К сожалению, я тебя более, чем понял.
E>Для того свойства, которое я называю "быть хорошим инженером" очень важно понимать что и зачем ты делаешь, чем за что и почему и для чего ты платишь в своих технических решениях, понимать что тут главное, а что второстепенное и т. д. Нафига для этого вообще матподготовка --
Математическая подготовка нужна для того, чтобы приучить не просто к здравомыслию, о котором ты вещаешь, а к формализации и сведении в систему своих наблюдений. Для этого нужно знать хотя бы о существовании математических приёмов как таковых. Только тогда все эти что, зачем и почему могут принять какую-то предметную и верифицируемую форму до того, как лоб покроется шишками. А иначе это просто состязания в уверенности.
E>Но я про другое на самом деле пишу-то. Вот та самая возможность быть хорошим инженером очень важна и критична для кандидата, в отличии от мат. подготовки. Просто потому, что хорошего инженера долго воспитывать, ещё и фиг воспитаешь и не из всех получится. А вот та самая преславутая "мат.подготовка" -- это всего-то пара книжек. Так что нужную на данном конкретном направлении работ часть мат.подготовки выботать -- плёвое дело. Вопрос недели-двух, на самом деле.
Ты не путай общую матподготовку и специализированную.
E>Вообще все эти знания булевой алгебры, формальных грамматик, автоматов и пр. ДМ сильно тут народом преувеличены. Не Бог весть какая мудрость-то, чтобы её в абсолют возводить
А её никто в абсолют и не возводит.
E>>>А вот блестящий математик, но плохой инженер совсем не годится ГВ>>Давай, не будем передёргивать? Профессиональный математик и математическая подготовка — не одно и то же. E>Давай не будем прикидываться шлангами...
Ещё можно перейти на обсценную лексику.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>Who is кодер?
E>Одна из производственных ролей программиста. Кодер -- это тот, кто кодирует уже известный и специфицированный алгоритм, на каком-то языке программирования и отлаживает полученную реализацию. Конечно реальные программисты редко выполняют исключительно эту роль, но тут писали, что именно кодеру во б. ал. и необходима по самое не могу. IMHO, это заблуждение...
Обращаю внимание на вот этот кусочек: "Конечно реальные программисты редко выполняют исключительно эту роль..."
Дальше можно не продолжать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Ну если первое вполне нормально, то вывод даты в c++ хоть и займёт 1-2 строки, но дату приходится этой функцией (ctime) выводить раз в год, а некоторым и вообще никогда. Я, к примеру, использую QDateTime в последний год, потому что пишу на Qt, а про ctime не помню, но google при запросе "c++ date" даст мне ответ за 0.24 seconds плюс время набора этого запроса.. итого.. 2 секунды!
По поводу площади круга... я не говорю что этот вопрос сложный, но степень адекватности его нулевая. А какие лирические темы вы можете назвать у Тургеньева? А ведь этому в школе учат!
Сумма элементов как впрос на отсеивание совсем нулёвых подходит, факториал тоже.
А можно спросить на c++ факториал стадии компиляции через templates. Может он и не ответит, а если ответит?)
Здравствуйте, Erop, Вы писали:
ГВ>>0 = 1. И матподготовки нет, и в то же время, необходимую математику быстро разучивает по ходу дела, следовательно, матподготовка есть. При таком подходе мы будем изыскивать аргументы до бесконечности. E>ну прочитай внимательно топик, что ли.
Посчитай мои сообщения в этом топике, а потом давай такие советы, ладно?
E>Речь шла о знании совсем элементарной школьной математики, конкретно формулы площади круга. E>А отдельно тут ещё поднялся флейм о том, что программисту надо-надо знать ДМ.
Ну да, а ты ещё подливаешь масла в огонь, заявляя о том, математика-де, не нужна. Хотя сам же поправляешься и говоришь, что она, фактически, иногда не нужна. При этом способность разобраться в необходимых по ходу дела математических сторонах проблем, надо думать, ветром надует. Менеджерским. Сказка хороша, но так не бывает, знаешь ли. Прежде, чем какие-то специальные разделы станут чем-то постижимым (а наипаче — легкопостижимым), необходимо предварительно ухлопать некоторое время на обработку мозгов, на первый взгляд, совершенно бесполезными знаниями: сначала школьной программой, потом вузовской, потом уже — по специальным направлениям. Другого способа нет, как бы ты ни уповал на некие врождённые инженерные таланты. Поскольку таланты и способности — это одно, а владение системой символов и формальными методами — совсем другое.
ГВ>>Потому, кстати, ты и вынужден время от времени прибегать к высказываниям... Э-э-э.. Не слишком допустимого свойства. Так всегда бывает, когда доказываешь нечто, содержащее внутреннее противоречие.
E>Ну непристойную частушку про лыжи не я тут цитировал...
Это у меня было "офигение от увиденного". Эмоции, ни на кого прямо не направленные.
ГВ>>Смотреть надо не только на то, что они знают сейчас, а ещё и на то, чему их учили до того, как. Отсюда естественно выводятся и тезисы о кодерах и т.д. E>Это трудноисследуемо, увы.
Да ну. Это исследуется путём внимательного прочтения строчки "образование" в резюме.
E>Хотя я согласен, что отношение и степень вовлечённости и понимания предыдущих проектов — очень важный показатель.
При чём тут проекты...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, sharpcoder, Вы писали:
S>>>Недавно пришел разработчик, не смог сделать сальто, и плохо закрывает печень в боксерской стойке. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа T-SQL, C#, ASP.NET, ABAP, XSLT, WPF/Silverlight, WCF, IDEFX'ы на mid-level тянет. Коллега предлагает hire. E>>А должность-то какая?
S>Программист! Мне кажется мои тесты показывают способность человека быть программистом не хуже, чем тесты mymuss'а.
Вам не кажется, что "напишите программу подсчитывающую сумму элементов целочисленного массива" это несколько иное чем "сделайте сальто"?
Хотя кстати мысль неплоха (это я в шутку ), по моему опыту хорошее физическое развитые у программиста идущего скажем на сениора показывается, что программист вполне успешен — у него время и деньги на серьезные занятия в спортзале есть.
Здравствуйте, Erop, Вы писали:
E>Ну, если скорость не интересует, то складываешь все числа в кучу, достаёшь два самых мелких, складываешь и засовываешь сумму обратно. И так пока не останется только одно число
Здравствуйте, Davader, Вы писали:
D>По-моему, полный бред. Спрашивать надо только то, чем реально придется заниматься кандидату после приема на работу (он же берется на какой-то конкретный проект, конкретную должность). Вот в прошлом проекте я в течение месяца помогал проводить техн. часть интервью, собеседовали ASP.Net разработчиков от mid до тим-лид уровней. Как это было в нашем случае:
Есть проекты, в которых надо ручку крутить, а есть, в которых надо головой думать. Соответственно, для тех и других люди нужны разные. Ваш совет подходит только в первом случае.
Здравствуйте, Pzz, Вы писали:
Pzz>А как вы себя убеждаете в том, что тот код, который вы понаписали, действительно решает поставленную задачу (или хотя бы завершается)? Методом научного тыка?
Не знаю кто как, а я лично свой код тестирую и использую, если есть возможность, design by contract — и проверяет код и чётко говорит, где была ошибка и кто виноват.
Здравствуйте, SE, Вы писали:
SE>Уверены, а давайте я в шутку вам отвечу (конечно я знаю ответы на ваши вопросы, но это не то "чем я реально занимаюсь после приема на работу").
Мы говорим про ASP.Net developer в данном случае, вопросы соответствуют тому проекту. Насчет хранения сессии — в проекте юзалось все 3 вида хранения и были некоторые тонкости при переходах от in proc к state server. Соответственно нужно всегда помнить, что несериализуемый класс нельзя запихнуть в сессию при не in proc модели хранения, т.к. там не бинарный вид сериализации юзается. Если вы не знаете, что можно ее еще хранить где-то кроме in proc — ну собеседование бы не прошли.
D>>Пример вопросов: "Есть ли множественное наследование в С#?", SE>У меня не было неоходимости во множественном наследовании, поэтому я не знаю есть ли оно. В реальной работе оно мне не нужно.
Нужно знать, почему не сделали его (намерянно) в .Net, чем оно плохо в тех языках, где оно есть (C++ как пример) с практической точки зрения. Это вопрос уровня mid level — максимум.
SE>Последний раз делал Server.Transfer еще в 2001 году на ASP. В ASP.NET не делал ни разу. На практике оно мне не надо даже знать про Server.Transfer.
Не понимая разницы можно натворить дел с обработкой ошибок, дальнейшей обработкой испорченных данных, например. Это не каждый день встречается, но нужно быстро находить и видеть такие вещи в коде.
D>>"Чем плох тип Double для работы с денежными суммами?" SE>Ни разу не считал деньги на C#. Про тип Money предложенный Фаулером не слышал (оно ж мне не надо на практике, ага)
Ну если вы не разработчик бизнес-систем на C# (или ASP.net), ничего удивительного. Если разработчик — поделитесь, как дошли до жизни такой? Опять таки мы говорим о собеседовании на конкретный проект. А там (как и во всех подобных системах) без хранения денег никуда.
D>>"Тип String — value или reference type?" SE>А зачем оно мне? Мне достаточно знать, что String "неизменяемый". На практике этого достаточно. Плюс знание StringBuilder.
О да. Не знать разницу между value или reference type стыдно даже junior'у.
SE>Таким образом если бы я знал только то, что мне надо в работе, я бы на ваши "сугубо рабочие" вопросы не ответил бы. А все что вы спрашиваете было узнано не столько в процессе работы, сколько из любопытства "а как же оно там внутри"
Соверщенно верно, вы бы не прошли однозначно.
SE>Вы спутали лид-инженера/архитекта и тим-лида. Кстати даже лид инженер и архитект могут быть так задолбаны бюрократией и всякой тянучкой-текучкой, что забудут как "Hello World" написать. Это свойство роста по карьерной лестнице.
Нет, ничего не спутал. Вакансия была — developer. Шли тим-лиды тоже, т.к. начинался кризис и все такое. Насчет архитектуры, паттернов и т.п. тоже спрашивали — те, кто тест прошел ответили и на эти вопросы, а те, кто нет — не ответили. Так что все закономерно.
Здравствуйте, Erop, Вы писали:
AVK>> Ты так и не смог доказать, что проблемой была черезмерная квалификация.
E> Черезмерная квалификация оказалась ресурсом, позволявшим морочить голову менеджерам.
Тогда наверное это относительная "Черезмерная квалификация".
Относительно низкой квалификации менеджеров.
Хотелось бы узнать мнение людей, которые набирают программистов C# или Java:
Ситуация — человек в основном занимается дополнением функциональности систем,
используемых на предприятии, но если нужно быстро сделать что-то небольшое,
программирует на C# или Java.
Читал про паттерны, ООП, но не приходилось использовать. Сертификаты вроде MCAD
есть, честно заработаны, без махинаций.
На вопросы о языке ответить (наизусть) не может, не было времени и необходимости
обращать на это внимание во время разработки. Если что, использует документацию или Гугл.
Вопрос — есть ли шанс у этого человека получить работу?
Re[41]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, Erop, Вы писали:
E>Очень хорошо может ли "разработка ПО" считаться "конкретным видом работ"?
Безусловно
E>Собственно то, что хотел сообщить я сообщил. Если тебе не нравится слово "слишком квалифицированный", то можно использовать другое какое-нибудь "знающий и умеющий слишком много", например... E>А "точное" значение слова "квалифицированный", IMHO, обсуждать не интересно...
А дело то не в слове, а в том, что твой пример демонстрирует не какие то избыточные знания, а с точностью до наоборот, их недостаток. Человек не умеет создавать требуемый результат. Все, остальное можно не обсуждать, на том месте, на которое вы человека поставили, квалификация его негодная.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, dimgel, Вы писали:
D>Можно я чуток встряну? По обсуждаемой теме — полностью разделяю твои "выпученные глаза". А про географию хочу сказать отдельно: пользы от неё никогда не видел, в школе преподавали её не интересно, поэтому моим девизом всегда было это самое "А извозчики на что?". Теперь вот выискиваю в Гугл-картах всякие заумные слова типа "Пакистан", "Венесуэлла" — и чувствую себя при этом круглым дураком.
D>Или вот, рванул я недавно с юга на север, в Карелию. Тут полярный круг неподалёку, а температура -5. А на Байкале, гораздо южнее, уже -20. Спросил у местных о причине сего явления, и получив ответ, завис намертво: это я такой беспамятный, или нам правда на уроках не рассказывали про Гольфстрим?
знаешь, сколько я могу привести примеров того как хреново от того, что в школах не изучают пикап? и что с того?
Люди, я люблю вас! Будьте бдительны!!!
Re[42]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, AndrewVK, Вы писали:
AVK>А дело то не в слове, а в том, что твой пример демонстрирует не какие то избыточные знания, а с точностью до наоборот, их недостаток. Человек не умеет создавать требуемый результат.
а он и не должен. задачу поставьте. проконтролируйте. челвоек может быть замечательным кодером и даже арзхитектором, но не ориентированным на конечный результат — это скорее норма, чем исключение. он может быть просто гораздо квалифицированней того, что нужно данной конторе — и соответственно тянуть жту контору вверх вместо того, чтобы посдтраиваться под всех
Люди, я люблю вас! Будьте бдительны!!!
Re[47]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, BulatZiganshin, Вы писали:
BZ>а она приводит к тому, что человеку элементарно неинтересно "формочки рисовать".
Бывает. Обычно такой человек либо получает более сложные задачи, либо меняет работу.
BZ> и он начинает например делать вместо этого GUI-библиотеку
А вот это уже есть не что иное, как негодная квалификация. Как правило, подобным страдают вчерашние студенты, каждый первый из которых мнит себя гениальным архитектом.
BZ>. что бизнесу как кость поперёк горла
Не только бизнесу, это всем так.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
> G>Сравнение некорректно, дворником и уборщицей ему не предлагали работать. В принципе, разница получается только в реализации двух алгоритмов, выполняющих одну и ту же функцию. > > т.е. ты считаешь, что разработать алгоритм самому и реализовать существующий — нужна одинаковая квалификация?
Я считаю, что человек отказывающийся от заказа только из гордости — совершенно справедливо непризнан. Могу ещё заметить, что в бизнесе очень важно уметь отсекать таких людей и по возможности быстрее заменять их в проектах, даже ценой большого увеличения затрат. На моей памяти не одна компания развалилась из за таких людей.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива
Здравствуйте, BulatZiganshin, Вы писали:
BZ>никто ещё не ответил "sum"?
Нет. Здесь есть два варианта: либо человек пишет, либо входит в глубокий ступор, пробует что-то написать, зачеркивает, пишет еще что-то, опять зачеркивает, усиленно думает... Если за 5 минут ничего не рождается, я пишу no-hire и ухожу. Коллега иногда продолжает выпытывать, но до сегодняшнего дня не было ни разу, чтобы такой кандидат прошел у него собеседование. Это первый сбой системы.
Здравствуйте, mymuss, Вы писали:
L>>Мнение — название конторы в студию! M>Оно Вам ничего не скажет, контора в США, программистов сейчас нанимают только в оффшорный офис в Мумбаи.
Один мой знакомый говорит, что Земля не круглая — она квадратная. Никогда не знаешь, где пригодится.
Здравствуйте, dilmah, Вы писали:
>> Зато он вам, например, сможет рассказать, чем агрегирование от наследование отличается.
D>вспомнился анекдот про неразумного сына, обменявшего пистолет на часы..
D>http://www.anekdot.ru/id.html?82190
Просто есть вещи, которые необходимо запоминать (классы и функции библиотеки), а есть, которые необходимо понимать.
ИМХО, проверять первое — бред. Принципы ООП за 2 секунды не поймешь. Я вот это имел в виду
Здравствуйте, BokiyIS, Вы писали:
BIS>Ну так и здорово, что можно посмотреть. Качество своего кода вот посмотреть нигде нельзя, его можно только показать . BIS>Вам что, хуже будет, если человек точно не помнит, чего там передаётся в функцию, зато знает, что это за пару секунд находится в msdn? BIS>Он же от этого плохим программистом не становится. Зато он вам, например, сможет рассказать, чем агрегирование от наследование отличается. BIS>Странные вы какие-то.
Понимаете, дело происходит в Индии. Там такого как "помотреть код" или хотя бы проверить референс в принципе невозможно. 90% резюме выдуманные с перлами типа "15 лет опыта в .NET", коллеги из индийского офиса делают телефонный pre-screen, но и этого не хватает, не знаю, что они там шпорами обкладываются, или коллективный разум.
Один известный блоггер, который нанимает людей в Китае (не ИТ), использует такой метод: первый вопрос "сколько квадратных метров в квадратном километре?" Не знает -- no hire. Говорит, 90% кандидатов засыпаются. Он тоже неправ?
Скажем так, если бы человек перепутал порядок параметров в File.Open(), то я бы просто отметил у себя, что следует погонять по фреймворку, но ответ засчитал бы. Но как правило, таких мало. Чаще либо знает, либо вообще ступор без малейшего понятия в какую сторону копать.
M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
Надеюсь, кандидату дается комп + google? Потому как помнить, например, синтаксис open(), особенно если редко этим пользуешься, малореально.
Или у вас в конторе вообще компы не используются, ага? И гугл запрещен?
Здравствуйте, mymuss, Вы писали:
M>Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
Ага, то есть вот этот тест вы предлагаете и тем кто на сениорские вакансии собеседуется, афигеть
Здравствуйте, mymuss, Вы писали:
skip M>Ваше мнение?
ИМХО такие вопросы имеет смысл задавать студентам, у которых опыта нет ни в чем, кроме как зубрить формулы для удовлетворения преподавательских бзиков.
Если человек с опытом реальных разработок и претендует на более высокую должность, думаю стоит задавать вопросы более обобщеного характера (технологии, платформы, паттерны и т.п.).
Здравствуйте, spbnt, Вы писали:
S>Если человек с опытом реальных разработок и претендует на более высокую должность, думаю стоит задавать вопросы более обобщеного характера (технологии, платформы, паттерны и т.п.).
Наверное, архитектору я бы именно такие вопросы и задавал.
Но в данном случае речь идет о девелоперах.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
Зависит от степени волнения, если волнуется предложить успокоиться, быть подружелюбнее.
Если ошибся в каком — нибудь методе чтения из файла, но в общем все верно, то покатит.
Если не может остального — однозначно нах.
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
При вчем моем уважении, но когда на собеседовании задаются вопросы по знаниям, которые мне в работе будут не нужны (даже если я знаю на них ответы), то однозначно "no hire".
Я на таком собеседловнии остаюсь только, чтобы подтвердить/опровергнуть свои подозрения об общей неадекватности компании в целом или конкретных участников интервью.
Впрочем вечером, после интервью, беру в руки учебники и повторяю все что спрашивали. Вдруг в жизни пригодится
Здравствуйте, elmal, Вы писали:
E>А знания математики проверить элементарно. Берешь достаточно сложную задачу, и спроси как собеседующий будет пытаться ее решить.
Здравствуйте, VovkaMorkovka, Вы писали:
VM>Зависит от степени волнения, если волнуется предложить успокоиться, быть подружелюбнее. VM>Если ошибся в каком — нибудь методе чтения из файла, но в общем все верно, то покатит.
Да, разумеется, поскольку задачи на доске, то заранее предупреждается, что можно задавать любые вопросы по библиотечным ф-циям. И ошибки в них не учитываются.
Здравствуйте, SE, Вы писали:
SE>При вчем моем уважении, но когда на собеседовании задаются вопросы по знаниям, которые мне в работе будут не нужны (даже если я знаю на них ответы), то однозначно "no hire".
Я вообще стараюсь спрашивать только то, что у человека написано в резюме. Если пишет, что занимался системным программированием под *никс, то буду спрашивать про семафоры и named pipes, хотя и сомневаюсь, что в наших проектах это может пригодиться.
Здравствуйте, mymuss, Вы писали:
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор. Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
Посмотрел на вопросы — на первый могу ответить. На второй — тоже (еще не все по математике забыл,
хотя и закончил университет 20 лет назад). А на третий уже не могу ответить. С .NET
лет пять работаю, но как там в C# в текстовый файл писать — не помню, года два как уже не писал.
Так что твой тест я бы не прошел.
А представь, что к тебе на собеседование пришел бы Ларри Уолл, разработчик
языка Perl. Вполне возможно, что он и формулы для вычисления площади круга не знает
(как известно, Уолл по образованию лингвист).
Но я надеюсь, что senior'ам на собеседовании ты таких вопросов не задаешь ?
Здравствуйте, Mirrorer, Вы писали:
M>И вот приходит к вам ушлый человек вроде меня и пишет
M>1. +/ M>2. [:o. ] ^ 2: M>3. date > time.txt
M>hire или no hire ?
Да, без проблем. Хоть Haskell, хоть Brainfuck. Исходные условия: любой язык, платформа итд.
Конечно, если никто из присутствующих не будет знать этот язык, то мы не сможем оценить правильность ответов, но предварительный тест пройден, поэтому дальше поговорим предметно о том, чем кандидат нас заинтересовал.
M>Вообще все зависит от того, какая цель преследуются. Отсеять совсем дураков или найти умных. По моему опыту собеседований спрашивать конкретику типа формул или там какой 3-й параметр у функции YYY стандартной бибилиотеки XXX и какое исключение оно кидает при ошибке имеет мало смысла.
К сожалению, нельзя отредактировать исходный пост, но я тут уже много раз говорил: вопросы по библиотечным ф-циям допускаются и ошибки в них не учитываются.
Здравствуйте, mymuss, Вы писали:
M>Эдак мы ни одного не сможем нанять, боюсь
Относительно сложную — под этим не подразумевается попытаться доказать теорему Ферма, а че нидь из заданий для поступающих в вузы. Если это слишком сложно для кого-то, но берете тех, кто зазубрил формулу площади круга, то снижайте требования к вакансии, значит у вас знания математики даже на элементароном уровне не требуется. Я щас потрачу 10 лет, и научу обезьяну на бумаге формулу площади круга рисовать — будет ли это означать что обезьяна знает математику?
Здравствуйте, mymuss, Вы писали:
M>Я вообще стараюсь спрашивать только то, что у человека написано в резюме. Если пишет, что занимался системным программированием под *никс, то буду спрашивать про семафоры и named pipes, хотя и сомневаюсь, что в наших проектах это может пригодиться.
Я спрашиваю только то, что является пересечением задекларированных знаний с нашими проектными задачами. Человек может иметь сколь угодно большие опыт и знания, но если указанные множества не пересекаются, то польза от человка на моем проекте равна нулю.
Здравствуйте, elmal, Вы писали:
E>че нидь из заданий для поступающих в вузы. Если это слишком сложно для кого-то, но берете тех, кто зазубрил формулу площади круга, то снижайте требования к вакансии
Не, это вообще без шансов, я почти уверен )) Если, конечно, мы говорим про информатику и смежные специальности. Если задачи по математике для поступающих в какой-нибудь мясо-молочный ВУЗ, то может быть...
E>Я щас потрачу 10 лет, и научу обезьяну на бумаге формулу площади круга рисовать — будет ли это означать что обезьяна знает математику?
Она не пройдет интервью, это предварительный отсев, если человек может ответить на эти вопросы, тогда мы говорим предметно.
Здравствуйте, Eudjinn, Вы писали:
E>Решение о приеме на работу всех разработчиков, которых я взял в отдел, было принято еще ДО технического интервью, просто поговорив о прошлых проектах, об интересах, о причинах смены места работы, о желаемых переспективах и направлении развития и т.п. E>При этом, в ходе технической части собеседования, на ряд вопросов некоторые ответить не смогли. С тех пор они успешно работают и я ими очень доволен
Ну понятно, завалить можно кого угодно. Не бывает кандидата, который бы ответил на все вопросы. Но те о которых Вы говорите, они засыпались на вопрсах такого же порядка сложности?
Здравствуйте, elmal, Вы писали:
E>На простой вопрос элементрано ошибиться. Сегодня ко мне подошли возле дома и спросили какая эта улица. А я не смог сразу уверенно ответить — забыл. Когда же мне спросили по другому, назвали улицу и спросили, она ли это — тут я смог ответить без проблем. Итого — я вообще слабоумный получается, так как не знаю по какой улице я каждый день к метро хожу?
E>А с твоими вопросами тоже самое, человеку в лоб задаешь вопросы, который он может и знает, но так как он их не применял много лет они спрятаны у него очень далеко, и он может в результате крайне неуверенно на них отвечать, а то и сделать детскую ошибку.
Если кандидат сделает простую ошибку, скажем, напишет 2*pi*r вместо pi*r^2, то я предложу ему подумать еще или задам наводящий вопрос, в любом случае, это еще не fail.
Если забудет проверить что вернуло open(), но при этом проверит, что вернуло write(), то я это вообще ошибкой не считаю. А так, предложу подумать, что можно улучшить в коде.
Но как я уже говорил, есть 2 типа кандидатов:
— нормальный
— полный ступор
Здравствуйте, mymuss, Вы писали:
M>Понимаете, дело происходит в Индии. Там такого как "помотреть код" или хотя бы проверить референс в принципе невозможно. 90% резюме выдуманные с перлами типа "15 лет опыта в .NET", коллеги из индийского офиса делают телефонный pre-screen, но и этого не хватает, не знаю, что они там шпорами обкладываются, или коллективный разум.
M>Один известный блоггер, который нанимает людей в Китае (не ИТ), использует такой метод: первый вопрос "сколько квадратных метров в квадратном километре?" Не знает -- no hire. Говорит, 90% кандидатов засыпаются. Он тоже неправ?
M>Скажем так, если бы человек перепутал порядок параметров в File.Open(), то я бы просто отметил у себя, что следует погонять по фреймворку, но ответ засчитал бы. Но как правило, таких мало. Чаще либо знает, либо вообще ступор без малейшего понятия в какую сторону копать.
так бы сразу и сказали. а насчёт проверки результата open — вы до сих пор используете чистый C???
E>>Решение о приеме на работу всех разработчиков, которых я взял в отдел, было принято еще ДО технического интервью, просто поговорив о прошлых проектах, об интересах, о причинах смены места работы, о желаемых переспективах и направлении развития и т.п. E>>При этом, в ходе технической части собеседования, на ряд вопросов некоторые ответить не смогли. С тех пор они успешно работают и я ими очень доволен
M>Ну понятно, завалить можно кого угодно. Не бывает кандидата, который бы ответил на все вопросы. Но те о которых Вы говорите, они засыпались на вопрсах такого же порядка сложности?
Просто жизненную задачу давали, посложнее этих, конечно, и смотрели как человек над ней думает, какие вопросы задает, как быстро въезжает в требования. Кто-то решает, кто-то нет, кто-то предлагает стандартные ходы, кто-то нестандартные. Я же не об этом. Я о том, что техническое собеседование при определенном подходе можно вообще без технического собеседования обходиться. А если вы зададите свои три вопроса человеку, который уже поработал разработчкиком в какой-нибудь серьезной компании, сами подумайте, как это для него будет выглядеть. Ну если студентов молодых берете, еще куда ни шло.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>осталось доказать, что неучтённая площадь пренебрежимо мала
L>Это уже мелочи.
Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, ihatelogins, Вы писали:
SE>>Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил.
I>Нуну. Вот альдегиды тоже в школе проходят, тоже в своем роде "общечеловеческий бэкграунд". Ну давай теперь распрашивать кандидатов про получение и применение альдегидов. А ведь еще и физика есть, и биология.
Какие же вы нудные, а. Один про сочинения вспомнил, второй про альдегиды.
Искал бы химика, спрашивал бы про альдегиды. Искал бы спичрайтера, попросил бы сочинение написать. Ищу программиста — проверяю его алгоритмический и математический бекграунд. Предваряя вопрос: искал бы математика, спросил бы что нибудь из теории множеств.
I>Мой вердикт: самоутверждение перед кандидатом — единственная причина подобных "вопросов".
Пожалуй соглашусь. Бывает правда, что самоутверждение получается случайно. Просто в силу низкого уровня кандидата.
Впрочем за последние пару лет проведения собеседований, я отсеял только двоих.
Джуниора, которые неадекватно общался, в стиле "На воле я в авторитете, всех знаю, все меня знают". И человека обвешанного сертификатами, но явно вообще без знаний, необходимых для получения этих самых сертификаты.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Gradient, Вы писали:
G>>сколько итераций займет выполнение трех вложенных циклов, внутри которых бегаем по массиву длиной N.
M>Кстати, хороший вопрос, спасибо. Беру на заметку.
Ну коли на то пошло, то еще можно проверять мат. логику. Типа сложное выражение с кучей and и or переписать на отрицание.
Здравствуйте, Gradient, Вы писали:
L>>Это уже мелочи.
G>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива
на собеседовании написал бы цикл, "глупый вопрос — глупый ответ" + нежелание помнить и отвечать на дополнительные вопросы по тонкостям библиотеки, которые к тому же разные в разных языках (есть у меня слабость забывать "в каком же языке тут была такая-то особенность").
в реальном коде скорее всего поставил бы аналог sum, заглянув для верности в доку.
на ещё на один вопрос такого уровня — обиделся бы.
M> 2. найти площадь круга по радиусу
помню что там что-то вроде "пи на эр-квадрат" (а может, "на дэ-квадрат"?), а вот не надо ли разделить или домножить скажем на два — не помню.
вывести бы не пытался — побоялся бы на нервах сбиться и испортить впечатление ещё больше.
прим.: закончил институт по специальности "прикладная математика" (и, разумеется, знаю, что "эр-квадрат" — это просто четверть от "дэ-квадрат")
M> 3. записать текущую дату в текстовый файл
из минимум 5 языков, на которых я могу по памяти записать в текстовый файл строку, ни в одном не помню названий функций, работающих с датами.
впрочем, отмазался бы шарпом с его `DateTime.Now.ToString()`
M>Детские ошибки, типа непроверки кода возврата open() в C -- означают, что в лучшем случае получит рекомендацию на junior.
на "бумажке" на собеседовании проверки на каждую строчку писать бы не стал из экономии, о чём впрочем предупредил бы.
если спросят — предпочёл бы рассказать, "что тут в принципе может не сработать", но в крайнем случае написал бы, хотя и "сквозь зубы".
mymuss пишет: > > > Ого, неужели я много требую? Ну мы как бы обработкой графики занимаемся, > хотя, конечно ваятелю веб-интерфейса, возможно всех деталей знать не надо.
Т.е. площади кругов считаете?
Здравствуйте, Volgaboatman, Вы писали:
V> Ну коли на то пошло, то еще можно проверять мат. логику. Типа сложное выражение с кучей and и or переписать на отрицание.
mymuss пишет: > > > Хм... резонный вопрос. Ну ок, а зачем вообще устраивать тех. > собеседование.
Ну вот это по сути уже. А коль Вы сами начали ветку, то и вопрос к Вам
же. Зачем Вы утраиваете тех. собеседование?
Здравствуйте, mymuss, Вы писали:
N_>>Не использовать индию. Например, отдать на аутсорс в РФ/Украину. M>Пробовали в Украину. Там свои проблемы. В целом, Индия лучше ИМХО.
А что не так с Украиной?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Glоbus, Вы писали:
G>З.Ы. Кстати, а почему по физике из школьного курса никаких вопросов? Или там по химии — че-нить про бензольные колца? Тоже ведь школа, элементарщина...
Хочу получить представление о математических способностях кандидата, ибо их использовать так или иначе приходится.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Glоbus, Вы писали:
G>>З.Ы. Кстати, а почему по физике из школьного курса никаких вопросов? Или там по химии — че-нить про бензольные колца? Тоже ведь школа, элементарщина...
M>Хочу получить представление о математических способностях кандидата, ибо их использовать так или иначе приходится.
При педалинге веба??
З.Ы.2
На самом деле из перечисленных тобою пунктов мне (как и всем остальным) не нравится только площадь круга. Не потому что я не знаю формулы, а потому что она никаким боком не лезет. А во-вторых вот это вот безаппиляционное no-hire изза неответа (или даже просто неточного ответа!) на один-единственный вопрос — это просто атас. Если не брать на работу людей, которые, калякая код на доске, допускают ошибки вида непроверка возвращаемого значения, то я уж тогда не знаю где народ брать
Здравствуйте, Glоbus, Вы писали:
M>>Хочу получить представление о математических способностях кандидата, ибо их использовать так или иначе приходится.
G>При педалинге веба??
Да.
Реальный пример №1. Сделать веб-сервис для наложения водяного знака на картинку. Водяной знак представляет из себя полупрозрачный текст, расположенный в центре. Он должен быть достаточно большим чтобы перекрыть бОльшую часть картинки и в тоже время не вылезать за ее пределы. Длина/ширина/разрешение картинки бывает разными, в т.ч. ширина значительно больше длинны и наоборот.
Реальный пример №2. Есть много-много картинок (сотни-тысячи). Нужен скроллер/пейджер, но поскольку их очень много, он должен быть логарифмическим.
Это далеко не самые сложные задачи для веб-девелопера в нашем проекте. Школьная математика. Есть задачи, в которых школьной не хватит, но упомянутый кандидат туда в любом случае не тянет.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>Здравствуйте, mymuss, Вы писали:
N_>>>>Не использовать индию. Например, отдать на аутсорс в РФ/Украину. M>>>Пробовали в Украину. Там свои проблемы. В целом, Индия лучше ИМХО.
ГВ>>А что не так с Украиной?
M>1. Нету людей. Не приходят даже. Для нас хайрили 2 аутсорсинговых фирмы в Киеве, Харькове и Черкассах. Мы старались не называть конкретных цифр до интервью, так что дело не в деньгах. Выехали все, или трудоустроены, или HR такие попались? В Индии же наоборот, надо отсеять 100 человек, но 101-й будет отличный специалист.
Странно вам искали людей. Не может такого просто быть, чтоб никто вообще не заинтересовался.
M>2. Дорого. С услугами аутсорсеров нам выходило от 25 в час. Я не знаю сколько из них перепадало сотруднику, а сколько уходило на взятки, налоговые итд. Но за 30-35 уже можно поискать в США, а это будет, как правило, повыше уровень, никаких проблем с английским и часовыми поясами.
Вообще как для Киева, то конечно было бы неплохо, но в целом не такая уж и внушительная сумма. Не так уж и дорого как на взгляд с другой стороны.
M>3. Трудолюбие. Индусу без проблем поработать овертайм или там на выходных. Украинцы же раздуют такое...
Да да, мы такие. Ща раздуем У меня есть знакомый, которому в кайф работать и по выходным. Ему это нравится. И он так и делает. Мне нет. В нашей компании очень негативно смотрят на работу на выходных. Именно менеджмент так смотрит на этот вопрос. И это нормально по выходным не работать. Но можно конечно. Путь это будет оплачено так, как овертаймы оплачиваются в США к примеру. Тогда думаю никто не будет возмущаться. А вообще я придерживаюсь позиции, что просто надо адекватно сроки устанавливать, чтоб и горячки не было, и качество написания кода было.
M>(Я подозреваю что сейчас многим хочется написать гневный ответ в стиле "проклятые эксплуататоры, мало того что площадь круга требуют, так еще и овертайм им" и кинуть в меня тухлый помидор... Не стоит, я не буду отвечать. Или не в этом топике, пожалуйста. Здесь лишь излагаю причины, побудившие руководство принять решение не в пользу Украины)
Не стоит так ёрничать. Видели и эксплуататоров и работали по выходным. Ничего приятного не видел.
Здравствуйте, Glоbus, Вы писали:
G>Если не брать на работу людей, которые, калякая код на доске, допускают ошибки вида непроверка возвращаемого значения,
А эти самые непроверки как раз признак "педальщика, который педалит". Так что, рациональное зерно в таком подходе к тестированию есть. Больше того, именно так подобные тестовые задания полагается писать. Равно как и проверять переполнение целочисленных операций (не только при тестировании).
G>то я уж тогда не знаю где народ брать
У-у-у, как всё запущено-то, оказывается... Хотя, чему я удивляюсь, если никто из комментаторов о банальнейших вещах не вспомнил?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sonic, Вы писали:
S>Странно вам искали людей. Не может такого просто быть, чтоб никто вообще не заинтересовался.
Не то чтобы вообще, мы в общей сложности так проработали более года, но все же, с хайрингом были сложности. Многих отсеивали на этапе собеседования украинские компании, с которыми мы сотрудничали. Некоторые скиллы, например Unix sysadmin со знанием Perl найти не удалось. С .NET/SQL Server ситуация получше, но кадровый голод ощущается.
S>Вообще как для Киева, то конечно было бы неплохо, но в целом не такая уж и внушительная сумма. Не так уж и дорого
как на взгляд с другой стороны.
Ну это все лирика. Заказчика не волнует сколько для Киева нормальная сумма, а сколько мало. Если за 25 заказчик не может найти mid-level девелопера, то 30 он не заплатит. потому что за 35 наймет в США и не будет иметь никакой головной боли.
В Индии 15-18 это пока реально.
S>Путь это будет оплачено так, как овертаймы оплачиваются в США к примеру. Тогда думаю никто не будет возмущаться.
Опять же, я не знаю, доставалось ли сотрудникам, но та компания, которая биллила по часам овертайм отлично считала.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Sonic, Вы писали:
S>>Странно вам искали людей. Не может такого просто быть, чтоб никто вообще не заинтересовался. M>Не то чтобы вообще, мы в общей сложности так проработали более года, но все же, с хайрингом были сложности. Многих отсеивали на этапе собеседования украинские компании, с которыми мы сотрудничали. Некоторые скиллы, например Unix sysadmin со знанием Perl найти не удалось. С .NET/SQL Server ситуация получше, но кадровый голод ощущается.
хм, я вот узнал, что JavaScript девелопера, который бы при этом знаел еще что нить и умел дизайнить не найти уже год по всей Европе
Здравствуйте, Denis, Вы писали:
D>хм, я вот узнал, что JavaScript девелопера, который бы при этом знаел еще что нить и умел дизайнить не найти уже год по всей Европе
Ну девелопер, умеющий дизайнить, это вообще нетипично.
А вот Linux Admin + Perl вроде не самая странная комбинация?
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Denis, Вы писали:
D>>хм, я вот узнал, что JavaScript девелопера, который бы при этом знаел еще что нить и умел дизайнить не найти уже год по всей Европе
M>Ну девелопер, умеющий дизайнить, это вообще нетипично.
это шутка? я про дизайн системы (ключевые слова design patterns, архитектура, разбиение на классы и прочее )
M>А вот Linux Admin + Perl вроде не самая странная комбинация?
никогда не искал не знаю, но звучит как что-то обычное (могу правда и ошибаться)
Здравствуйте, Denis, Вы писали:
M>>Ну девелопер, умеющий дизайнить, это вообще нетипично. D>это шутка? я про дизайн системы (ключевые слова design patterns, архитектура, разбиение на классы и прочее )
А блин, сорри. Думал имеется ввиду графический дизайн, фотошоп итд
1. Давно уже уяснил (понимание этого приходит с годами), что выяснение знание параметров WriteFile(...) и т.д. у кандидатов — вообще бред! В WinAPI более 300 функций, их просто нельзя знать наизусть, да и незачем — тока место в мозгу забивать! Тем более MS-specific и тем более, сегодня MS назвал её так, а завтра переименует так, а чел её полгода заучивал! Бред! Т.е. этот критерий уже заранее неверен!
2. Как уже упоминалось — на всё есть справочники, справки, поиски! Они собсна именно для этого и делаются, я так понимаю!
3. В наше время вообще уже, наверное не имеет смысла выяснять конкретные знания чево-либо (технологии, языка, библиотеки и т.д.), т.к.: кол-во оных уже зашкаливает, и знать их все уже просто не предствляется возможным, а сочетать на практике приходится. Еще, конечно же, можно специализоваться в чёмта одном — но недостаток очевиден!
Posted via RSDN NNTP Server 2.1 beta
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Здравствуйте, Denis, Вы писали:
D>>>хм, я вот узнал, что JavaScript девелопера, который бы при этом знаел еще что нить и умел дизайнить не найти уже год по всей Европе
потому что дизайн и все эти ксриптовые языки — малосовсместимые понятия. все начинают с этих бейсиков, но к тому времени когда человек понимает как дизайнить, он уже и тусуется где-нибудь в районе j2ee
mymuss пишет: > > V>Т.е. площади кругов считаете? > > Гм... странный вопрос. Думаете, в Гугле программеры ребусы решают?
Понты здесь Вы раскидывали, я не я. Мне просто интересно стало, как
площадь круга относиться к обработки графики?
> > Да, минимальные знания школьной математики необходимы. Я хочу на > собеседовании прикинуть их наличие/отсутствие.
Мдас, не весело там у вас, нам здесь такого делать не приходиться —
школьную программу знали все приходящие собеседоваться.
Но и здесь вам тоже не нравиться (параллельная ветка про украину).
Геннадий Васильев пишет: > > > M> 1. посчитать сумму элементов целочисленного массива > > Ключевое слово: целочисленнное переполнение. Почему об этом никто не > вспомнил? mymuss, ты тоже об этом не сказал.
Да потому, что это в индию идет.
> > M> 3. записать текущую дату в текстовый файл > > Две-три ключевых проверки: что файл открылся (открыт) *и* что запись > прошла успешно и полностью, *и* что удалось нормально закрыть, если > открывали. Интересно, почему о второй проверке никто не вспомнил?
О параноидальном коде слышали?
Здравствуйте, Vzhyk, Вы писали:
>> >> M> 1. посчитать сумму элементов целочисленного массива >> >> Ключевое слово: целочисленнное переполнение. Почему об этом никто не >> вспомнил? mymuss, ты тоже об этом не сказал. V>Да потому, что это в индию идет.
То есть? В Индии разрядность процессора равна бесконечности? Нирвана, однако.
>> >> M> 3. записать текущую дату в текстовый файл >> >> Две-три ключевых проверки: что файл открылся (открыт) *и* что запись >> прошла успешно и полностью, *и* что удалось нормально закрыть, если >> открывали. Интересно, почему о второй проверке никто не вспомнил? V>О параноидальном коде слышали?
Какая связь? Параноидальный код или не параноидальный, но признак успешности завершения должен означать успешность всех нижележащих операций. Если это open/write/close то и проверять их надо все.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, SE, Вы писали:
SE>Ищу программиста — проверяю его алгоритмический и математический бекграунд.
Не совсем понимаю, вы ищете математика или программиста?
Здравствуйте, olegkr, Вы писали:
SE>>Ищу программиста — проверяю его алгоритмический и математический бекграунд. O>Не совсем понимаю, вы ищете математика или программиста?
Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Ну а как проверить знание элементарной математики?
А оно вам надо знание математики-то в работе? Если реально необходимо, то надо и проверять нормально, а не знанием простых формул.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K?
Надо говорить. Смотря для какой ниши. В бизнес приложениях, железках, веб-сайтах и прочем, что составляет 90% всей разработки, знания выше +-*/ требуются редко.
Здравствуйте, olegkr, Вы писали:
ГВ>>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K? O>Надо говорить. Смотря для какой ниши. В бизнес приложениях, железках, веб-сайтах и прочем, что составляет 90% всей разработки, знания выше +-*/ требуются редко.
На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да?
*ROTFL* *ROTFL* *ROTFL*
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
mymuss пишет: > > > Я считаю, что знание простейщих математических фактов есть признак > знания элементарной математики. Я хочу нанять кандидатов со знанием > элементарной математики. Поэтому для отсева кандидатов я спрашиваю > знание простейших математических фактов.
Вот это другое дело.
Я например, в зависимости от кандидата могу ограничиться просто беседой
о жизни или дать тест на неделю. Все зависит от самого кандидата и
предстоящих ему задач.
> > Впрочем, я не утверждаю что этот способ единственно правильный. Поэтому > и спрашиваю тут.
Вот об этом тут уже многие написали, что путь не единственный и в
рускоговорящей части програмерского мира сильно неэффективный.
А среди индусов — математики и ученые там очень сильные — посмотрите на
уровень их статей и разработок. Но, проблема, что специалисты там стоят
тоже дорого.
Геннадий Васильев пишет: > > > Вот только не надо говорить, что у программиста не должно быть > математического бэкграунда, O'K?
Не обязательно, зависит от задач и самого того программиста.
Здравствуйте, mymuss, Вы писали:
M>потому что за 35 наймет в США и не будет иметь никакой головной боли.
... того же индуса. За 70К/год нанять нормального контрактера в штатах, ну-ну, удачи!
Геннадий Васильев пишет: > > O>Надо говорить. Смотря для какой ниши. В бизнес приложениях, железках, > веб-сайтах и прочем, что составляет 90% всей разработки, знания выше > +-*/ требуются редко. > > На вскидку: теория множеств, булева алгебра. Это всё так, мимо > проходили, да?
Еще ТВиМС, матан, ГА...
Вот только это надо только в определенном круге задач.
Здравствуйте, Vzhyk, Вы писали:
V>А вы попробуйте так писать код...
Исключения рулят.
V>Ну и вопрос по сути. Вы получили по close не 0, что делать будете? V>Жду рецепта "серебрянной пули".
Возвращаем ошибку в вышестоящий слой.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да?
Мимо. Когда-то учили. Не пригодилось за 15 лет, хотя чем только ни приходилось заниматься.
Здравствуйте, Vzhyk, Вы писали:
>> Какая связь? Параноидальный код или не параноидальный, но признак >> успешности завершения должен означать успешность всех нижележащих >> операций. Если это open/write/close то и проверять их надо все. V>А вы попробуйте так писать код...
Хм. А я так и пишу... Особенно вспомогательную дребедень всяческую, от которой требуется получить только два результата: успех/ошибка.
V>Ну и вопрос по сути. Вы получили по close не 0, что делать будете?
Зависит от контекста. В случае простой функции, которая должна вернуть true/false, вернул бы false, и попытался бы удалить только что созданный недозаписанный файл. С большой вероятностью удаление прошло бы успешно или вернуло бы код какого-нибудь FILE_NOT_EXIST, что тоже есть успех для такой операции.
V>Жду рецепта "серебрянной пули".
Не дождёшься.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Cyberax пишет: > > > V>А вы попробуйте так писать код... > Исключения рулят.
Не везде и не всегда.
> > V>Ну и вопрос по сути. Вы получили по close не 0, что делать будете? > V>Жду рецепта "серебрянной пули". > Возвращаем ошибку в вышестоящий слой.
Поехали дальше, а что сделает вышестоящий слой?
Здравствуйте, Vzhyk, Вы писали:
V>А среди индусов — математики и ученые там очень сильные
Не спорю. Я говорил раньше, что хорошая комада индусов ничуть не уступает хорошей команде русских/украинцев. Только их много, соответственно фильтровать сложнее.
Геннадий Васильев пишет: > > V>А вы попробуйте так писать код... > > Хм. А я так и пишу... Особенно вспомогательную дребедень всяческую, от > которой требуется получить только два результата: успех/ошибка.
Т.е. на всякий чих проверяете коды возврата?
> Зависит от контекста. В случае простой функции, которая должна вернуть > true/false, вернул бы false, и попытался бы удалить только что созданный > недозаписанный файл. С большой вероятностью удаление прошло бы успешно > или вернуло бы код какого-нибудь FILE_NOT_EXIST, что тоже есть успех для > такой операции.
А если не прошло?
> > V>Жду рецепта "серебрянной пули". > > Не дождёшься.
Вот и я об этом. Что решение и выбор подхода зависит от конкретной
задачи в конкретном месте.
Здравствуйте, Vzhyk, Вы писали:
>> V>Ну и вопрос по сути. Вы получили по close не 0, что делать будете? >> V>Жду рецепта "серебрянной пули". >> Возвращаем ошибку в вышестоящий слой. V>Поехали дальше, а что сделает вышестоящий слой?
Вышестоящий слой для развлечения эту функцию вызывает? Если так, то ничего.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
mymuss пишет: > > V>А среди индусов — математики и ученые там очень сильные > > Не спорю. Я говорил раньше, что хорошая комада индусов ничуть не > уступает хорошей команде русских/украинцев. Только их много, > соответственно фильтровать сложнее.
Ну еще бы, надо же найти еще и дешевых. Но, как я понял это ваша работа
и оплачивается она именно поэтому. Так что помочь вам нереально.
Максимум что вы можете забрасывать сети подальше и фильтровать больше.
Как-то нас учили в материализме количество перейдет в качество.
Селяви.
Геннадий Васильев пишет: > > > Хм. Значит, никогда не приходилось преобразовывать выражения вот так: > > if (!a || !b) ==> if (!(a && b)) > > ?
Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение?
Но есть многие мегабайты кода, работающего, написанного многими людьми.
И самое что важное, задача эстетического удовлетворения от чтения кода
минимально приоритетна — это когда делать програмеру нечего. А так
обычно есть еще немерянно задач по развитию продукта и гораздо более
приоритетных.
Геннадий Васильев пишет: > > >> > V>Ну и вопрос по сути. Вы получили по close не 0, что делать будете? >> > V>Жду рецепта "серебрянной пули". >> > Возвращаем ошибку в вышестоящий слой. > V>Поехали дальше, а что сделает вышестоящий слой? > > Вышестоящий слой для развлечения эту функцию вызывает? Если так, то ничего.
А если серьезно?
Здравствуйте, Vzhyk, Вы писали:
>> V>А вы попробуйте так писать код... >> Исключения рулят. V>Не везде и не всегда
Они как раз необходимость проверки всего убирают.
>> V>Жду рецепта "серебрянной пули". >> Возвращаем ошибку в вышестоящий слой. V>Поехали дальше, а что сделает вышестоящий слой?
Возвратит ошибку в вышестоящий слой
Cyberax пишет: > > >> > V>А вы попробуйте так писать код... >> > Исключения рулят. > V>Не везде и не всегда > Они как раз необходимость проверки всего убирают.
Напиши простой враппер на FILE*? Где fclose делать будешь?
Ну и сами исключения не везде есть еще.
> >> > V>Жду рецепта "серебрянной пули". >> > Возвращаем ошибку в вышестоящий слой. > V>Поехали дальше, а что сделает вышестоящий слой? > Возвратит ошибку в вышестоящий слой
И так до господа бога дойдем?
Здравствуйте, Vzhyk, Вы писали:
>> Хм. А я так и пишу... Особенно вспомогательную дребедень всяческую, от >> которой требуется получить только два результата: успех/ошибка. V>Т.е. на всякий чих проверяете коды возврата?
Почему? В некоторых случаях можно предполагать, что если предыдущая операция успешна, то и последующая будет успешной с приемлемо высокой вероятностью. Но в некоторых — нельзя. Например, операции записи в сокет, файл, реестр — вовсе не обязаны завершаться успешно, даже если предыдущая операция вернула OK. А значит, всё это надо проверять на сбой. И никуда от этого не денешься.
Кстати, C-шный fclose тоже можно не проверять, если а) предварительно сделать fflush и б) программа корректна и не корёжит дескрипторы.
>> С большой вероятностью удаление прошло бы успешно >> или вернуло бы код какого-нибудь FILE_NOT_EXIST, что тоже есть успех для >> такой операции. V>А если не прошло?
Возвращаем false. Значит, этот файл, даже если он обнаружится, нельзя считать корректным, поскольку запись в него не удалась. По идее, функция должна возвращать true только если все операции записи прошли успешно. Можно и не чистить за собой мусор, но тогда обнаруженный файл не может считаться корректным.
>> V>Жду рецепта "серебрянной пули". >> Не дождёшься. V>Вот и я об этом. Что решение и выбор подхода зависит от конкретной V>задачи в конкретном месте.
Именно. И именно в случае тестового задания на собеседовании имеет смысл показать полную обработку ошибок.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Веб-ваятеля? Запросто. (Кроме разве что рыбных мест вроде NY, SFBA etc)
Ага, простого веб-ваятеля индуса.
M>Ну, положим на W2, так мы их и там на постоянку нанимаем.
Вот именно. А это + налоги, страховки, 401К и офис, который, кстати, и контрактеру нужен.
Здравствуйте, Vzhyk, Вы писали:
>> Хм. Значит, никогда не приходилось преобразовывать выражения вот так: >> >> if (!a || !b) ==> if (!(a && b)) >> >> ? V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение?
Отнюдь. Например, так можно упростить логические условия и в конечном итоге, устранить какие-то ошибки. Понятно, что именно этот пример не имеет никакого смысла, кроме иллюстративного.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
ГВ>>Хм. Значит, никогда не приходилось преобразовывать выражения вот так: O>Вот оно как научно называется...
Ага. Может преподаваться в курсе дискретной математики. Чтобы потом оказаться, на первый взгляд, совершенно естественным.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий Васильев пишет: > > V>Т.е. на всякий чих проверяете коды возврата? > > Почему? В некоторых случаях можно предполагать, что если предыдущая > операция успешна, то и последующая будет успешной с приемлемо высокой > вероятностью.
Вероятность здесь неприменима. Применима только Ваша уверенность что
скорее всего будет или не будет успешна, а это исключительно
субъективная вещь и притом зависит от опыта.
> Но в некоторых — нельзя. Например, операции записи в > сокет, файл, реестр — вовсе не обязаны завершаться успешно, даже если > предыдущая операция вернула OK. А значит, всё это надо проверять на > сбой. И никуда от этого не денешься.
Но исходя из опыта и самой задачи я могу предположить, что в конкретном
мете операция завершится успешно.
А вот когда опыта мало, параноидальный код выходит.
> > Кстати, C-шный fclose тоже можно не проверять, если а) предварительно > сделать fflush и б) программа корректна и не корёжит дескрипторы.
Ага, только вот не корежит ли кто... и т.д. Ну и еще не забыть под какой
платформой мы находимся, ой нюансов всплывает.
> > Возвращаем false. Значит, этот файл, даже если он обнаружится, нельзя > считать корректным, поскольку запись в него /не удалась/. По идее, > функция должна возвращать true только если все операции записи прошли > успешно. Можно и не чистить за собой мусор, но тогда обнаруженный файл > не может считаться корректным. вы правы, но в реальности часто выгоднее допустить подобный недочет в
программе, именно по причине редкости подобной проблемы, чем увеличить
время разработки, особенно, если программа не для управления атомной
станцией.
Ну а решений данной ситуации, еще можно напридумывать и различных.
> > Именно. И именно в случае тестового задания на собеседовании имеет смысл > показать полную обработку ошибок.
Это уже Ваше видение, я противник такого. Собеседование — практически
всегда стресс и гарантировано, практически каждый человек наделает ошибок.
Мне важнее увидеть, как человек сможет работать, что он делал и как и
почему, или если опыта нет, как он будет решать определенную задачу,
конечно в плотной связи с программированием.
S>ИМХО такие вопросы имеет смысл задавать студентам, у которых опыта нет ни в чем, кроме как зубрить формулы для удовлетворения преподавательских бзиков. S>Если человек с опытом реальных разработок и претендует на более высокую должность, думаю стоит задавать вопросы более обобщеного характера (технологии, платформы, паттерны и т.п.).
Более того, опытный разработчик на формуле круга пошлет нахрен собеседователя. Ибо не экзамен в вузе сдавает. И будет прав.
Геннадий Васильев пишет: > >> > ? > V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение? > > Отнюдь. Например, так можно упростить логические условия и в конечном > итоге, устранить какие-то ошибки. Понятно, что именно этот пример не > имеет никакого смысла, кроме иллюстративного.
Но и более сложные условия уже нетривиально упрощать.
Но ты опустил вторую часть моего поста о реальных задачах и проектах. А
вот здесь часто выгоднее (именно выгоднее) оставить как есть и не трогать.
Здравствуйте, Vzhyk, Вы писали:
>> V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение? >> >> Отнюдь. Например, так можно упростить логические условия и в конечном >> итоге, устранить какие-то ошибки. Понятно, что именно этот пример не >> имеет никакого смысла, кроме иллюстративного. V>Но и более сложные условия уже нетривиально упрощать.
Нетривиально, но принципы-то остаются одними и теми же.
V>Но ты опустил вторую часть моего поста о реальных задачах и проектах. А V>вот здесь часто выгоднее (именно выгоднее) оставить как есть и не трогать.
Одно другого не исключает. Если код не надо менять, то его и не меняют. А если надо менять, то аппарат ДМ вполне может пригодиться.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
M>>Веб-ваятеля? Запросто. (Кроме разве что рыбных мест вроде NY, SFBA etc) O>Ага, простого веб-ваятеля индуса.
Да хоть кенийца. Если он хорошо работает то какая разница кто он по национальности?
M>>Ну, положим на W2, так мы их и там на постоянку нанимаем. O>Вот именно. А это + налоги, страховки, 401К и офис, который, кстати, и контрактеру нужен.
Это грязными, сверху работодатель платит копейки налогов, основная нагрузка на сотрудника. Офис и так есть, страховка ну пусть +2-3К в год, 401К тоже мелочь пару процентов, да и не все сотрудники туда отчисляют.
Ну пусть это все добавит 10%, это несравнимо с затратами времени ПМ-ов на координацию работы с оффшорной командой.
Здравствуйте, olegkr, Вы писали:
ГВ>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? O>Мимо. Когда-то учили. Не пригодилось за 15 лет, хотя чем только ни приходилось заниматься.
Здравствуйте, Grizzli, Вы писали:
G>Более того, опытный разработчик на формуле круга пошлет нахрен собеседователя. Ибо не экзамен в вузе сдавает. И будет прав.
За всех не расписывайся, ладно?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, landerhigh, Вы писали:
ГВ>>Зависит от контекста. В случае простой функции, которая должна вернуть true/false, вернул бы false, и попытался бы удалить только что созданный недозаписанный файл. С большой вероятностью удаление прошло бы успешно или вернуло бы код какого-нибудь FILE_NOT_EXIST, что тоже есть успех для такой операции. L>RSDN в своем амплуа. Опять решаем сферические задачи в вакууме. А потом удивляемся, откуда берутся "ошибки записи при чтении". L>А если файл на флешке, которую только что вытащили, тоже удалять будем, да?
Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя.
L>Что там возвращает close — это, по большому счету, уже не наше дело. Может, файловой системе пришел зелененький и мерзкий, но это нужно оставить на откуп ОС.
Вообще, это "зависит от". Если ФС накрылась, винт незаметно отформатирован низкоуровневым форматом, или, например, что попроще — злые враги переклеили шлейф винта 88-м клеем и прикрутили шурупами тормозные колодки к блинам винта, то как ни крути, а с точки зрения нашей функции — что-то пошло не так, а значит — return false.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, игппук, Вы писали:
И>за все годы работы математика мне понадобилась всего лишь пару раз И>всем остальным — нет. не насаждайте свою маниакальную любовь к другим программистам, так как на практике реально она им не нужна.
А мне за все годы жизни ни разу не пригодилось умение накладывать шину на перелом. Зря учился, наверное...
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя.
Уверен, что не встанем раком вместе с ОС или не удалим такой же файл с другой, только что воткнутой флешки? L>>Что там возвращает close — это, по большому счету, уже не наше дело. Может, файловой системе пришел зелененький и мерзкий, но это нужно оставить на откуп ОС. ГВ>Вообще, это "зависит от". Если ФС накрылась, винт незаметно отформатирован низкоуровневым форматом, или, например, что попроще — злые враги переклеили шлейф винта 88-м клеем и прикрутили шурупами тормозные колодки к блинам винта, то как ни крути, а с точки зрения нашей функции — что-то пошло не так, а значит — return false.
Такие вещи нужно оставлять на откуп ОС. Если там атомная война в рантайме случилась, то все равно рухнем.
Вот проверять статус операции записи очень даже полезно как раз.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Этот "матёрый C++-ник" — стоеросовая дубина, не способная понять, что раз наниматели задают такой вопрос, то они сталкивались с тем, что кто-то таких элементарных вещей не знает. И не будь этого топика, я бы тоже в такое положение дел не поверил. Но увы, тут уже под две сотни сообщений, из которых добрая треть — защита ограниченности, лени и дремучего невежества под маркой "специализации".
Этот матерый С++ уже в сотый раз сталкивается с там, что гнущие пальцы наниматели его резюме даже не удосужились прочитать.
Видимо, поэтому и умудрялись нанять описанных тобой добывателей творога из вареников.
Это — неуважение к кандидату. Стоит ли идти работать в такую контору, каждый решает сам.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Grizzli, Вы писали:
G>>Более того, опытный разработчик на формуле круга пошлет нахрен собеседователя. Ибо не экзамен в вузе сдавает. И будет прав.
ГВ>За всех не расписывайся, ладно?
Что, и таблицу умножения всю наизусть продекларируете если попросят, да? Действительно себя так не уважаете?
Здравствуйте, игппук, Вы писали:
И>...я к математике не причисляю умение работать с булевыми и битовыми операциями (с ними работаю очень часто), по той простой причине, что они есть часть компьютерной логики, которую знать нужно.
Это надо 216-м кеглем и на стенку повесить! "Компьютерная логика"... А-а-а-а!!! *ROTFL* *ROTFL* *ROTFL* *ROTFL* *ROTFL*
И>для специфический областей, типа геймдевелопинга, обработка звука, изображений и так далее, математика, безусловно нужна. всем остальным — нет. не насаждайте свою маниакальную любовь к другим программистам, так как на практике реально она им не нужна.
Всё, я на сегодня в ауте. Ты меня свалил с ног.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
M>Отлично! Сразу ясно, человек настроен не работать, а гонять понты. А если ему завтра дадут задание: срочно найти в чужом коде ошибку, проект горит, никто не может выяснить в чем дело. А он скажет "Я тут синьор, такой чепухой заниматься не собираюсь. Давайте я лучше буду архитектуру системы дизайнить и в паверпоинте рисовать". Ну и зачем такой "синьор"?
Здается мне, в вашей компании такого "синьера" могут посадить решать задачки по математике для начальных классов. На полном серьезе причем, аргументируя тем что дочке "генерального" помочь нада. А если откажется, понты, и т.д.
Нет, я с вами согласен. про настроение, понты и т.д. но когда я прочитал первый ваш пост в этой теме... первая мысль — ктото стебется. Очередной троль. Ан нет — вроде как всерьез. И честно скажу — до сих пор не верится, что вы такими вот вопросами встречает серьезных специалистов.
Здравствуйте, Grizzli, Вы писали:
G>Нет, я с вами согласен. про настроение, понты и т.д. но когда я прочитал первый ваш пост в этой теме... первая мысль — ктото стебется. Очередной троль. Ан нет — вроде как всерьез. И честно скажу — до сих пор не верится, что вы такими вот вопросами встречает серьезных специалистов.
Ты почитай топик! Страшно не то, что "такими" вопросами встречают. Страшно то, что не все правильно отвечают.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Ладно, извини, я погорячился в предыдущем сообщении.
ГВ>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? A>Зачем этот rocket science при разработке типичных бизнес-приложений?
Ну ты сам не понимаешь или стебёшься?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, landerhigh, Вы писали:
ГВ>>Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя. L>Уверен, что не встанем раком вместе с ОС или не удалим такой же файл с другой, только что воткнутой флешки?
Можем и удалить. Я ж говорю — не надо флешки дёргать, когда ни попадя. Но с другой стороны — фиг с ним, с удалением. Достаточно того, что неудачное закрытие файла может служить признаком неудачи всей транзакции.
L>Такие вещи нужно оставлять на откуп ОС. Если там атомная война в рантайме случилась, то все равно рухнем.
Я бы поправил — "можно", а не "нужно".
L>Вот проверять статус операции записи очень даже полезно как раз.
+1
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Этот матерый С++ уже в сотый раз сталкивается с там, что гнущие пальцы наниматели его резюме даже не удосужились прочитать. ГВ>Наниматели отфильтровали не один десяток крутоопытных, которые на поверку несли такую чепуху, что уши закладывало...
А кто обещал, что будут одни только апельсины с мандаринами? ГВ>Эдак мы до многого доспоримся. L>>Видимо, поэтому и умудрялись нанять описанных тобой добывателей творога из вареников. L>>Это — неуважение к кандидату. Стоит ли идти работать в такую контору, каждый решает сам. ГВ>Знаешь, если человеку 10 раз сказать "свинья", то он захрюкает. Здесь то же самое — если 15 кандидатов оказались распальцованными пустышками, то будь ты хоть мегагуру, но 16-м по счёту, то тебя на сформировавшихся рефлексах и встретят как 16-ю пустышку. Тут уже впору не беситься, а сочувствовать.
Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. То ли никто не читает резюма, приглашая всех подряд, то ли, что вероятнее, объявление составлено так, что никто, кроме означенных персонажей, не беспокоится. Или просто хотят Эйнштейна за рубль.
Здравствуйте, olegkr, Вы писали:
L>>сумма длин оснований — 2*П*r. O>Это тоже знать надо. Вот так вот сходу понять откуда здесь взялось Pi будет посложнее, чем вспомнить формулу круга
Да ничуть не сложнее, достаточно помнить, что пи это и есть отношение длины к диаметру. по определению, так сказать.
Здравствуйте, zakima, Вы писали:
Z>Здравствуйте, mymuss, Вы писали:
M>> 3. записать текущую дату в текстовый файл Z>Без компа, MSDN и intellisense впал бы в глубокий ступор. Возможно бы и справился, но не уверен )
var
f: textfile;
begin
assignfile(f, 'c:\txt.txt');
rewrite(f);
writeln(f, datetimetostr(now));
closefile(f);
end;
ы? понятно что никаких проверок, файл константа а можно было взять из параметров ком строки итд. но факт остается фактов. что ж вы так сишники от жизни отдаляетесь?
Здравствуйте, mymuss, Вы писали:
M>2. Дорого. С услугами аутсорсеров нам выходило от 25 в час. Я не знаю сколько из них перепадало сотруднику, а сколько уходило на взятки, налоговые итд. Но за 30-35 уже можно поискать в США, а это будет, как правило, повыше уровень, никаких проблем с английским и часовыми поясами.
Тока мне кажется, что производительность спеца за 25/ч в Киеве будет в несколько раз выше производительности спеца за 30/ч в штатах. 25/ч в Киеве- это сеньер хорошего уровня, 30/ч в штатах — жуниор с качеством кода "сделано на коленках". Так что врезультате экономия будет не 5/ч, а куда больше.
Геннадий Васильев пишет: > > > V>Вероятность здесь неприменима. Применима только Ваша уверенность что > V>скорее всего будет или не будет успешна, а это исключительно > V>субъективная вещь и притом зависит от опыта. > > Нет. Именно вероятность, которая и становится основой "уверенности".
Ну и назови мне вероятность возврата ошибки функцией close(). Да, потом
я задам вопрос, как ты ее считал.
А по жизни ты именно свой опыт и ассоциируешь с вероятностью.
> > V>А вот когда опыта мало, параноидальный код выходит. > > Не надо обобщать. Наличие проверок не всегда означает, что к коду можно > приклеить ярлык "параноидальный". И опыт — тоже не всегда надёжный советчик.
Нет, но и избыток проверок, что я тоже не раз наблюдал (когда человек не
совсем понимает, когда нужно проверять, а когда нет).
А опыт — это уже наша психология — по большому счету мы основываемся
только на нем, хотя часто пытаемся выдать за истину в последней инстанции.
> > Э... Зависит от многих факторов. Понятно, что "в реальности" требования > к качеству зачастую снижаются. Но как тебе сказать... Собеседование, это > своего рода игра. В сущности, игра несложная. Если даже в неё играть по > правилам "тяп-ляп", то в этой самой пресловутой "реальности" всё может > оказаться гаже и плоше.
Лично мне такая игра не интересна. Или есть взаимовыгодное
сотрудничество или нет.
> >> > >> > Именно. И именно в случае тестового задания на собеседовании имеет смысл >> > показать полную обработку ошибок. > V>Это уже Ваше видение, я противник такого. Собеседование — практически > V>всегда стресс и гарантировано, практически каждый человек наделает ошибок. > > Ошибки ошибкам рознь. Можно забыть последовательность параметров или > название метода. То о чём я здесь говорю — принципиальные вещи.
Опять, повторюсь, это для тебя принципиальные вещи. Для меня нет,
например. И из-за подобной неточностью на собеседовании я ни в коем
случае не собираюсь отказывать специалисту, которые в общем-то
справиться с задачами для него.
Если какой-либо момент принципиальный, с точки зрения будущих задач, я
сам укажу человеку на него, и послушаю, что он скажет.
> > Ну, если бы я увидел тест без проверок открытия/записи, то однозначно бы > засомневался в кандидате. Что он показывает? Что может быстро-быстро > прилепить одну команду к другой в более или менее правильном порядке?
Ну тогда, как много ты видел людей, которые могут эту "правильную"
последовательность сделать?
Например, тест, который мы даем кандидатом может иметь громадное
количество путей решения. И на многие мелочи эффективнее не обращать
внимания, а смотреть на ключевые моменты.
Здравствуйте, IID, Вы писали:
IID>Здравствуйте, Volgaboatman, Вы писали:
V>> Ну коли на то пошло, то еще можно проверять мат. логику. Типа сложное выражение с кучей and и or переписать на отрицание.
IID>А что тут сложного ? Закон Де-Моргана
Да ничего сложного, на вид только посложнее чем вспомнить площадь круга и в отличии от нее требуется на практике периодически. Я тут встречал такие перлы у студентов...
Здравствуйте, Vzhyk, Вы писали:
>>> > V>Жду рецепта "серебрянной пули". >>> > Возвращаем ошибку в вышестоящий слой. >> V>Поехали дальше, а что сделает вышестоящий слой? >> Возвратит ошибку в вышестоящий слой V>И так до господа бога дойдем?
Здравствуйте, landerhigh, Вы писали:
L>Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. То ли никто не читает резюма, приглашая всех подряд, то ли, что вероятнее, объявление составлено так, что никто, кроме означенных персонажей, не беспокоится. Или просто хотят Эйнштейна за рубль.
Здравствуйте, Vzhyk, Вы писали:
V>Но в чем смысл сего действа? Эстетическое удовлетворение?
Смысл — простота чтения, понимания, и, как следстрвие — сопровождение.
V>Но есть многие мегабайты кода, работающего, написанного многими людьми. V>И самое что важное, задача эстетического удовлетворения от чтения кода V>минимально приоритетна — это когда делать програмеру нечего. А так V>обычно есть еще немерянно задач по развитию продукта и гораздо более V>приоритетных.
Код красив тогда, когда его легко читать, понимать, дебажить и модифицировать.
И в таком случае развитие продукта будет проходить планируемо и с минимальными трудозатратами.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, MozgC, Вы писали:
MC>Вы просто не работали с индусами
В мой профайл бы посмотрел сначала.
Хотя прав, почти не работал, да. Судьба миловала. Пока.
Правда, бывают и хуже.
M>Коллега считает подход неправильным, дескать, может человек на интервью что-то забыть, стресс там и все такое. Вот сегодня один штрих не смог "вспомнить" ф-лу площади круга. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа AJAX на mid-level тянет. Коллега предлагает hire.
M>Ваше мнение?
сколько лет тебе и твоему коллеге? У тебя вероятно опыта слишком мало, поэтому такие вопросы возникают.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, mymuss, Вы писали:
M>>Ну пусть это все добавит 10%, это несравнимо с затратами времени ПМ-ов на координацию работы с оффшорной командой. O>Да как тебе сказать, офис может быть разным. Когда я работал на англикоскую контору в Москве я как-то поинтересовался у менеджера в чем основная выгода от аутсорса. По его словам получилось, что зарплаты — это такая мелочь. А вот офис... около килофунта на человека в день в Лондоне (Сити).
А можно к вам на удаленку? Согласен работать из дома за бесплатно, получая лишь половину от сыкономленной на аренде офиса суммы?
Вобщем 15к фунтов в месяц на удаленку возмете?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>держать программистов в офисе класса А делового квартала деловой столицы мира — это действительно стильно. они бы там ещё кроликов разводили
Если честно, я этого до сих пор не понимаю. В Лондоне я давно уже не сижу, сейчас работаю в нуерке. Не так давно у нас айтишников перевели из офиса в NJ в офис на манхеттене в мидтаун. Все понятное дело были против, одно дело на машине неспеша за полчасика доехать и прямо со стоянки в рубашке зимой до рабочего места дойти и совсем другой коленкор, когда надо пилить на автобусе или электричке час. Никто до сих пор не понимает смысла сего действа, всем было и удобнее и офис явно дешевле. Высший менеджмент заявляет, что все было проделано ради экономии.... как это возможно — выше моего понимания.
Здравствуйте, Vzhyk, Вы писали:
>> V>Вероятность здесь неприменима. Применима только Ваша уверенность что >> V>скорее всего будет или не будет успешна, а это исключительно >> V>субъективная вещь и притом зависит от опыта. >> >> Нет. Именно вероятность, которая и становится основой "уверенности". V>Ну и назови мне вероятность возврата ошибки функцией close(). Да, потом V>я задам вопрос, как ты ее считал.
Непосредственно для close() не назову, разумеется. Могу прикинуть вероятность отказа памяти/контроллера/HDD в интервале скольких-то там миллисекунд, в течение которых работает close. Для современных MTBF вероятность отказа в течение миллисекунды что-то порядка 1.0E-9%. ИМХО, вполне приемлемо, чтобы считать её нулём в практическом смысле. Даже если загрубить оценки на три порядка, то всё равно надёжность останется приемлемой.
Источником ошибок может быть, как правильно сказал landerhigh, что-то вроде неожиданного выдёргивания флэшки (или банальное окисление контактов). Вот поэтому для надёжности надо поступать так: либо выполнять fflush-с-проверкой/fclose-без-проверки, либо fclose-с-проверкой. Просто, чтобы убедиться, что буфер ушёл на носитель. Доказательство нахождения буфера на носителе делегируем ОСу. Я предпочитаю первый вариант.
V>А по жизни ты именно свой опыт и ассоциируешь с вероятностью.
По жизни у меня полно опыта с отказывающими и нестабильными IDE-контроллерами, памятью, материнками и т.п. Но всё равно я свожу эту вероятность к "пренебрежимо малой" (см. документацию к комплектухе) и по три раза каждую операцию не проверяю.
>> Э... Зависит от многих факторов. Понятно, что "в реальности" требования >> к качеству зачастую снижаются. Но как тебе сказать... Собеседование, это >> своего рода игра. В сущности, игра несложная. Если даже в неё играть по >> правилам "тяп-ляп", то в этой самой пресловутой "реальности" всё может >> оказаться гаже и плоше. V>Лично мне такая игра не интересна. Или есть взаимовыгодное V>сотрудничество или нет.
Что значит "не интересна"? Сам же внизу пишешь, что свои правила такой игры для тебя тоже есть. Выходит — интересна, но по другим правилам.
>> >>> > >>> > Именно. И именно в случае тестового задания на собеседовании имеет смысл >>> > показать полную обработку ошибок. >> V>Это уже Ваше видение, я противник такого. Собеседование — практически >> V>всегда стресс и гарантировано, практически каждый человек наделает ошибок. >> >> Ошибки ошибкам рознь. Можно забыть последовательность параметров или >> название метода. То о чём я здесь говорю — принципиальные вещи. V>Опять, повторюсь, это для тебя принципиальные вещи.
Слушай, ну я уж не знаю. Если не проверять возможные ошибки там, где они запросто могут возникнуть (как в том close, который скидывает буфер на диск), то я уж не знаю, что тогда можно считать принципиальным. Что не позабыл арифметику?
V>Для меня нет, например. И из-за подобной неточностью на собеседовании я ни в коем V>случае не собираюсь отказывать специалисту, которые в общем-то V>справиться с задачами для него. V>Если какой-либо момент принципиальный, с точки зрения будущих задач, я V>сам укажу человеку на него, и послушаю, что он скажет.
А можно поподробнее о тесте? Сдаётся мне... В прочем, пока не важно, что именно мне кажется.
>> >> Ну, если бы я увидел тест без проверок открытия/записи, то однозначно бы >> засомневался в кандидате. Что он показывает? Что может быстро-быстро >> прилепить одну команду к другой в более или менее правильном порядке? V>Ну тогда, как много ты видел людей, которые могут эту "правильную" V>последовательность сделать?
Какую? open/write/flush/close? Все, с кем работал... Что я сотворил не так?
V>Например, тест, который мы даем кандидатом может иметь громадное V>количество путей решения. И на многие мелочи эффективнее не обращать V>внимания, а смотреть на ключевые моменты.
Ну хотя бы вкратце сможешь рассказать про тест?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
N_>>А можно к вам на удаленку? O>Это хлебное место уже занято московским центром разработки. Денежки там прокачиваются...
Здравствуйте, игппук, Вы писали:
И>...мое сердце от этого не дрогнет.
Ах! Каменное сердце!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, landerhigh, Вы писали:
L>если у Вас проект уже горит из-за чужих ошибок в коде, а Вы до сих пор не определились кто архитектуру будет в поверпоинте дизайнить, то у Вас что-то явно не так в консерватории.
Ну блин, я для примера привел гипотетическую ситуацию, в которой распальцованный синьор команде не нужен.
если ты к "знаниям математики" причисляешь умение манипулировать битами, производить между ними логические операции, а также уметь работать с булевыми операциями, то это одно. я в общем то не согласен, что это есть математика в ее обычном (школьном) понимании. знание таких вещей ко мне пришло из ассемблера и электроники, а не из математики. обычная, школьная математика, аля "реши квадратное уравнение", "посчитай интеграл" и так далее, программисту не нужна. кроме того, топикстартер сам не знает, чего он хочет. с одной стороны он требует школьных знаний по математике, а с другой стороны дает задачку по геометрии.
каждый день занимаюсь программированием, и математика мне не нужна. как объяснить такой парадокс?
Здравствуйте, zakima, Вы писали:
Z>Но там и не задают таких вопросов как записать строчку в файл... Т.е. лично мне больше всего не нравится третий вопрос — про второй — ну некоторые конторы практикуют вообще собеседование по алгоритмам (Гугл и МС, например). И там много чего нужно продемонстрировать, что потом никому не нужно будет. Правда нужно приготовиться платить хорошо за тех, кто их проходит.
Я не знаю как хайрят в МС/Гугл Индия, но в США система телефонного скрининга работает хорошо. Ну и к резюме доверия побольше (т.е. в 9 из 10 случаев джуниор так и пишет в резюме "джуниор"). На телефонном интервью задают только вопросы соответствующие уровню, задекларированному в резюме. А на интервью пригласят только если смог пройти телефонный скрининг.
К сожалению, в Индии это не работает. Резюме не-синьоров там нет. И эффективность телефонного скрининга очень низка.
Несмотря на то, что среди кандидатов встречаются очень и очень хорошие.
Кстати, в США по крайней мере, з/п в Гугл и МС значительно ниже средней по палате. И да, без очень хорошего знания математики попасть туда сложно.
Z>Кстати, интересный вопрос — где-то гуляет анекдот про индийских программеров — что приходит первый срезается на первом вопросе, приходит второй — на втором вопросе и т.д. В Вашем случае это не так?
Я вообще этот анекдот тоже раньше слышал. Поэтому стараюсь никогда не повторяться. Хоть минимально изменять вопросы.
Здравствуйте, Nik_1, Вы писали:
N_>Тока мне кажется, что производительность спеца за 25/ч в Киеве будет в несколько раз выше производительности спеца за 30/ч в штатах. 25/ч в Киеве- это сеньер хорошего уровня, 30/ч в штатах — жуниор с качеством кода "сделано на коленках". Так что врезультате экономия будет не 5/ч, а куда больше.
Ну я сравниваю людей одинакового уровня. 25 за мид-лев это не то, что человек получит на руки, а то что его аутсорсинговая компания нам биллит. Подозреваю что он получает значительно меньше.
Здравствуйте, craft-brother, Вы писали:
CB>Нет смысла на техническом интервью тестировать память и знание деталей.
CB>А.Пуанкаре (Математическое творчество. М., 1909) выделял три уровня способностей к математике.
CB>1. Совершенно неспособные. Не обладают ни силой памяти, ни вниманием.
Спасибо, интересно. Мне кажется, что и (2), и (3) это хорошие кандидаты. Вопрос в том, как отсеятб (1)?
Здравствуйте, net_work_search, Вы писали:
__>Что хотелось посоветовать автору. На мой взгляд была правильно высказана мысль, что не нужно требовать конкретных формул. Лучше составить какие-нибудь задачи не на знание самой формулы, а на знание того, что такая формула есть и уметь эту формулу применить где нуна (кто там бассейны заполняет ? И обязательно отказаться от манеры "если в течении 5 минут не отвечает — no hire". Это — самое ужастное. Это, во-первых, некрасиво, во-вторых, может вообще очень пагубно сказаться на самооценке кандидата.
Спасибо за мнение.
Ну я конечно не говорю кандидатам прямо на интервью "5 минут вышло. No hire! Пшел вон отсюда, бездарность". Кроме того, интервью проводится как минимум 2-3 интервьюверами. Если человек сыпется на 3-х вопросах, то я просто сразу отмечаю "no hire" на бумажке и больше ни о чем не спрашиваю, нет смысла мне терять время, потому что остальные мои вопросы он тоже вряд ли осилит. Но даже в этом случае если два других интервьювера скажут "hire", то его возьмут. Впрочем еще не было случая, чтобы человек не смог просуммировать элементы массива, и кто-нибудь из коллег хотел бы его далее спрашивать. А вот с математикой ситуация другая: не все считают, что программистам, особенно веб, flash etc оно надо. Отсюда и возник вопрос.
Ты запутался в словах и смыслах, вот и всё объяснение.
И>если ты к "знаниям математики" причисляешь умение манипулировать битами, производить между ними логические операции, а также уметь работать с булевыми операциями, то это одно. я в общем то не согласен, что это есть математика в ее обычном (школьном) понимании. знание таких вещей ко мне пришло из ассемблера и электроники, а не из математики.
Математика — это не только школьная программа. Кстати, геометрия — это математика или нет? А алгебра?
И>обычная, школьная математика, аля "реши квадратное уравнение", "посчитай интеграл" и так далее, программисту не нужна. кроме того, топикстартер сам не знает, чего он хочет. с одной стороны он требует школьных знаний по математике, а с другой стороны дает задачку по геометрии.
Вообще-то, говоря о математике, я имел в виду примерно программу 1-го — 3-го курса технического вуза. Хотя в любом случае подготовительную роль школьной математики недооценить сложно, пусть ты и не считаешь квадратные уравнения каждый день.
И>каждый день занимаюсь программированием, и математика мне не нужна. как объяснить такой парадокс?
А его нет, этого парадокса. Объяснять нечего. Ты пользуешься математическим аппаратом, предпочитая называть его "пришедшим из ассемблера и электроники". Только и всего.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Phoenics, Вы писали:
G>>З.Ы. Кстати, а почему по физике из школьного курса никаких вопросов? Или там по химии — че-нить про бензольные колца? Тоже ведь школа, элементарщина...
P> Предлагаю на собеседовании добавить вопрос про пестики и тычинки
Да-да! С практическими примерами из предыдущего опыта!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
L>>Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. То ли никто не читает резюма, приглашая всех подряд, то ли, что вероятнее, объявление составлено так, что никто, кроме означенных персонажей, не беспокоится. Или просто хотят Эйнштейна за рубль.
MC>Вы просто не работали с индусами
А с русскими не так? Распальцованных не видел, но людей, работавших сеньерами, которых даже в джуниоры не имеет смысла брать — полно.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, vsb, Вы писали:
vsb>>Здравствуйте, mymuss, Вы писали:
M>>> 3. записать текущую дату в текстовый файл
vsb>>
vsb>>#!/bin/sh
vsb>>date > filename
vsb>>
vsb>>подошло бы? Просто интересно.
M>Конечно! Бонус за эффективность решения. Пока, к сожалению, таких решений кандидаты не предлагали.
А какже то, что ты говорил про орработку возвращенного результата open? а тут тоже нет проверки что файл не смог создаться. Получается, что не должно подойти.
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, catBasilio, Вы писали:
B>А какже то, что ты говорил про орработку возвращенного результата open? а тут тоже нет проверки что файл не смог создаться. Получается, что не должно подойти.
Я так понял вопрос был в том, прокатит ли такой подход к решению в свете того, что сказанно "любой язык/плафторма/ОС/..."
Кроме того, если уже заниматься буквоедством, то в данном случае стандартной практикой будет проверка $? тем, кто эту ф-цию/скрипт вызвал
Здравствуйте, mymuss, Вы писали:
M> 2. найти площадь круга по радиусу
Лучше спрашивай как найти клощадь треугольника. Про круг помнят с младших классов, и это въедается в голову. А вот площадь треугольника я думаю сходу более 90% не сможет найти.
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, landerhigh, Вы писали:
ГВ>>[...] Тут уже впору не беситься, а сочувствовать. L>Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. [...]
Давай не будем сферолошадей обсуждать. Я исключительно о реакции людей говорю. Причины такой ситуации могут быть самыми разнообразными, это уже для отдельного топика.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, landerhigh, Вы писали:
MC>>Вы просто не работали с индусами L>В мой профайл бы посмотрел сначала. L>Хотя прав, почти не работал, да. Судьба миловала. Пока. L>Правда, бывают и хуже.
Кстати, мне доводилось с индусами работать. Я им даже лекции читал. Чуть-чуть совсем. По Excel.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, catBasilio, Вы писали:
B>Лучше спрашивай как найти клощадь треугольника. Про круг помнят с младших классов, и это въедается в голову. А вот площадь треугольника я думаю сходу более 90% не сможет найти.
Не, так смысл не завалить всех, а лишь отсеять плохих кандидатов. Я иногда задаю найти площадь прямоугольного треугольника, это даже если не знать, то надо быть полным тормозом чтобы не догадаться.
А если мне вдруг хочется засыпать кандидата, то задаю написать ф-цию для решения системы двух линейных уравнений. a11..a22, b1, b2, x1, x2 \in R.
Еще никто не справился. Впрочем, в свое время я и сам засыпался на этом вопросе
Здравствуйте, landerhigh, Вы писали:
M>>Отлично! Сразу ясно, человек настроен не работать, а гонять понты. А если ему завтра дадут задание: срочно найти в чужом коде ошибку, проект горит, никто не может выяснить в чем дело. А он скажет "Я тут синьор, такой чепухой заниматься не собираюсь. Давайте я лучше буду архитектуру системы дизайнить и в паверпоинте рисовать". Ну и зачем такой "синьор"? L>Понты тут пока гоняет кто-то один.
Угу, и имя ему — легион.
L>Как знание формулы круга поможет найти в чужом коде ошибку, о великий гуру?
Знание формулы круга может быть, и не поможет. А вот соответствующее поведение на собеседовании может служить косвенным признаком того, что человек настроен отвечать только на вопросы определённого характера, притом исключая даже смежные области знания. Это ни хорошо ни плохо. Но такой стиль работы может быть неприемлемым для отдельно взятой организации.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, olegkr, Вы писали:
SE>>>Ищу программиста — проверяю его алгоритмический и математический бекграунд. O>>Не совсем понимаю, вы ищете математика или программиста?
ГВ>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K?
вот сколько работаю программером, а знаний математики больше чем таблицы умножения применять не приходилось. С момента окончания универа ниразу не приходилось считать синусы, косинусы, интегрировать, дифференцировать, логарифмы считать ...
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, EyeOfHell, Вы писали:
EOH>Добавлю свои пять копеек. Если вопрос идет не о найме мастера-зомбивода который будет всех за ниточки дергать, то хотелось бы чтобы человек нормально уживался в колективе. Если человек обижается по мелочам... .
Тут дело не в обиде, просто после второго-третьего пройденного собеседования с более или менее равными по совокупности предложениями начинаешь обращать внимание на любые мелочи чтоб было проще определиться
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, alcotras, Вы писали:
ГВ>Ладно, извини, я погорячился в предыдущем сообщении.
ГВ>>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? A>>Зачем этот rocket science при разработке типичных бизнес-приложений?
ГВ>Ну ты сам не понимаешь или стебёшься?
Ни капли стеба. Из десятка людей, кого по отрасли знаю, ни одному незнание этих вещей не мешает поднимать 90-120000р в месяц.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Математика — это не только школьная программа. Кстати, геометрия — это математика или нет? А алгебра?
И геометрия и алгебра и даже начертательная геометрия — это все разделы матемарики. Так что топикстартеру можно на собеседовании вполне задавать вопросы, как по двум имеющимся проекциям начертить третью. Как начертить болт и т.д.
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Здравствуйте, catBasilio, Вы писали:
ГВ>>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K? B>вот сколько работаю программером, а знаний математики больше чем таблицы умножения применять не приходилось. С момента окончания универа ниразу не приходилось считать синусы, косинусы, интегрировать, дифференцировать, логарифмы считать ...
Логарифмы даже по основанию 2?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, alcotras, Вы писали:
ГВ>>>>На вскидку: теория множеств, булева алгебра. Это всё так, мимо проходили, да? A>>>Зачем этот rocket science при разработке типичных бизнес-приложений? ГВ>>Ну ты сам не понимаешь или стебёшься?
A>Ни капли стеба. Из десятка людей, кого по отрасли знаю, ни одному незнание этих вещей не мешает поднимать 90-120000р в месяц.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, catBasilio, Вы писали:
ГВ>>>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K? B>>вот сколько работаю программером, а знаний математики больше чем таблицы умножения применять не приходилось. С момента окончания универа ниразу не приходилось считать синусы, косинусы, интегрировать, дифференцировать, логарифмы считать ...
ГВ>Логарифмы даже по основанию 2?
Я думаю, что профессия служит для подсчета денег в бумажнике, а не для подсчета, прости Господи, логарифмов всяких. Ежели конечно кто с rocket science имеет дело, то тогда понятно, без вопросов.
Здравствуйте, mymuss, Вы писали:
M>Ну я сравниваю людей одинакового уровня. 25 за мид-лев это не то, что человек получит на руки, а то что его аутсорсинговая компания нам биллит. Подозреваю что он получает значительно меньше.
Ну тогда думаю сравнивать эти числа некоректно, надо и для US брать цену аутсорсовой конторы, а это наверно >50.
PS. Хз, мож в написании скриптов для веба индусы действительно нетак плохи)) В этой области не работал — мож там все подругому. Но вот с плюсами в Индии все очень печально. Много работал с индусами( заказывали часть на аутсорс в Випро + в американском офисе нашей конторы их много работает) — качество и скорость того что они пишут оставляет желать лучшего..
. В качестве примера, ИМХО, вполне. A>И что дальше? Код работает — работает. А значит, нечего трогать. Есть вещи и поважнее, чем крастоу наводить.
Сначала "не трогать пока работает", а потом "легче переписать, чем разбираться где оно не работает".
Рефакторингом заниматься надо. Может очень много времени сэкономить.
Здравствуйте, catBasilio, Вы писали:
ГВ>>Вот только не надо говорить, что у программиста не должно быть математического бэкграунда, O'K?
B>вот сколько работаю программером, а знаний математики больше чем таблицы умножения применять не приходилось. С момента окончания универа ниразу не приходилось считать синусы, косинусы, интегрировать, дифференцировать, логарифмы считать ...
Синусы-косинусы и даже тангенсы могут потребоваться в трёхмерной компьютерной графике.
A>Я про такие выражения узнал на первом курсе. A>А про теорию множеств, булеву алгебру на 2-м или на 3-м. И уже запоминал, что U это как ||, а ^ это как &&, ну чёрточка вверху — это ! . A>Проходил это я очень подробно, с кучей доказательств. Но в голове ничего не осталось. A>А как применить отрицание к целому выражению я и до этих курсов знал.
Ахаха у меня почти так же, разве что про || и && я знал еще до универа.
EOH>Добавлю свои пять копеек. Если вопрос идет не о найме мастера-зомбивода который будет всех за ниточки дергать, то хотелось бы чтобы человек нормально уживался в колективе. Если человек обижается по мелочам... .
Для этого есть другие этапы собеседования.
Здравствуйте, Nik_1, Вы писали:
N_>Ну тогда думаю сравнивать эти числа некоректно, надо и для US брать цену аутсорсовой конторы, а это наверно >50.
Можно и за 350 найти )) Я сравниваю частный случай: повесить объявление на монстр и посадить человека в существующий офис или заплатить посреднику за то что он найдет человека в Украине и посадит его в свой офис.
В первом случае мои расходы 35 в час + маргинальное увеличение расходов на офис (ну там купить комп, телефонную линию и на 2 пакета кофе в день больше станут выпивать). Хотя, если речь о 100 человеках, то расклады другие.
В общем, что хочу сказать. Я сравниваю не два сферических коня аналогичной модели, а расходы на разработку продукта. Может и не корректно с академической точки зрения, но коррекно с точки зрения бизнеса.
N_>PS. Хз, мож в написании скриптов для веба индусы действительно нетак плохи)) В этой области не работал — мож там все подругому. Но вот с плюсами в Индии все очень печально. Много работал с индусами( заказывали часть на аутсорс в Випро + в американском офисе нашей конторы их много работает) — качество и скорость того что они пишут оставляет желать лучшего..
А еще они неплохи в биохимии, в графическом дизайне, в архитектуре и куче других областей. Я не работал с плюсами, но почти уверен, что это вам просто неудачная команда или человек попалась.
Есть только одна область в которой они отвратительно справляются: customer support. Кто в штатах пожил меня поймет
craft-brother пишет: > > 2.«Паковщики» > > 3. «Картостроители» > > ИМХО, программирование и математическое доказательство имеют много > общего, поэтому «картостроители» гараздо более полезны в в > программировании.
Нет, наиболее полезна именно вторая категория — таких нужно 90% и только
10% третьей.
Немного категорично звучит, но вы по своей конторе, пусть даже полеты
ракет просчитываете, посмотрите.
elmal пишет: > > V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение? > Ща расскажу тоже примерчик. Встретил недавно в коде конструкцию как-то: > if (!updateBtnShow || !(!updateBtnShow || !(isCustomer))) ... > > Кстати, после того, как я это упростил и понял че там хотели проверить, > оказалось, что условие выполняется вообще всегда и if надо убрать вообще.
Ну если хвастаться кодом, который я видел, то этот if — вообще
прекрасно читабельная вещь. Могу выслать в личку.
Геннадий Васильев пишет: > > и по > три раза каждую операцию не проверяю.
Ну вот.
> > А можно поподробнее о тесте? Сдаётся мне... В прочем, пока не важно, что > именно мне кажется.
Если только в личку (пиши, если интересно), не хочу тут лишнего
рассказывать.
> > V>Ну тогда, как много ты видел людей, которые могут эту "правильную" > V>последовательность сделать? > > Какую? open/write/flush/close? Все, с кем работал... Что я сотворил не так?
Тебе везло.
> > Ну хотя бы вкратце сможешь рассказать про тест?
В личку.
Здравствуйте, Dog, Вы писали:
Dog>Я ещё понимаю если спрашивают задачку про домики или люки...
Что такое задачка про домики я не знаю, но скажи мне сколько людей сами решат задачу про люки? Я лично не решу. А про три лампочки и подвал?... Зато сейчас все ее знают.
Есть замечательная книга по головоломкам на собеседовании "Как сдвинуть гору Фудзи", так вот там делается такой вывод: "Умение решать головоломки показывать только... умение решать головоломки" (по памяти) и ничего более.
P.S. Зато задачу Эйнштейна решил сам (может это и есть домики?)
Геннадий Васильев пишет: > > A>И что дальше? Код работает — работает. А значит, нечего трогать. Есть > вещи и поважнее, чем крастоу наводить. > > Эту красивую декларацию я слышал несчётно. Код и правда не надо менять, > если он работает и... > > И если нет возникает потребности его изменить. > > Вот эта оговорка отрезвляет кого хошь.
Так вот именно эту оговорку ты выше и трактовал по своему, а не так как
написано (в ней есть "если").
gandjustas пишет: > > A>И что дальше? Код работает — работает. А значит, нечего трогать. Есть > вещи и поважнее, чем крастоу наводить. > > Сначала "не трогать пока работает", а потом "легче переписать, чем > разбираться где оно не работает". > Рефакторингом заниматься надо. Может очень много времени сэкономить.
Или потратить.
З.Ы. Я не против рефакторинга, а только за, но в жизни все не так
красиво, как хотелось бы.
alzt пишет: > > > Синусы-косинусы и даже тангенсы могут потребоваться в трёхмерной > компьютерной графике.
Могут, но как много программистов с ней работает? Большинство залач
совсем другого профиля.
Dog>>Я ещё понимаю если спрашивают задачку про домики или люки... A>Что такое задачка про домики я не знаю, но скажи мне сколько людей сами решат задачу про люки? Я лично не решу.
И не надо. Задача на логику это лишь повод для разговора.
Конечно если дать задачку и сидеть смотреть как человек тупит, то о чём можно говорить.
Основная задача это разговорить человека, посмотреть как он мыслит и в этом ему надо постоянно помогать.
A> А про три лампочки и подвал?... Зато сейчас все ее знают.
Я не знаю
A>Есть замечательная книга по головоломкам на собеседовании "Как сдвинуть гору Фудзи", так вот там делается такой вывод: "Умение решать головоломки показывать только... умение решать головоломки" (по памяти) и ничего более.
Вы не правильно поняли. Это тут не основное.
Здравствуйте, Vzhyk, Вы писали:
V>Нет, наиболее полезна именно вторая категория — таких нужно 90% и только V>10% третьей. V>Немного категорично звучит, но вы по своей конторе, пусть даже полеты V>ракет просчитываете, посмотрите.
Здравствуйте, Vzhyk, Вы писали:
>> и по >> три раза каждую операцию не проверяю. V>Ну вот.
Что — "ну вот"?
>> >> А можно поподробнее о тесте? Сдаётся мне... В прочем, пока не важно, что >> именно мне кажется. V>Если только в личку (пиши, если интересно), не хочу тут лишнего V>рассказывать.
Да нет, в личку не надо. Не хочешь — не рассказывай.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Честно сказать, я всё равно не слишком понимаю, как можно не помнить формулу площади круга/длины окружности. Ну да не суть. Я больше оспаривал позицию, которая заключается в том, что подобные знания не нужны и за попытку осведомиться о них нужно немедленно покидать собеседование.
ГВ>Но много больше меня удивило то, что "целочисленное переполнение" упомянул, по-моему, я один.
Меня недавно на собеседовании попросили написать фукнкцию, которая находит корни квадратного уравнения. Вызвало улыбку, что формулу то я оказывается не фига уже и не помню! Написал более менее (дискриминант еще сидит где-то в глубинах , интервьюер подошел, добавил парочку множителей в формулу (я забыл про A в знаменателе и про минус перед B в числителе) и попросил скорректировать (дополнительные проверки на нуль и т.п.). Короче понимание было, хотя собеседование я всё же не прошел — по сути был не подготовлен даже морально, ждал других вопросов. Но убегать сразу с собеседования — это вообще маразм какой-то, почти профнепригодность. Того гляди, дашь задачу человеку, а он из-за этого с работы убежит!
Здравствуйте, Dog, Вы писали:
Dog>Вы не правильно поняли. Это тут не основное.
Да, я уже извинился за то что не в тему прикалупался
Dog>И не надо. Задача на логику это лишь повод для разговора. Dog>Конечно если дать задачку и сидеть смотреть как человек тупит, то о чём можно говорить. Dog>Основная задача это разговорить человека, посмотреть как он мыслит и в этом ему надо постоянно помогать.
Ну и люки тут тоже сливают, лучше, как уже много раз было сказано спрашивать стандартное: с какими проблемами сталкивались на прошлых проектах, как решали, ...
A>> А про три лампочки и подвал?... Зато сейчас все ее знают. Dog>Я не знаю
Очень грамотная задача Только для ее решения нужно вырваться из стериотипов мышления. Кто сможет ее решить? Я хз.
На правах оффтопа:
Есть три выключателя, каждый из них включает одну из трех лампочек в подвале. Как узнать какой выключатель от какой лампочки, всего лишь один раз спустившись в подвал?
Здравствуйте, игппук,
И>каждый день занимаюсь программированием, и математика мне не нужна. как объяснить такой парадокс?
--
Наверное, это можно объяснит тем, что Вы — "профессиональный программист", а не "программирующий профессионал".
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, ihatelogins, Вы писали:
I>>Чем принципиально отличается знание для программиста площади круга от знания тезисов 20-го съезда КПСС?
SE>Чем принципиально отличается умение сосчитать до десяти от знания площади круга? SE>Есть общечеловеческий бекграунд. Нам его дают в младших и средних классах школы. SE>Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил.
Ряды Лагрнджа проходят на 2-ом курсе института. Если вы мне не отвечаете на этот вопрос, то значит вы не закончили институт?
Геннадий Васильев пишет: > >> > и по >> > три раза каждую операцию не проверяю. > V>Ну вот. > > Что — "ну вот"?
То, что проверяешь только то, что важно в данной задаче и основываясь
исключительно на своем опыте.
net_work_search пишет: > > сути был не подготовлен даже морально, ждал других вопросов. Но убегать > сразу с собеседования — это вообще маразм какой-то, почти > профнепригодность. Того гляди, дашь задачу человеку, а он из-за этого с > работы убежит!
Запросто. Имел возможность и такое наблюдать. Хотя, конечно, это редкость.
Геннадий Васильев пишет: > > V>Так вот именно эту оговорку ты выше и трактовал по своему, а не так как > V>написано (в ней есть "если"). > > Так что, не надо ля-ля, всё я правильно трактовал.
Это ты уже о знаниях и разных, их необходимости или обходимости. А в той
поговорке все вполне четко и ясно написано.
А философствовать можно много, но смысл?
Геннадий Майко пишет: > > Наверное, это можно объяснит тем, что Вы — "профессиональный > программист", а не "программирующий профессионал".
А сантехник профессионал или нет?
Здравствуйте, Vzhyk, Вы писали:
>> Что — "ну вот"? V>То, что проверяешь только то, что важно в данной задаче и основываясь V>исключительно на своем опыте.
Разумеется, а что же ещё проверять, как не то, что важно в данной задаче? Либо ты пытаешься найти противоречие, где его нет, либо я тебя не понимаю.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Vzhyk,
>> Наверное, это можно объяснит тем, что Вы — "профессиональный >> программист", а не "программирующий профессионал". V>А сантехник профессионал или нет?
--
Да, если сантехник может отлично выполнить свою сантехническую работу — он профессионал. А что Вас в этом смущает?
Gradient пишет: > > Если в начале проекта юзать копипасты, трехэтажные булевые выражения, не > писать тесты — то проект имеет шанс вообще не закончится. Что для > конторы, понятно, невыгодно.
Имеет и заканчивается и часто вполне успешно.
Да, это не хорошо, это не красиво, это не надежно (еще можно написать
сюда кучу не) — но этого достаточно в конкретном случае.
Если бы я писал здесь исходя из прочитанной теории, я бы с тобой был
согласен. Но практика с теорией соотносятся постольку, поскольку.
У меня есть прекрасный пример RESIF. И сгубило эту контору отнюдь не
плохое качество их кода (например метод класса в 100 экранов был нормой).
Здравствуйте, Vzhyk, Вы писали:
>> Так что, не надо ля-ля, всё я правильно трактовал. V>Это ты уже о знаниях и разных, их необходимости или обходимости. А в той V>поговорке все вполне четко и ясно написано.
А из-за чего мне пришлось ту оговорку написать? Из-за того, что кто-то попытался сказать, что, мол, "работает — не трогай". А это противоречит эмпирическому правилу: не переделывают только совершенно ненужные программы. Следовательно:
а) нужные программы переделывают;
б) направление переделок труднопредсказуемо;
в) необходимые для переделок познания наперёд неизвестны;
г) лишних знаний не бывает;
д) "работает — не трогай" — в чём-то красивый, хотя и глуповатый призыв.
Далее см. весь этот топик.
Где противоречие? Что я трактовал сугубо по-своему?
V>А философствовать можно много, но смысл?
А мы ещё не знаем, есть смысл в этом философствовании или нет. Ну, придётся подождать, как минимум, до первого Change Request.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Dog>>зы. А вообще автор зря не указал в первом посте, что это "индусская специфика". ГВ>Хм. Ты уверен, что это только "индусская специфика"? Я вот, уже не стал бы так говорить. а что, нонче русские сеньёры уже такие пошли(массово) ?
Геннадий Васильев пишет: > > > Разумеется, а что же ещё проверять, как не то, что важно в данной > задаче? Либо ты пытаешься найти противоречие, где его нет, либо я тебя > не понимаю.
Я спорил с утверждением проверять возврат close и подобного всегда и
везде (а оно выше было).
Здравствуйте, Vzhyk, Вы писали:
V>Геннадий Васильев пишет: >> >> >> Разумеется, а что же ещё проверять, как не то, что важно в данной >> задаче? Либо ты пытаешься найти противоречие, где его нет, либо я тебя >> не понимаю. V>Я спорил с утверждением проверять возврат close и подобного всегда и V>везде (а оно выше было).
Странно, write — проверять по идее надо (с этим никто, вроде, не спорит). А close можно и без flush, и без проверки. Так, что ли, получается?
Да, я написал выше про вероятность отказа за короткое время, но это только аппаратный отказ, да ещё и только для случая HDD, который спрятан в корпусе компьютера. На деле может оказаться какая-нибудь жёваная дискета, царапаный DVD, засаленая флэшка, сеть без заземления и т.д. А мы пуляем туда буфер, не озабочиваясь проверкой, в абсолютной уверенности, что раз write вернула OK, то и flush так сделает. Гы-гы, смешно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий Васильев пишет: > > > А из-за чего мне пришлось ту оговорку написать? Из-за того, что кто-то > попытался сказать, что, мол, "работает — не трогай". А это противоречит > эмпирическому правилу: не переделывают только совершенно ненужные > программы.
Нет, переделывают только только тогда, когда это нужно для бизнеса.
Dog пишет: > > ГВ>Хм. Ты уверен, что это только "индусская специфика"? Я вот, уже не > стал бы так говорить. > а что, нонче русские сеньёры уже такие пошли(массово) ?
Сеньоры не сеньоры, но уже немало.
Здравствуйте, Vzhyk,
V>Профессиональный программист — понятно. V>Программирующий математик (ученый) — понятно.
V>А вот программирующий профессионал — сферический конь, что ли?
--
Подставьте вместо "профессионал" название любой другой профессии (включая сантехнические и оцените, как резко может увеличится "ценность" такого специалиста, если он умеет еще и программировать.
Например — электронщик, знающий програмирование. Или механик. Или лингвист. Или бухгалтер. И т.д.
Геннадий Васильев пишет: > > > Странно, write — проверять по идее надо (с этим никто, вроде, не > спорит). А close можно и без flush, и без проверки. Так, что ли, > получается?
Да. Кстати и write ИНОГДА тоже можно. А вот open сам по себе потребует .
Здравствуйте, Vzhyk, Вы писали:
V>elmal пишет: >> >> V>Прекрасно. Но в чем смысл сего действа? Эстетическое удовлетворение? >> Ща расскажу тоже примерчик. Встретил недавно в коде конструкцию как-то: >> if (!updateBtnShow || !(!updateBtnShow || !(isCustomer))) ... >> >> Кстати, после того, как я это упростил и понял че там хотели проверить, >> оказалось, что условие выполняется вообще всегда и if надо убрать вообще. V>Ну если хвастаться кодом, который я видел, то этот if — вообще V>прекрасно читабельная вещь. Могу выслать в личку.
нет уж. ты не стесняйся — ты всем покажи.
Здравствуйте, Vzhyk, Вы писали:
>> А из-за чего мне пришлось ту оговорку написать? Из-за того, что кто-то >> попытался сказать, что, мол, "работает — не трогай". А это противоречит >> эмпирическому правилу: не переделывают только совершенно ненужные >> программы. V>Нет, переделывают только только тогда, когда это нужно для бизнеса.
Не переделывают только совершенно ненужные программы ==> Иногда переделывают только некоторые нужные программы.
Приклеиваем сюда твоё: "переделывают только только тогда, когда это нужно для бизнеса". Получаем уточнение предыдущего высказывания, которое никак его не опровергает исходную посылку.
Тебе надо было сказать так: "Более того, переделывают только только тогда, когда это нужно для бизнеса".
Посему, Вжик, ты не прав.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий Майко пишет: > Подставьте вместо "профессионал" название любой другой профессии > (включая сантехнические и оцените, как резко может увеличится "ценность" > такого специалиста, если он умеет еще и программировать. > > Например — электронщик, знающий програмирование. Или механик. Или > лингвист. Или бухгалтер. И т.д.
Ни на сколько.
Здравствуйте, Vzhyk, Вы писали:
>> Странно, write — проверять по идее надо (с этим никто, вроде, не >> спорит). А close можно и без flush, и без проверки. Так, что ли, >> получается? V>Да. Кстати и write ИНОГДА тоже можно. А вот open сам по себе потребует .
Иногда — можно. В тесте на собеседовании — ИМХО, имеет смысл выказать осторожность.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий Васильев пишет: > > > Иногда — можно. В тесте на собеседовании — ИМХО, имеет смысл выказать > осторожность.
Можно и, наверное, нужно, но не все это могут, стресс, однако.
Пример, учился я в школе с парнем — очень неплохо на минских городских
олимпиадах тот выступал по математике — при поступлении на мехмат бгу
завалился.
Здравствуйте, Геннадий Васильев, Вы писали:
И>>каждый день занимаюсь программированием, и математика мне не нужна. как объяснить такой парадокс?
ГВ>А его нет, этого парадокса. Объяснять нечего. Ты пользуешься математическим аппаратом, предпочитая называть его "пришедшим из ассемблера и электроники". Только и всего.
позвольте уточнить термины. для этого прошу ответить на следующий вопрос:
Здравствуйте, игппук, Вы писали:
И>>>каждый день занимаюсь программированием, и математика мне не нужна. как объяснить такой парадокс? ГВ>>А его нет, этого парадокса. Объяснять нечего. Ты пользуешься математическим аппаратом, предпочитая называть его "пришедшим из ассемблера и электроники". Только и всего.
И>позвольте уточнить термины. для этого прошу ответить на следующий вопрос:
И>это математика? И>
И>add ax, bx
И>
Да. Притом не самая простая.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, mymuss, Вы писали:
M>>Если забудет проверить что вернуло open(), но при этом проверит, что вернуло write(), то я это вообще ошибкой не считаю. А так, предложу подумать, что можно улучшить в коде. AG>Хочу сказать, что open() было популярно лет 30 назад, когда не было C++. Пора бы уже почитать у Страуструпа про std::stream. Также почитайте про стратегию обработки ошибок через исключения — это тоже уже давно изобрели.
Я предлагаю любой язык, который кандидату удобнее. Потому что, положим в C# человек программирует 99% времени, но вот с файлами не сталкивается. Но хоть какой-то способ записать в файл должен помнить (хоть на бейсике или на паскале)? Товарищ, который площадь круга забыл, спросил "Что даже на С можно?". Я ему "Без проблем". Так оно в этот топик и попало. Мне, в общем-то, фиолетово С или С++, он на AJAX/JavaScript/VB.NET подавался.
Здравствуйте, Vzhyk, Вы писали:
>> Иногда — можно. В тесте на собеседовании — ИМХО, имеет смысл выказать >> осторожность. V>Можно и, наверное, нужно, но не все это могут, стресс, однако.
Слишком много на "стресс" валить тоже не надо.
V>Пример, учился я в школе с парнем — очень неплохо на минских городских V>олимпиадах тот выступал по математике — при поступлении на мехмат бгу V>завалился.
Сравнил... Одно дело, когда для вчерашнего школьника решается вопрос, чем он будет заниматься в ближайшие 5 лет, а другое — когда специалист беседует с другими такими же специалистами.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>А если мне вдруг хочется засыпать кандидата, то задаю написать ф-цию для решения системы двух линейных уравнений. a11..a22, b1, b2, x1, x2 \in R. M>Еще никто не справился. Впрочем, в свое время я и сам засыпался на этом вопросе
Не понял юмора, это ж основы линейной алгебры, формула Крамера. Что тут сложного ?
IID пишет: > > M>А если мне вдруг хочется засыпать кандидата, то задаю написать ф-цию > для решения системы двух линейных уравнений. a11..a22, b1, b2, x1, x2 > \in R. > M>Еще никто не справился. Впрочем, в свое время я и сам засыпался на > этом вопросе > > Не понял юмора, это ж основы линейной алгебры, формула Крамера. Что тут > сложного ?
Зачем???
А вычесть одно из другого вера не позволяет?
Я понимаю, если бы еще системы из сотни уравнений, да еще и жесткой. Но
и здесь крамер отдыхает. Крамер хорош во время преподавания, именно для
основ линейной алгебры.
Здравствуйте, IID, Вы писали:
IID>Здравствуйте, mymuss, Вы писали:
M>>А если мне вдруг хочется засыпать кандидата, то задаю написать ф-цию для решения системы двух линейных уравнений. a11..a22, b1, b2, x1, x2 \in R. M>>Еще никто не справился. Впрочем, в свое время я и сам засыпался на этом вопросе
IID>Не понял юмора, это ж основы линейной алгебры, формула Крамера. Что тут сложного ?
Та я тоже так подумал.
Ключевое слово: \in R
Разумеется, предлагалось решить на компьютере. Эту задачу мне задал преподаватель в институте, сейчас уже не помню какой курс он читал, что-то про системы символьной алгебры, кажется.
Здравствуйте, Vzhyk, Вы писали:
V>Зачем???
V>А вычесть одно из другого вера не позволяет?
Крамер в данном случае позволит получить все корни не более чем за 6 умножений, 3 вычитания, и 2 деления.
d = |a11 a12| = s11*a22 — a12*a21;
|a21 a22|
Если d == 0, то либо бесконечное число решений, либо решений нет.
Идём дальше.
x1 = |b1 a12| /d = (b1*b22 — b2*a12)/d
|b2 a22+
x2 = |a11 b1| /d = (a11*b2 — a21*b1)/d
|a21 b2|
Если начать решать "перебором", как вы предлагаете, да чтобы все случаи коэффициентов рассмотреть — будет лестница if-ов. (Если не согласны — набросайте схематично ваш вариант, а мы посмотрим.)
V>Я понимаю, если бы еще системы из сотни уравнений, да еще и жесткой. Но V>и здесь крамер отдыхает. Крамер хорош во время преподавания, именно для V>основ линейной алгебры.
Не в тему, Крамер дико плох на системах с размерностью >4. Там быстрее и эффективнее привести матрицу системы к треугольному виду.
Для небольших систем крамер очень эффективен.
Здравствуйте, Геннадий Майко, Вы писали:
ГМ>Здравствуйте, Vzhyk,
V>>Профессиональный программист — понятно. V>>Программирующий математик (ученый) — понятно.
V>>А вот программирующий профессионал — сферический конь, что ли? ГМ>-- ГМ>Подставьте вместо "профессионал" название любой другой профессии (включая сантехнические и оцените, как резко может увеличится "ценность" такого специалиста, если он умеет еще и программировать.
ГМ>Например — электронщик, знающий програмирование. Или механик. Или лингвист. Или бухгалтер. И т.д.
утрированно, есть профессинальный хирург, делающий операции,
а есть профессиональный сантехник, кот. умеет резать животы.
полезно, конечно, и плюс ему, но на операцию к нему вы не пойдете
т.е. умение резать "как хирург" не делает вас способным проводить реальные операции, даже если вы режете реально хорошо.
Здравствуйте, mymuss, Вы писали:
IID>>Не понял юмора, это ж основы линейной алгебры, формула Крамера. Что тут сложного ?
M>Та я тоже так подумал. M>Ключевое слово: \in R
непонятно что оно должно усложнить =)
M>Разумеется, предлагалось решить на компьютере. Эту задачу мне задал преподаватель в институте, сейчас уже не помню какой курс он читал, что-то про системы символьной алгебры, кажется.
Возможно преподаватель хотел получить все решения, в т.ч. в аналитическом виде когда их бесконечное число. Это тоже просто.
Здравствуйте, Vzhyk, Вы писали:
V>Но код тот работал и вполне правильно и ожидаемо и даже расширялся и V>правились баги. И то, что контора потом обанкротилась, код к этому имел
Меня таким кодом тож не испугаешь, я щас это — привиредничаю, зажрался . И, судя по описанию, код я видел гораздо хуже, чем 95% функциональности в одном методе всего лишь на 500 экранов .
Здравствуйте, IID, Вы писали:
M>>Та я тоже так подумал. M>>Ключевое слово: \in R
IID>непонятно что оно должно усложнить =)
Современные компьютеры пока что не умеют работать с числами из R. Только с Q. Поэтому, решить такое уравнение если в нем коэфициент скажем, корень из 2 или там pi как правило, невозможно. А на бумажке -- запросто.
Здравствуйте, mymuss, Вы писали:
M>Современные компьютеры пока что не умеют работать с числами из R. Только с Q. Поэтому, решить такое уравнение если в нем коэфициент скажем, корень из 2 или там pi как правило, невозможно. А на бумажке -- запросто.
Решить-то возможно, только результат будет с некоторой (довольно высокой) точностью близок к аналитическому.
Здравствуйте, mymuss, Вы писали:
M>Это лирика. В условии четко сказано x1, x2 \in R. Нет оговорки "с точностью не менее \epsilon". M>То, что можно с любой заданной точностью решить (ну в пределах возможностей оперативки, конечно), это понятно.
А в каком виде представлены эти пресловутые x1, x2 и т.д. ? Ввиде конкретных значений, или ввиде текстовых строк "а синтаксис я ща тут придумаю быстренько". Раз ничего дополнительно не оговаривалось — логично было предположить что это какое-либо существующее машинное представление действительных чисел (float, double, etc.). Опять же, если хочется универсальности, задача сводится к созданию некоторого представления этих чисел и определению у этого представления пары элементарных математических операций, навроде +-*/, проверить на ноль. После этого суём класс-представление в того же крамера и получаем результат.
IID пишет: > > Если начать решать "перебором", как вы предлагаете, да чтобы все случаи > коэффициентов рассмотреть — будет лестница if-ов. (Если не согласны — > набросайте схематично ваш вариант, а мы посмотрим.)
Тов. Гаусс вам в помощь.
Здравствуйте, Vzhyk, Вы писали:
V>IID пишет: >> >> Если начать решать "перебором", как вы предлагаете, да чтобы все случаи >> коэффициентов рассмотреть — будет лестница if-ов. (Если не согласны — >> набросайте схематично ваш вариант, а мы посмотрим.) V>Тов. Гаусс вам в помощь.
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Ваше мнение?
До идиотизма дурацкие вопросы. Если кто-то отсеивается на таком, то мир явно не в порядке.
Здравствуйте, Vzhyk, Вы писали:
V>IID пишет: >> >> Если начать решать "перебором", как вы предлагаете, да чтобы все случаи >> коэффициентов рассмотреть — будет лестница if-ов. (Если не согласны — >> набросайте схематично ваш вариант, а мы посмотрим.) V>Тов. Гаусс вам в помощь.
Кстати, я о нём писал
... Крамер дико плох на системах с размерностью >4. Там быстрее и эффективнее привести матрицу системы к треугольному виду. Для небольших систем крамер очень эффективен.
От этого смысл вашего поста становится ещё более туманным.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Flying Dutchman, Вы писали:
FD>>лет пять работаю, но как там в C# в текстовый файл писать — не помню, года два как уже не писал.
AVK>А чего там помнить? AVK>
AVK>using (var writer = new StreamWriter("file.txt"))
AVK> writer.Write(DateTime.Now.ToString());
AVK>
Здравствуйте, SE, Вы писали:
SE>Искал бы химика, спрашивал бы про альдегиды. Искал бы спичрайтера, попросил бы сочинение написать. Ищу программиста — проверяю его алгоритмический и математический бекграунд. Предваряя вопрос: искал бы математика, спросил бы что нибудь из теории множеств.
А если бы электрика искал — спрашивал бы преобразование Лапласа?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, alzt, Вы писали:
A>Синусы-косинусы и даже тангенсы могут потребоваться в трёхмерной компьютерной графике.
В двухмерной тоже. Только, если такое нужно, бэкграунд легко и быстро восстанавливается. А вот так, навскидку, упростить тригонометричекую функцию сможет далеко не каждый вменяемый программист.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, игппук, Вы писали:
И>если ты к "знаниям математики" причисляешь умение манипулировать битами, производить между ними логические операции, а также уметь работать с булевыми операциями, то это одно.
А умение упростить логическое выражение?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>А умение упростить логическое выражение?
если мне вдруг понадобится помощь математика для упрощения сложного выражения, то я пойду к математику за консультацией. к тому же, здесь не исключена вероятность того, что он мне предложит более эффективный способ решения.
Здравствуйте, игппук, Вы писали:
И>если мне вдруг понадобится помощь математика для упрощения сложного выражения, то я пойду к математику за консультацией.
Я так понимаю, что логическое выражение вроде !(!(a && b) || (c && d)) это уже сложное, и нужно идти к математику?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, MozgC, Вы писали:
MC>Вы просто не работали с индусами
Тут и без индусов хватает. В Москве, по крайней мере, давно уже образовалась каста товарищей, которые в вакансии смотрят только размер зарплаты. Приходит такой с запросами никак не меньше 4 килобаксов, а потом не может примитивный алгоритм с односвязным списком реализовать.
В качестве примера — приходил товарищь недавно на вакансию считай что сеньера, не имеющий понятия о том, что такое виртуальные функции.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
IID пишет: > > > От этого смысл вашего поста становится ещё более туманным.
Да нет, просто в данном варианте наиболее логично и просто и быстро
применить "Гаусса", причем это явно видно, стоит проявить немного
воображения, даже если не знаешь линейной алгебры.
А если начнем рассуждать вообще о системах линейных уравнений, то там
все не просто, и выбор метода определяется в первую очередью жесткостью
системы.
Здравствуйте, AndrewVK, Вы писали:
AVK>Есть кстати, офигительный пример на тему важности CS бэкграунда. Мне много раз приходилось видеть, каких монстров плодят в качестве парсеров, если человек не знает азов теории формальных грамматик.
+100
Тоже опыт имеется...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IID, Вы писали:
IID>А в каком виде представлены эти пресловутые x1, x2 и т.д. ? Ввиде конкретных значений, или ввиде текстовых строк "а синтаксис я ща тут придумаю быстренько". Раз ничего дополнительно не оговаривалось — логично было предположить что это какое-либо существующее машинное представление действительных чисел (float, double, etc.). Опять же, если хочется универсальности, задача сводится к созданию некоторого представления этих чисел и определению у этого представления пары элементарных математических операций, навроде +-*/, проверить на ноль. После этого суём класс-представление в того же крамера и получаем результат.
Коллега, не стоит вводить сущности. Задача поставлена предельно просто и корректно: решить в действительных числах. Запись можно использовать какую хочешь. Ничего про "машинное представление" в условиях нету. Можно придумать любое. Только float и double это нисколько не действительные числа.
Когда ко мне приходит бизнес-аналитик и говорит, "надо расчитать cash flow на такой-то период, вот тебе входящие данные", его абсолютно не интересует никакое машинное представление. В частности, ему плевать что числа представленны битами и байтами в двоичной системе или еще в какой-то системе.
Здравствуйте, catBasilio, Вы писали:
C>>std::istream/std::ostream — в качестве первого приближения. B>и что это заменит? std::istream/ostream::open тоже не генерит исключение при невозможности создать файл и после открытия нужно всеравно проверять, что файл создался нормально.
Вот я и говорю "в качестве первого приближения". Как exception-safe объекты, а бросание исключений можно уже добавить в обёртке.
C>>Уже везде. Там где их нет — сами виноваты. B>Нет. Некоторые даже объектно ориентированные библиотеки сознательно избегают исключений. B>Например назовите хоть одно исключение которое генерит библиотека QT?
Тем не менее, никто не ЗАПРЕЩАЕТ (аккуратно) использовать исключения в QT. Это я и имел в виду.
Здравствуйте, AndrewVK, Вы писали:
AVK>Я так понимаю, что логическое выражение вроде !(!(a && b) || (c && d)) это уже сложное, и нужно идти к математику?
про логические выражения я уже писал. точнее, что для меня есть подобные выражения. кстати, расскажите, как вы будете это выражение упрощать за счет выноса его части за скобки. я так понимаю, что мощное знание школьной математики вам это сделать позволяет.
ни в школе (среднее образование), ни в универе (высшая математика) лично мне никаких подобных выражений мне не преподавали. ровно, как и двоичную арифметику, булевые операции и логические операции AND, OR, XOR и NOT. об этом рассказывали только на одном предмете, который назывался "информатика и программирование". ну и, конечно же, осваивал все это по разным книжкам, на которых было написано "программирование", но нигде не писали "математика". поэтому я и говорю, что код типа
add ax, bx
это не математика, а программирование. или тот код, который вы приводите в качестве примера.
Здравствуйте, Lloyd, Вы писали:
L>Не надо ничего подбирать. Береш круг и нарезаешь его на дольки. Эти дольки выстраиваешь в ряд. Получаешь ряд треугольников. Высота каждого — примерно равна радиусу круга r, сумма длин оснований — 2*П*r. Сумма площадей соответственно — r * (2*П*r) / 2. В итоге — П*r^2
Здесь вы предполагаете, что человек знает формулу длины окружности.
Но, учитывая что по условию задачи он не помнит формулу площади круга,
я не был бы в этом так уверен
скажите, вы кого возьмете на работу? того, кто знает формулу площади круга, или того, кто ее не знает, но легко работает с битами?
вот я, хорошо помню как формулу площали круга, так и его длины. но я плохо помню формулы, относящиеся к треугольникам. типа, как по катету и двум углам получить другой катет и гипотенузу. или вот, совсем не помню формулы расчета траектории движения объекта, если его запустить с определенной силой под определенным углом к горизонту. при этом, я был отличником по физике как в школе, так и в универе. но я прекрасно знаю, где эти формулы можно достать, в случае необходимости в них. поэтому, подобные вопросы на тестах кажутся мне пустыми и смешными. когда о кандидате судят по знанию мелочей, который по сути никакой роли не играют. достаточно знать, как эту информацию можно получить, и задача решается почти с такой же скоростью, как если бы я эти знания держал в голове. гораздо правильнее, на мой взгляд, если и давать кандидату подобные вопросы, то они должны быть в контексте определенной задачи, но при этом, кандидату должен быть предоставлен компьютер, компилятор, справочная информация и интернет.
например, если так уже не терпится узнать, умеет ли кандидат работать с кругом, то дайте ему такую задачу: написать программу, которая нарисует круг, и при этом нельзя пользоваться встроенными функциями, которые этот круг рисуют — можно рисовать только точками. дать компьютер, дать время, дать компилятор. пускай сидит и работает.
Здравствуйте, AndrewVK, Вы писали:
AVK>Зависит, что у тебя за специальность в этом дипломе написана. Подозреваню, что ни к программированию, ни к математике оно отношения не имеет, коль про булеву алгебру тебе ничего не рассказывали.
моя специальность "инженер оптик-конструктор", а специализация "оптические приборы и системы". физики и математики там было выше крыши, особенно на последних курсах.
Здравствуйте, игппук, Вы писали:
И>моя специальность "инженер оптик-конструктор"
Вот я и говорю — пробелы у тебя в образовании, если ты конечно программированием занимаешься, а не конструированием оптики,
И> физики и математики там было выше крыши, особенно на последних курсах.
При чем тут физика, я не очень понял. А математика хоть у вас и была, да, видать, не та.
Здравствуйте, Svjat,
ГМ>>Подставьте вместо "профессионал" название любой другой профессии (включая сантехнические и оцените, как резко может увеличится "ценность" такого специалиста, если он умеет еще и программировать.
ГМ>>Например — электронщик, знающий програмирование. Или механик. Или лингвист. Или бухгалтер. И т.д.
S>утрированно, есть профессинальный хирург, делающий операции, S>а есть профессиональный сантехник, кот. умеет резать животы. S>полезно, конечно, и плюс ему, но на операцию к нему вы не пойдете
S>т.е. умение резать "как хирург" не делает вас способным проводить реальные операции, даже если вы режете реально хорошо.
--
Это мое определение я бы не хотел распространять на все остальные пары профессии (т.е. не противопоставляю "профессионального хирурга" и "практикующего хириргию профессионала в другой области" . Хотя и эти сочетания знаний могут быть полезным в экстремальных ситуациях, — если в округе нет и не предвидется, например, профессионального хирурга, а есть сплошные практикующие хирургию сантехники, придется воспользоваться их услугами для проведения операции
C другой стороны, программисту, IMHO, всегда полезны знания из предметной области, для которой пишутся его программы. Подавляющее большинство программ ведь пишутся не ради программирования, а ради использования в предметной области, нет?
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Угу, и имя ему — легион.
И кто-то один в белом фраке, да? L>>Как знание формулы круга поможет найти в чужом коде ошибку, о великий гуру? ГВ>Знание формулы круга может быть, и не поможет. А вот соответствующее поведение на собеседовании может служить косвенным признаком того, что человек настроен отвечать только на вопросы определённого характера, притом исключая даже смежные области знания. Это ни хорошо ни плохо. Но такой стиль работы может быть неприемлемым для отдельно взятой организации.
Хорошо. Ответил тебе человек про площадь круга. Это гарантирует, что он блестяще будет находить баги, заботливо расставленные его предшественниками (кстати, их случайно не так же нанимали?) Нет? В чем смысл этого, с позволения сказать, вопроса?
Здравствуйте, mymuss, Вы писали:
M>Ну блин, я для примера привел гипотетическую ситуацию, в которой распальцованный синьор команде не нужен.
Так бы и написал — ищем джуниора код копать. Или площади кругов вычислять.
Только не надо обижаться услышанному в свой адрес от настоящего сеньера.
Здравствуйте, SkyDance, Вы писали:
A>>Я про такие выражения узнал на первом курсе. A>>А про теорию множеств, булеву алгебру на 2-м или на 3-м. И уже запоминал, что U это как ||, а ^ это как &&, ну чёрточка вверху — это ! . A>>Проходил это я очень подробно, с кучей доказательств. Но в голове ничего не осталось. A>>А как применить отрицание к целому выражению я и до этих курсов знал.
SD>Ахаха у меня почти так же, разве что про || и && я знал еще до универа.
Да доказательств-то там — табличка на 4 строчки. Чтобы написать 12 единиц или нулей никаких знаний не надо. ИМХО как раз то, что хотел видеть у кандидатов автор темы — умение ответить на простенький вопрос для проверки наличия мозга.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Здравствуйте, игппук, Вы писали:
И>например, если так уже не терпится узнать, умеет ли кандидат работать с кругом, то дайте ему такую задачу: написать программу, которая нарисует круг, и при этом нельзя пользоваться встроенными функциями, которые этот круг рисуют — можно рисовать только точками. дать компьютер, дать время, дать компилятор. пускай сидит и работает.
Интересно, а что хочется получить ? Приближение к кругу ломанными (самый неинтересный случай), целочисленного брезенхейма со сглаживанием для дольки в 1/8 круга (и зеркально получить остальные части) ?
Здравствуйте, AndrewVK, Вы писали:
И>>моя специальность "инженер оптик-конструктор"
AVK>Вот я и говорю — пробелы у тебя в образовании, если ты конечно программированием занимаешься, а не конструированием оптики,
объясни, что значит "пробелы в образовании". и попробуй поинтересоваться о программе подготовки оптиков, в которую входят такие дисциплины, как геометрическая оптика, классическая физика, квантовая физика, теория лазеров, тонкие покрытия (четвертьволновые и нечетвертьволновые), электроника. если ты мне скажешь, что там математика не нужна, или она была на уровне школьной геометрии, то я с тобой дальше на эту тему даже не буду продолжать разговаривать.
Здравствуйте, игппук, Вы писали:
И>объясни, что значит "пробелы в образовании".
Это обычный русский язык. Если тебе не понятно, я ничем не смогу помочь.
И> и попробуй поинтересоваться о программе подготовки оптиков, в которую входят такие дисциплины, как геометрическая оптика, классическая физика, квантовая физика, теория лазеров, тонкие покрытия (четвертьволновые и нечетвертьволновые)
Офигительно полезные в программировании дисциплины.
И>, электроника
Аналоговая, судя по всему? Тоже очень полезно в плане программирования.
Речь здесь, если еще не понятно, не о математике вообще, а о вполне конкретных ее разделах, обычно называемых дискретной математикой.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, SE, Вы писали:
SE>AVK, вот скажите площадь круга и закон Ома — это должен знать любой образованный человек, или это ниже Вашего достоинства?
Это не имеет отношения к обсуждению осмысленности подобных вопросов на собеседовании. Да, минус за личный наезд.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
SE>>AVK, вот скажите площадь круга и закон Ома — это должен знать любой образованный человек, или это ниже Вашего достоинства?
AVK>Это не имеет отношения к обсуждению осмысленности подобных вопросов на собеседовании.
Тут выше дообсуждались до того, что программист это знать не обязан, что программисту "это не надо". Вот собстенно в чем проблема. Потому неудивительно, что такие вопросы на собеседованиях возникают. Отсеять неадекват как-то же надо.
AVK>Да, минус за личный наезд.
Здравствуйте, AndrewVK, Вы писали:
AVK>Офигительно полезные в программировании дисциплины.
я привел эти дисциплины в качестве примера, так как в них тоже очень серьезно используется математика. а в программировании, математика если и используется, то в основном не выше уровня +-*/, о чем я и писал ранее.
AVK>Речь здесь, если еще не понятно, не о математике вообще, а о вполне конкретных ее разделах, обычно называемых дискретной математикой.
значит, программисту вся математика не нужна, о чем я и стараюсь говорить с самого начала. нужна булева арифметика, логические операции, дискретная (хотя я уже не помню, про что она). а вот умения считать площадь круга (геометрия) не нужна сто лет в обед.
Здравствуйте, AndrewVK, Вы писали:
AVK>Есть кстати, офигительный пример на тему важности CS бэкграунда. Мне много раз приходилось видеть, каких монстров плодят в качестве парсеров, если человек не знает азов теории формальных грамматик.
Это скорее от неумения использовать готовые парсеры. Да и нужны они раз в двадцать лет.
Здравствуйте, MozgC, Вы писали:
MC>Вы просто не работали с индусами
Много работаю с индусами.
С одной стороны, одному товарищу объяснял долго, что конечные автоматы плохо расширяемы и писать их руками — плохо. На что товарищ (автор кривого парсера ID3v2, по сути автомата в чистом виде) мне ответил: "А что такое конечные автоматы?" С другой стороны, иной раз встречаются очень толковые спецы. Прямо почти как русские =)
Здравствуйте, AndrewVK, Вы писали:
AVK>И что? Это отменяет их полезность?
Нет. Но я не вижу в этих примитивах ничего особенного, что требует полсеместра.
AVK>Не, не все так просто. Кроме простейших правил преобразования логических выражений там много интересного, навроде методов устранения избыточности.
Понятия не имею, что это такое. В рабочей обстановке не встречается.
AVK>Ну, в институте на это полсеместра тратится.
Ты меня не удивил. Лучше бы эти полсеместра потратили на более полезные вещи.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ну не учил, так хоть погугли.
Зачем? Есть намного более интересные темы для изучения, чем то, что не пригодится в обозримом будущем
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики?
Примерно так же, как включать лампочку не зная электротехники. Вот компилю же я код как-то, а уж там парсер так парсер!
Здравствуйте, olegkr, Вы писали:
ГВ>>Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики? O>Примерно так же, как включать лампочку не зная электротехники. Вот компилю же я код как-то, а уж там парсер так парсер!
А... Ну тогда вопросов нет.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
AVK>>Ну, в институте на это полсеместра тратится. O>Ты меня не удивил. Лучше бы эти полсеместра потратили на более полезные вещи.
Интересно какие? Забодяжить веб-приложение за 5 минут?
Здравствуйте, AndrewVK, Вы писали:
AVK>Ага, целый один аргумент запомнить без зубрежки никак не получится.
Если твой код обходится использованием только namespace-ов System, System.Text & System.IO, то без проблем.
AVK>Ага, Write и WriteLine совершенно невозможно запомнить, согласен.
Конечно, например Stream использует Write, а в TextWriter добавляется еще WriteLine. Файл можно создавать через конструктор StreamWriter, а можно и через File.CreateText.
Здравствуйте, olegkr, Вы писали:
AVK>>Ага, целый один аргумент запомнить без зубрежки никак не получится. O>Если твой код обходится использованием только namespace-ов System, System.Text & System.IO, то без проблем.
У меня длиннее и твоего тоже.
AVK>>Ага, Write и WriteLine совершенно невозможно запомнить, согласен. O>Конечно, например Stream использует Write, а в TextWriter добавляется еще WriteLine. Файл можно создавать через конструктор StreamWriter, а можно и через File.CreateText.
И что?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Потому что булева алгебра это не только те примитивы, о которых ты знаешь.
Вот! А в современном программировании используются в основном только примитивы
AVK>В советское время это называли системностью знаний.
В результате в советское время выпускали инженеров, которые были пустышками на производстве. Как-то спасала производственная практика.
AVK>Хм, я конечно не специалист в оптических инженерах или какое там у тебя образование
CS, поэтому я знаю о чем говорю
AVK>высшее образование в областях, связанных с программированием в частности и цифровой электроникой вообще без курса дискретной математики, это нечто феерическое.
Феерическое — это то, что выпускники не умеют НИЧЕГО
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Странно, как ты можешь знать, пригодится оно тебе или нет, если ты даже не представляешь, о чём речь.
Потому, что я знаю задачи, которые мне нужно решать.
Здравствуйте, AndrewVK, Вы писали:
AVK>А ты уверен, что в твоей области нет аналогичной математики, о которой ты не знаешь?
Уверен. Как уверен, что ее нет в куче других областей, в которых мне приходилось работать
Здравствуйте, olegkr, Вы писали:
AVK>>Потому что булева алгебра это не только те примитивы, о которых ты знаешь. O>Вот! А в современном программировании используются в основном только примитивы
Я бы так не сказал.
AVK>>Хм, я конечно не специалист в оптических инженерах или какое там у тебя образование O>CS, поэтому я знаю о чем говорю
Вот уж извини, не поверю. CS без булевой алгебры не бывает.
O>Феерическое — это то, что выпускники не умеют НИЧЕГО
Выпускники, они разные бывают.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>У меня длиннее и твоего тоже.
Дай посчитаю... Длина первого навскидку взятого namespace-а 60 символов.
AVK>И что?
А то, что не вижу смысла запоминать детали. У msdn & resharper это лучше получается
Здравствуйте, AndrewVK, Вы писали:
AVK>Я бы так не сказал.
Ты видимо по своей узкой области делаешь выводы за всех.
AVK>Вот уж извини, не поверю. CS без булевой алгебры не бывает.
Да черт его знает что там было 20 лет назад.
AVK>Выпускники, они разные бывают.
Ну да, есть те, кто поумнее и которые во время учебы получают практический опыт на реальных проектах.
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну, гордись тогда этим дальше.
Где ты видишь гордость-то? Скорее недоумение от того, чем себе люди головы забивают. Ну да их это головы, не мне судить.
Здравствуйте, olegkr, Вы писали:
AVK>>Хм, я конечно не специалист в оптических инженерах или какое там у тебя образование O>CS, поэтому я знаю о чем говорю
CS?!!!!
*ROTFL* *ROTFL* *ROTFL* *ROTFL* *ROTFL*
Год выпуска?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
AVK>>Я бы так не сказал. O>Ты видимо по своей узкой области делаешь выводы за всех.
Кто тебе сказал, что у меня область узкая? Скорее наооборот, она у меня заметно шире, чем у многих программистов.
O>Ну да, есть те, кто поумнее и которые во время учебы получают практический опыт на реальных проектах.
Тут главное понимать, что ВУЗы не предназначены для получения практического опыта.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Я не ту длину имел ввиду.
Ну замерь другую, в чем проблема?
AVK>Как пишется if ты тоже в "msdn & resharper" уточняешь?
Нет, потому что использую постоянно, в отличии от System.IO. Кстати, частенько и if-ы я уже не пишу ручками. Ctrl+Alt+J
Здравствуйте, AndrewVK, Вы писали:
AVK>Тут главное понимать, что ВУЗы не предназначены для получения практического опыта.
В этом и беда. Тех же архитекторов готовят в ВУЗ-ах именно по практической программе. А вот из программистов всех, как один, хотят сделать научников, хотя потребность в оных исчисляется единицами процентов.
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну, я и так знаю, что у меня длиннее, так что можно не мерять.
Как-то это не по-научному.
AVK>А можно как то не использовать System.IO в реальных проектах?
Разумеется. Полно таких приложений. Те же веб-приложения редко работают с файлами.
AVK>Т.е. синтаксис if ты таки тоже не помнишь?
Помню, как и написал сообщением выше, т.к. использую постоянно.
приведи практический пример, где мне потребуется знание математики выше уровня "найти площадь круга". из следующих областей:
1. системное программирование
2. прикладное программирование (грамотный пользовательский интерфейс + грамотное проектирование)
3. веб программирование
4. создание библиотек контролов
5. низкоуровневое программирование аля драйвера.
Здравствуйте, olegkr, Вы писали:
ГВ>>Год выпуска? O>1994
Э... Ты хочешь сказать, что в 1994-м свежепостсоветский вуз выпустил CS-специалиста (названия специальностей могут быть разными), которому не читали ДМ? А можно узнать имя сей альма-матер?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, AndrewVK, Вы писали:
AVK>>Тут главное понимать, что ВУЗы не предназначены для получения практического опыта. O>В этом и беда.
Здравствуйте, olegkr, Вы писали:
AVK>>Ну, я и так знаю, что у меня длиннее, так что можно не мерять. O>Как-то это не по-научному.
А пофик.
AVK>>А можно как то не использовать System.IO в реальных проектах? O>Разумеется. Полно таких приложений. Те же веб-приложения редко работают с файлами.
С файлами — да. А вот отдача результата генерации страничек идет, ты не поверишь, через Stream. Но я понимаю, настоящему программисту знать об этом не нужно.
O>Помню, как и написал сообщением выше, т.к. использую постоянно.
Вот. А теперь посмотрим на то, что я уже писал:
Ты несколько меня не понял. Помнить специально наизусть — не нужно. Но я не представляю, как можно, если ты написал не одну игрушечную программку, не запомнить такой базовый момент. Это как для С++ программиста не помнить, что такое cout и с чем его едят. А уж если ты постоянно используешь .net в повседневной работе ...
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, mymuss, Вы писали:
M>По практическим программам хорошо готовят в ПТУ.
Заблуждение. ВУЗ-ы предназначены для подготовки инженеров, а не профессоров
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Э... Ты хочешь сказать, что в 1994-м свежепостсоветский вуз выпустил CS-специалиста (названия специальностей могут быть разными), которому не читали ДМ?
Кто тебе сказал, что не читали? Читали, разумеется. Практическая ценность = НОЛЬ
Здравствуйте, AndrewVK, Вы писали:
AVK>Это у всех так.
Не у всех. У тех, кто помимо книжек еще и работал во время учебы все гораздо кошернее.
AVK>Только практику они быстро наберут, а вот с теорией у тех, кто с ней не знаком, так все печально и останется.
И будут они "печально" кодить и зарабатывать денежку, даже не зная, чего они лишились
Но я не представляю, как можно, если ты написал не одну игрушечную программку, не запомнить такой базовый момент.
Как-то знание параметров методов в "базовый момент" не попадают. Базовый момент — знать наличие разных вариантов Stream и примерно как ими пользоваться.
Здравствуйте, jartur, Вы писали:
ГВ>>Но то, что в этом топике творится — честно говоря, я в шоке. Что-то как-то привык, что культурный человек знает, как померить длину окружности или площадь дна стакана. Ан нет...
J>Длину окружности можно померить с помощью курвиметра. Ясен пень =)
Точно! И география ни к чему — извозчик же есть!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
M>Реальный пример №1. Сделать веб-сервис для наложения водяного знака на картинку. Водяной знак представляет из себя полупрозрачный текст, расположенный в центре. Он должен быть достаточно большим чтобы перекрыть бОльшую часть картинки и в тоже время не вылезать за ее пределы. Длина/ширина/разрешение картинки бывает разными, в т.ч. ширина значительно больше длинны и наоборот.
Не понял, для чего тут нужно знать формулу площади круга.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Kernan, Вы писали:
SE>>>Площадь круга — это проверка не на профессионализм программиста, это проверка на то, что человек школу закончил. K>>Ряды Лагрнджа проходят на 2-ом курсе института. Если вы мне не отвечаете на этот вопрос, то значит вы не закончили институт?
M>Неудачная аналогия. Площадь круга выбрана как достаточно широко известный факт, который: M> 1. Сравнительно легко вывести из более простых фактов (например, из определения числа pi) M> 2. Очень часто используется позднее в самых разнообразных приложениях, как в школе (напр. в стереометрии), так и в институте (например, в аналитической геометрии).
Вот после сессии для меня ряд Лагранджа был широко известным фактом. (а площадь круга немного затиралась)
1. Вот честно не помню, как нам в школе число pi выводили. Хоть убей не помню.
2. Про стереометрию первый раз слышу (у меня была самая обычная школа).
Здравствуйте, IID, Вы писали:
IID>Аналитический же подходит под ваше условие прекрасно. Т.о. задача сводится к созданию аналитического представления чисел.
И как можно представить произвольное транcцендентное число?
IID>Но когда вы приносите ему рассчёты он же не вопит о том, что точность слишком низкая ? И что корень из двух он хочет видет ввиде корня из двух
Ну да, потому что его задача может быть решена в рациональных числах.
А если принести бухгалтеру ответ, в котором ошибка в один цент потому что программист не знает об ошибках округления, то может и развопиться.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, mymuss, Вы писали:
M>>Ну блин, я для примера привел гипотетическую ситуацию, в которой распальцованный синьор команде не нужен. L>Так бы и написал — ищем джуниора код копать. Или площади кругов вычислять.
Это как-то следует из моих слов? Если да, то из каких?
L>Только не надо обижаться услышанному в свой адрес от настоящего сеньера.
Я не буду обижаться нисколько. Напротив, буду благодарен ему за то, что не надевал маску приличия, а прямо дал понять, что он не тот человек, которого мы хотим видеть в колективе.
Здравствуйте, Владислав, Вы писали:
В>Единственный момент — это нужно больше доверять мнению своего коллеги. Если он хочет взять кандидата — то нужно брать, в противном случае не очень понятно, зачем он вообще присутствовал на собеседовании и тратил своё время.
Понятно, спасибо за мнение.
Конечно, я доверяю мнению своего коллеги, равно как и он доверяет моему. Как правило, мы соглашаемся в подобных ситуациях. Если нет, то каждый из нас доводит свои мысли до руководства, а оно решает брать или не брать.
Здравствуйте, AndrewVK, Вы писали:
O>>Вот именно. И потом пытаются эти теоретики CS устроится на работу и ожидает их горькое разочарование, т.к. учили их совсем не тому, что надо AVK>Это у всех так. Только практику они быстро наберут, а вот с теорией у тех, кто с ней не знаком, так все печально и останется.
Андрей, и ты мне еще про сортировку пытался доказать, что вред она.
Вот таких вот людей она призвана отсеять в первую очередь.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, IID, Вы писали:
IID>>Аналитический же подходит под ваше условие прекрасно. Т.о. задача сводится к созданию аналитического представления чисел.
M>И как можно представить произвольное транcцендентное число?
Сначала надо понять, каким образом мы собираемся ПОЛУЧИТЬ от пользователя (в каком виде) произвольное _трансцендентное_ число. А представить мы его можем бесконечным числом различных способов. Да хоть в примитивном текстовом "sin(PI/3)" или "sqrt(3)/sqrt(2)". В качестве примеров, где это уже сделано — Derive или MatLab. Складывается ощущение, что вы прекрасно понимая, о чём идёт речь, спорите "ради самого спора". Может уязвлённое в юности самолюбие ? В любом случае, мы отходим всё дальше и дальше от первоначальной задачи, решение которой я уже показал. Разжёвывать дальше очевидные вещи, мне, простите, неинтересно.
IID>>Но когда вы приносите ему рассчёты он же не вопит о том, что точность слишком низкая ? И что корень из двух он хочет видет ввиде корня из двух
M>Ну да, потому что его задача может быть решена в рациональных числах. M>А если принести бухгалтеру ответ, в котором ошибка в один цент потому что программист не знает об ошибках округления, то может и развопиться.
А может и не развопится, если одна ошибка округления замылила другую, а он этого даже не заметил. В общем, в топку изначальный пассаж про "тупого пользователя, которому все равно", и гениального программиста "который сделает всё правильно, не взирая ни на что"
Здравствуйте, игппук, Вы писали:
И>а это его проблема. как сделает, так и сделает. важно, как он подойдет к поставленной задаче.
Ок, я как ленивый человек не стал напрягаться, а выдал что-то типа такой убогой реализации (хз — работает или нет, набрал для поста):
const int iLinesInACircle = 100;
void DrawCircle(int x, int y, int r)
{
int x1,y1,x2,y2;
double angle = 0;
double angle_add = 360.0 * PI / iLinesInACircle;
for(int i=0; i<iLinesInACircle+1; i++, angle+=angle_add)
{
x2 = x + r*cos( angle );
y2 = y + r*sin( angle );
if ( 0 != i )
DrawLine(x1,y1,x2,y2);
x1 = x2;
y1 = y2;
}
}
При этом я знаю про целочисленные алгоритмы (см. пост выше), и вскользь о них упомяну (на собеседованиях, как и в РСДН постах мне напрягаться лениво). Что вы скажете обо мне-кандидате ?
Здравствуйте, AndrewVK, Вы писали:
AVK>Стереометрию, по крайней мере в мое время, преподавали и в обычной школе в 10 и 11 классах. По стандартному учебнику.
Ничего потом и не изменилось, кроме названия. У меня в школе это была просто "геометрия".
Здравствуйте, olegkr, Вы писали:
AVK>>Вот в этом и состоит одна из серьезнейших проблем софтостроительной индустрии, что можно "кодить и зарабатывать денежку", имея весьма посредственную квалификацию. O>Квалификация хорошего программиста имеет мало общего с квалификацией хорошего теоретика CS.
Интересно, в чём ты видишь различия? Я не ёрничаю, мне в самом деле интересно.
O>С точки зрения теоретика нынешние программисты вообще полные профаны, даже не помнят площадь круга.
Хуже того, они не всегда понимают, чем O(log N) отличается от O(N*N).
O>С точки зрения практика-программиста — теоретики вообще ничего не умеют, пишут кривой код, лепят левую архитектуру, занимаются заумствованиями.
Теоретики CS? Ну вот тебе пример — Барбара Лисков, теоретик из теоретиков. Напомнить об остальном?
O>На самом деле — это классическое разделение между учеными и инженерами, все дисциплины прошли через это, программирование просто слишком молодо.
Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее.
O>Я не агитирую за то, что бы не преподавать CS, как науку. Преподавать, конечно, тем кому это интересно. Важно на мой взгляд выделить преподавание разработки ПО, как отдельную инженерную дисциплину со своими акцентам в обучении.
Какие акценты, например? У нас, например, делался некоторый акцент на организации самого процесса разработки. А что ты имеешь в виду?
O>Я прекрасно помню, как обучают архитекторов (строительных), очень много практических знаний, которые непосредственно потребуются в дальнейшей работе, очень много работы руками. Теория тоже есть, как база, но не более того.
Причём тут строительные архитекторы? Это, по сути, дизайнеры пользовательского интерфейса. Спору нет, работа нужная и полезная, но достаточно узкоспецифичная.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IID, Вы писали:
IID>Складывается ощущение, что вы прекрасно понимая, о чём идёт речь, спорите "ради самого спора". Может уязвлённое в юности самолюбие ? В любом случае, мы отходим всё дальше и дальше от первоначальной задачи, решение которой я уже показал. Разжёвывать дальше очевидные вещи, мне, простите, неинтересно.
У меня, кстати, точно такое же впечатление о Вас. Вы вводите новые сущности, тем самым на ходу меняя задачу. Если Вы в жизни сталкивались с реальными задачами, то знаете, что пользователи никогда не ставят задачу настолько точно, и тем более не заморачиваются ни машинным представлением, ни ограничениями вычислительных ресурсов, ни особенностями фон-неймановской архитектуры. Скажут "действительные числа" и точка. Выкручивайся как хочешь, или выясняй в каком приближении устроит, или найди решение в аналитичнском виде (кстати, это далеко не так просто, как Вам кажется).
Да, существуют разные подходы, я этого не отрицал. Matematika, Maple (MatLab, кстати, слегка мимо кассы, то больше для численных методов)
IID>А может и не развопится, если одна ошибка округления замылила другую, а он этого даже не заметил.
И..? В чем Ваш поинт? Что ошибки надо специально вводить, чтобы за их обилием трудно было понять, что это ошибки?
IID>В общем, в топку изначальный пассаж про "тупого пользователя, которому все равно", и гениального программиста "который сделает всё правильно, не взирая ни на что"
Ну данное утверждение -- Ваши слова, не мои
M>>А если принести бухгалтеру ответ, в котором ошибка в один цент потому что программист не знает об ошибках округления, то может и развопиться. IID>А может и не развопится, если одна ошибка округления замылила другую, а он этого даже не заметил.
Я, конечно, у всех читателей форума прошу прощения за возможные ошибки и опечатки в моих постах. Русский язык не является моим первым языком, начальное и среднее образование я получал не на русском, живу в англоязычной стране, так что, надеюсь, большинство читателей отнесутся с пониманием.
Впрочем, когда собеседник начинает придираться к подобным ошибкам, для меня это верный сигнал, что аргументы закончились, далее следует переход на личности. С такими людьми у меня общаться желания нет. Всего Вам хорошего.
Здравствуйте, mymuss, Вы писали:
M>Я, конечно, у всех читателей форума прошу прощения за возможные ошибки и опечатки в моих постах. Русский язык не является моим первым языком, начальное и среднее образование я получал не на русском, живу в англоязычной стране, так что, надеюсь, большинство читателей отнесутся с пониманием.
Нет причин извиняться. В даном случае использование "-тся" или "-ться" зависело от того, к кому из персонажей относился глагол "развопит(ь)ся": к програграммисту или к бухгалтеру. Короче говоря, не бери в голову.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, IID, Вы писали:
IID>>Складывается ощущение, что вы прекрасно понимая, о чём идёт речь, спорите "ради самого спора". Может уязвлённое в юности самолюбие ? В любом случае, мы отходим всё дальше и дальше от первоначальной задачи, решение которой я уже показал. Разжёвывать дальше очевидные вещи, мне, простите, неинтересно.
M>У меня, кстати, точно такое же впечатление о Вас. Вы вводите новые сущности, тем самым на ходу меняя задачу. Если Вы в жизни сталкивались с реальными задачами, то знаете, что пользователи никогда не ставят задачу настолько точно, и тем более не заморачиваются ни машинным представлением, ни ограничениями вычислительных ресурсов, ни особенностями фон-неймановской архитектуры. Скажут "действительные числа" и точка. Выкручивайся как хочешь, или выясняй в каком приближении устроит, или найди решение в аналитичнском виде (кстати, это далеко не так просто, как Вам кажется).
А вот не надо, ничего я на ходу не менял. Один раз попытался уточнить природу чисел x1,x2. Мы выяснили, что они не принадлежат ни одному из существующих машинных представлений. Дальше пошло только уточнение задания (у незаморачивающегося пользователя, в вашей терминологии, по сути "хотелок"). При этом собственно решение самой задачи, как было, так и осталось в первозданном виде, т.е. элементарным.
M>Да, существуют разные подходы, я этого не отрицал. Matematika, Maple (MatLab, кстати, слегка мимо кассы, то больше для численных методов)
При чём тут численные методы ? Эти примеры я привёл как (в частности) уже существующие реализации аналитического представления чисел, к которому мы уже свели вашу "мега-задачу" для заваливания кандидатов.
IID>>А может и не развопится, если одна ошибка округления замылила другую, а он этого даже не заметил.
M>И..? В чем Ваш поинт? Что ошибки надо специально вводить, чтобы за их обилием трудно было понять, что это ошибки?
К тому что мимо кассы ту фразу.
M>Впрочем, когда собеседник начинает придираться к подобным ошибкам, для меня это верный сигнал, что аргументы закончились, далее следует переход на личности. С такими людьми у меня общаться желания нет. Всего Вам хорошего.
Вы тае по существу и не ответили, а зацепились за придирку к синтаксической ошибке, чтобы слить тему.
Здравствуйте, olegkr, Вы писали:
AVK>>Только практику они быстро наберут, а вот с теорией у тех, кто с ней не знаком, так все печально и останется. O>И будут они "печально" кодить и зарабатывать денежку, даже не зная, чего они лишились
Плохо, что эти же самые потом полезут в менеджеры (а куда ещё податься бедному кодеру?) и устроят свистопляску.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M> Если Вы в жизни сталкивались с реальными задачами, то знаете, что пользователи никогда не ставят задачу настолько точно, и тем более не заморачиваются
Ещё как сталиквался. И поэтому знаю, что пользователя нужно вовремя остановить. Как минимум уточнением и формализацией требований (чем я половину постов и занимался, выуживая недосказанные требования из плохо сформулированного вами тз, если на то пошло). Иначе это будут одни противоречивые хотелки, без конца и без краю.
Здравствуйте, IID, Вы писали:
IID>При этом я знаю про целочисленные алгоритмы (см. пост выше), и вскользь о них упомяну (на собеседованиях, как и в РСДН постах мне напрягаться лениво). Что вы скажете обо мне-кандидате ?
По стилю кода — типичный джуниор, вот что можно сказать
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, IID, Вы писали:
E>По стилю кода — типичный джуниор, вот что можно сказать
Да что вы говорите Если я на бумажке на собеседовании не напишу все, требуемые по венгерской нотации, префиксы — то я джуниор ? =)
А то что это говно-код для иллюстрации идеи я в самом начале предупредил.
Здравствуйте, elmal, Вы писали:
E>По стилю кода — типичный джуниор, вот что можно сказать
Да, вот ещё что. Приведите ваш вариант, который вы бы набросали на бумажке на собеседовании. Не (как вы выразились) по-джуниорски (если честно, мне любопытно, что для вас было решающим фактором). Честный код, который вы способны написать не от ходя от кассы, за пару минут. Без хелпов и интернета. Отлично, если это будет что-то существеннее, чем приближение отрезками прямых.
Здравствуйте, IID, Вы писали:
ГВ>>PI * 360 — это звучит гордо, да... IID>К чему придирка ? Ведь какая, собственно, разница — может быть 2 * (180.0 / PI) звучит лучше, да. Но суть одна и та же.
Угу, суть одна и та же — ошибочная.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, игппук, Вы писали:
И>лично я бы нарисовал окружность точками, вычисляя их координаты по формуле окружности. уравнение окружности наизусть не помню, поэтому обратился к гуглю. вот что он мне выдал.
И>(x – a)^2 + (y – b)^2 = R2
И>второй этап: организация двойного цикла, в котором бы перебирались все координаты x,y. и по формуле вычислял бы, принадлежит ли точка окружности или нет. если принадлежит, то точка становится видимой.
Ужас
И>это первое. И>второе — я отлично понимаю, что это решение нерациональное с точки зрения ресурсов. при увеличении радиуса круга такое решение будет работать все медленее и медленнее, при этом откушивая все больше и больше процессорного времени. поэтому, вероятно, самым лучшим решением является поиск готового математического модуля, запрограммированного таким образом, чтобы быть максимально адаптирован для компьютерных вычислений. и использовать его.
И>возникает вопрос, говорит ли то, если я знаю формулу окружности, что я смогу сходу написать хороший и оптимизированный код? однозначно — нет. а раз так, зачем по ней судить об уровне разработчика? лучше поинтересуйтесь его мнением, как он бы решал поставленную задачу?
Согласен, знание формул тут ни к чему, если нам не нужно искать, скажем, точки пересечения окружностей с чем-либо.
Тут больше к месту уже устаканившиеся _БЫСТРЫЕ_ алгоритмы, типа того же Брезенхейма. Только вот сомневаюсь, что кандидат способен выдумать такой алгоритм прямо на собеседовании, если он о нём до этого не подозревал.
И>в том же DirectX. там широко используются матрицы: матрица поворота, матрица движения, матрица наклона. комбинируя между собой эти матрицы, можно добиваться нужных нам эффектов. я сто лет назад изучал матрицы, и совершенно не помню, как их складывать между собой. и на данный момент мне это не нужно, так как DirectX дает мне необходимые функции для их сложения. все что мне нужно помнить, что для поворота фигуры мне нужно использовать матрицу поворота. если вдруг возникнет необходимость изучить матрицы поближе, то я возьму учебник по высшей математике и за пару вечеров восстановлю свои забытые знания. но требовать их на собеседовании нельзя. я имею информацию, что такие матрицы существуют, что их используют для определенных эффектов, и где можно достать информацию по ним. все — это главное, больше и не нужно.
А вот это уже печально. Я матрицы не использовал уже лет 10 как, Но тем не менее все базовые вещи помню. Да. матрицу поворота сходу не скажу (хотя и выведу минут за 10), а вот как сложить матрицы и перемножить — это само собой помнится, как таблица умножения.
Здравствуйте, IID, Вы писали:
IID>Перечитал сорец, согласен, 360 там не к месту совсем, ведь градусы никуда не переводим, и так всё в радианах считаем. Там нужна только двойка.
Респект.
IID>Но как real-time иллюстрация кода, пишущегося прямо на собеседовании, на бумажке, пример пойдёт =) (специально же написал, для таких вот придирщиков: "что-то типа такой убогой реализации (хз — работает или нет, набрал для поста)"
Вот именно, что на собеседовании как раз имеет смысл сосредоточиться: "А ну, разбежались нах! Я щас думать буду!" Это тоже один из коммуникативных скиллзов — отсечение паразитных коммуникаций. Специалисты, в общем, такое отношение к делу любят и сознательно мешать, скорее всего, не станут.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Flying Dutchman, Вы писали:
FD>>Опишу, как я работаю.
M>Мне кажется, что такой способ работы не продуктивен. За каждой строкой приходиться лезть в разные файлы.
M>Впрочем, я не утверждаю что это так. Возможно, мое впечатление ошибочно.
За каждой строкой — это преувеличение. Все-таки большая часть
написания кода — использование одних и тех же знакомых конструкций языка.
Лезть приходится только за тем, с чем редко работаю.
Здравствуйте, игппук, Вы писали:
И>второе — я отлично понимаю, что это решение нерациональное с точки зрения ресурсов. при увеличении радиуса круга такое решение будет работать все медленее и медленнее, при этом откушивая все больше и больше процессорного времени.
.
И>если вдруг возникнет необходимость изучить матрицы поближе, то я возьму учебник по высшей математике и за пару вечеров восстановлю свои забытые знания.
Можно взять и что попроще, например — Аммераля. Есть такой почти классический четырёхтомник по машграфике.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Это понятно. Но пройти мимо TextWriter, это надо особо стараться.
FD>>Ну виноват, не могу вспомнить без заглядывания в код.
AVK>Ты не читаешь, что я пишу. Ты виноват не в том, что не помнишь, а в том, что "использовал не меньше года назад". Это меня, мягко говоря, очень сильно насторожит. Либо использование дотнета при этом было крайне эпизодическим, либо это признаки крайней узости его использования. И то и другое — серьезно сказывается на способности кандидата решать задачи, а третьего варианта я не вижу.
Сегодня ради интереса попытался найти в нашем проекте все места, где
используется TextWriter. Проект развивается около года, на него потрачено
уже 7-8 человеко-лет. Но не смог найти. Ни одного места.
Что, впрочем, не удивительно — файлы данных мы не используем.
Пишем все в базу данных.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот именно, что на собеседовании как раз имеет смысл сосредоточиться: "А ну, разбежались нах! Я щас думать буду!" Это тоже один из коммуникативных скиллзов — отсечение паразитных коммуникаций. Специалисты, в общем, такое отношение к делу любят и сознательно мешать, скорее всего, не станут.
Не спорю, но если кандидат немного ошибся, и сам сумел всё исправить — лично для меня он получает не меньшую субъективную оценку чем тот, кто написал всё сразу правильно (особенно если написал сразу, и не задумываясь).
На самом деле все мелкие просчёты кандидата — отличный способ завязать беседу и развить тему дальше. Бывало так, что с примитивов синхронизации перекидывались на перехват API, а дальше вплоть до оптимизаций для процессора Z-80.
Здравствуйте, AndrewVK, Вы писали:
AVK>Интересно, а что метод Монте-Карло никто не вспомнил? Стандартный вроде ж метод определения площади сложных фигур?
Непонятно как монте-карло связан с рисованием окружности, разве что способ ещё более ухудшить алгоритм, предложенный игппук
Здравствуйте, AndrewVK, Вы писали:
ГВ>>Можно взять и что попроще, например — Аммераля. Есть такой почти классический четырёхтомник по машграфике. AVK>Интересно, а что метод Монте-Карло никто не вспомнил? Стандартный вроде ж метод определения площади сложных фигур?
Э-э... Так, вроде, не площади считаем. Хотя, вообще, определять площадь круга методом МК — это прикольно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IID, Вы писали:
AVK>>Интересно, а что метод Монте-Карло никто не вспомнил? Стандартный вроде ж метод определения площади сложных фигур?
IID>Непонятно как монте-карло связан с рисованием окружности
С чего ты взял что он связан с рисованием окружности? Он связан с темой топика — определением площади окружности.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Flying Dutchman, Вы писали:
FD>>Сегодня ради интереса попытался найти в нашем проекте все места, где FD>>используется TextWriter.
AVK>Как искал?
Ctrl-F в Visual Studio
FD>>Что, впрочем, не удивительно — файлы данных мы не используем. FD>>Пишем все в базу данных.
AVK>И тектовых файлов в ресурсах сборки нет?
Здравствуйте, AndrewVK, Вы писали:
AVK>С чего ты взял что он связан с рисованием окружности? Он связан с темой топика — определением площади окружности.
Потому что в этой ветке мы уже пытаемся энту окружность хотя бы нарисовать Тем не менее реакция топик-стартера не становится от этого менее интересной.
Здравствуйте, Flying Dutchman, Вы писали:
AVK>>Как искал?
FD>Ctrl-F в Visual Studio
Я так и думал. Рассказываю как надо — ставим решарпер, находим в Object Browser textWriter, правой кнопкой мыши, выбираем Find Usages Advanced, затем ставим галки напротив member usages и derived types, и жмем ОК. В текущем проекте, который, вроде как, работает только с БД — 443 occurences.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Flying Dutchman, Вы писали:
AVK>>>Как искал?
FD>>Ctrl-F в Visual Studio
AVK>Я так и думал. Рассказываю как надо — ставим решарпер, находим в Object Browser textWriter, правой кнопкой мыши, выбираем Find Usages Advanced, затем ставим галки напротив member usages и derived types, и жмем ОК. В текущем проекте, который, вроде как, работает только с БД — 443 occurences.
Я имел в виду — в коде, написанном нами, не используется. В самом .NET и в компонентах третьих сторон, конечно же,
встречается.
Здравствуйте, Flying Dutchman, Вы писали:
FD>Я имел в виду — в коде, написанном нами, не используется. В самом .NET и в компонентах третьих сторон, конечно же, FD>встречается.
А приведенный мной способ только сосбтвенный код и меряет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
ГВ>>Э-э... Так, вроде, не площади считаем. Хотя, вообще, определять площадь круга методом МК — это прикольно. AVK>А чего ж
А вообще... Пятница сегодня, в конце концов или нет?!
Значит так: синус = 4, площадь квадрата считаем монтекарлой. Понеслась!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Flying Dutchman, Вы писали:
FD>>Я имел в виду — в коде, написанном нами, не используется. В самом .NET и в компонентах третьих сторон, конечно же, FD>>встречается.
AVK>А приведенный мной способ только сосбтвенный код и меряет.
потому я и говорю, что мой алгоритм действий, для этой задачи, был бы следующий: покопаться в интернете и справочниках и найти оптимальное решение. более чем убежден, что на вашу ссылку я бы тоже нарвался, возможно и использовал бы ее.
слижком много вещей, которые казались мне очень актуальными 5-10 лет назад, на сегодняшний день не имеют практического смысла. когда каждый месяц появляются новые технологии, я физически не имею возможности запомнить все детали. единственный выход для меня — это изучить базовые принципы и знать, где их можно уточнить.
Здравствуйте, mymuss, Вы писали:
M>В Гугле считают, что умение решать головоломки есть признак хорошего разработчика. В Гугле хотят нанять хороших разработчиков. Поэтому для отсева кандидатов им предлагают порешать головоломки.
А вы считаете себя гуглом? В гугл столько кандидатов рвется, что они могут просто нанимать их по принципу — кто быстрее свой носок сжует, и не ошибутся. Я не уверен, что такая ситуация у всех компаний, тем более у компаний третьего эшелона. Там если так выпендриваться — то можно вообще сотрудника по два года искать. Если кто-то и заглянет ненароком по объявлению раз в три месяца — то тарелку борща ему наливать надо, а не площадь круга спрашивать.
И>значит, программисту вся математика не нужна, о чем я и стараюсь говорить с самого начала. нужна булева арифметика, логические операции, дискретная (хотя я уже не помню, про что она). а вот умения считать площадь круга (геометрия) не нужна сто лет в обед.
Я тебе по секрету скажу, что вся математика не нужна обычно даже профессиональным математикам.
Здравствуйте, Whistler, Вы писали:
W>Здравствуйте, mymuss, Вы писали:
M>>В Гугле считают, что умение решать головоломки есть признак хорошего разработчика. В Гугле хотят нанять хороших разработчиков. Поэтому для отсева кандидатов им предлагают порешать головоломки.
W>А вы считаете себя гуглом?
Разумеется, нет. Считали бы себя Гуглом, спрашивали бы головоломки и требовали кандидатскую корочку.
Это была иллюстрация того, что если на собеседовании спрашивается о площади круга, то это совсем не значит, что на этой должности ежедневно считают площади кругов. Это значит лишь то, что собеседующий усматривает наличие некоторой связи между знанием формулы площади круга и того, чем занимается организация. (Я честно не думал что надо до такой степени разжевывать простую аналогию)
1. Но когда вы приносите ему расчёты он же не вопит о том, что точность слишком низкая?
2.1. А если принести бухгалтеру ответ, ..., то [бухгалтер] может [что может сделать] и развопиться.
2.2. А если принести бухгалтеру ответ, ..., то [бухгалтер] может [что, может быть, сделает] и развопится.
Тут приемлемы обе формы, это уже не синтаксис/грамматика/лексика, а стиль, причём выбор 1.1. или 1.2. зависит... ну, сложно сформулировать, стиль, в общем
ср:
А если щёлкнуть кобылу по носу, она может и повернуться
А если щёлкнуть кобылу по носу, она, может, и повернётся // но в верхнем случае (то может и развопится) запятые не надо, так как там не "он, может [быть], и развопится", а "то может и развопится" (может тут немного по-разному трактуется, сложно сказать)
Богат рус.яз и гибок
P.S. (вот слово рассчёты в вашем сообщении — уже лексика )
P.P.S. с Maple 4 работал arcsin 2 как-то выискивал там нашёл, даже графики 3-мерные нарисовал
Здравствуйте, BulatZiganshin, Вы писали:
BZ>код пишется один раз, а читается 10. и если второе будет понятней, то я обязательно перепишу
К тому что будет понятней, обычно приходишь в процессе. Кодируешь и пишешь дикое условие. Потом смотришь на него и думаешь: чего-то сложно. Преобразовываешь. Получаешь более простое. И сам удивляешься, что первоначально мысль пошла в диком направлении.
другими словами, ответа на мой вопрос нет? можно сколь угодно долго рассказывать про теорию, но если она не доходит до практики, то здесь тоже много вопросов возникает.
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, zakima, Вы писали:
M>>> 2. найти площадь круга по радиусу Z>>Так получилось, что я ее помню каким-то образом, но за последние 10 лет не помню чтобы приходилось пользоваться. Мог бы и забыть.
M>В этом и состоит магия этой формулы. Почти все программисты ее помнят, но не помнят когда последний раз нею пользовались.
Почти все помнят формулу факториала, даже рекурсию пишут. Но я не помню, когда последний раз я использовал эту функцию в каком-то проекте.
Интереснее, предложить найти сумму всех нечетных чисел между 26 и 43, например. И посмотреть % решивших эту задачу в лоб.
Здравствуйте, Олег Гашев, Вы писали:
Z>>>Так получилось, что я ее помню каким-то образом, но за последние 10 лет не помню чтобы приходилось пользоваться. Мог бы и забыть.
M>>В этом и состоит магия этой формулы. Почти все программисты ее помнят, но не помнят когда последний раз нею пользовались.
ОГ>Почти все помнят формулу факториала, даже рекурсию пишут. Но я не помню, когда последний раз я использовал эту функцию в каком-то проекте. ОГ>Интереснее, предложить найти сумму всех нечетных чисел между 26 и 43, например. И посмотреть % решивших эту задачу в лоб.
Все-таки проще вывести формулу, чем влоб решать. Впрочем и решение влоб ненамного дольше.
Во всяком случае я формулу для суммы арифметической последовательности не вспомнил, но вывести ее заняло менее десяти секунд.
Так а собственно чем эта задача отличается от задачи с формулой площади круга? Там формула тоже выводится, для тех кто не помнит, и даже посложней будет, имхо.
Про факториал таки правда. Я где-то раз в три месяца пишу код, который факториал считает, причем в двух вариантах — иногда требуется разъяснить не программистам разницу между итерациями и рекурсией.
Здравствуйте, Grizzli, Вы писали:
G>проблема в том, что масса достойнейших специалистов, весьма успешно работающих и создающих софт в сотни раз более сложный чем упомянутоя формула эту собственно формулу и закон банально не помнят. Потому что ну ни разу она им после школы/универа не приренялась. И получается идиотизьм — человек безусловно успешен, безусловно достоин, но вот, "no hire" изза того что ктото считает что подобный мусор успешный специалист ОБЯЗАН держать в своей явно не резиновой головушке, а не скажем знать в какой справочник слазить нужно. Это да, злит. Т.к. заявка идет на человека который прежде всего умеет решать задачи, а спрашивают как с человека который экзамены умеет сдавать. Т.е. студента зубрилу.
Всё неправильно.
1. Наниматель волен выставлять свои требования.
2. "Успешность" штука контекстно-зависимая. Успешный в одних условиях может оказаться совершенно безуспешным в других.
3. "Успешность" совершенно не связана с достоинством. Успешными могут быть и откровенные подлецы.
Так что злишься ты не по делу.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, SE, Вы писали:
SE>Все-таки проще вывести формулу, чем влоб решать. Впрочем и решение влоб ненамного дольше. SE>Во всяком случае я формулу для суммы арифметической последовательности не вспомнил, но вывести ее заняло менее десяти секунд.
SE>Так а собственно чем эта задача отличается от задачи с формулой площади круга? Там формула тоже выводится, для тех кто не помнит, и даже посложней будет, имхо.
Формулу круга можно просто знать. Вывести формулу арифметической прогрессии и использовать её — покажет Ваше умение пользоваться математическим аппаратом и использование его по назначению, что гораздо важнее, чем просто знание.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Это ничего не гарантирует, но позволяет за 5 секунд снять опасения, что у кандидата откровенно пустая голова. Ты пойми, я не считаю, что площадью круга можно заменить сугубо профессиональные знания и навыки. Просто для меня дико, когда таких элементарных вещей не только не знают, но ещё и возмущаются тем, что про них могут спросить.
Зато это гарантирует, что у более-менее опытного человека, не первый раз пошедшего на собеседование, в голове включится триггер "очередные умники, начитавшиеся методологий. Работать не пойду, так постебусь".
Не удивляйтесь только потом.
Здравствуйте, mymuss, Вы писали:
M>Это как-то следует из моих слов? Если да, то из каких?
Уже бы определился, честное слово. L>>Только не надо обижаться услышанному в свой адрес от настоящего сеньера. M>Я не буду обижаться нисколько. Напротив, буду благодарен ему за то, что не надевал маску приличия, а прямо дал понять, что он не тот человек, которого мы хотим видеть в колективе.
При определенной ситуации на рынке труда выбираете вовсе не вы.
Подумайте об этом.
ГВ>Две-три ключевых проверки: что файл открылся (открыт) и что запись прошла успешно и полностью, и что удалось нормально закрыть, если открывали. Интересно, почему о второй проверке никто не вспомнил?
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Две-три ключевых проверки: что файл открылся (открыт) и что запись прошла успешно и полностью, и что удалось нормально закрыть, если открывали. Интересно, почему о второй проверке никто не вспомнил?
MSS>write() не может пройти не полностью.
Смотря какой.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Две-три ключевых проверки: что файл открылся (открыт) и что запись прошла успешно и полностью, и что удалось нормально закрыть, если открывали. Интересно, почему о второй проверке никто не вспомнил?
MSS>write() не может пройти не полностью.
Вернее так: если успешно, то полностью.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Gradient, Вы писали:
A>>>Я про такие выражения узнал на первом курсе. A>>>А про теорию множеств, булеву алгебру на 2-м или на 3-м. И уже запоминал, что U это как ||, а ^ это как &&, ну чёрточка вверху — это ! . A>>>Проходил это я очень подробно, с кучей доказательств. Но в голове ничего не осталось. A>>>А как применить отрицание к целому выражению я и до этих курсов знал.
SD>>Ахаха у меня почти так же, разве что про || и && я знал еще до универа.
G>Да доказательств-то там — табличка на 4 строчки. Чтобы написать 12 единиц или нулей никаких знаний не надо. ИМХО как раз то, что хотел видеть у кандидатов автор темы — умение ответить на простенький вопрос для проверки наличия мозга.
Не доказательство, а доказательства и их в булевой алгебре достаточно много, не все можно по табличке проверить.
Здравствуйте, alzt, Вы писали:
G>>Да доказательств-то там — табличка на 4 строчки. Чтобы написать 12 единиц или нулей никаких знаний не надо. ИМХО как раз то, что хотел видеть у кандидатов автор темы — умение ответить на простенький вопрос для проверки наличия мозга.
A>Не доказательство, а доказательства и их в булевой алгебре достаточно много, не все можно по табличке проверить.
Да можно, можно... Только табличка будет километров на сорок.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, olegkr, Вы писали:
O>>А вообще я фигею, насколько математики любят называть умными словами самые обычные вещи. Вот что такое булевая алгебра? Да ненамного сложнее +-/*, разобраться и понять можно за несколько часов, а сколько гонора и спеси.
M>Вообще-то булевая алгебра это дистрибутивная решетка, в которой каждый элемент имеет дополнение. Если ты с нуля за пару часов в состоянии понять, что максимальный идеал булевой алгебры совпадает с прообразом нуля при ее двузначных гомоморфизмах, то я снимаю перед тобой шляпу.
И как это знание мне поможет решать повседневные задачи по реализации бизнесс-логики? Логическое выражение надо записывать читабельно, а не "по-научному". Нормальные отступы и пусть даже излишние скобки делают условия читаемым, а оптимизатор сам все упростит если сочтет нужным.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее.
Это с повседневным-то внедрением managed платформ? Ну-ну
Здравствуйте, Abalak, Вы писали:
ГВ>>Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее.
A>Это с повседневным-то внедрением managed платформ? Ну-ну
managed = smart-free? Это для меня новость.
Ты вообще в курсе, сколько всего было разработано и придумано на Lisp-платформах? Managed из managed-ов, между прочим.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Abalak, Вы писали:
ГВ>>>Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее.
A>>Это с повседневным-то внедрением managed платформ? Ну-ну
ГВ>managed = smart-free? Это для меня новость.
Здравствуйте, Abalak, Вы писали:
ГВ>>>>Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее. A>>>Это с повседневным-то внедрением managed платформ? Ну-ну ГВ>>managed = smart-free? Это для меня новость. A>smart == теория? Это для меня новость.
Теория = unmanaged?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IID, Вы писали:
IID>Да что вы говорите Если я на бумажке на собеседовании не напишу все, требуемые по венгерской нотации, префиксы — то я джуниор ? =)
Я это подумал на основании слудеющего:
1) Видно, что не привык следовать коть какой-либо code convention. Нет системы в том, как форматируешь код. В одном случае if (, в другом случае for(, в одном случае i=0, в другом случае x1 = x2, ну и т.д. Нет системы;
2) Выпендрился знанием того, что делает оператор запятая. i++, angel+= здесь не особо к месту;
3) 0 != i. Тоже имхо выпендрился . Во первых, насколько я знаю, так делают чтоб уберечся от того, что спутаешь LValue с константой и вместо == поставишь =. В случае != никакой выгоды, кроме как ухудшения читаемости не получаем;
Остальное мелочи и субъективно
Здравствуйте, IID, Вы писали:
IID> Просьба привести код была адресована не вам, а товарищу elmal, чтобы он смог обосновать свой ярлык "джуниор".
Свой ярлык обосновал . Если исправить то, что написал, то на основании этого кода о кандидате не скажешь ничего не хорошего, ни плохого . А если не исправить, то как-то бросается в глаза, что в команде со строгим code convention не работал .
Здравствуйте, IID, Вы писали:
IID>Да, вот ещё что. Приведите ваш вариант, который вы бы набросали на бумажке на собеседовании. Не (как вы выразились) по-джуниорски (если честно, мне любопытно, что для вас было решающим фактором). Честный код, который вы способны написать не от ходя от кассы, за пару минут. Без хелпов и интернета. Отлично, если это будет что-то существеннее, чем приближение отрезками прямых.
Написал бы наверно практически тоже самое, так как помню из математики ровно столько же . В данном задании единственное, что я мог бы продемонстрировать, это умение соблюдать code convention и то, что я стараюсь писать код максимально понятно. Задание к сожалению слишком простое, чтобы это продемонстрировать . Просто код очень уж напоминает мой, который я писал в студенческие годы, вот и придрался .
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Abalak, Вы писали:
ГВ>>>>>Оно никогда и не "постареет" в этом смысле. Нету основ для такого старения. На самом деле, программирование тяготеет к слиянию теории и "практики", и чем дальше, тем сильнее. A>>>>Это с повседневным-то внедрением managed платформ? Ну-ну ГВ>>>managed = smart-free? Это для меня новость. A>>smart == теория? Это для меня новость.
ГВ>Теория = unmanaged?
Не совсеи. Я просто ответил на очень спорное утверждение.
В целом соглашусь с рассуждениями, но как это коррелирует с
Вообще-то булевая алгебра это дистрибутивная решетка, в которой каждый элемент имеет дополнение. Если ты с нуля за пару часов в состоянии понять, что максимальный идеал булевой алгебры совпадает с прообразом нуля при ее двузначных гомоморфизмах, то я снимаю перед тобой шляпу.
?
Когда пишу условие — тоже иду по ходу мысли, когда проверил, что работает еще раз просматриваю условие и часто нахожу более лаконичное и читабельное условие. Опять же читабельное != самое оптимальное. В данном случае нужно развитое логическое мыщление, а не знание гомоморфизмов.
Программирование это инженерное ремесло, тут часто важно логическое/пространственное восприятие цепочки Имеем -> Хотим Получить. Если этого нет, то ты хоть трижды помни все постулаты булевой алгебры — результата не будет. Много раз в универе наблюдал, как народ уходил в отл. на экзаменах, где в ответы подрузамевали кучу теорем и выводов, а в следующем семестре на курсовике не могли толком ничего реализовать (специальность — робототехника). Зато позаканчивали все с красными дипломами и кучей гонора. Где они сейчас, через 5 лет — , мне отсюда не видно. Вроде презентации Интела устраивают на выставках.
Здравствуйте, olegkr, Вы писали:
AVK>>LSP это не постановка в театре, это базовый принцип ООД. O>Да почитал я про него. Теоретики, как обычно, в своем духе. Сформулировать и обозвать по-научному то, что и так используется на практике без всяких теорий. O>И что спрашивается я нового узнал из этого принципа? Да ничего.
IT-индустрия, в современном понимании этого слова, фактически стартовала в начала 90-х. Да и массовое обучение программистов тоже только тогда началось.
А до того ветер гудел над безмолвными водами.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
IT-индустрия, в современном понимании этого слова, фактически стартовала в начала 90-х. Да и массовое обучение программистов тоже только тогда началось.
Ой как нехорошо выхватывать фразы из контекста. В вышеприведенной ссылке обсуждалась IT-индустрия России, а не всего мира.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Для ваятеля веб-интерфейса достаточно вот каких познаний о площади круга — "то ли Пи-Эр-Квадрат, то ли Два-Пи-Эр, забыл, блин". И забыл не потому, что тупой, не потому, что и не знал — а потому, что _другие проблемы у человека в жизни, в т.ч. профессиональной_.
Даже не знаю, такой ответ я, пожалуй, принял бы. Но в моей практике попадалось 2 варианта ответов:
— правильный (или правильный с минимальными неточностями);
— ступор без малейшего понятия о чем речь.
Это первый кандидат, который не смог ответить на математический вопрос, но при этом относительно сносно отвечал на остальные. С одной стороны, технологию и платформу человек, вроде бы, знает (ну ладно, логарифмический скролер не напишет, ну не страшно, спросит у соседа). С другой стороны, я пытаюсь предотвратить найм быдлокодеров, пишущих ужаснейший тормозящий код.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, IID, Вы писали:
IID>>Да что вы говорите Если я на бумажке на собеседовании не напишу все, требуемые по венгерской нотации, префиксы — то я джуниор ? =) E>Я это подумал на основании слудеющего: E>1) Видно, что не привык следовать коть какой-либо code convention. Нет системы в том, как форматируешь код. В одном случае if (, в другом случае for(, в одном случае i=0, в другом случае x1 = x2, ну и т.д. Нет системы;
Система простая — всегда всё отделяю пробелами. В for не отделил, ага. Хотя в общем случае непонятно, как подсчитывать пробелы в коде написанном на бумажке.
E>2) Выпендрился знанием того, что делает оператор запятая. i++, angel+= здесь не особо к месту;
Всегда так пишу
E>3) 0 != i. Тоже имхо выпендрился . Во первых, насколько я знаю, так делают чтоб уберечся от того, что спутаешь LValue с константой и вместо == поставишь =. В случае != никакой выгоды, кроме как ухудшения читаемости не получаем;
Это уже на автомате, если сравнение с константой — константа идёт первой, даже не задумываюсь. Вот ухудшение понимания, ИМХО, было бы в случае if ( i ) или if ( !!i )
E>Остальное мелочи и субъективно
Да, вообщем-то, пофигу
Здравствуйте, Abalak, Вы писали:
A>Программирование это инженерное ремесло, тут часто важно логическое/пространственное восприятие цепочки Имеем -> Хотим Получить. Если этого нет, то ты хоть трижды помни все постулаты булевой алгебры — результата не будет.
Правильно. Самый цимес — стык практики, воображения и теории. И ничего лишнего, всё нужно.
A>Много раз в универе наблюдал, как народ уходил в отл. на экзаменах, где в ответы подрузамевали кучу теорем и выводов, а в следующем семестре на курсовике не могли толком ничего реализовать (специальность — робототехника). Зато позаканчивали все с красными дипломами и кучей гонора. Где они сейчас, через 5 лет — , мне отсюда не видно. Вроде презентации Интела устраивают на выставках.
И как это отрицает необходимость теоретической подготовки?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Если я к нему пришел на собеседование, то, разумеется, готов. M>А если он ко мне пришел, то я не улавливаю логики.
Есть у меня один знакомый собеседующий, жалуется что кандидаты плохо отвечают на вопросы и ничего не знают. Причем говорит насколько плохо — говорит что плавают так, как плавал в свое время он на собеседовании и знают приблизительно столько же . Правда его то взяли, а вот других уже не берут, собеседующий сменился.
А логика проста. Очень нехорошо, когда кандидата собеседует человек с квалификацией ниже, чем у него. Хорошо бы чтоб стресс был с обеих сторон. Своими вопросами проверяешь народ на стрессоустойчивость и быстроту мышления, значит у вас работа такова, это крайне важно, и ты, естественно, этими качествами обладаешь в избытке. Ну так и докажи кандидатам, что у тебя лично все это наблюдается. А так — посади меня, я любого гуру подрежу, если захочу, причем подрежу самыми простыми вопросами. Уж что что, а руководить методом "я начальник, ты дурак" много ума не требуется, как и квалификации.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Просто раньше это не обозначали на англоязычный манер "IT-индустрия", а пользовались другим термином: "Электронная и радиотехническая промышленность".
Каким боком это относится к разработке ПО???
ГВ>Следовательно, подготовка по этим специальностям была вполне современной
Я прекрасно помню ту "подготовку" в ВУЗ-ах. Как и сейчас она была близкой к нулю. Учится приходилось самому на практике.
ГВ>Вот так приблизительно, а ты говоришь — никакого проку с теоретиков.
И какой же? Не вижу аргументов. Куда более наглядно видна нулевая подготовка выпускников ВУЗ-ов.
Здравствуйте, mymuss, Вы писали:
M>В Гугле считают, что умение решать головоломки есть признак хорошего разработчика.
Они считают что посмотрев как человек решает головоломки можно прикинуть как у него работает мышление.
Но, блин, считать вопрос о формуле круга критическим вопросом?! Вас в черный список неадекватных работодателей вносить надо ИМХО.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, mymuss, Вы писали:
M>Хм... резонный вопрос. Ну ок, а зачем вообще устраивать тех. собеседование. Все ведь можно в интернете посмотреть? Главное, чтобы человек был хороший.
На собеседовании не надо проверять наличие энциклопедических знаний а на умение решать опеределенные проблемы вашего бизнеса. В данном случае на умение решать поставленные руководителем задачи.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, mymuss, Вы писали:
M>А еще они неплохи в биохимии, в графическом дизайне, в архитектуре и куче других областей. Я не работал с плюсами, но почти уверен, что это вам просто неудачная команда или человек попалась.
Да как то с С# у них тоже не фонтан. Имею на данный момент сомнительное удовольствие копаться в коде написанном штатовскими индусами. Индусский С# такое же говно как и индусский С++. Область — финансы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ты правда не понимаешь, или прикалываешься? А под чьим крылом тогда велась разработка вычислительной техники и ПО? Сорока на хвосте принесла, что ли?
Да та IT-"индустрия" и процента от нынешней не составит. Несерьезно. Тем более, что оригинальных разработок практически не было, сдирали все с запада
ГВ>Чему учиться? Новые API, тулзы, языки, ОС растут как грибы — ни один вуз за ними не угонится.
Не так уж и часто происходят критические изменения. На моей памяти их было всего 2 — переход на ООП и на управляемые среды.
ГВ>Та же история с теорией графов, статистикой, формальными грамматиками, теорией автоматов и т.п. И почему-то всё из перечисленного пригодилось. Что я делал не так?
Ты работал в той узкой области где это применимо. Это не фундамент — это такая же специализация, как дотнет. Причем очень узкая специализация.
ГВ>Ну я ж сказал, что LSP сильно повлиял на развитие ОО-проектирования.
Ради бога, я не возражаю, что он повлиял на развитие CS. И потом CS родил эти самые принципы и паттерны, которые уже стали применяться на практике. Так что LSP, само по себе — это чисто научное творение. Не понимаю, зачем о нем надо знать девелоперу, пишущему код? Специалисту в области CS — пожалуй стоит.
ГВ>Это связано с двумя явлениями: первое — объективно стали хуже учиться, второе — стало намного больше истерики по поводу "неподготовленности" молодых специалистов.
Так было и есть еще с советских времен. Причем не только в программировании. Очень хорошо помню, как точно такая же проблема была в микроэлектронике (из личных бесед) — представители заводов жаловались, что выпускники ни на что не годны и их надо учить заново. На что универовцы только разводили руками и предлагали расширить производственную практику.
Да оно и понятно, ничего другого предложить они не могли, т.к. традиционно в российских ВУЗ-ах работают оторванные от жизни преподаватели. Они варятся в собственном соку, зачастую не имея никакого представления о том, что происходит вокруг. Куда уж им учить... Как учили 30 лет назад, когда математические расчеты были основной задачей ЭВМ, так до сих пор и учат, хотя математика ушла на третьестепенные позиции.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А вот незнание (судя по озвученным наблюдениям mymuss) — напротив, гарантирует некоторые существенные проблемы в том числе и в области "правки багов". И что же нужно выбрать? Гарантированные проблемы в угоду шибко специализированным специалистам?
Какие именно проблемы в области написания веб-приложений? Да еще причем и гарантированные.
Здравствуйте, elmal, Вы писали:
E>Ну так и докажи кандидатам, что у тебя лично все это наблюдается.
Зачем это ему и кандидатам? Он ищет людей, он задает им вопросы и выбирает кандидатов на основе ответов, кандидаты в свою очередь получают информацию о компании по характеру вопросов и тоже делают выбор. Всем хорошо. Нафига кандидату тестировать непонятного собеседующего, с которым может и работать не придется?
Здравствуйте, SE, Вы писали:
SE>Такие же проблемы, как и в других областях разработки ПО, и вообще в других областях, гм, народного хозяйства.
Так какие именно? Я плотненько работал в нескольких областях разработки ПО и не могу придумать ни одной проблемы, которую могла бы создать забытая школьная формула. Я тебе даже больше скажу, довелось мне и с математикой поработать в свое время, так и там это не было бы проблемой, т.к. для формул есть справочники, как для параметров методов документация. Это не то что бы не гарантированная проблема, это гарантированное отсутствие каких либо проблем в разработке вообще.
SE>В отличие от инженера, который знает как свою область, так и несколько смежных областей.
Математика лишь одна из кучи областей, и я бы сказал — редко встречаемая.
Здравствуйте, olegkr, Вы писали:
ГВ>>Ты правда не понимаешь, или прикалываешься? А под чьим крылом тогда велась разработка вычислительной техники и ПО? Сорока на хвосте принесла, что ли? O>Да та IT-"индустрия" и процента от нынешней не составит. Несерьезно.
Фу ты, ну ты, пальцы гнуты. В 80-90-х обороты IT-индустрии ещё нигде не составляли такой же доли, как сейчас. Это совершенно не означает, что её можно сбрасывать со счетов.
O>Тем более, что оригинальных разработок практически не было, сдирали все с запада
Ну это не совсем так, хотя здесь просто нужно взять справочник по полупроводниковым приборам и посмотреть наличие аналогов. Кажется, аналоги были даже не у всех микросхем серии 155. И если я не ошибаюсь, то топологии даже функционально аналогичных микросхем и их западных прототипов отличались.
Ну и как ты понимаешь, "содрать" ту же элементную базу — это только вершина айсберга. Нужно иметь то, чем "сдирать" и то, на чём "передраное" можно выпустить. А это уже совсем другая история. Одним только сдиранием сыт не будешь.
ГВ>>Чему учиться? Новые API, тулзы, языки, ОС растут как грибы — ни один вуз за ними не угонится. O>Не так уж и часто происходят критические изменения. На моей памяти их было всего 2 — переход на ООП и на управляемые среды.
Ну вот видишь, а я это не считаю даже изменениями, не говоря об их критичности. Может, ты ещё и веб-сервисы революцией прикажешь считать? Скорее уж революция произошла в СМИ, которые стали больше гудеть "про технологии", ну так это уже совсем из другой оперы.
ГВ>>Та же история с теорией графов, статистикой, формальными грамматиками, теорией автоматов и т.п. И почему-то всё из перечисленного пригодилось. Что я делал не так? O>Ты работал в той узкой области где это применимо. Это не фундамент — это такая же специализация, как дотнет. Причем очень узкая специализация.
Хм. То, о чём я упомянул, применялось в самом обычном бизнес-софте: склады, бухгалтерии, биллинги, какая-то ещё хрень того же порядка. Это узкая специализация?
ГВ>>Ну я ж сказал, что LSP сильно повлиял на развитие ОО-проектирования. O>Ради бога, я не возражаю, что он повлиял на развитие CS. И потом CS родил эти самые принципы и паттерны, которые уже стали применяться на практике. Так что LSP, само по себе — это чисто научное творение. Не понимаю, зачем о нем надо знать девелоперу, пишущему код? Специалисту в области CS — пожалуй стоит.
Для того, чтобы не зубрить "паттерны" и массу странных слов, хотя бы. Сильно экономит время и нервы.
ГВ>>Это связано с двумя явлениями: первое — объективно стали хуже учиться, второе — стало намного больше истерики по поводу "неподготовленности" молодых специалистов. O>Так было и есть еще с советских времен. Причем не только в программировании. Очень хорошо помню, как точно такая же проблема была в микроэлектронике (из личных бесед) — представители заводов жаловались, что выпускники ни на что не годны и их надо учить заново. На что универовцы только разводили руками и предлагали расширить производственную практику.
Кстати, универовцы правильно предлагали расширить производственную практику. Собственно, я отнюдь не пытаюсь утверждать, что вузы были свободны от недостатков. Но это ж не повод коверкать всю систему вообще.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, olegkr, Вы писали:
O>Какие именно проблемы в области написания веб-приложений? Да еще причем и гарантированные.
А это ты у mymuss спроси.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Паттерны бесполезно зубрить в любом случае, достаточно просто помнить их название, просто чтобы букварь при разговоре о дизайне был общий, не более того.
+1. Так ведь всё равно же зубрят.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Фу ты, ну ты, пальцы гнуты. В 80-90-х обороты IT-индустрии ещё нигде не составляли такой же доли, как сейчас. Это совершенно не означает, что её можно сбрасывать со счетов.
Я и не сбрасываю, я писал только о том, что IT в современном понимании этого слова началось в те годы. Что кардинально поменялось в конце 80-х, начале 90-х? IT ушло из науки и крупного производства и стало вездесущим. Задачи перед ним стали совершенно другими, масштаб вырос на порядки. Фактически то, чем IT занималось раньше превратилось в несколько процентов от нынешнего IT.
ГВ>Ну это не совсем так, хотя здесь просто нужно взять справочник по полупроводниковым приборам и посмотреть наличие аналогов. Кажется, аналоги были даже не у всех микросхем серии 155.
Точнее будет сказать, что микроэлектроника остановилась на каком-то уровне и стала отставать. Пытались догнать, сдирая западные микросхемы, но при том темпе развития элементарно фатально не успевали. Почему развитие отечественной микроэлектроники остановилось — вопрос отдельный.
ГВ>Ну вот видишь, а я это не считаю даже изменениями, не говоря об их критичности.
Зря не считаешь. Тот же переход на ООП породил интересную проблему — программисты, давно работающие испытывали сложности с переходом. Для них не было проблемы перейти с фортрана на C, решать сложнейшие задачи, но новая объектно-ориентированная концепция просто не вписывалась в их понимание. Это была самая настоящая ломка. Частенько недавние бывшие студенты легче воспринимали ООП, чем ветераны. Это я заметил даже в России на опыте коллег, хотя у нас это было малоактуально. Но настоящая проблема была на западе, судя по прочитанными мною статьям.
Если ты не считаешь изменение всего мировоззрения даже изменением, то я не знаю, что ты таковым считаешь. Приведи пример, пожалуйста.
ГВ>Хм. То, о чём я упомянул, применялось в самом обычном бизнес-софте: склады, бухгалтерии, биллинги, какая-то ещё хрень того же порядка. Это узкая специализация?
У меня знакомый работает со складом и бухгалтерией. Чего-то в 1С ничего подобного он не пишет. Я писал биллинг, не очень большой, на полмиллиона абонентов. И скажу я тебе, что самая большая Ж у нас была с самописным языком по разбору логов. Не я его писал, честно, но вроде бы все было написано по-правильному... с точки зрения математика-теоретика, а не архитектурного дизайна... жаль только работало это через раз, очень медленно и что-то поменять там было малореально. Потом перешли, конечно, на нормальное решение (без вышеописанных buzzwords), но сие творение запомнилось мне надолго. С тех пор я считаю, что ДНК у хорошего математика и хорошего программиста различаются значительно.
ГВ>Для того, чтобы не зубрить "паттерны" и массу странных слов, хотя бы. Сильно экономит время и нервы.
Было бы интересно посмотреть пример. Вот возьмем, банальный, всем известный паттерн Abstract Factory. Как его из LSP вывести?
Здравствуйте, Геннадий Васильев, Вы писали:
O>>Какие именно проблемы в области написания веб-приложений? Да еще причем и гарантированные. ГВ>А это ты у mymuss спроси.
Спрошу, конечно, хотя о гарантированных проблемах именно ты речь завел, может и нету у него никаких проблем, просто ему просто неприятно работать с теми, кто школу закончил давно и программу школьную забыл.
mymuss, скажи, пожалуйста, каких гарантированных проблем в разработке вебсайтов ты пытаешься избежать, отсеивая собеседуемых таким вопросом по школьной программе? Вот я, например, помимо прочих задаю вопросы про многопоточность, синхронизацию и дедлоки. Ну с этим все понятно, потоки мы используем активно и неправильное обращение с ними приводит к трудноуловимым неприятным ошибкам. К сожалению, отвечают не так что бы много.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Чему учиться? Новые API, тулзы, языки, ОС растут как грибы — ни один вуз за ними не угонится. Правильный вуз даёт прежде всего фундаментальную подготовку, подкрепляя её определённой практикой, но ни в коем случае не наоборот! Под "фундаментом" я не имею в виду "фундаментальные знания об устройстве ОС Windows", конечно... Вот, например, много тебе пришлось изучать такую штуку, как нормальные формы БД после вуза? Мне не пришлось совсем, вполне хватило институтских конспектов, потом купил пару книжек, чтоб не забыть. Та же история с теорией графов, статистикой, формальными грамматиками, теорией автоматов и т.п. И почему-то всё из перечисленного пригодилось. Что я делал не так?
вопрос в том, какеой процент времени ты в вузе изучал то, что пригодилось? в моём вузе то например было всего 10-20%, остальное — многочисленный хлам от матана до автокода
AVK>Паттерны бесполезно зубрить в любом случае, достаточно просто помнить их название, просто чтобы букварь при разговоре о дизайне был общий, не более того.
ну вот, вы говорите, что паттерны достаточно просто помнить их названия. и в то же время требуете, чтобы формулы школьной геометрии кандидат не просто помнил названия, а помнил сами формулы. где логика? программисту паттерны знать не обязательно, но геометрию обязательно.
а между тем, на собеседованиях оч часто спрашивают конкретную реализацию конкретного паттерна. и вот это логично и правильно.
Здравствуйте, игппук, Вы писали:
И>и в то же время требуете, чтобы формулы школьной геометрии кандидат не просто помнил названия, а помнил сами формулы.
Ты меня с кем то спутал. Я нигде такого не требовал.
И> где логика?
Хороший вопрос. К тебе.
И>а между тем, на собеседованиях оч часто спрашивают конкретную реализацию конкретного паттерна. и вот это логично и правильно.
Ты тоже не в курсе, что такое LSP?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, SE, Вы писали:
SE>Забытая формула дает проблемы не сама по себе, забытая формула — показатель того, что человек научившись крутить свою гайку, решительно и бесповоротно поставил крест на всем остальном.
Об этом говорит скорее незнание школьной формулы, а не то, что она забыта.
SE>И наличие справочника по параметрам функции никак ему не помогает — ну не знает он даже что классы есть готовые
Это если не знал, а не забыл. Ключевое слово. Если не применял давно и забыл параметры, то найдет их легко.
SE>Хм. А по-моему так же часто как и остальные. Вот конечные автоматы просто в каждом проекте из года в год.
Бывает, согласен.
SE>Деревья тоже с завидной регулярностью встречаются.
Тоже соглашусь.
SE>Тоже специфика? Да, это не вторые производные и не интегралы, это дискретка, но это тоже математика.
Если таком понимании, то да, ты меня убедил. Такая математика встречается часто, возможно я просто не воспринимаю ее, как математику. В моем понимании математика —
это нечто посложнее
SE>Я не сомневаюсь в компетенции всех, кто присутствует на этом сайте, но оглянитесь вокруг, множество людей называют себя программистами, даже не зная разницу между рекурсивными вычислениями и итеративными.
Есть, согласен. И точно так же считаю, что это плохо.
SE>Потому что оно им не надо. Незнание площади круга ведь не мешает неподдерживаемый код писать.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>вопрос в том, какеой процент времени ты в вузе изучал то, что пригодилось? в моём вузе то например было всего 10-20%, остальное — многочисленный хлам от матана до автокода
Не знаю, как Геннадия, а меня ВУЗ научил прежде всего думать, анализировать, и впитывать знания, в том числе научил и отбрасывать несущественный хлам. Но даже не отбрасывать, а откладывать на потом, потому что мало ли что может понадобиться.
Мне кажется в этом и состоял смысл института — не в тоннах теории, а в выращивании инженерного мышления.
Здравствуйте, SE, Вы писали:
SE>научил и отбрасывать несущественный хлам.
Это, кстати, факт! Хлама было порядочно, уж чему-чему, а этому научили в ВУЗ-е на 100% Думать, анализировать и учиться я лично умел и до ВУЗ-а, даже не знал, что кому-то надо этому учиться отдельно. Впрочем я думаю, что это скорее просто красивая и расхожая фраза.
Здравствуйте, AndrewVK, Вы писали:
И>>если ты мне расшифруешь на человеческий язык, что такое LSP, то я тебе скажу, знаю я, что это такое, или нет.
AVK>Я его в этом топике уже расшифровывал — Liskov substitution principle.
я ознакомился с этим принципом. паттерном мне его назвать сложно. принцип — это более правильное определение. но это на мой взгляд, настаивать не стану. если умные дядьки считают, что это паттерн, то пусть оно так и будет. просто лично я паттерны учил по книге, в которой было описано 26 паттернов (если мне не изменяет мой склероз). принцип лисков там не был описан, потому про него не в курсе. сейчас в курсе, благодаря вам, спасибо. и тем не менее, я не могу сказать, что знание/не знание этого принципа сможет охарактеризовать уровень программиста.
Здравствуйте, olegkr, Вы писали:
O>Впрочем я думаю, что это скорее просто красивая и расхожая фраза.
Для меня институт действительно был существенным шагом вперед. До этого в школе у меня просто не было достаточных стимулов, к сожалению. Все как-то по накатанной да само-собой, а тут вдруг пришлось поднапрячься. Конечно это было только один из множества шагов, но существенный.
Здравствуйте, AndrewVK, Вы писали:
И>>я ознакомился с этим принципом. паттерном мне его назвать сложно.
AVK>А паттерном его никто и не называл.
И>> принцип — это более правильное определение.
AVK>Он так и называется — принцип Ты с кем споришь то?
для начала разберитесь в своих же словах. я не телепат, и в мозги к вам залезть не могу. цитирую то, что мне написали вы, ранее. и после этого вы мне еще будете доказывать, что про паттерны ничего не говорили?
И>а между тем, на собеседованиях оч часто спрашивают конкретную реализацию конкретного паттерна. и вот это логично и правильно.
AVK>Ты тоже не в курсе, что такое LSP?
И>может и в курсе, а может и нет. по крайней мере эта аббревиатура мне ни о чем не говорит. мне пойти повеситься?
AVK>Нет, идти учить паттерны.
Здравствуйте, _FRED_, Вы писали:
_FR>Представьте ситуации.
Да все понятно. Удивляет то, что вопрос вообще никаким боком не относится к собственно теме разработки и по нему выносится однозначное моментальное решение.
_FR>Позвольте это решать нанимателю и постарайтесь удержаться от оскорблений в его адрес. Ругать можно за обман, например, а не за алгоритм принятия решения.
Да я и не ругал, дело их, просто очень сильно удивился.
Здравствуйте, AndrewVK, Вы писали:
AVK>продолжать развиваться дальше в качестве технического специалиста. Знание теории необходимо только для последнего варианта развития событий.
С этого момента поподробнее. Каким образом знание теорий, имеющих весьма отдаленное отношение к практике, может помочь развиться абстрактному программисту? Да и развиться куда, в каком направлении?
Здравствуйте, AndrewVK, Вы писали:
AVK>Не, это ты лучше разберись, что ты там себе навыдумывал. Или приведи цитату, где я утверждал, что LSP это паттерн.
ну естесственно, теперь я все не так понял. значит, ту последовательность высказываний, что я привел, скипнули? интересно, а собеседования вы тоже так проводите, что вас кандидат не понимает?
Здравствуйте, olegkr, Вы писали:
ГВ>>Ну вот видишь, а я это не считаю даже изменениями, не говоря об их критичности. O>Зря не считаешь. Тот же переход на ООП породил интересную проблему — программисты, давно работающие испытывали сложности с переходом. Для них не было проблемы перейти с фортрана на C, решать сложнейшие задачи, но новая объектно-ориентированная концепция просто не вписывалась в их понимание. Это была самая настоящая ломка. Частенько недавние бывшие студенты легче воспринимали ООП, чем ветераны. Это я заметил даже в России на опыте коллег, хотя у нас это было малоактуально.
Я был свидетелем этих трудностей. Сам "пропихивал" ООП где надо и не надо. Правда, большой вопрос, стоило ли это делать так рьяно, но уж что было, то было. Сейчас я, правда, уверен, что "ломки" отечественных программистов связаны были не столько с распространением ООП, сколько с разрушением СССР и сопутствующей потерей много чего. ИМХО, это был самый тяжёлый фактор.
O>Но настоящая проблема была на западе, судя по прочитанными мною статьям.
Ничего удивительного на самом деле. Новый подход к формулировке решений породил вполне естественную волну ошибок, завышенных ожиданий, разочарований и ещё много чего. Та же история повторилась с 4GL, Java, COM, Web, вебсервисами...
O>Если ты не считаешь изменение всего мировоззрения даже изменением, то я не знаю, что ты таковым считаешь. Приведи пример, пожалуйста.
Пожалуй, на сегодняшний день это появление многопроцессорных настольных компьютеров.
ГВ>>Хм. То, о чём я упомянул, применялось в самом обычном бизнес-софте: склады, бухгалтерии, биллинги, какая-то ещё хрень того же порядка. Это узкая специализация? O>У меня знакомый работает со складом и бухгалтерией. Чего-то в 1С ничего подобного он не пишет. Я писал биллинг, не очень большой, на полмиллиона абонентов. И скажу я тебе, что самая большая Ж у нас была с самописным языком по разбору логов [...].
Я тоже могу привести примеры неудачных решений. Ты спрашивал о моей специализации, я ответил.
ГВ>>Для того, чтобы не зубрить "паттерны" и массу странных слов, хотя бы. Сильно экономит время и нервы. O>Было бы интересно посмотреть пример. Вот возьмем, банальный, всем известный паттерн Abstract Factory. Как его из LSP вывести?
Очень просто. Берём операцию "создать объект по параметру selector и работать с его интерфейсом SomeClass" и последовательно устраняем упоминания реализующих типов.
public void someMethod() {
SomeClass obj; // = NULL, тут объекта ещё нет
[** ... что-то делаем в зависимости от параметра SomeSelector() ...]
obj.method(); // А вот тут obj уже не NULL
}
Исходно [**] выглядит, например, так:
switch(SomeSelector())
{
case 1: obj = new SomeClass1;
case 2: obj = new SomeClass2;
}
Плохо, что упоминаются классы реализации. Сворачиваем, убирая упоминания SomeClass1, SomeClass2 в отдельный класс:
class Factory {
public SomeClass createInstance(selector);
};
Теперь [**] выглядят так (Это — паттерн Factory):
Factory f = new Factory;
obj = f.createInstance(SomeSelector());
Лучше, на этом можно бы и остановиться. Но похоже, что нам придётся добавлять ещё какие-то классы вместо SomeClass1 и SomeClass2. И очень сильно похоже, что для этого придётся сделать ещё одну фабрику. Так что, теперь хорошо бы исключить ещё и упоминание о типе самой фабрики. Модернизируем решение в соответствии с LSP:
Теперь интерфейс Factory приезжает откуда-то извне, возможно, что это некий глобальный синглтон или, скажем, он передан параметром при создании экземпляра текущего класса. Как бы то ни было, но [**] сейчас выглядит так:
obj = factory.createInstance(SomeSelector());
Для определённости полагаем, что интерфейс Factory приезжает через параметр someMethod:
Сам экземпляр фабрики порождается где-то очень сильно в стороне.
Итак, по ходу дела получились "паттерны" Factory и Abstract Factory. Произошло это вследствие последовательного вытеснения упоминаний типов уровня реализации из использующего кода. В строгом соответствии с LSP.
Вернее сказать, LSP тут используется для проверки того, что использующий код не зависит от реализаций.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
BZ>вопрос в том, какеой процент времени ты в вузе изучал то, что пригодилось? в моём вузе то например было всего 10-20%, остальное — многочисленный хлам от матана до автокода
Трудно сказать. Без дискретки нам не давали бы ни электронику, ни базы данных. Дискретку не стали бы давать не рассказав, например, о том, что такое "матрица", о чём рассказывалось на ВМ первого курса. Без матриц не стали бы рассказывать о компьютерной графике. В свою очередь, электронику не стали бы давать, не натаскав в электротехнике. Электротехнику не стали бы давать без некоторых разделов математики — в частности, функции комплексной переменной. Формальные грамматики не стали бы читать не познакомив школяров с программированием вообще (Assembler, RPASCAL, ЕС1035) и с дискретной математикой в частности. И так далее в том же духе. Были, конечно, лабораторные на фортране, но это такие минимальные издержки, что и говорить ни к чему.
В реальной жизни больше и чаще всего пригождались только верхушки, это ежу понятно. Ну так эти ж верхушки надо было на чём-то вырастить, правильно? Это как раз и есть та самая системность образования.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>В реальной жизни больше и чаще всего пригождались только верхушки, это ежу понятно. Ну так эти ж верхушки надо было на чём-то вырастить, правильно? Это как раз и есть та самая системность образования.
ты и не трахаешься наверно, поскольку не специалист в сексологии?
Здравствуйте, SE, Вы писали:
SE>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>вопрос в том, какеой процент времени ты в вузе изучал то, что пригодилось? в моём вузе то например было всего 10-20%, остальное — многочисленный хлам от матана до автокода
SE>Не знаю, как Геннадия, а меня ВУЗ научил прежде всего думать, анализировать, и впитывать знания, в том числе научил и отбрасывать несущественный хлам. Но даже не отбрасывать, а откладывать на потом, потому что мало ли что может понадобиться. SE>Мне кажется в этом и состоял смысл института — не в тоннах теории, а в выращивании инженерного мышления.
а крепостных в Росси порют чтобы вырастить свободных людей?
не верится мне что кто-то не умел в школе думать, а в вузе вдруг научился. по-моему, те кто в школе брал лишь трудолюием и упорством — так же учились и в вузе и так же наверно потом и работали. кто в школе был звёздным мальчиком — тот и вуз легко прошёл. вообше, эа легенда о том, что вуз не даёт знаний а просто "учит учиться" — сама по себе противоестественна. если судить по корочкам, то вузы должны давать знания. устаревшие и никому не нужные
Здравствуйте, BulatZiganshin, Вы писали:
BZ>ты и не трахаешься наверно, поскольку не специалист в сексологии?
Высказался, да?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
SE>>Хм. А по-моему так же часто как и остальные. Вот конечные автоматы просто в каждом проекте из года в год. Может это специфика веба? Деревья тоже с завидной регулярностью встречаются. Тоже специфика? Да, это не вторые производные и не интегралы, это дискретка, но это тоже математика.
BZ>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе
Только это всё стоит на теории графов и прочей ДМ.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
BZ>а крепостных в Росси порют чтобы вырастить свободных людей?
Некоторых пороть бесполезно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
BZ>если ты будешь думать в терминах high-order functions, то жить станет гораздо проще. хотя я понимаю, "поколению ООП" это недоступно, несмотря на всю их веру в своё "умение учиться"
Не хами. Меня спрашивали про паттерны, вот я про паттерны и рассказал. В терминах функций высших порядков решение будет выглядеть по-другому — передадим функцию, которая выберет нужную функцию, а выбранная функция по селектору вернёт требуемое. Тоже мне, бином Ньютона. Шоп сильно не оффтопить, успокою: это всё из 3-го курса, Lisp, 1990-й год.
Ишшо вопросы?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, SE, Вы писали:
SE>В отличие от инженера, который знает как свою область, так и несколько смежных областей. Невеждество в сопредельных областях знаний для инженера именно потому и недопустимо, что мешает качественно решать творческие задачи.
Если инженер-электронщик не помнит наизусть параметры какой-нить TDAшки или, (о ужас!) забыл, какой глубины потенциальная яма, то его тоже в расход?
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>По-моему, он отвечал на этот вопрос раз десять. Беда в том, что его оппоненты ждут вполне определённого ответа. По существу — крайне наивного ответа, выражающего непосредственную связь явлений. Логично, что mymuss его не может дать.
Конкретно ни разу не ответил. Ломается, как барышня. ГВ>И где же тут невнятность? Вот такие у него наблюдения. Имеет полное право опираться на свой опыт. Да, действительно, знание формулы площади круга не гарантирует способности править баги. А вот незнание (судя по озвученным наблюдениям mymuss) — напротив, гарантирует некоторые существенные проблемы в том числе и в области "правки багов". И что же нужно выбрать? Гарантированные проблемы в угоду шибко специализированным специалистам?
Какие гарантированные проблемы? Только не надо ссылаться на mymussа и его наблюдения.
Похожий пример — у матерого С++ника на собеседовании спросили определение полиморфизма.
Вопрос — кто идиот?
L>>Еще раз — испрашивать "базовые знания" (не имеющие никакого отношения к позиции, к слову) у человека с ВО и резюме есть проявление неуважения. ГВ>Ну, как показывает весь этот топик, уважать одно только резюме и корочки — контрпродуктивно. По меньшей мере — самонадеянно. Можешь поверить мне на слово — ещё неделю назад я так не думал.
А никто не обещал, что будет легко. В примере с С++ прграммистом спрашивать определение полиморфизма, когда у него в резюме ясно сказано, что проект А под его руководством был построен с использованием подхода с полным использованием почти классического ООП, проект B использовал статический полиморфизм в хвост и гриву и так далее есть проявление грубейшего неуважения так как показывает, что резюме никто не читал и кандидат имеет полное моральное право не просто занести контору в самое глубокое место своего личного черного списка, но и высказать собеседователю все, что о нем думает.
Вопрос о площади круга, поданный именно в таком ключе — есть именно оскорбление.
Хотите сгладить? Нет проблем, сделайте тест на "общую эрудицию" и спрашивайте там хоть "-жи -ши пиши с И", но не удивляйтесь, что наиболее квалифицированные кадры станут обходить вашу контору за семь верст.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, BulatZiganshin, Вы писали:
SE>>>Хм. А по-моему так же часто как и остальные. Вот конечные автоматы просто в каждом проекте из года в год. Может это специфика веба? Деревья тоже с завидной регулярностью встречаются. Тоже специфика? Да, это не вторые производные и не интегралы, это дискретка, но это тоже математика.
BZ>>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе
ГВ>Только это всё стоит на теории графов и прочей ДМ.
ну да, ну да. а сложение стоит на теории групп. как я в первом класе учился — просто не понимаю
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Похожий пример — у матерого С++ника на собеседовании спросили определение полиморфизма. L>>Вопрос — кто идиот?
Рекомендую провести эксперимент. Скажите С++снику, что перегрузка — это яркий пример полиморфизма.
Если он знаком с историей понятия полиморфизм и его изначальным определением, то это вызовет лишь вопрос "И что?"
А если это матерый практик, но теория для него пустой звук, то его реакция вас удивит и будет отличной иллюстрацией поведения буйнопомешанных.
Наблюдал неоднократно, это у меня своего рода развлечение
Здравствуйте, elmal, Вы писали:
E>if (!updateBtnShow || !(!updateBtnShow || !(isCustomer))) ... E>Специально сохранил такой шедевр, делюсь . Так вот, тех, кто это написал я называю не иначе, как гениями. У меня просто не укладывается какой супермегавысокий IQ надо было иметь, чтоб вот это написать
Скобочки вокруг isCustomer выдают выкинутый когда-то в спешке 4й элемент.
E> и поддерживать.
+1
E>Кстати, после того, как я это упростил и понял че там хотели проверить, оказалось, что условие выполняется вообще всегда и if надо убрать вообще.
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
Здравствуйте, BulatZiganshin, Вы писали:
BZ>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, net_work_search, Вы писали:
__>>С удивлением обнаружил, что всё еще помню формулу площади круга. И даже объем помню.
M>Объем круга я тоже помню!
Это я писал под net_work_search (потом ник поменял).
Я тоже поржал когда перечитал, ага. Естественно имелся ввиду объем шара
Здравствуйте, landerhigh, Вы писали:
L>А никто не обещал, что будет легко. В примере с С++ прграммистом спрашивать определение полиморфизма, когда у него в резюме ясно сказано, что проект А под его руководством был построен с использованием подхода с полным использованием почти классического ООП, проект B использовал статический полиморфизм в хвост и гриву и так далее есть проявление грубейшего неуважения так как показывает, что резюме никто не читал и кандидат имеет полное моральное право не просто занести контору в самое глубокое место своего личного черного списка, но и высказать собеседователю все, что о нем думает.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, mymuss, Вы писали:
M>>А еще они неплохи в биохимии, в графическом дизайне, в архитектуре и куче других областей. Я не работал с плюсами, но почти уверен, что это вам просто неудачная команда или человек попалась. CC>Да как то с С# у них тоже не фонтан. Имею на данный момент сомнительное удовольствие копаться в коде написанном штатовскими индусами. Индусский С# такое же говно как и индусский С++. Область — финансы.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, CreatorCray, Вы писали:
CC>>Да как то с С# у них тоже не фонтан. O>Индусы немножко по другому думают. Вот как рассуждает типичный русский, когда его просят сделать новую фичу — да я щас так крута замучу, что бы и расширяемость была и красиво вписалось в архитектуру и побочных эффектов не было, ну понятно дело еще кучу кода отрефакторить придется. И делает русский эту фичу неделю. O>Индус думает по другому — начальник сказал сделать, надо сделать быстро-быстро, он меня выделит за то, что я быстро работаю и я получу повышение, а если все потом упадет или код некрасивый, так потом русский поправит, его недавно начальник ругал, что он в сроки не уложился, вот глупый какой русский.
ИМХО, это не культурная/национальная особенность. Я таких людей знаю и среди русских.
Здравствуйте, olegkr, Вы писали:
O>mymuss, скажи, пожалуйста, каких гарантированных проблем в разработке вебсайтов ты пытаешься избежать, отсеивая собеседуемых таким вопросом по школьной программе?
Я не говорил "гарантированных".
Мое мнение таково: математические знания применимы в любой области программирования, в том числе веб-девелопментне. Почти в любом веб-приложении найдется место теории множеств (напр. SQL) или, скажем, математическому анализу (напр. асимптотика). Я бы с удовольствием поговорил об оценке сложности алгоритмов, но допускаю, что человек мог это забыть и при необходимости способен со справочником разобраться за конечное время. Если же базовые математические знания отсутствуют, то даже если он и способен найти в справочнике, сколько времени на это уйдет?
, система не идеальна. Талантливый человек может быть отсеян из-за незнания элементарной математики. К сожалению, тех. собеседование ограничено 30-45 минутами. Поэтому задать десяток вопросов по математике, чтобы получить более верное представление о кандидате невозможно.
, система не идеальна. Талантливый человек может быть отсеян из-за незнания элементарной математики. К сожалению, тех. собеседование ограничено 30-45 минутами. Поэтому задать десяток вопросов по математике, чтобы получить более верное представление о кандидате невозможно.
и слава аллаху. лучше используйте это время с толком, и задавайте вопросы программисту о программировании
Здравствуйте, genre, Вы писали:
G>А у нас, что уже "джентельменам на слово верят"?
А если "не верят", та так и напишите в вакансии, что резюме можно не отправлять, так как Вы там все врете.
Верить-не верить — проблемы работодателя. Задавать человеку вопросы, ответы на которые есть в его резюме есть непростительная грубость, ценящий себя специалист сразу отметит "no hire".
вероятно ты имел в виду матосновы, вот и обрати внимание что в наших вузах не изучают не cs, ни матаппарат cs, за исключением булевой алгкбры. когда всё перечисленное на тех картинках займёт своё место в вузовской программе, заменив философию/физику/диффуры — тогда и будет смысл гордиться нашим *компьютерным* (а не математическим) образованием
Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>это не дискретка и вообще не математика, а CS. о существовании которой советские студенты просто не в курсе AVK>>http://en.wikipedia.org/wiki/Computer_science#Theory_of_computation
BZ>вероятно ты имел в виду матосновы, вот и обрати внимание что в наших вузах не изучают не cs, ни матаппарат cs, за исключением булевой алгкбры.
BZ>когда всё перечисленное на тех картинках займёт своё место в вузовской программе, заменив философию/физику/диффуры — тогда и будет смысл гордиться нашим *компьютерным* (а не математическим) образованием
Не знаю, как сейчас, но почти всё по этой ссылке было в программе советского технического вуза. За исключением, пожалуй, теории категорий, теории квантовых вычислений, и ещё относительно слабо был подан раздел символических вычислений.
Ну как, можем мы гордиться своим *компьютерным* образованием? Дозволяешь?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, landerhigh, Вы писали:
G>>А у нас, что уже "джентельменам на слово верят"? L>А если "не верят", та так и напишите в вакансии, что резюме можно не отправлять, так как Вы там все врете. L>Верить-не верить — проблемы работодателя. Задавать человеку вопросы, ответы на которые есть в его резюме есть непростительная грубость, ценящий себя специалист сразу отметит "no hire".
Дело не в том, что врут (хотя и такое бывало). А в том, что "проект Ы" в одном резюме это отличное отлаженное приложение, в другом глюкодром который выкинули как страшный сон давно. Или у одного это реалиация от и до, у второго "пофиксил 2 баги".
Здравствуйте, mymuss, Вы писали:
M>Если же базовые математические знания отсутствуют, то даже если он и способен найти в справочнике, сколько времени на это уйдет?
Замерил секундомером. Секунд 15-30 в зависимости от тормознутости интернета. На мой взгляд ты путаешь незнание (школьную программу проходили все) и забытое за ненадобностью. Я ради эксперимента задал такой вопрос коллеге. Отвечал он примерно в таком духе — pi*r2... или нет pi*d2... или как же его 2*pi*r2... pi*d2/4
Думаю, если тебе позадавать вопросы по школьной программе, то получим примерно такой же результат. Вот ты вспомнишь все три закона ньютона сходу? Если вспомнишь, то ты либо недавно школу закончил, либо обладаешь воистину энциклопедическим типом памяти :D
Здравствуйте, mymuss, Вы писали:
M>ИМХО, это не культурная/национальная особенность. Я таких людей знаю и среди русских.
Ну я знаю и одного неплохого индуса-кодера. Речь идет об общей тенденции, а она именно такая.
Здравствуйте, olegkr, Вы писали:
O>Думаю, если тебе позадавать вопросы по школьной программе, то получим примерно такой же результат. Вот ты вспомнишь все три закона ньютона сходу? Если вспомнишь, то ты либо недавно школу закончил, либо обладаешь воистину энциклопедическим типом памяти :D
Три — довольно непросто, из-за первого. Он слишком простой =)
1) Существуют инерциальные системы отсчёта
2) a=F/m (ускорение пропорционально силе и обратно пропорционально массе)
3) F12 = -F21 ("действие равно противодействию")
P.S. На работе приходится пользоваться и тригонометрией (нетривиальные pie-chart диаграммы), и выч. математикой (рассчёт опцонной аналитики), и CS (например, модель для UI-таблицы содержащей ~100.000 элементов, занимающими от 1 до нескольких строк каждый, отсортированной по какому-то либо столбцу, причём таблица обновляется со скоростью порядка 50 элементов/сек. — эта модель построена на структуре, сочетающей в себе как TreeMap для сортировки, так и HashMap для эффективного обновления по ключу).
Здравствуйте, Геннадий Васильев, Вы писали:
BZ>>когда всё перечисленное на тех картинках займёт своё место в вузовской программе, заменив философию/физику/диффуры — тогда и будет смысл гордиться нашим *компьютерным* (а не математическим) образованием
ГВ>Не знаю, как сейчас, но почти всё по этой ссылке было в программе советского технического вуза. За исключением, пожалуй, теории категорий, теории квантовых вычислений, и ещё относительно слабо был подан раздел символических вычислений.
ну и что вы например изучали по теории типов, теории вычислимости, анализу алгоритмов?
ГВ>Ну как, можем мы гордиться своим *компьютерным* образованием? Дозволяешь?
чем меньше знаешь — тем больше гордишься, так что у тебя самые веские основания
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>>Не знаю, как сейчас, но почти всё по этой ссылке было в программе советского технического вуза.
BZ>> ну и что вы например изучали по теории типов, теории вычислимости, анализу алгоритмов?
ГВ>Именно под такими названиями предметов не было, отдельные положения были собраны в других курсах
вот и подумай, почему на вмк подробно изучают какие-нибудь диффуры, но не находят время на профильные предметы. для подсказки — попробуй выяснить что изменилось в программе обучения за те 40 лет, что существуют отдельные вмк-факультеты
Здравствуйте, BulatZiganshin, Вы писали:
ГВ>>>>Не знаю, как сейчас, но почти всё по этой ссылке было в программе советского технического вуза. BZ>>> ну и что вы например изучали по теории типов, теории вычислимости, анализу алгоритмов? ГВ>>Именно под такими названиями предметов не было, отдельные положения были собраны в других курсах
BZ>вот и подумай, почему на вмк подробно изучают какие-нибудь диффуры, но не находят время на профильные предметы. для подсказки — попробуй выяснить что изменилось в программе обучения за те 40 лет, что существуют отдельные вмк-факультеты
А почему это я должен об этом думать? Тем более, что я сам учился на кафедре КиВТ (кибернетика и вычислительная техника) факультета АВТ (автоматика и вычислительная техника), а не на ВМК.
Кстати, между нами, девочками, перечисленные тобой теории, ИМХО, нет смысла выделять в отдельные курсы. Они вполне укладываются в более общие, вроде какой-нибудь "теории вычислительных процессов". Ничуть не умаляю значения, скажем, анализа алгоритмов, но если хорошо представлять себе, что такое граф и его свойства, то, в общем, постижение весьма ускоряется.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А почему это я должен об этом думать? Тем более, что я сам учился на кафедре КиВТ (кибернетика и вычислительная техника) факультета АВТ (автоматика и вычислительная техника), а не на ВМК.
одним словом, ты и не училося на программиста
ГВ>Кстати, между нами, девочками, перечисленные тобой теории, ИМХО, нет смысла выделять в отдельные курсы. Они вполне укладываются в более общие, вроде какой-нибудь "теории вычислительных процессов". Ничуть не умаляю значения, скажем, анализа алгоритмов, но если хорошо представлять себе, что такое граф и его свойства, то, в общем, постижение весьма ускоряется.
в техничексих вузах таким же макаром изучают и математику. не потому, что "нет смысла подразделять" — просто у них (у вас?) укороченная программа. это вот как раз есть "полгода поучиться достаточно чтобы формочки клепать". в ваших условиях было бы лучше сократить бесполезные предметы и за счёт них изучать во-первых практические ньюансы профессии (тестирование, жизненный цикл, методологии, паттерны...), во-вторых популярные фреймворки — чтобы на выходе из советского вуза получался не полуфабрикат, а реальный специалист, которого не надо лдоучивать и следить за каждым его шагом
университетская программа же должна выключать всё перечисленное на той странице в виде полноценных предметов — опять же за счёт предметов на букву фы
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Неправильный ответ на любой из этих вопросов -- автоматическое no hire. Только если правильно и быстро смог ответить на все три вопроса, будем продолжать разговор.
M>Ваше мнение?
Отличное собеседование для проекта связанного с планиметрией, в котором нужно перебирать элементы массивов и результаты пихать в файл. Например — прочитать из файла исходные значения, сделать вычисления площадей, записать обратно в файл и указать дату
Отличный подход.
У меня был период, гдето 4 года на проекте, когда ни разу не было нужды писать код для открытия/закрытия файлов. Во как !
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>[...] лучше сократить бесполезные предметы и за счёт них изучать во-первых практические ньюансы профессии (тестирование, жизненный цикл, методологии, паттерны...)
ГВ>Значит, в оригинале (в пресловутой институтской программе) тестирование так и называлось — тестированием. В частности, объясняли, что такое тестирование методом граничных условий, что такое тестовое покрытие, тестирование методом "чёрного ящика" и т.п. То есть, само по себе "тестирование" полагалось чем-то само собой разумеющимся и никак особо внимание не привлекающим. Ну да — программа. Ну да — программы нужно тестировать. Ну да, тесты нужно писать с учётом внутреннего устройства проограммы или как минимум предполагая определённый выход в ответ на определённый вход. И кстати, ни одна лабораторка по программированию, по сути, без тестов не обходилась. Напоминаю, что речь идёт приблизительно о периоде 90-92 г.г. прошлого века.
Через 15 лет от этого ничего не осталось. Когда учился в университетской программе вспомнили протестирование один раз (одна лекция) за все 5 лет.
20 лет назад прогресс в IT двигала наука, а теперь двигает бизнес. Для бизнеса нужно больше продавать, качеством обеспокоены совсем мало, вот и забыли все про тестирование.
Здравствуйте, gandjustas, Вы писали:
G>Через 15 лет от этого ничего не осталось. Когда учился в университетской программе вспомнили протестирование один раз (одна лекция) за все 5 лет.
Печально. Теории в тестировании, конечно, немного, но не до такой же степени. Интересно, чем заменили.
G>20 лет назад прогресс в IT двигала наука, а теперь двигает бизнес. Для бизнеса нужно больше продавать, качеством обеспокоены совсем мало, вот и забыли все про тестирование.
Чёрта-с-два забыли! Наоборот, упёрлись со всего маху.
Я, конечно, несколько утрировал, когда сказал, что совсем забыли о тестировании. Нет, не столько забыли, сколько не уделяли ему достаточного внимания, которое сейчас сменилось гипервниманием. Тестирование, конечно, тоже требует мастерства и обрастает своим фольклором, но до науки, ИМХО, ему далеко, если не скрестить с психологией. А так, теория в тестировании всё та же, что и в "обычном" программировании — те же графы, матрицы, автоматы и т.п. Ну сам посуди, что такое спарка тестовой программы и тестируемой программы? Это просто две взаимодействующие программы. Всё. Осталось назвать некоторые распространённые приёмы тестирования (черный ящик, белый ящик, нагрузочное, автоматизированное...) — и побежали обратно к теории графов.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Ikemefula, Вы писали:
I>>У меня был период, гдето 4 года на проекте, когда ни разу не было нужды писать код для открытия/закрытия файлов. Во как !
M>Но если бы тебя через 4 года спросили, то ты бы смог сказать open() -> write() -> close(), правда?
Ужас
Все Ваши вопросы смахивают только одно: определить, залётный это тип, случайно попавший на собеседование, или нет. Прямо детский сад какой-то.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, olegkr, Вы писали:
O>>Здравствуйте, mymuss, Вы писали:
M>>>Если же базовые математические знания отсутствуют, то даже если он и способен найти в справочнике, сколько времени на это уйдет? O>>Замерил секундомером. Секунд 15-30 в зависимости от тормознутости интернета. На мой взгляд ты путаешь незнание (школьную программу проходили все) и забытое за ненадобностью. Я ради эксперимента задал такой вопрос коллеге. Отвечал он примерно в таком духе — pi*r2... или нет pi*d2... или как же его 2*pi*r2... pi*d2/4
M>Найти ф-лу площади круга, конечно, не составляет труда. Как насчет понимания того, откуда взялся log в оценке сложности quicksort? M>Человек со знаниями элементарной математики, конечно, разберется, может не за 15 сек, а за полчаса, но разберется.
M>А вот человек без знаний элементарной математики? Ну найдет он статью о символах Ландау за 15-30 сек. Сильно поможет?
M>(Ну что, кто раньше скажет: "И как знание площади круга связано с асимптотической оценкой сложности?")
Ну и зачем оно мне, спрашивается? Я за 10 лет такие задачи не решал.
Ах да, может они когда-нибудь понадобятся. Когда появятся, буду решать. Займет некоторое время гуглекопания. В итоге всё вернется к стандартам.
В бизнесе такие скилы не нужны. Бабл сорт заменив на квиксорт не принесет +10% доходности. Вы не космическими технологиями занимаетесь. Вы меня ещё про ряды Фурье спросите или о функции Лагранжа.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Ikemefula, Вы писали:
I>>У меня был период, гдето 4 года на проекте, когда ни разу не было нужды писать код для открытия/закрытия файлов. Во как !
M>Но если бы тебя через 4 года спросили, то ты бы смог сказать open() -> write() -> close(), правда?
> Встречаются нормальные. Правда, их сразу расхватывают Google, MS, IBM etc, прямо с кампуса. Или же они идут в бодишопы типа Infosys, WiPro в надежде, что их вывезут в штаты. > > Нам вот удалось набрать довольно неплохую команду, я доволен в целом.
Здравствуйте, mymuss, Вы писали:
M>Ну а как проверить знание элементарной математики?
Хм. Ну а зачем? Вы там программистов нанимаете или математиков? Разве это так трудно — разделить предметную область и усадить за нее аналитиков-математиков и реализацию — и занять последней уже программистов?
ЗЫ: это категорически не только к математике относится — к любой предметной области относится: в чем смысл пытаться поиметь программиста, дабы он в предметной области разбирался настолько?
Здравствуйте, mymuss, Вы писали:
M>Думаю, что по школьной математике ты меня не завалишь. По физике или биологии, возможно. Но мы же говорим об инжинерах.
Да, конечно. А для физиков и биологов софт не иначе поеты пишут.
Здравствуйте, The Lex, Вы писали:
M>>Думаю, что по школьной математике ты меня не завалишь. По физике или биологии, возможно. Но мы же говорим об инжинерах.
TL>Да, конечно. А для физиков и биологов софт не иначе поеты пишут.
Есть такая профессия: аналитик предметной области. Вот они как правило в предметной области и разбираются. Это как раз их обязанность.
А у программиста основное направление точные науки. О них и речь шла.
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
Надо же. А я не помню навскидку прототип функции ctime()
Здравствуйте, olegkr, Вы писали:
ГВ>>Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики? O>Примерно так же, как включать лампочку не зная электротехники. Вот компилю же я код как-то, а уж там парсер так парсер!
А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML?
Здравствуйте, olegkr, Вы писали:
O>Я и не сбрасываю, я писал только о том, что IT в современном понимании этого слова началось в те годы. Что кардинально поменялось в конце 80-х, начале 90-х? IT ушло из науки и крупного производства и стало вездесущим. Задачи перед ним стали совершенно другими, масштаб вырос на порядки. Фактически то, чем IT занималось раньше превратилось в несколько процентов от нынешнего IT.
Это, кстати, неправда. Т.е., да, разные нетехнические аспекты использования IT (такие, как роль IT в экономике, например) действительно сильно изменились за последние годы. Но пользуясь вашим подходом, нам-то что до этого за дело, мы же не экономисты. Мы должны больше обращать внимание именно на техническую сторону дела. А вот там основа была заложена задолко до 80-х — 90-х. В России, кстати, тоже.
Здравствуйте, SE, Вы писали:
M>>>Думаю, что по школьной математике ты меня не завалишь. По физике или биологии, возможно. Но мы же говорим об инжинерах. TL>>Да, конечно. А для физиков и биологов софт не иначе поеты пишут.
SE>Есть такая профессия: аналитик предметной области. Вот они как правило в предметной области и разбираются. Это как раз их обязанность. SE>А у программиста основное направление точные науки. О них и речь шла.
Ты мою мысль таки не понял. У _программиста_ основное направление — _программирование_ — ссылка на "точные науки" ровно в ту же степь, что и медицина, строительство, ядерная физика, биология, генетика, транспорт — бухгалтерия туда же — и еще куча всяких предметных областей, где программисты _программируют_.
Предметная область на то она и предметная область чтобы в ней специально разбирающийся специалист разбирался — я так думаю.
Здравствуйте, Pzz, Вы писали:
Pzz>А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML?
Вот, кстати, хороший пример: дело программиста — заставить программу читать файл "в определенном формате" — ХМЛ там или еще что — дело десятое и это дело программиста — в этом он специалист. А вот что там за данные такие и по каким хитрым формулам они высчитываются — неужели нет для этого специального специалиста?
Здравствуйте, alzt, Вы писали:
A>А я не помню площадь круга. A>Догадываюсь, что должна зависеть от квадрата радиуса, и плюс там должен быть коэффициент пи. Но требуется ли умножить ещё на константу я вспомнить не смогу. A>Если дать мне листок бумаги и время подумать — подберу коэффициенты, но вспомнить точно не смогу.
По-моему, достаточно нарисовать квадрат размером 2x2 с вписанным в него кругом радиусом 1, чтобы было понятно, что коэффициента 4 будет многовато, а 2 — маловато. Поэтому ни 2 Пи, ни Пи/2 не подходит, методом исключения остается Пи
Главное — знать, что в формуле присутствует Пи и r^2
Здравствуйте, ArtemGorikov, Вы писали:
AG>Хочу сказать, что open() было популярно лет 30 назад, когда не было C++. Пора бы уже почитать у Страуструпа про std::stream. Также почитайте про стратегию обработки ошибок через исключения — это тоже уже давно изобрели.
В этом месте я бы напрягся, если бы мне такое рассказали на собеседовании. open() — это системный вызов, std::stream — библиотечный класс, реализующий некоторый частный случай файлового ввода-вывода. Они, как это сказать, повествуют о разном.
Здравствуйте, DK3981, Вы писали:
DK>Три — довольно непросто, из-за первого. Он слишком простой =) DK>1) Существуют инерциальные системы отсчёта
По-моему, люди хуже всего понимают именно первый. Возможно потому, что в школьном курсе физики не делается ударения на том, что он про инерциальные системы отсчета, а не про то, что тело без пинка не летит
M>Использование read() без open() -- fail.
Взято с msdn
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Здравствуйте, divergo, Вы писали:
M>>Использование read() без open() -- fail. D>Взято с msdn D>
D> using (StreamReader sr = new StreamReader("TestFile.txt"))
D> {
D> string line;
D> // Read and display lines from the file until the end of
D> // the file is reached.
D> while ((line = sr.ReadLine()) != null)
D> {
D> Console.WriteLine(line);
D> }
D> }
D>
В вышеприведенном коде нет ф-ции read(), если я правильно Вас понял
Здравствуйте, Pzz, Вы писали:
Pzz>А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML?
Буду использовать регулярные выражения.
Задача мне до тошноты знакомая, приходилось разбирать файлы со звонками приходящие от разнообразных коммутаторов. У всех из них был свой формат, да еще он зависел он настроек. Один "умник" сделал свой язык для разбора логов. Помучились мы с ним изрядно — все глючило и было ужасно медленно. О да! Там грамматик было по самое небалуйся. Под конец переделали по-нормальному, стали просто грузить сборки, которые все тупо в лоб парсили. Для 90% хватило одной конфигурируемой сборки, использующей регулярные выражения. Все просто залетало и глюки исчезли.
Здравствуйте, olegkr, Вы писали:
Pzz>>А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML? O>Буду использовать регулярные выражения. O>Задача мне до тошноты знакомая, приходилось разбирать файлы со звонками приходящие от разнообразных коммутаторов. У всех из них был свой формат, да еще он зависел он настроек. Один "умник" сделал свой язык для разбора логов. Помучились мы с ним изрядно — все глючило и было ужасно медленно. О да! Там грамматик было по самое небалуйся. Под конец переделали по-нормальному, стали просто грузить сборки, которые все тупо в лоб парсили. Для 90% хватило одной конфигурируемой сборки, использующей регулярные выражения. Все просто залетало и глюки исчезли.
А ежели формат файлов может меняться довольно часто и там будут необязательные значения, что тогда ?
Здравствуйте, olegkr, Вы писали:
Pzz>>А что вы будете делать, если вам поставят задачу читать данные из текстовых файлов в определенном формате, и при этом этот формат будет не XML? O>Буду использовать регулярные выражения.
А если язык, на котором написаны эти файлы, не является регулярным языком, а, следовательно, не может быть разобран с использованием регулярных выражений?
O>Задача мне до тошноты знакомая, приходилось разбирать файлы со звонками приходящие от разнообразных коммутаторов. У всех из них был свой формат, да еще он зависел он настроек. Один "умник" сделал свой язык для разбора логов. Помучились мы с ним изрядно — все глючило и было ужасно медленно. О да! Там грамматик было по самое небалуйся. Под конец переделали по-нормальному, стали просто грузить сборки, которые все тупо в лоб парсили. Для 90% хватило одной конфигурируемой сборки, использующей регулярные выражения. Все просто залетало и глюки исчезли.
Ну это не говорит ни о чем. На любую без исключения технологию можно найти "умника", который не умеет этой технологией пользоваться. Бросает ли это тень на все технологии на свете?
Здравствуйте, Ikemefula, Вы писали:
I>А ежели формат файлов может меняться довольно часто и там будут необязательные значения, что тогда ?
А он и меняется довольно часто, но в основном остается тем же. Просто конфигуришь и все.
Здравствуйте, Pzz, Вы писали:
Pzz>А если язык, на котором написаны эти файлы, не является регулярным языком, а, следовательно, не может быть разобран с использованием регулярных выражений?
Тогда пишешь подключаемую сборку на C#. Получаешь то же, что и при использовании самописного языка, но сборка скомпилируется, все будет летать и не будет прикольных багов.
Pzz>Ну это не говорит ни о чем.
Это говорит только о том, что нефиг писать парсер языка, если есть готовые.
Здравствуйте, olegkr, Вы писали:
Pzz>>Я не понимаю, каким образом подключаемая сборка на C# помогает парсить текст на языке, отличном от C#? O>Про то, что бы парсить исходники программы ты не писал. Речь шла про текстовые файлы
Я и сейчас об этом не пишу. Я спрашиваю, каким образом вы собираетесь парсить текстовые файлы, если нет готового парсера? И при чем здесь сборка на C#, раз уж вы ее приплели к вопросу?
Здравствуйте, Pzz, Вы писали:
Pzz>>>Я не понимаю, каким образом подключаемая сборка на C# помогает парсить текст на языке, отличном от C#? O>>Про то, что бы парсить исходники программы ты не писал. Речь шла про текстовые файлы
Pzz>Я и сейчас об этом не пишу. Я спрашиваю, каким образом вы собираетесь парсить текстовые файлы, если нет готового парсера? И при чем здесь сборка на C#, раз уж вы ее приплели к вопросу?
Предположу
Изобретет пару велосипедов, наплодит кучу багов, потом возьмет Dragon book.
Где-нибудь через полгода задача будет решена.
Шуткую. Не принимайте на свой счет.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Предположу SVZ>Изобретет пару велосипедов, наплодит кучу багов, потом возьмет Dragon book. SVZ>Где-нибудь через полгода задача будет решена. SVZ>Шуткую. Не принимайте на свой счет.
Нет, потому что уважаемый olegkr — убежденный противник взятия в руки Dragon Book'а
Здравствуйте, olegkr, Вы писали:
Pzz>>Я спрашиваю, каким образом вы собираетесь парсить текстовые файлы, если нет готового парсера? O>Элементарно. Воспользуюсь методам класса String. И точно не буду городить лексический анализ логов типа O>
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, Pzz, Вы писали:
Pzz>>Я спрашиваю, каким образом вы собираетесь парсить текстовые файлы, если нет готового парсера? O>Элементарно. Воспользуюсь методам класса String. И точно не буду городить лексический анализ логов типа O>
Здравствуйте, Ikemefula, Вы писали:
I>Вот не самый большой пример
Аналогично. Не вижу проблем разобрать его регулярными выражениями или тупым стрингом.
Здравствуйте, alf_kadett, Вы писали:
_>No hire, sorry.
Кстати, да. Неплохой тест на собеседовании. Позволяет отсеить "умников", которые ради решения элементарной задачи на пару дней будут год городить огород с зоопарком вместе взятые.
Здравствуйте, olegkr, Вы писали:
_>>No hire, sorry. O>Кстати, да. Неплохой тест на собеседовании. Позволяет отсеить "умников", которые ради решения элементарной задачи на пару дней будут год городить огород с зоопарком вместе взятые.
У нас используется тот подход, что ты забраковал. Парсер+свой язык+конфигуряние.
До того пять лет кодили всякое, с конфигурянием и без при том целой бандой. Теперь со всем справляется один человек, а файлов несколько сотен.
Что характерно, почти каждый новый челвоек задаётся тем же вопросом что и ты, только ни один не предложил достойную замену.
Собственно к языку пришлось прибегнуть по той причине, что объем текста для конфигуряния превысил все мыслимые и немыслимые пределы.
Здравствуйте, Ikemefula, Вы писали:
I>Что характерно, почти каждый новый челвоек задаётся тем же вопросом что и ты, только ни один не предложил достойную замену.
Стоит призадуматься почему так происходит.
I>Собственно к языку пришлось прибегнуть по той причине, что объем текста для конфигуряния превысил все мыслимые и немыслимые пределы.
Чем не подходит в качестве языка стандартный C#?
Здравствуйте, olegkr, Вы писали:
I>>Что характерно, почти каждый новый челвоек задаётся тем же вопросом что и ты, только ни один не предложил достойную замену. O>Стоит призадуматься почему так происходит.
Потому что ткнуть пальцем в известную всем проблему очень, очень легко. А закрыть её так, чт бы не потратить лишнего времени очень, очень сложно. Новичкам очень хорошо удаётся первое и очень плохо — второе.
I>>Собственно к языку пришлось прибегнуть по той причине, что объем текста для конфигуряния превысил все мыслимые и немыслимые пределы. O>Чем не подходит в качестве языка стандартный C#?
Каким образом ты это себе представляешь ? Слишком общий вопрос.
файлы(всё множество) хранят состояние объектной модели с рутовым объектом.
Подобное в БД решается через хибернейт, только ни один движок БД не дает нужного перформанса да и sql нам ни к чему.
с каждым файлом проводятся две операции чтения и две операции записи, для каждой из них свой конфиг и файлов таких пару сотен, точно не помню.
конфиг задаёт структуру и типы данных(формат) + определенный код для выполнения каждой из операций на поле, строку, файл.
при этом входной/выходной файл может быть как текстовый с разделителями так и xml.
при чтении нужно проверять возможные ошибки и тд и тд.
все конфигуряние в одном xml файле, который около 100 кб. весом.
как образом ты хочешь пользовать здесь C# что бы все было достаточно наглядно, быстро и гладко ?
Поначалу был вариант такой — в конфиге просто прописывались методы из сборки на C#. Слишком много кода было и этот подход умер сам собой.
разумеется, общие фразы вроде "если задача решается на языке X то она решается и на языке Y" можешь оставить себе.
Здравствуйте, olegkr, Вы писали:
I>>Вот не самый большой пример O>Аналогично. Не вижу проблем разобрать его регулярными выражениями или тупым стрингом.
Разобрать что бы просто прочтать в память так и делается, поддержваютя обязательные-необязателные значения, кавычки и даже обязательные-необязательные колонки, произвольный порядок колонок этих и тд и тд.
все это делатся просто — разбором, правда безо всяких регулярных выражений, на выходе получается заполненый data-table.
А далее надо над каждым элементом, над каждой строчкой и над всем файлом выполнить определенные операции в зависимости от операции.
Здравствуйте, Ikemefula, Вы писали:
I>как образом ты хочешь пользовать здесь C# что бы все было достаточно наглядно, быстро и гладко ?
Пишешь на C# сборку, которая берет в качестве параметра конфиг и по нему разбирает текстовый файл. Подключаешь ее, как плагин к основной программе. Если надо разбирать хитровы..тый формат, пишешь сборку заточенную под него, если есть варианты данного формата, то цепляешь к ней еще и конфиг. Потом ассоциируешь тип файла со сборкой и конфигом. Все.
I>разумеется, общие фразы вроде "если задача решается на языке X то она решается и на языке Y" можешь оставить себе.
Я не вижу преимуществ использования собственного языка в данном случае. Как я понял он делает точно то же самое, что я написал выше.
Здравствуйте, Ikemefula, Вы писали:
I>А далее надо над каждым элементом, над каждой строчкой и над всем файлом выполнить определенные операции в зависимости от операции.
Описываешь эти операции на C#. Если есть повторяющиеся или похожии операции, то группируешь их в одну сборку и цепляешь к ней конфиг. Нет, я правда не понимаю в чем сложности.
Здравствуйте, mymuss, Вы писали:
V>>Т.е. площади кругов считаете?
M>Гм... странный вопрос. Думаете, в Гугле программеры ребусы решают?
M>Да, минимальные знания школьной математики необходимы. Я хочу на собеседовании прикинуть их наличие/отсутствие.
Вспомнилось. На интервью в Гугл я не смог вспомнить формулу площади поверхности шара. Поскольку точного ответа не требовалось (open ended question), сошлись на том, что это величина порядка квадрата радиуса (из соображений размерности).
Здравствуйте, olegkr, Вы писали:
I>>как образом ты хочешь пользовать здесь C# что бы все было достаточно наглядно, быстро и гладко ? O>Пишешь на C# сборку, которая берет в качестве параметра конфиг и по нему разбирает текстовый файл. Подключаешь ее, как плагин к основной программе. Если надо разбирать хитровы..тый формат, пишешь сборку заточенную под него, если есть варианты данного формата, то цепляешь к ней еще и конфиг. Потом ассоциируешь тип файла со сборкой и конфигом. Все.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну, а сборка чем его разбирает? Чудом, что ли?
В зависимости от формата файла
1) Regex — годится для большинства форматов
2) String.Split — если поля разбиты разделителями типа запятой
3) String.Substring — если поля имеют фиксированную позицию
4) XmlReader или как там его — если xml
Делаешь эти четыре сборки с элементарным конфигом и их тебе хватит на 90%.
Есть извращенные форматы файлов, в том числе бинарные, их приходится разбирать ручками. Свой собственный язык тут не помогает, т.к. надо писать примерно то же, что и на чистом C#. А если еще прицепить helper assembly с утилитками помогающими разбору файлов, то вообще все замечательно получается.
В чем смысл собственного языка, можешь пояснить на наглядном примере?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>код пишется один раз, а читается 10. и если второе будет понятней, то я обязательно перепишу
IMHO, понятно, обычно, то, что до преобразований
А вариант после преобразований, зачастую и компилятор могёт придумать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Не, не все так просто. Кроме простейших правил преобразования логических выражений там много интересного, навроде методов устранения избыточности. Это, к примеру, применяется, когда функция описана только таблицей истинности, и нам нужно преобразовать эту таблицу в минимальный набор логических выражений в заданном базисе.
А на хрена это надо? Можно же выражение написать в дизьюнетно-коньюнктной (или как там это зовут?) форме, а дальше пусть компилятор упрощает, или матлаб какой, на самый худой конец. Ты же определители матриц, например, вручную не считаешь, наверное? На кой такие логические выражения руками упрощать?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Понятно: "сам не умею и другим не позволю". В принципе, я чего-то подобного и ожидал.
Я так понял, что скорее "знал, но забыл за ненадобностью"...
Я, кстати, тут подумал, и понял, что тоже не знаю нахрена бы булева алгебра нужна кодеру, кроме как для общего развития
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Mystic, Вы писали:
M>Что касается логических выражений, то я согласен, что их надо писать "читабельно". Вот умение оперировать логическими выражениями и позволяет записывать их более читабельно. Первая мысль, которая приходит в голову, далеко всегда не ясная и понятная. Иногда результат условного выражения это результат разнесенных во времени размышлений. Мозг не всегда идет к цели кратчайшим путем. Бывает, что он ломится в открытую дверь, делает замысловатые изгибы и т. п. Результат этого---рабочее логическое уловие, но повторяющее все эти изгибы. Если его преобразовать можно (1) получить интересные открытия (например, ветвление совсем не зависит от переменной, которая казалась нам необходимой) (2) устранить все лишние изгибы и сделать его более понятным. Никогда не было такого: упрощаешь условие и думаешь "надо же, как все просто, а такого наворотил?"
В целом согласен. Но, IMHO, для того, чтобы писать простые и понятные условия надо таки уметь просто и ясно мыслить. Если тебе в этом помогает знание булевой алгебры -- прекрасно, что хоть что-то помогает. Аналитический ум дар крайне редкий.
Но в целом, IMHO, опять же, для того, чтобы ясно мыслить булева алгебра не нужна. Мало того, ясно мыслить намного важнее. Просто потому, что обычно программы устроены намного сложнее, чем какие-то условия в if'ах...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>А как вы себя убеждаете в том, что тот код, который вы понаписали, действительно решает поставленную задачу (или хотя бы завершается)? Методом научного тыка?
Неужели ты проводишь формальные доказательства?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, elmal, Вы писали:
M>>Ваше мнение? E>Итого, в студенческие годы или если б я претендовал на первое место работы, я бы эти тесты прошел влегкую. Сейчас у меня шансов мало . Ну и далее, мне что-то кажется, что люди, прошедшие ваш фильтр при работе как раз и будут использовать везде массивы там, где нужны коллекции, в коде каждый раз будут лепить операции с файлами, даже не вынося эту логику в отдельный метод, так и будут 1000 раз в коде в разных местах открывать файл, проверять коды возврата, писать туда что-то и закрывать файл. Метрики на количество строк кода, написанного в день, будут потрясающие, сразу будет видно, что народ работает .
Так они вроде бы индусов и набирают...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, mymuss, Вы писали:
M>Ну а как проверить знание элементарной математики?
Да надо что-то простовыводимое спрашивать. Скажем попросить посчитать сумму чисел от 1 до 1000, или спросить что-нибудь типа "что больше два в пятой или пять во второй?"
Только тут есть одна проблема. Всё-таки типа собеседование, стресс, у нормального кандидата могут начаться проблемы, с тем, что он не понимает где же его кинуть-то хотят?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, mymuss, Вы писали:
M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
... M>Ваше мнение?
Разумеется не стоит изменять принципам из-за одного кандидата. Тем более, что он экономит вам кучу времени. Но Вы сэкономите еще больше времени если к этому необходимому требованию добавите еще одно — достаточное.
Я рекомендую давать кандидату еще коссворд. Ведь если кандидат разгадывает кросворд, значит у него богатый словарный запас, следовательно он хорошо учился в школе, следовательно поступил в ВУЗ ну и, разумеется, прекрасно справится с задачей. Добавив этот простой принцип Вы вообще сможете обойтись без интевью.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Хотя казалось бы — ну спросили и спросили. Быстро ответил, поржали вместе. Заодно, глдишь, и стресс снял бы.
Зависит от того, как спросить, IMHO. Можно так, что стресс снял, а можно так, что загрузишь зачем ты это спрашиваешь
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, SE, Вы писали:
SE>А что тогда, простите, спрашивать? Разглагольствовать на любую тему могут и дилетанты. Профессионалов как раз отличает знание деталей.
IMHO, лучше всего спрашивать про предыдущие проекты. Насколько логично и последовательно их делал чел, насколько он ими был увлечён, насколько детально разбирается...
А знает ли он какие-то конкретные тех. детали -- это лотерея, на самом деле...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Ты несколько меня не понял. Помнить специально наизусть — не нужно. Но я не представляю, как можно, если ты написал не одну игрушечную программку, не запомнить такой базовый момент. Это как для С++ программиста не помнить, что такое cout и с чем его едят. А уж если ты постоянно используешь .net в повседневной работе ...
Интересно, на хрена бы cout в Windows-программе? А ещё интереснее, нахрена в программе под MAC OS...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>У-у-у, как всё запущено-то, оказывается... Хотя, чему я удивляюсь, если никто из комментаторов о банальнейших вещах не вспомнил?
Особенностью вопросов на собеседовании является то, что не ясен контекст вопроса. Так, например, интересует ли кого-то в вопросе про суммирование массива твоё знание о том, что бывают переполнения, или твоё знание std::accumulate совершенно не понятно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, mymuss, Вы писали:
M>А если мне вдруг хочется засыпать кандидата, то задаю написать ф-цию для решения системы двух линейных уравнений. a11..a22, b1, b2, x1, x2 \in R. M>Еще никто не справился. Впрочем, в свое время я и сам засыпался на этом вопросе
А что в данном случае обозначает "справиться"? Насколько я понял, суть разводки состоит в том, что множество значений представимых float это не R?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
IMHO, в системе собеседований главное -- стабильность. Даже самый причудливый подход к отбору людей хорошо тем, что отбирает людей более или менее одинаковых, то есть способных понимать друг друга...
Хотя мне кажется, что все три вопроса сильно страдают тем, что совершенно не понятно ответ какого уровня от тебя хотят получить. Особенные подозрения у меня лично, например, вызвала бы площадь круга, конечно. Просто потому, что если в остальных двух вопросах я примерно понимаю в чём мог бы быть подвох, то в площади круга я бы впал в бесконечный цикл: "что же ему надо-то на самом деле?"
Правда бы сработал аварийный останов и я бы наверное переспросил, что нужна именно известная школьная формула Правда я не индус, с другой стороны.
Возможно неправильные во всём этом именно критерии зачёта. Типа должно быть чуть тоньше -- полный ступор, значит лесом, тот ответ, которого ждём -- значит идём дальше, а если не ступор, но и не то, чего ждём, то спрашиваем что-то ещё...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Владислав, Вы писали:
В>Единственный момент — это нужно больше доверять мнению своего коллеги. Если он хочет взять кандидата — то нужно брать, в противном случае не очень понятно, зачем он вообще присутствовал на собеседовании и тратил своё время.
в корне не согласен с таким тезисом.
работать-то с новичком не только коллеге, "мнению которого нужно больше доверять".
Тут не надо дизъюнкции — тут конъюнкция уместна.
Если не согласны с этим — попробуйте ответить на следующий вопрос согласно Вашей логике:
если мнение коллеги настолько серьезно — то зачем Вам тратить свое время?
Еще веселее представить deadlock или always hire — каждый вежливо расшаркивается, мол
— Ах, так если Вам нравится этот кандидат — из чувства глубокого уважения к Вам лично я просто не могу возражать!
— Нет, нет! не подумайте чего — я только хотел сказать то же самое, я совершенно согласен с любым Вашим мнением!
при том что в кач-ве кандидата — хоть черт лысый. не знающий формулу площади круга. что характерно (с)
Я бы сказал, что нужно брать, если среди команды нет ни одного принципиального и обоснованного сомнения\жесткого нет. И даже если есть сомнение необоснованное (ну не понравился человек просто как человек, бывает) — уже есть смысл достаточно серьезно задуматься. Как минимум на тему как его интегрировать в команду или выделить совершенно отдельный (от сомневающихся) фронт работ на первое время.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Pzz, Вы писали:
E>>Неужели ты проводишь формальные доказательства? Pzz>Прикидываю в голове, как бы я его приводил.
И что, пишешь пред/пост условия и инварианты циклов? Я, например, очень очень редко пишу такой непонятный и ответственный код, что првожу его формальные док-ва. Обычно я и так знаю зациклится прога или нет
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
A>>Зачем этот rocket science при разработке типичных бизнес-приложений? Pzz>Чтобы на отладку уходило не 80% рабочего времени, а 20.
Прикольно. Я в целом согласен с тем, что квалифицированные люди лучше неквалифицированных, но иногда сотрудники бывают всё-таки слишком умными
Например у нас был один мужчина безусловно очень квалифицированный и хорошо знавший "rocket science" и не только. Одна беда -- он 95% времени занимался не скучным программированием, а выстраиванием каких-то одному ему понятных конструкций, обладавших какими-то мифическими преимуществами.
Так, например, ему надо было провести серию экспериментов по определённому типу обработки неких специфических изображений. В результате экспериментов должно было получиться несколько фильтров, реализованных на С++.
Как бы решал задачу я?
Ну написал бы несколько классов, которые позволяют быстро рожать экспериментальные обработчики (тем более, что там было не на пустом месте, а в рамках довольно развитого фреймворка по работе с изображениями), ну и оболочку какую-нибудь простенькую на приватном аналоге MFC склепал бы. Ну и перешёл бы к экспериментам. Думаю что недели за две справился бы с запасом. Ну стажёр, который не так всё это знает, понимает, и вообще тормозит, действуя под моим руководством, по этой примерно программе действий, справился бы за месяц-два наверное. А обсуждаемый мужчина склепал на дельфи крутую очень оболочку, к которйо склепал крутое средство разработки фильтров, что-то вроде скрипта приладил, позволявшего строить эти фильтры прямо из оболочки. Потом быстро выяснилось, что скрипт нужный тип обработчиков описывает хреново, и он талантливо приделал возможности по использованию из всей этой байды dll, потом эти dll стали от чего-то испытывать трудности с инициализацией crt, ну и так далее. Короче через десять месяцев героической борьбы с трудностями про этот проект вспомнили нормальные менеджеры. Начальника очень основательно поимели, а самого сотрудника выгнали, после чего сотрудник средних способностей с успехом закончил всю эту разработку менее чем за месяц. Тупо просто и эффективно, и даже переиспользовав часть результатов своего предшественника...
Так что бывает и так, что разработчик для данной задачи слишком таки умён Даже для очень сложной задачи...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Плохо, что эти же самые потом полезут в менеджеры (а куда ещё податься бедному кодеру?) и устроят свистопляску.
IMHO именно менеджеру, а не архитектору, скажем, нужны совсем другие знания и навыки, чем знание CS...
И хорошо бы очень
1) Иметь опыт работы на должности, которой этот менеджер будет потом управлять, ну чисто чтобы понимать своих подчинённых, их способы халявить, или, наоборот, что есть большая работа, что круто, что не очень, что нужно, что не очень и т. д.
2) Нужна таки подготовка именно в искусстве менеджера...
Я бы такую аналогию провёл, что есть токарь, у токаря есть бригадир у бригадира нач. цеха. А ещё есть главный инженер. Знания необходимые гл. инженеру токарю тоже пригодились бы, но не на таком уровне конечно, и бригадиру и нач. цеха, но реально они нужны только главному инженеру...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>А если нет готового? Вот выдал вам заказчик задание — понимать текстовые файлы, которые выплевывает из себя программа, написаная на Коболе. Синтаксис этих файлов более-менее известен, но поменять его нельзя, поскольку Кобола никто уже не знает (да и вообще, кто ж вас пустит ковырать драгоценный доисторический код, написанный на нем?). Синтаксис при этом такой, что регулярными выражениями не обойдешься.
IMHO вывод проги на коболе, да ещё такой, что регулярных выражений мало для разбора -- это немного фантастично звучит. Попробуй придумать пример такого вывода? Я вот могу пока придумать такой, например:
прога выдаёт строчки из плюсиков и минусиков и надо отобрать строчки, где плюсиков больше, чем минусиков. Ну что тут делать на голом C# довольно таки понятно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
А на хрена тут какие-то прасеры, более сложные, чем регулярные выражения?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
O>Есть извращенные форматы файлов, в том числе бинарные, их приходится разбирать ручками. Свой собственный язык тут не помогает, т.к. надо писать примерно то же, что и на чистом C#. А если еще прицепить helper assembly с утилитками помогающими разбору файлов, то вообще все замечательно получается.
Парсер своего языка как правило писать не надо, потому что есть вагон генераторов парсеров (ANTLR хотя бы, он и под C# генерит). Достаточно описать грамматику и как-то обработать полученное дерево разбора. Описать грамматику как правило проще, чем городить свой парсер. И бинарные форматы тоже не обязательно ручками разбирать — можно также описать грамматику и сгенерить парсер. Это проще, чем разбирать ручками.
Разумеется, я не призываю использовать генератор парсеров для разбора CSV или логов. Но в некоторых случаях split и regexp все же не хватает.
Здравствуйте, Erop, Вы писали:
E>Ну что скажу? ...
Ты еще забыл поругать бездумное использование венгерской нотации
По поводу рисования в восьми направлениях, интересная идея, я наверно тоже тупой кодер , но зачем оптимизировать зарание, разве простота кода не важней?
Здравствуйте, AndrewVK, Вы писали:
И>>если мне вдруг понадобится помощь математика для упрощения сложного выражения, то я пойду к математику за консультацией. AVK>Я так понимаю, что логическое выражение вроде !(!(a && b) || (c && d)) это уже сложное, и нужно идти к математику?
А как и зачем ты собираешься его упрощать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Да ладно вам. Конечно хорошее образование -- это скорее плюс
Скорее? Что, есть сомнения?
E> Можно поботать какую-нибудь толковую книжку, скажем Ахо Ульмана, например, и сразу всё при них узнаешь. И про КС и про какие хочешь ещё.
Есть одна проблема — нужно знать о том, что требуется "поботать". Даже этот топик демонстрирует, что далеко не всем это очевидно.
E>Я бы, кстати, скорее про конечные автоматы советовал ботать, а не про грамматики. IMHO, концепция автоматов намного более полезна программисту, чем парсеры...
Одно без другого не живет. Автоматы, это самая самая база, без которой о системности знаний в CS говорить не приходится. И, кстати, коль уж ты тут против булевой алгебры ополчился: как можно "ботать" автоматы без знания булевой алгебры?
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>А на хрена тут какие-то прасеры, более сложные, чем регулярные выражения?
Даже для регулярных выражений нужно кое какую теорию знать. К примеру, что такое регулярная грамматика. Чтобы потом не пытаться разобрать регексами то, что ими не разбирается регулярно (помнится, в дотнете товарищ пытался регексами sql разобрать, и очень долго упирался, когда ему говорили, что это невозможно). Нужно примерно представлять, как НКА/ДКА парсера регексов работает, чтобы понимать как решать те или иные задачии наиболее эффективным способом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>Да надо что-то простовыводимое спрашивать. Скажем попросить посчитать сумму чисел от 1 до 1000, или спросить что-нибудь типа "что больше два в пятой или пять во второй?"
Ты это собственным эйчарам скажи
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
I>>как образом ты хочешь пользовать здесь C# что бы все было достаточно наглядно, быстро и гладко ? O>Пишешь на C# сборку, которая берет в качестве параметра конфиг и по нему разбирает текстовый файл. Подключаешь ее, как плагин к основной программе. Если надо разбирать хитровы..тый формат, пишешь сборку заточенную под него, если есть варианты данного формата, то цепляешь к ней еще и конфиг. Потом ассоциируешь тип файла со сборкой и конфигом. Все.
Я так и думал, что читать ты не умеешь.
>поначалу был вариант такой — в конфиге просто прописывались методы из сборки на C#. Слишком много кода было и этот подход умер сам собой.
Здравствуйте, olegkr, Вы писали:
>В зависимости от формата файла O>1) Regex — годится для большинства форматов O>2) String.Split — если поля разбиты разделителями типа запятой O>3) String.Substring — если поля имеют фиксированную позицию O>4) XmlReader или как там его — если xml O>Делаешь эти четыре сборки с элементарным конфигом и их тебе хватит на 90%.
Ты свалял дурака и не удосужлся прочесть текст в сообщении чуть выше.
Все это и ежу ясно.
Язык нужен _потом_, после твоих регэспов и всякого хлама.
O>В чем смысл собственного языка, можешь пояснить на наглядном примере?
Смотри сообщение выше. Ты скипнул весь текст, ткнул пальцем в небо а теперь снова вопрошаешь "В чем смысл собственного языка"
Здравствуйте, AndrewVK, Вы писали:
E>>Да ладно вам. Конечно хорошее образование -- это скорее плюс AVK>Скорее? Что, есть сомнения?
Ну некоторые есть, но в целом, в основном, они из-за некоторой неверной направленности отечественного образования, по крайней мере.
IMHO, для разных работ нужна разная квалификация, и излишняя тоже не хорошо, но я не про это. Я про то, что для нормального разработчика важнее всего быть хорошим инженером. А уж мат. подготовка -- уже опциональна, хотя и крайне желательна. А вот блестящий математик, но плохой инженер совсем не годится
E>>Я бы, кстати, скорее про конечные автоматы советовал ботать, а не про грамматики. IMHO, концепция автоматов намного более полезна программисту, чем парсеры...
AVK>Одно без другого не живет. Автоматы, это самая самая база, без которой о системности знаний в CS говорить не приходится. И, кстати, коль уж ты тут против булевой алгебры ополчился: как можно "ботать" автоматы без знания булевой алгебры?
Да ладно, не живёт
Неужели ты не сможешь описать/разобраться в КА, который, например, идёт по двум соседним RLE-строкам изображения и выдаёт RLE-строку изображения ужатого вдвое по обеим осям?
Но я не ополчился. IMHO, если программист знает булеву алгебру, то это хорошо. Плохо, если он без дела её пытается всюду применять. Но из этого обсуждения, например, я осознал, что незнание булевой алгебры -- это конечно минус, но не так чтобы сильный
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Даже для регулярных выражений нужно кое какую теорию знать. К примеру, что такое регулярная грамматика. Чтобы потом не пытаться разобрать регексами то, что ими не разбирается регулярно (помнится, в дотнете товарищ пытался регексами sql разобрать, и очень долго упирался, когда ему говорили, что это невозможно). Нужно примерно представлять, как НКА/ДКА парсера регексов работает, чтобы понимать как решать те или иные задачии наиболее эффективным способом.
Понятно, что если ты тупой, упрямый и неотёсанный болван, к тому же ещё и не обременённый "излишними" знаниями, то ты наверное зря таки в программисты двинул.
Но для того, чтобы понимать, что регэкспами описывается далеко не всё, совсем не обязательно что-то знать о КС-грамматиках или ещё о чём. Вполне достаточно попробовать написать регэксп, который проверяет баланс скобок
Я к тому, что через хороший уровень ДМ -- это только один из путей к тому, чтобы научиться хорошо разбирать логи
Другие, IMHO, не сильно хуже...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, BulatZiganshin, Вы писали:
BZ>осталось доказать, что неучтённая площадь пренебрежимо мала
А зачем? Тебя же просят вспомнить формулу, а не доказать её...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, jartur, Вы писали:
J>Из функционального задания полуокружности получаем интеграл для длины . Так как мы не знаем, что это r arcsin(x/r), да и вообще arcsin явно слишком сложно вспомнить, нужно догадаться, представить это в виде , где r f(x/r) — первообразная. Ну вот и все. И никаких \pi. Чтобы было \pi надо вспомнить определение. , т.е. . Вот вам и формула. Но все равно, надо кучу чего знать и помнить, чтобы её вывести хотя бы так.
Ну вы блин даёте. Топикстартер задавал вопрос для того, чтобы отсеять людей которых вообще такая постановка вопроса в тупик ставит, а вы давай тут интегралами шмалять...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Ikemefula, Вы писали:
I>>файлы(всё множество) хранят состояние объектной модели с рутовым объектом. I>>Подобное в БД решается через хибернейт, только ни один движок БД не дает нужного перформанса да и sql нам ни к чему.
E>Два вопроса. E>1) Зачем они всё это хранят в виде текстов?
специфика отрасли. у них вагоны всякого древнего софта, который умеет только этот формат
E>2) Зачем везде разный сложноразбираемый формат, а не какой-нибудь унифицированный, например XML?
формат простой — csv.
XML тоже есть но в новых продуктах. старый софт ихний выбросить никак нельзя.
E>Ну и ещё один комментарий. IMHO если люди утверждают, что они хранят сложную модель в виде вороха разноформатных текстовых конфигов, разбираемых скриптами на самописном интерпретаторе, и при этом рвут по быстродействию СУБД, то они не умеют таки пользоваться СУБД, или что-то недоговаривают
СУБД помогат только в случае с многопользовательским доступом, это отдельный прокт, там Оракл пользуется.
А тех, вроде нашего, самая частая операция — вгрузить всю модель в память. Как это побороть за 8 лет ничего так и не придумали, а на этой операции дохнут все СУБД до единой.
Здравствуйте, Mystic, Вы писали:
M>>Вот вспомнился анекдот из советских времен: M>Я слышал про конус. В случае с циллиндром как раз и надо прощадь круга знать. А в случае конуса нужно еще коэффициент вывести.
Твоя реплика напомнила мне реакцию на анекдот одного чувака, с которым я познакомился при поступлении в один элитный ВУЗ. Чувак был такой, "прямой", скажем, но тоже поступал и мы жили абитурами вместе в общаге.
Так вот, я рассказал анек:
Разговаривают генерал и полковник на полигоне, рядом орёт движок танка. Генерал подзывает прапора:
-- Товарищь прапорщик! Заглушите танк!
-- Есть! А-а-а-а-а!!! (очень громко орёт)
Ну и этот парень и отвечает: "Клёво! Мой папа тоже прапорщик, только он на аэродроме служит"...
Я, кстати, только потом понял, что это он так стебётся тонко. Хотя папа у него действительно на аэродроме служил
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Ты это собственным эйчарам скажи
Дык наши эйчары не ставят целей выявить знание элементарной математики Человек же про это спрашивал...
Я нахожу нашу систему отбора несколько причудливой, но поскольку все мы тут отбирались таким образом, и вышло в целом не плохо, то я за консервативный подход к этому вопросу
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Ну некоторые есть, но в целом, в основном, они из-за некоторой неверной направленности отечественного образования, по крайней мере.
Ну, я даже не знаю что и сказать. У тебя, видимо, образование физтеховское?
E>IMHO, для разных работ нужна разная квалификация, и излишняя тоже не хорошо
Запас карман не тянет. Опять же, я очень плохо себе представляю, как хороший специалист может ограничить — это надо, это нет. Да бог его знает, какая задача завтра всплывет и какие знания могут понадобится при ее решении.
E> Я про то, что для нормального разработчика важнее всего быть хорошим инженером. А уж мат. подготовка -- уже опциональна
Опять же — я не очень понимаю, как быть хорошим инженером в области софтостроя без знания самых самых основ дискретки.
E>Да ладно, не живёт E>Неужели ты не сможешь описать/разобраться в КА, который, например, идёт по двум соседним RLE-строкам изображения и выдаёт RLE-строку изображения ужатого вдвое по обеим осям?
При чем тут я?
E>Но я не ополчился. IMHO, если программист знает булеву алгебру, то это хорошо. Плохо, если он без дела её пытается всюду применять.
А что, тут кто то утверждал, что это хорошо?
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Pzz, Вы писали:
Pzz>По-моему, люди хуже всего понимают именно первый. Возможно потому, что в школьном курсе физики не делается ударения на том, что он про инерциальные системы отсчета, а не про то, что тело без пинка не летит
Всё-таки не первый, а третий. Контрольный вопрос: "Назовите противодействие весу тела"...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, mymuss, Вы писали:
M>Думаю, что по школьной математике ты меня не завалишь. По физике или биологии, возможно. Но мы же говорим об инжинерах.
Кстати, не факт. Надо поспрашать какую-нибудь полную хрень. Скажем попросить перечислить признаки параллелограмма, или там построить треугольник по медиане, высоте и гипотенузе...
IMHO завалить можно любого, тем более не в его области специализации. Только, IMHO, это ничего не значит...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Valery A. Boronin, Вы писали:
В>>Единственный момент — это нужно больше доверять мнению своего коллеги. Если он хочет взять кандидата — то нужно брать, в противном случае не очень понятно, зачем он вообще присутствовал на собеседовании и тратил своё время. VAB>в корне не согласен с таким тезисом.
VAB>работать-то с новичком не только коллеге, "мнению которого нужно больше доверять".
VAB>Тут не надо дизъюнкции — тут конъюнкция уместна.
Это очень жОсткий набор.
Если человек смог разобраться на отлично в какой то области, скорее всего сможет разобраться в другой.
Здравствуйте, Ikemefula, Вы писали:
I>формат простой — csv. I>XML тоже есть но в новых продуктах. старый софт ихний выбросить никак нельзя.
зачем тогда сложные парсеры? Или речь не о парсерах, а о каких-то скриптах, описывающих саму модель?
E>>Ну и ещё один комментарий. IMHO если люди утверждают, что они хранят сложную модель в виде вороха разноформатных текстовых конфигов, разбираемых скриптами на самописном интерпретаторе, и при этом рвут по быстродействию СУБД, то они не умеют таки пользоваться СУБД, или что-то недоговаривают
I>СУБД помогат только в случае с многопользовательским доступом...
IMHO, это не правда. По крайней мере в общем случае.
I>А тех, вроде нашего, самая частая операция — вгрузить всю модель в память. Как это побороть за 8 лет ничего так и не придумали, а на этой операции дохнут все СУБД до единой.
Ну значит у вас случай "что-то не договаривают"...
Хотя всё равно как-то странно, ну есть у вас какая-то объектная модель, есть способ её представления в памяти, есть части модели, для загрузки которых из старых прог надо написать какие-то фильтры, но старые проги не меняются же? Есть новые проги, откуда, по идее, можно бы получать объекты и как-нибудь поудобнее... Но зачем тут какие-то навороченные парсеры?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
>> Вполне достаточно попробовать написать регэксп, который проверяет баланс скобок AVK>И каждый раз так пробовать до просветления?
Ну, в целом, стратегия "попробовать написать регэксп, если это выходит как-то раком, или не выходит вообще, попробовать что-то другое" не так уж и плоха...
E>>Я к тому, что через хороший уровень ДМ -- это только один из путей к тому, чтобы научиться хорошо разбирать логи
AVK>С логами — это не ко мне. Мне приходится решать задачки посложнее, нередко даже в LL(k) уложиться не получается.
Ну тогда тебе знание грамматик -- существенно. Но это же очень специфично для конкретно твоих задач...
А мне вот одно время нужно было обрабатывать тексты на естественных языках, там грамматики в смысле LL(k) практически бесполезны
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
I>>формат простой — csv. I>>XML тоже есть но в новых продуктах. старый софт ихний выбросить никак нельзя.
E>зачем тогда сложные парсеры? Или речь не о парсерах, а о каких-то скриптах, описывающих саму модель?
Парсер простой как доска, а скрипты запускаются после парсинга.
I>>СУБД помогат только в случае с многопользовательским доступом... E>IMHO, это не правда. По крайней мере в общем случае.
Про общий случай я отлично осведомлён.
E>Ну значит у вас случай "что-то не договаривают"... E>Хотя всё равно как-то странно, ну есть у вас какая-то объектная модель, есть способ её представления в памяти, есть части модели, для загрузки которых из старых прог надо написать какие-то фильтры, но старые проги не меняются же? Есть новые проги, откуда, по идее, можно бы получать объекты и как-нибудь поудобнее... Но зачем тут какие-то навороченные парсеры?
Был и варант с фильтром. На питоне писался конвертор. Данный момент эволюционировал до логической смерти
У кастомера разработка тоже не прекращается, они на новые технологии не спешат
А у нас нужна совместимость между версиями например. Модель меняется довольно активно.
Здравствуйте, AndrewVK, Вы писали:
AVK>А что они ставят целью, выдавая мутные матформулы?
Например?
Скорее всего выяснить реакцию человека на задачи и трудности разных типов.
Но вообще-то я не знаю насколько можно разглашать принципы и цели тестирования, не навредив ему.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну, я даже не знаю что и сказать. У тебя, видимо, образование физтеховское?
Ну и физтеховское. Физтеховское -- вычматы...
А что, так заметно?
Но я не по себе сужу, я странно учился очень. У меня было и есть много довольно сотрудников из разных хороших ВУЗов...
AVK>Запас карман не тянет. Опять же, я очень плохо себе представляю, как хороший специалист может ограничить — это надо, это нет. Да бог его знает, какая задача завтра всплывет и какие знания могут понадобится при ее решении.
Увы, но тянет. Если ты хрошего умного разработчика посадишь клепать формочки, он, скорее всего, либо сбежит, либо утратит мотивацию, либо навернёт с тоски мега-супер-пупер-всемогутер...
E>> Я про то, что для нормального разработчика важнее всего быть хорошим инженером. А уж мат. подготовка -- уже опциональна AVK>Опять же — я не очень понимаю, как быть хорошим инженером в области софтостроя без знания самых самых основ дискретки.
Ну у некоторых как-то получается...
IMHO, кстати, "быть хорошим инженером" -- это более общий навык, чем разработка ПО. Хороший инженер-механик, если его правильно учить проганью будет и хорошим инженером-программистом, так скажем.
E>>Да ладно, не живёт E>>Неужели ты не сможешь описать/разобраться в КА, который, например, идёт по двум соседним RLE-строкам изображения и выдаёт RLE-строку изображения ужатого вдвое по обеим осям? AVK>При чем тут я?
Ну и не ты, тоже. IMHO суть КА на булеву алгебру никак не завязана
AVK>А что, тут кто то утверждал, что это хорошо?
Ну лично меня поразило, что люди сначала думают непонятные мысли, а потом упрощают логические выражения. Хотя, если им так удобно, то от чего бы и нет?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Это была просто иллюстрация. Не надо пытаться делать выводы на основании аналогий. Если плохо представляешь себе дотнет — просто поверь, без TextWriter там обходится весьма сложно, Windows это или MacOS.
Меня именно аналогия приколола
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Сравнил... Одно дело, когда для вчерашнего школьника решается вопрос, чем он будет заниматься в ближайшие 5 лет, а другое — когда специалист беседует с другими такими же специалистами.
Ха, это вопрос как подойти к обствановочке, вообще-то. Людей, которых реально трудно вывести из себя довольно таки мало
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, SE, Вы писали:
SE>Ты еще забыл поругать бездумное использование венгерской нотации
Ну это уже вкусовщина, хотя непоследовательно -- это да
SE>По поводу рисования в восьми направлениях, интересная идея, я наверно тоже тупой кодер , но зачем оптимизировать зарание, разве простота кода не важней?
А что тут сложного? Пишешь функцию, которая по координатам центра (целым) и смещениям начала и конца (тоже целым) рисует нужные отрезки. Если сложно в восьми -- рисуем в 4-х..
Преимущество же тут даже не в том, что быстрее, а то, что окружность получится более менее симметричная хотя бы, а не "ломанная, намотанная на окружность в несколько слоёв"
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>Проблема не в девелопере, а в начальстве. Уволили не того. Через короткий срок будет точно такая же проблема.
Ты ошибся в прогнозах. У начальника всё хорошо. Просто ему не хватало авторитета бороться с тем гуру. Но он приобрёл ценный опыт и теперь у него таких проблем нет. А вот тот, кого уволили, IMHO, тупо профнепригоден, так как он вместо того, чтобы решать задачу занимался чёрт знает чем. Я понимаю, если бы он был стажёром, но он был на уровне вполне предполагающем самостоятельную работу...
E>>Так что бывает и так, что разработчик для данной задачи слишком таки умён Даже для очень сложной задачи...
I>Бывает. Надо уволить начальство в этом случае ибо оно не справляться с задачами.
Ну у всех свои способы управления подчинёнными... Возможно ваши у вас эффективно работают
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Ikemefula, Вы писали:
I>>Проблема не в девелопере, а в начальстве. Уволили не того. Через короткий срок будет точно такая же проблема. E>Ты ошибся в прогнозах. У начальника всё хорошо. Просто ему не хватало авторитета бороться с тем гуру. Но он приобрёл ценный опыт и теперь у него таких проблем нет. А вот тот, кого уволили, IMHO, тупо профнепригоден, так как он вместо того, чтобы решать задачу занимался чёрт знает чем. Я понимаю, если бы он был стажёром, но он был на уровне вполне предполагающем самостоятельную работу...
Занимался он черт знает чем из за того, что начальство было слабоватое. При нормальном начальстве все будет в порядке, будет заниматься тем, чем надо.
Здравствуйте, Ikemefula, Вы писали:
VAB>>Тут не надо дизъюнкции — тут конъюнкция уместна.
I>Это очень жОсткий набор.
это стандартный набор для многих уважаемых компаний, начиная со многих команд в MSFT Google VmWare и далее по списку — уверен, каждый может найти вариант себе по вкусу.
это элементарно разумный набор с точки зрения здравого смысла. впрочем, я начинаю повторяться — см выше
.
I>Если человек смог разобраться на отлично в какой то области, скорее всего сможет разобраться в другой.
забавно. Человек хорош в филателии — означает ли это что он мне напишет приемлемый код в ядре?
ок, шутки в сторону: даже если брать не филателию, а драйвера под *nix или 9х — и даже в этом случае это мало о чем говорит в Windows NT мире... и такое сплошь и рядом повсеместно. Специализация действительно рулит.
Иначе бы набирали как в былые времена универсальных программистов на всем и для всего.
Если же не ограничивать время на обучение — то безусловно каждый вменяемый человек может разобраться со всем
вообще I>Если человек смог разобраться на отлично в какой то области, скорее всего сможет разобраться в другой.
так хорошо перекликается с еще одной глубокомысленной сентенцией: I>Все люди когда то чего то не знали или не знают.
после таких масломасляных фраз всегда сложно что-либо добавить.
Можно лишь в свою очередь выдать что-то аналогичное в духе "А солнце светит, далеко и горячее"...
короче, ребята, только не надо меня на пару с AndrewVK в топик втягивать — я в таких объемах не готов пока участвовать просто на лицо тот же тренд — мне сходу начинают что-то предъявлять-приписывать о чем я ни сном ни духом и вообще не упоминал
Ikemefula, вижу, Вы скорее всего не так поняли мои слова: просто обратите внимание, что я нигде не сказал что человеку на собеседовании что-то вообще требуется. Я лишь внес свое ИМХО по поводу применимости дизъюнктивных критериев предыдущего оратора. И сообщил свои. Все.
никаких выводов почему воображаемый коллега отсюда
хочет выдать "берем" (может быть он собеседует шикарную девченку и она ему понравилась своими формами... мысли?) и что для этого нужно знать собеседуемому — в этой ветке у меня не пробегало
естественно, разумные интервьюеры способны сказать "берем" даже если кандидат что-либо не ответил и они также понимают что знание всего и вся на высшем уровне выдать "здесь и сейчас" бывает затруднительно. Речь была совсем не о том.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Ikemefula, Вы писали:
I>Занимался он черт знает чем из за того, что начальство было слабоватое. При нормальном начальстве все будет в порядке, будет заниматься тем, чем надо.
Зачем нужен чел, нуждающийся в палке, чтобы работать? Я предпочитаю самомотивированных сотрудников. Тем более, что мы решаем довольно интересные и сложные задачи. Ну а если кому-то это не интересно, а интересно навернуть чисто технических сложностей -- ну значит не в коня корм... Лучше пусть ищет работу, которая ему интересна...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
I>>Занимался он черт знает чем из за того, что начальство было слабоватое. При нормальном начальстве все будет в порядке, будет заниматься тем, чем надо.
E>Зачем нужен чел, нуждающийся в палке, чтобы работать?
Это ты решил что ему нужна палка.
E>Я предпочитаю самомотивированных сотрудников.
Самомотивированый — это в переводе высокомотивированый. Самый редкий вид специалистов. Таких сложнее всго найти.
Здравствуйте, Ikemefula, Вы писали:
E>>Зачем нужен чел, нуждающийся в палке, чтобы работать? I>Это ты решил что ему нужна палка.
Да нет, задание ему ставили нормальное, просто он решил, что все тут дураки и сильно отстали в технологиях разработки. Так что палка была нужна...
Кстати, он успел ещё несколько людей подбить писать что-то на дельфи и они потом морочили головы своему руководству довольно долго...
E>>Я предпочитаю самомотивированных сотрудников. I>Самомотивированый — это в переводе высокомотивированый. Самый редкий вид специалистов. Таких сложнее всго найти.
Ну это кто что умеет. У нас, например, получается пока...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Valery A. Boronin, Вы писали:
I>>Это очень жОсткий набор. VAB>это стандартный набор для многих уважаемых компаний, начиная со многих команд в MSFT Google VmWare и далее по списку — уверен, каждый может найти вариант себе по вкусу.
В компаниях такого уровня вполне возможно. У них выход на гигантскую аудиторию.
VAB>это элементарно разумный набор с точки зрения здравого смысла. впрочем, я начинаю повторяться — см выше
Здравый смысл подсказывает, что ситуация с HR очень разнится в зависимости от области, отрасли, региона и тд и тд и тд.
I>>Если человек смог разобраться на отлично в какой то области, скорее всего сможет разобраться в другой. VAB>забавно. Человек хорош в филателии — означает ли это что он мне напишет приемлемый код в ядре?
Если человек филателист, это означает определенные качества и говорит, кстати говоря, больше чем десяток технических вопросов.
Но мне чтото кажется, что ты просто увильнуть решил ?
VAB>ок, шутки в сторону: даже если брать не филателию, а драйвера под *nix или 9х — и даже в этом случае это мало о чем говорит в Windows NT мире... и такое сплошь и рядом повсеместно. Специализация действительно рулит.
А драйвера при чем ?
AB>Если же не ограничивать время на обучение — то безусловно каждый вменяемый человек может разобраться со всем
Ищи готовых, кто мешает. Я как то со стороы понаблюдал, как два челвоека три месяца искали людей конъюнктивным методом. Не взяли ни одного человека, в итоге им скинули девелоперов с освободившегося проекта, через короткое время оба свалили, один хрен знает куда, другой вообще ушел из девелопмента а проект закончил человек которого они забраковали.
VAB>так хорошо перекликается с еще одной глубокомысленной сентенцией: I>>Все люди когда то чего то не знали или не знают. VAB>после таких масломасляных фраз всегда сложно что-либо добавить. VAB>Можно лишь в свою очередь выдать что-то аналогичное в духе "А солнце светит, далеко и горячее"...
Это не масляное. Если человек отлично знает одну часть фреймворка, то и любую другую осилит. Если хорошо знает window.forms то никах пролем с DevExpress тоже не возникнет.
Если хорошо ориентируется в ООД, то, стало быть, работал, имел интерес, разбирался ибо большинство дальше ооп не уходит.
Стало быть человек сможет освоить еще нечто.
Знамо дело, речь идет о конкретных навыках/умениях в конкретной области, а не о любых в абстрактной. Вроде и ежу ясно, что специалист по ядру БСД или писатель биосов для микроконтролера вряд ли окажутся сильными дотнетчиками или джавистом.
VAB>естественно, разумные интервьюеры способны сказать "берем" даже если кандидат что-либо не ответил и они также понимают что знание всего и вся на высшем уровне выдать "здесь и сейчас" бывает затруднительно. Речь была совсем не о том.
Как это не о том ?
Один спросил по одной части фреймворка и кандидат засыпался, а второй спросил по другой и кандидат ответил на ура.
Конъюнкция даёт false и ты вынужден сказать "не берём" возможно отличному специалисту.
Здравствуйте, ettcat, Вы писали:
E>Разумеется, я не призываю использовать генератор парсеров для разбора CSV или логов. Но в некоторых случаях split и regexp все же не хватает.
И, замечу, неплохо бы знать теорию регулярных выражений хотя бы в такой степени, чтобы с уверенностью отличать, в каких случаях их хватает, а в каких — нет.
Здравствуйте, Erop, Вы писали:
I>>Это ты решил что ему нужна палка. E>Да нет, задание ему ставили нормальное, просто он решил, что все тут дураки и сильно отстали в технологиях разработки. Так что палка была нужна... E>Кстати, он успел ещё несколько людей подбить писать что-то на дельфи и они потом морочили головы своему руководству довольно долго...
Ну так это отсутствие руковдства. ты ведь сам сказал, что дело было в авторитете.
Здравствуйте, Erop, Вы писали:
E>Ну, в целом, стратегия "попробовать написать регэксп, если это выходит как-то раком, или не выходит вообще, попробовать что-то другое" не так уж и плоха...
Во-во, а потом и получается, что производительность двух программистов может отличаться в десятки раз.
E>Ну тогда тебе знание грамматик -- существенно.
Оно существенно для любого, что претендует на звание software engineer.
E>А мне вот одно время нужно было обрабатывать тексты на естественных языках, там грамматики в смысле LL(k) практически бесполезны
Тем не менее знание теорий формальных грамматик и в данном случае небесполезно. Хотя бы для того, чтобы понимать, в каком направлении можно двигаться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, jartur, Вы писали:
J>Из функционального задания полуокружности получаем интеграл для длины . Так как мы не знаем, что это r arcsin(x/r), да и вообще arcsin явно слишком сложно вспомнить, нужно догадаться, представить это в виде , где r f(x/r) — первообразная. Ну вот и все. И никаких \pi. Чтобы было \pi надо вспомнить определение. , т.е. . Вот вам и формула. Но все равно, надо кучу чего знать и помнить, чтобы её вывести хотя бы так.
Overkill. No hire, sorry.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, AndrewVK, Вы писали:
E>>Ну тогда тебе знание грамматик -- существенно. AVK>Оно существенно для любого, что претендует на звание software engineer.
Для любого надо знать и понимать на определенном уровне предметную область и основые методы там применяющиеся для решения задач.
Я, например, забыл когда надо было чего то парсить, зато плотно завязан на один из разделов математики и один из разделов дискретной матматики.
Здравствуйте, AndrewVK, Вы писали:
AVK>К сожалению, лучше аналогии в рамках С++ я придумать не могу. Точного аналога стандартной библиотеки дотнета в С++ нет. Даже STL некоторые не используют ( ), пишут свои велосипеды.
Здравствуйте, Pzz, Вы писали:
Pzz>И, замечу, неплохо бы знать теорию регулярных выражений хотя бы в такой степени, чтобы с уверенностью отличать, в каких случаях их хватает, а в каких — нет.
Зачем? "Очень сложно" и "не хватает" -- это почти одно и то же. Удобно ли описать формат регэкспом, IMHO, довольно очевидно. А можно ли в принципе -- не суть важно на самом деле...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
E>>Ну, в целом, стратегия "попробовать написать регэксп, если это выходит как-то раком, или не выходит вообще, попробовать что-то другое" не так уж и плоха... AVK>Во-во, а потом и получается, что производительность двух программистов может отличаться в десятки раз.
Проблема только в том, что с глубокими знаниями производительность не коррелирует...
E>>Ну тогда тебе знание грамматик -- существенно. AVK>Оно существенно для любого, что претендует на звание software engineer.
Не согласен. Полезно? -- да. Необходимо? -- в зависимости от решаемых разработчиком задачь...
E>>А мне вот одно время нужно было обрабатывать тексты на естественных языках, там грамматики в смысле LL(k) практически бесполезны AVK>Тем не менее знание теорий формальных грамматик и в данном случае небесполезно. Хотя бы для того, чтобы понимать, в каком направлении можно двигаться.
Да нифига они ничему не помогают. В таких задачах другие подходы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
E>>Скорее всего выяснить реакцию человека на задачи и трудности разных типов. AVK>Ага, особенно это важно на менеджерские позиции
Ну если память плохая, то куда уж на менеджерские-то позиции?
А вообще тип реакций человека интересен при найме на любую позицию...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>Ну так это отсутствие руковдства. ты ведь сам сказал, что дело было в авторитете.
Ну вот я считаю, что этот чел не годиться в разработчики. Как руководитель разработки он себя плохо показал. Нет бы сразу сказал бы, что делать этого не будет. Или бы сделал как считает нужным, но быстро и качественно. И как подчинённый тоже плохо выступил. Так как гонору много, а как "сам с усам" таки не тянет. Короче безответственный тип с необоснованными амбициями.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
E>>Ты ошибся в прогнозах. У начальника всё хорошо. Просто ему не хватало авторитета бороться с тем гуру. AVK>Хм. А за что тогда он получал деньги?
За руководство другими проектами. Более важными и нужными. Это всё-таки была некоторая маргинальщина, но высокоуровневая довольно. Идеально было бы, если бы этот крутой перец, после внятной постановки задачи за месяц, например, разобрался как что используется и сделал бы это исследование. Тогда ему можно было бы что-то более важное доверить. Но он даже с такой ограниченной задачей не справился. Что говорить о разработках с циклом длительностью в год-два?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
E>>Увы, но тянет. Если ты хрошего умного разработчика посадишь клепать формочки, он, скорее всего, либо сбежит, либо утратит мотивацию AVK>А при чем тут знания? Это уже другое — каждый ищет предел собственной некомпетенции.
При том, что квалификация бывает излишней.
E>>, либо навернёт с тоски мега-супер-пупер-всемогутер... AVK>А это уже признак непрофессионализма. Я вот никак не могу понять — откуда этот миф, что чем выше квалификация программиста, тем сильнее его тянет навернуть на ровном месте? Лично моя практика показывает ровно обратное — такими загибонами страдают обычно вчерашние студенты. А профессиональный код обычно не наворотами характеризуется, а наоборот, предельной простотой и прозрачностью.
Я согласен, что это непрофессионально. Но на тоску разные люди по разному реагируют...
AVK>Ну, тут уже все сильно субъективно и зависит от обстоятельств. Вон, те, которые писюковый софт для мобильников ваяют, наверное тоже хорошими инженерами считаются.
считаться и быть -- это разные глаголы. Я про второй.
AVK>>>При чем тут я? E>>Ну и не ты, тоже. IMHO суть КА на булеву алгебру никак не завязана AVK>Ну, скажем так, ты ошибаешься. ПТЦА на 100% построена на булевой алгебре.
IMHO, это только один из способов прийти к этому знанию. Просто конкретно для ПТЦА булева алгебра удобный аппарат. Но программисту же это не насущно нужно всё?
E>>Ну лично меня поразило, что люди сначала думают непонятные мысли, а потом упрощают логические выражения. AVK>Булева алгебра это не только упрощение логических выражений.
Дык меня не булева алгебра поразила, а то, что я написал выше
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
AVK>>К сожалению, лучше аналогии в рамках С++ я придумать не могу. Точного аналога стандартной библиотеки дотнета в С++ нет. Даже STL некоторые не используют ( ), пишут свои велосипеды. I>Сколько проектов на с++, столько и велосипедов.
Это, в частности, был намёк на нашу контору. Кстати, у нас проектов намного больше, чем велосипедов
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>>>Это очень жОсткий набор. VAB>>это стандартный набор для многих уважаемых компаний, начиная со многих команд в MSFT Google VmWare и далее по списку — уверен, каждый может найти вариант себе по вкусу.
I>В компаниях такого уровня вполне возможно. У них выход на гигантскую аудиторию.
да без разницы — там это точно также применяется для набора и в совсем небольшие команды. Как я написал — список может быть продолжен вплоть до никому неизвестных компаний в гараже на 5 человек — и метода будет отлично работать и там. И даже будет работать не только для IT...
VAB>>это элементарно разумный набор с точки зрения здравого смысла. впрочем, я начинаю повторяться — см выше
.
I>Здравый смысл подсказывает, что ситуация с HR очень разнится в зависимости от области, отрасли, региона и тд и тд и тд.
еще раз, в моем исходном топике не было ничего об области деятельности, географической области и вообще всего что влияет в итоге на выработку мнения брать\не брать у каждого из интервьюеров — ну почему Вы это никак не поймете
I>>>Если человек смог разобраться на отлично в какой то области, скорее всего сможет разобраться в другой. VAB>>забавно. Человек хорош в филателии — означает ли это что он мне напишет приемлемый код в ядре?
I>Если человек филателист, это означает определенные качества и говорит, кстати говоря, больше чем десяток технических вопросов.
разумеется. еще это означает что Вы мастер полемического жанра
I>Но мне чтото кажется, что ты просто увильнуть решил ?
я ничего не "решал" — всего лишь без особого успеха борюсь с Вашими догадками, так изящно отнесенными на мой счет.
строкой выше еще одна из них. кстати, а когда мы успели перейти с Вами на Вы?
VAB>>ок, шутки в сторону: даже если брать не филателию, а драйвера под *nix или 9х — и даже в этом случае это мало о чем говорит в Windows NT мире... и такое сплошь и рядом повсеместно. Специализация действительно рулит.
I>А драйвера при чем ?
так для примера мне казалось, что может быть примеры-гиперболы-аналогии помогут Вам начать понимать о чем тут была речь — некоторым помогает подобный прием... ну право слово, если проблемы с пониманием достаточно незамысловатого русского текста начинают иметь место на постоянной основе, да еше и что-то регулярно видится-читается между строк — это уже не ко мне, не мой профиль
AB>>Если же не ограничивать время на обучение — то безусловно каждый вменяемый человек может разобраться со всем I>Ищи готовых, кто мешает. Я как то со стороы понаблюдал, как два челвоека три месяца искали людей конъюнктивным методом. Не взяли ни одного человека, в итоге им скинули девелоперов с освободившегося проекта, через короткое время оба свалили, один хрен знает куда, другой вообще ушел из девелопмента а проект закончил человек которого они забраковали.
А Вы не видите, что этой историей Вы сами подтвердили некую потенциальную опасность дизъюнктивного подхода?!
это все из серии когда разработчика не спрашивают о сроках, а спускают ему их сверху... иногда ничего страшного, но часто тоже не очень хорошо кончается. Могу рассказать отдельно почему — но попозже, когда появится время на ликбез.
при этом специально для любителей читать между строк отмечаю — нигде выше я не утверждал что дизъюнкция не работает как класс, она лишь дополнительный и нежелательный риск. Часто она просто состоит из одного человека и может фактически называться конъюнкцией (когда интервью формально проводится сообща — но в итоге "мы посовещались и я решил") — и если человек сечет в нашем деле и разбирается в людях\держит коллектив железной рукой, то это также может запросто работать.
относилось в последнюю очередь в техническую область — и именно поэтому в нем ничего о тех стороне беседы просто *не было*. А Вы упорно этого не желаете замечать не верите? поищите
VAB>>так хорошо перекликается с еще одной глубокомысленной сентенцией: I>>>Все люди когда то чего то не знали или не знают. VAB>>после таких масломасляных фраз всегда сложно что-либо добавить. VAB>>Можно лишь в свою очередь выдать что-то аналогичное в духе "А солнце светит, далеко и горячее"...
I>Это не масляное. Если человек отлично знает одну часть фреймворка, то и любую другую осилит. Если хорошо знает window.forms то никах пролем с DevExpress тоже не возникнет.
давайте сразу про площадь круга уже, тогда можно будет окончательно кольцевать разговор на стартовое сообщение
I>Если хорошо ориентируется в ООД, то, стало быть, работал, имел интерес, разбирался ибо большинство дальше ооп не уходит.
уверен, дофига товарищей без знания LSP тоже работало и имело интерес к паттернам ООП и прочем востребованным на интервью словам. часто это и правда совсем неважно. но стоп, Вы опять куда-то уводите все. Наверное в след сообщении скажете что это я так "решил"
I>Стало быть человек сможет освоить еще нечто.
весь этот топик о том что не всегда. Если у него пробелы в фундаментальных вещах — то все. Здравствуй, потолок.
И да, упреждая безбашенных товарищей, сразу разочарую: почти у всех из нас он есть — хотите признавайте этот факт, хотите нет. Хорошая новость — он очень разный. Не в последнюю очередь в т.ч. и по причине наличия\отсутствия основ
I>Знамо дело, речь идет о конкретных навыках/умениях в конкретной области, а не о любых в абстрактной. Вроде и ежу ясно, что специалист по ядру БСД или писатель биосов для микроконтролера вряд ли окажутся сильными дотнетчиками или джавистом.
ну вот, еще один полемический прием, началось: "знамо дело", "ежу понятно". Ежей на этом форуме нет — но мне нравится следить за руками
А вот то, что Вы написали — как раз и называется масломасляное: вот скажите, ну зачем говорить очевидные вещи? о чем спор? с кем, если Вы только что согласились с тем что я написал в пред сообщении по этому поводу?
но есть и позитивный момент — хоть здесь у нас в итоге совпала точка зрения: 2+2 = 4. прогресс, однако!
VAB>>естественно, разумные интервьюеры способны сказать "берем" даже если кандидат что-либо не ответил и они также понимают что знание всего и вся на высшем уровне выдать "здесь и сейчас" бывает затруднительно. Речь была совсем не о том.
I>Как это не о том ?
ну не о том, верите или нет
как говорится, рад бы помочь постичь мысль — да уже не представляю как. Наверное можно лишь посоветовать банальное "читать до просветления
". Хотя бы последний параграф.
I>Один спросил по одной части фреймворка и кандидат засыпался, а второй спросил по другой и кандидат ответил на ура. I>Конъюнкция даёт false и ты вынужден сказать "не берём" возможно отличному специалисту.
еще раз, не надо мне приписывать какие-то свои представления о процессе интервью. Неверный\неполный ответ нигде у меня в тексте не означал вообще что-либо. Я оперировал совсем другими сущностями, более высокого порядка, если угодно.
короче говоря, Вы слишком избирательно меня цитируете. Вы вообще читаете что Вам пишут?
естественно, разумные интервьюеры способны сказать "берем" даже если кандидат что-либо не ответил и они также понимают что знание всего и вся на высшем уровне выдать "здесь и сейчас" бывает затруднительно. Речь была совсем не о том.
может быть это у Вас любой false дает глобальный сбой и "не берем". У нас тоже сложно представить кандидата, проскочившего без единой помарки — но где-то найти кадры компании тем не менее каким-то образом удалось. при этом конъюнкция (нигде не прописанная в явном виде, но существующая незримо) тут никак не мешала. Зато она замечательно помогает не брать людей, с которыми будет потом скорее всего некомфортно кому-то из нас работать.
Это так сложно было понять? А Вы все про "засыпался" по части фреймворка... ату его! эх, молодежъ
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Erop, Вы писали:
E>И что, пишешь пред/пост условия и инварианты циклов? Я, например, очень очень редко пишу такой непонятный и ответственный код, что првожу его формальные док-ва. Обычно я и так знаю зациклится прога или нет
Я же говорю — прикидываю в голове, как бы писал, если бы приспичило.
Но что важнее, структурирую код таким образом, что о нем можно рассуждать в таких терминах. Что делает код более понятным и управляемым.
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Ikemefula, Вы писали:
I>>Ну так это отсутствие руковдства. ты ведь сам сказал, что дело было в авторитете. E>Ну вот я считаю, что этот чел не годиться в разработчики. Как руководитель разработки он себя плохо показал. Нет бы сразу сказал бы, что делать этого не будет. Или бы сделал как считает нужным, но быстро и качественно. И как подчинённый тоже плохо выступил. Так как гонору много, а как "сам с усам" таки не тянет. Короче безответственный тип с необоснованными амбициями.
Что ты считаешь, понятно. Непонятно, за что его руководитель получал ЗП в течени 10 месяцев.
Здравствуйте, elmal, Вы писали:
E>в результате получается такое регулярное выражение, что сам черт ногу сломит чтоб в нем разобраться
Это практически всегда так. Write-once язык.
E>только до тонкостей у меня ни малейшего желания разбираться
Да нет там никаких особых тонкостей
Здравствуйте, Ikemefula, Вы писали:
I>Язык нужен _потом_, после твоих регэспов и всякого хлама.
И потом он тоже не нужен. Для логики есть готовые компилируемые языки
Здравствуйте, Erop, Вы писали:
E>Но зачем тут какие-то навороченные парсеры?
Все очень просто. Софт наверняка писался в бандитско-рэкетские времена. Теперь этого монстра надо тупо поддерживать. Все это понятно. Непонятно другое — зачем советовать другим идти по уже пройденным граблям?
Здравствуйте, Erop, Вы писали:
AVK>>А при чем тут знания? Это уже другое — каждый ищет предел собственной некомпетенции. E>При том, что квалификация бывает излишней.
В продемонстрированном тобой примере оказалось в итоге, что квалификация наоборот была недостаточна.
AVK>>Ну, тут уже все сильно субъективно и зависит от обстоятельств. Вон, те, которые писюковый софт для мобильников ваяют, наверное тоже хорошими инженерами считаются. E>считаться и быть -- это разные глаголы. Я про второй.
А нету второго. Я ж тебе говорю — это понятие субъективное. Ты считаешь, что человек, не знающий азов дискретки может быть хорошим софтварным инденером, я считаю что нет.
E>IMHO, это только один из способов прийти к этому знанию. Просто конкретно для ПТЦА булева алгебра удобный аппарат. Но программисту же это не насущно нужно всё?
Смотря что понимать под программистом. Если человека, способного грамотно оценить то или иное решение и выбрать оптимальное по целому ряду факторов — да, нужно. Иначе потом получаются "инженеры", которые, например, вместо включения мозга ищут правильный паттерн, а в .NET находят фатальный недостаток: там нету компонента Ххх.
Есть такое понятие — системность знаний. Без онной системности лично для меня хорошесть инженера под большим вопросом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
E>>Ну тогда тебе знание грамматик -- существенно. AVK>Оно существенно для любого, что претендует на звание software engineer.
Слишком категорично. Это уже скорее предметная область. Знание полезно всем, нужно только тем, кто в ней занимается.
Здравствуйте, AndrewVK, Вы писали:
AVK>А нету второго. Я ж тебе говорю — это понятие субъективное. Ты считаешь, что человек, не знающий азов дискретки может быть хорошим софтварным инденером, я считаю что нет.
Азы дискретки это слишком ёмкое понятие.
Мне сто лет на надо было чего то парсить, не нужны были всяки грамматики. Как быть ?
Здравствуйте, Erop, Вы писали:
E>Проблема только в том, что с глубокими знаниями производительность не коррелирует...
У тебя есть данные статистики? Или тебе так кажется?
AVK>>Оно существенно для любого, что претендует на звание software engineer. E>Не согласен.
Ну я ж говорю — субъективно оно все. Экспертная оценка, если хочешь. А объективных данных я пока нигде не видел.
E>Да нифига они ничему не помогают.
Не могу согласиться. Формальные грамматики были придуманы как раз для описания грамматик естественных языков в формальном виде. Это первыше шажки на этапе компьютерного анализа текстов на естественных языках. Впрочем, я никого ни в чем убеждать не намерен. Есть желание начинать изготовление космического корабля с каменного молотка — ради бога, как я уже говорил, ряд факторов в современном софтостроении это позволяют.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, olegkr, Вы писали:
O>Слишком категорично.
Да, я такой.
O> Знание полезно всем, нужно только тем, кто в ней занимается.
Я не понимаю, как дискретная математика может быть не нужна при серьезной разработке софта, если этот человек отвечает за чуть большее, нежели написание конкретного метода.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Я не понимаю, как дискретная математика может быть не нужна при серьезной разработке софта
Эхх, далеки вы математики-теоретики от народа.
Здравствуйте, AndrewVK, Вы писали:
AVK>Есть желание начинать изготовление космического корабля с каменного молотка — ради бога, как я уже говорил, ряд факторов в современном софтостроении это позволяют.
Скорее нет желания изготовлять космический корабль для поездки в универсам.
Здравствуйте, olegkr, Вы писали:
I>>Язык нужен _потом_, после твоих регэспов и всякого хлама. O>И потом он тоже не нужен. Для логики есть готовые компилируемые языки
Я уже сказал, на C# кода было по самой простой оценке вдвое больше нынешнего даже с учетом xml.
Плоховато ты читаешь
Подошел бы в принципе javascript или python например.
Чуть позже нашли то, что могло бы нас устроить на C# — Perst.net, появись оно вовремя.
Здравствуйте, olegkr, Вы писали:
E>>Но зачем тут какие-то навороченные парсеры? O>Все очень просто. Софт наверняка писался в бандитско-рэкетские времена. Теперь этого монстра надо тупо поддерживать. Все это понятно. Непонятно другое — зачем советовать другим идти по уже пройденным граблям?
А кто тебе советует ?
Это ты советуешь, что кому подойдет.
Еще и читать не умеешь и предлаешь подходы которые не оправдали себя.
Здравствуйте, AndrewVK, Вы писали:
I>>Мне сто лет на надо было чего то парсить, не нужны были всяки грамматики. Как быть ?
AVK>А это ты сам решай. Я тут великого гуру из себя изображать не хочу.
Здравствуйте, olegkr, Вы писали:
AVK>>Я не понимаю, как дискретная математика может быть не нужна при серьезной разработке софта O>Эхх, далеки вы математики-теоретики от народа.
Переходить на личности тоже не стоит. Я не математик и уж точно не теоретик.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Не надо заниматься играми с аналогиями, они не для этого приводились, а для иллюстрации.
Аналогии они такие... ты с ними поосторожнее, а то ведь и против тебя в споре повернуться могут
Здравствуйте, olegkr, Вы писали:
I>>Еще и читать не умеешь и предлаешь подходы которые не оправдали себя. O>Неа, я не предлагаю самописные языки.
Ты предложил вариант который дает слишком много кода и я тебя даже предупредил об этом.
С C# 4.0 зачада решается на раз. Но тогда например даже дженериков не было. Посему дело за малым — взять машину времени и нынешние библиотеки и языки перенести в прошлое. Т
Здравствуйте, Ikemefula, Вы писали:
I>Ты предложил вариант который дает слишком много кода и я тебя даже предупредил об этом.
О да! Для начала наворотить тонну кода для своего языка, что бы потом вместо двух килограмм написать один.
I>Ты это хотел сказать ?
Я хотел сказать, что нужно мыслить современными реалиями, а не 10-летней давности. Всем и так понятно, что 10 лет назад никаких дотнетов не было и приходилось на коленке чего только не писать.
Здравствуйте, Pzz, Вы писали:
Pzz>Ну например, понимать e-mail адреса клиентов во всем том разнообразии синтаксических оттенков, которое допускает RFC822.
Легко! http://www.rsdn.ru/Forum/?mid=2729536
Здравствуйте, Ikemefula, Вы писали:
I>Что ты считаешь, понятно. Непонятно, за что его руководитель получал ЗП в течени 10 месяцев.
Он у него был не единственный подчинённый, кроме того, этот самый парень делал не самый важный и срочный проект. Его пинали, он отбавался как-то потом вопрос подняли на уровень выше и потом полюбовно договорились расстаться. Выгонять было реально жалко, но как приспособить его в хозяйстве тоже никто не придумал, и в конце концов решили расстаться. При этом непосредственному начальнику реально довольно вставили.
Правда это самый вопиющий, из известных мне случаев излишнеквалифицированного сотрудника. Обычно, вменяемые люди просто говорят, что этой конкретной задачей заниматься не хотели бы, так как она для них слишком простая...
Хотя, IMHO, в данном случае, как раз не слишком простая оказалась, а слишком сложная.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, olegkr, Вы писали:
Pzz>>Ну например, понимать e-mail адреса клиентов во всем том разнообразии синтаксических оттенков, которое допускает RFC822. O>Легко! O>http://www.rsdn.ru/Forum/?mid=2729536
Здравствуйте, AndrewVK, Вы писали:
AVK>А этого товарища он бросил на произвол судьбы? Ну и кто тогда в сложившейся ситуации виноват? ИМХО — начальник начальника, который устроил бардак с разделением зон ответственности и не чесался в течение 10 месяцев.
Да нет, с ним бодались, в принципе, он что-то там доказывал, что-то показывал, какие-то трудности изобретал, якобы объективные.
AVK>Очевидно, что этот крутой перец совсем не так крут. Опять ошибка того человека, который неверно оценил квалификацию, пустил в свободное плавание, да еще и не потрудился за 10 месяцев ни разу проверить.
IMHO просто жалко было его выгонять, так как реально мужчина много знал и умел. Просто он патологически не хотел делать то, что считал неправильным, что ли.
AVK>И да, то что человека уволили, вместо того чтобы найти ему более нормальное применение, это тоже показатель.
Ну уволили его по его обоюдному желанию. Он решил, что у нас скучно и ретрограды, мы решили, что он слишком крут для нас... Его правда честно пытались приспособить к чему-то полезному. Например он почитал желающим лекции на разные темы. IMHO неплохие, кстати... Но пользы из него никто так и не сумел тем не менее. IMHO он таким странным образом развлекался
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
E>>При том, что квалификация бывает излишней. AVK>В продемонстрированном тобой примере оказалось в итоге, что квалификация наоборот была недостаточна.
Да хрен его знает. Сам по себе он что-то хорошее умеет. Он от чего-то фатально ен вписался в коллектив. Ну типа ему казалось неправильным не использовать буст, дельфи, ещё что-то казалось неправильным.
AVK>А нету второго. Я ж тебе говорю — это понятие субъективное. Ты считаешь, что человек, не знающий азов дискретки может быть хорошим софтварным инденером, я считаю что нет.
Это, конечно, субъективно. Я непонятно выразился. Я считаю, что есть некий специфический навык "быть инженером", который состоит в том, что ты понимаешь, что реальные решения -- это компромисы между кучей противоричивых требований и факторов. И искусство инженера как раз и стостоит в том чтобы выбирать оптимальное решение, и при этом по возможности простое, надёжное и технологичное...
IMHO, это искусство не зависит от конкретной области, так скажем. Оно более общее. Так же, как аналитичекий ум, например. Бывают очень умные и образованные люди, но напрочь лишённые этого свойства. И, IMHO, они совершенно не годятся в порограммисты.
Вот я сильно подозреваю, что тот самый чел из примера был либо таким "антиинженером", либо реально просто из каких-то соображений морочил нам голову. Скажем девка ему тут какая-то гравилась, а потом она его отшила и он уволился
AVK>Смотря что понимать под программистом. Если человека, способного грамотно оценить то или иное решение и выбрать оптимальное по целому ряду факторов — да, нужно. Иначе потом получаются "инженеры", которые, например, вместо включения мозга ищут правильный паттерн, а в .NET находят фатальный недостаток: там нету компонента Ххх.
IMHO, ПТЦА для этого критична далеко не всегда. Мало того, я заню много примеров, когда знание этой теории не спасает
AVK>Есть такое понятие — системность знаний. Без онной системности лично для меня хорошесть инженера под большим вопросом.
Ну самые основы, они довольно компактны и их легко изучить на самом деле. Например, я прошу своих подчинённых изучать что такое WP...
но это же не проблема, на самом деле-то. ВУЗы ежегодно выпускают толпы людей хорошо знающих весь расхваливаемый тобой мат. бэкграунд, но при этом совершенно никаких инженеров. Для хорошего инженера надо нечто совсем другое.
попробуй таки поговорить с хорошим инженером из какой-нибудь другой отрасли. Например с авиационным. Ты приколешься сколько общего, на самом деле
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, olegkr, Вы писали:
I>>Ты предложил вариант который дает слишком много кода и я тебя даже предупредил об этом. O>О да! Для начала наворотить тонну кода для своего языка, что бы потом вместо двух килограмм написать один.
Я так и думал, религия запрещает перечитать написаное.
Может хватит додумывать и выдумывать ? Я же сказал — решение на C# заняло слишком много кода, который надо было постоянно править.
В нашем случае написание языка было далеко не самой сложной задачей, но тебе, безусловно, виднее.
Здравствуйте, olegkr, Вы писали:
O>Замечательный теоретический пример
Я как-то его делал для одной довольно популярной в РФ программы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>Впрочем я допускаю, что другая конструкция внутренних тормозов тоже может быть работоспособной.
IMHO внутренние тормоза должны быть очень надёжны и многоплановы. Если ты что-то не можешь описать регэкспом за час (этот таймаут с большим пребольшим запасом взят), то точно надо тормознуть и подумать почему не получается...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, olegkr, Вы писали:
O>Да нет там никаких особых тонкостей
приведи, пожалуйста, пример запроса который гарантированно не делается на регэкспах...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
E>>Проблема только в том, что с глубокими знаниями производительность не коррелирует... AVK>У тебя есть данные статистики? Или тебе так кажется?
Ну статистика в рамках конторы за историю её существования, так скажем.
Немного, но что есть.
AVK>Не могу согласиться. Формальные грамматики были придуманы как раз для описания грамматик естественных языков в формальном виде. Это первыше шажки на этапе компьютерного анализа текстов на естественных языках. Впрочем, я никого ни в чем убеждать не намерен. Есть желание начинать изготовление космического корабля с каменного молотка — ради бога, как я уже говорил, ряд факторов в современном софтостроении это позволяют.
Ну я как бы немного в теме. Я тут одно время за морфологию отвечал, например...
И я тебе так скажу, что все эти "первые шажки" -- это как раз каменный топор и есть, даже не топор, а палка-копалка. Реальной пользы -- ноль. Слишком предложения естественных языков сложно и вариативно устроены...
Предел мечтаний развития этих шажков -- это локальный синтаксис, а оно, увы, есть совершенно тупиковое учение...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>Если наложить ограничение на длинну строки, это точно совершенно описывается конечным автоматом. А значит, и регулярное выражение можно подобрать
Если наложить ограничение на длину, то будет просто конечный словарь вариантов. Правда при длинне скажем в 100 символов оо-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-очень большой. И регэксп такой же будет и автомат. Таки лучше стековым...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, SE, Вы писали:
SE>По поводу рисования в восьми направлениях, интересная идея, я наверно тоже тупой кодер , но зачем оптимизировать зарание, разве простота кода не важней?
Возможно ты и прав, я на всяк случай прикинул, как оно было бы.
В целом сложнее. Хотя может тоже не работает, так как я тоже "из головы"...
// рисует линиюvoid drawLine( int xFrom, int yFrom, int xTo, int yTo );
// Рисует 2 элементарных "дуги" окружности симметричных относительно линии
// ( x - xCenter ) = ( y - yCenter )void drawTwoPiecesOfCircle( int xCenter, int yCenter, int dxStart, int dyStart, int dxEnd, int dyEnd )
{
drawLine( xCenter+dxStart, yCenter+dyStart, xCenter+dxEnd, yCenter+dyEnd );
drawLine( xCenter+dyStart, yCenter+dxStart, xCenter+dyEnd, yCenter+dxEnd );
}
// рисует четыре элементарные "дуги" окружности, симметричные относительно линий
// ( x = xCenter ), ( y = yCenter )void drawFourPiecesOfCircle( int xCenter, int yCenter, int dxStart, int dyStart, int dxEnd, int dyEnd )
{
drawLine( xCenter+dxStart, yCenter+dyStart, xCenter+dxEnd, yCenter+dyEnd );
drawLine( xCenter+dxStart, yCenter-dyStart, xCenter+dxEnd, yCenter-dyEnd );
drawLine( xCenter-dxStart, yCenter+dyStart, xCenter-dxEnd, yCenter+dyEnd );
drawLine( xCenter-dxStart, yCenter-dyStart, xCenter-dxEnd, yCenter-dyEnd );
}
// Рисует 8 элементарных "дуг" окружности симметричных относительно линий
// ( x = xCenter ), ( y = yCenter ) и ( x - xCenter ) = ( y - yCenter )void drawEightPiecesOfCircle( int xCenter, int yCenter, int dxStart, int dyStart, int dxEnd, int dyEnd )
{
drawFourPiecesOfCircle( xCenter, yCenter, dxStart, dyStart, dxEnd, dyEnd );
drawFourPiecesOfCircle( xCenter, yCenter, dyStart, dxStart, dyEnd, dxEnd );
}
// Рисует окружностьvoid drawCircle( int xCenter, int yCenter, int r )
{
assert( r > 0 );
const double drawDistance = M_PI_4; // будем рисовать 1/8 окружности, попутно рисуя 8 отражений этой дугиconst double directLineSegmentLen = 5;
// будем рисовать отрезками примерно по maxDirectLineLen пикселей, но не менее, чем 16-тиугольникconst double angleStep = drawDistance / max( 1, int( 0.5 + r * drawDistance / directLineSegmentLen ) );
const double angleTo = drawDistance - angleStep;
double angle = angleStep / 2;
int dxStart = int( 0.5 + r * sin( angle ) );
int dyStart = int( 0.5 + r * cos( angle ) );
// отрезки, соединяющие начала осьмушек
drawTwoPiecesOfCircle( xCenter, yCenter, -dxStart, dyStart, dxStart, dyStart );
drawTwoPiecesOfCircle( xCenter, yCenter, -dxStart, -dyStart, dxStart, -dyStart );
for( angle += angleStep; angle < angleTo; angle += angleStep )
{
int dxEnd = int( 0.5 + r * sin( angle ) );
int dyEnd = int( 0.5 + r * cos( angle ) );
drawEightPiecesOfCircle( xCenter, yCenter, dxStart, dyStart, dxEnd, dyEnd );
dxStart = dxEnd;
dyStart = dyEnd;
}
// отрезки, соединяющие концы осьмушек
drawFourPiecesOfCircle( xCenter, yCenter, dxStart, dyStart, dyStart, dxStart );
}
Хотя, наверное, если есть возможность писать на С++, то стоило бы оформить как класс
class CircleDrawer {
public:
CircleDrawer( int xCenter, int yCenter );
void Draw( int r ) const;
private:
int xCenter;
int yCenter;
void drawTwoPiecesOfCircle( int dxStart, int dyStart, int dxEnd, int dyEnd ) const;
void drawFourPiecesOfCircle( int dxStart, int dyStart, int dxEnd, int dyEnd ) const;
void drawEightPiecesOfCircle( int dxStart, int dyStart, int dxEnd, int dyEnd ) const;
};
Но эта вечная проблема всяких дурацких вопросов на интерьвю -- совершенно не понятна предполагаемая подробность проработки требуемого решения...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>приведи, пожалуйста, пример запроса который гарантированно не делается на регэкспах...
Я где-то оспаривал эту теорию? Ну а так сходу, не думая, попробую. Изначально было в бинарнике, но попробую перевести в строки. Есть набор строк, типа
AABBBCCC
где
AA — номер транзакции
BBB — тип данных
ССС — данные
Строки идут вперемешку, т.е. они не сгруппированы по номерам транзакций. Нужно вернуть все данные по транзакции. Т.е. что бы regexp возвращал А1 B11 C11 B12 C12 B13 C13, ну и т.д. для каждого уникального AAA
Тестовые данные:
A1B11C11
A5B51C51
A1B12C12
A5B52C52
A1B13C13
Здравствуйте, Erop, Вы писали:
AVK>>В продемонстрированном тобой примере оказалось в итоге, что квалификация наоборот была недостаточна. E>Да хрен его знает. Сам по себе он что-то хорошее умеет. Он от чего-то фатально ен вписался в коллектив. Ну типа ему казалось неправильным не использовать буст, дельфи, ещё что-то казалось неправильным.
Ты путаешься в показаниях. Либо он в коллектив не вписался, тогда не вижу смысла обсуждать это в данном топике, либо таки у него серьезные проблемы с кодом, тогда в лес все эти невписывания, проблема в том числе и в квалификации.
E> Я считаю, что есть некий специфический навык "быть инженером", который состоит в том, что ты понимаешь, что реальные решения -- это компромисы между кучей противоричивых требований и факторов. И искусство инженера как раз и стостоит в том чтобы выбирать оптимальное решение, и при этом по возможности простое, надёжное и технологичное...
Да ради бога. Но для разработки софта это необходимое условние, но не достаточное.
E>IMHO, ПТЦА для этого критична далеко не всегда. Мало того, я заню много примеров, когда знание этой теории не спасает
Я утверждал где то обратное, что таких примеров нет?
E>Ну самые основы, они довольно компактны и их легко изучить на самом деле.
Именно об этих основах здесь и речь. За углубленные познания лично я никогда не агитировал.
E> ВУЗы ежегодно выпускают толпы людей хорошо знающих весь расхваливаемый тобой мат. бэкграунд, но при этом совершенно никаких инженеров.
Опять эта странная логика. Если есть машины, у которых кондиционер работает фигово, это же не значит, что кондиционер в машине не нужен, не так ли?
E>попробуй таки поговорить с хорошим инженером из какой-нибудь другой отрасли.
Попробуй таки не поучать собеседников. Еще неизвестно, кто из нас с большим количеством инженеров общался.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>Ну статистика в рамках конторы за историю её существования, так скажем. E>Немного, но что есть.
У меня есть небольшое хобби, мне интересно изучать, как устроен процесс разработки в разных конторах. Так вот, ваша в этом плане весьма и весьма специфична. Да и продукты у вас тоже весьма специфические.
E>И я тебе так скажу, что все эти "первые шажки" -- это как раз каменный топор и есть, даже не топор, а палка-копалка.
Да! Но без них — нифига не получится.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
Pzz>>Если наложить ограничение на длинну строки, это точно совершенно описывается конечным автоматом. А значит, и регулярное выражение можно подобрать
E>Если наложить ограничение на длину, то будет просто конечный словарь вариантов. Правда при длинне скажем в 100 символов оо-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-о-очень большой. И регэксп такой же будет и автомат. Таки лучше стековым...
Я не это имел ввиду. Чтобы подсчитать плюсики-минусики, не надо больше состояний, чем может быть плюсиков или минусиков. А их не может быть больше, чем длина строки.
Здравствуйте, AndrewVK, Вы писали:
AVK>Не, я с вас фигею. Ну прям куча беспомощных начальников перед лицом коварного работника. Самому не смешно?
Дык поинт в том, что чотрудник должен сотрудничать, а иначе он нам не нужен.
E>>IMHO просто жалко было его выгонять, так как реально мужчина много знал и умел. AVK>Я где то писал, что его надо выгнать?
Зато я писал. Было много разных менеджеров, которые пробовали разные варианты воздействия. IMHO самый компетентный уволил
E>>Ну уволили его по его обоюдному желанию. AVK>Это ничего не меняет. Если человек негодной квалификации — надо было выгнать после испытательного срока. Если годной — значит ваши менеджеры не смогли его эффективно задействовать.
Ну я считаю, что негодной, потому что очень большой, но не совсем в том. А в том большой, но ему не хотелось. Ну типа очень хорошего пилота истребителя пригласили возить овец в трудных метеоусловиях зимнего Кавказа. Ну он повыпендривался и свалил в конце концов.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Ты путаешься в показаниях. Либо он в коллектив не вписался, тогда не вижу смысла обсуждать это в данном топике, либо таки у него серьезные проблемы с кодом, тогда в лес все эти невписывания, проблема в том числе и в квалификации.
Да ничего я не путаюсь. Просто ты чего-то не понимаешь. Как разработчик ПО он был реально крутой. Он кое-что сам делал и потом в другой конторе тоже делал, правда библиотеку навороченных шаблонов. Вполне успешно вроде. А у нас он хотел решать задачи не как у нас принято, а как он считал верным. А так получалось очень тормозно. Можно считать потому, что с нашим остальным кодом тяжко такому продвинутому стыковаться, а можно считать, что потому, что решение он своё переусложнял сильно...
Я его до сих пор считаю крутым. И если бы я, например, уговорил бы сооавторов опубликовать нашу любимую библиотеку, то я бы его пригласил бы потестировать и помочь приготовить к публикации, скажем... И я думаю, что процесс был бы успешным.
AVK>Да ради бога. Но для разработки софта это необходимое условние, но не достаточное.
Ну поинт в том, что это самый редкий навык. Он намного сложнее вырабатывается, чем все другие нужные, и сильно не у всех людей. Так что получится ли из чувака, который знает ДМ, но не имеет таких скилов хороший программист -- вопрос крайне мутный, а вот из чувака с таким навыком хороший программист получится с большой очень вероятностью, если его подучить на нужные в его задачах аспекты матподготовки. И в целом пофиг, что он остального не знает. Хотя, если знает, то удобнее конечно. Но это ещё реже, чтобы все достоинства и в одном человеке...
E>>IMHO, ПТЦА для этого критична далеко не всегда. Мало того, я заню много примеров, когда знание этой теории не спасает AVK>Я утверждал где то обратное, что таких примеров нет?
Не знаю. Я имел в виду не примеры задач, а примеры людей.
Короче мой опыт такой: ПТЦА или там булева алгебра или регэкспы или ещё что некритичны, а вот инженерные скилы критичны. Их развить в сотруднике намного сложнее.
E>>Ну самые основы, они довольно компактны и их легко изучить на самом деле. AVK>Именно об этих основах здесь и речь. За углубленные познания лично я никогда не агитировал.
Ну так это вопрос небольшого ликбеза и отсылке к паре книжек. Всё равно программисто должен уметь учиться, это тоже критичный навык... Так что не о чем тут вообще думать. Ну не знает кто-то формальных грамматик, ну и фиг с ним. Пусть за исп. срок узнает. Не узнает, ну и значит учиться не умеет,а узнает -- значит и проблемы нет, если вдруг ему они нужны на самом деле будут...
E>> ВУЗы ежегодно выпускают толпы людей хорошо знающих весь расхваливаемый тобой мат. бэкграунд, но при этом совершенно никаких инженеров. AVK>Опять эта странная логика. Если есть машины, у которых кондиционер работает фигово, это же не значит, что кондиционер в машине не нужен, не так ли?
Ну мне не нужен, на самом деле. Правда я вообще машины не любу.
Но логика другая. Если опыт учит нас, что кондиционер легко привинчивается в любую машину (что не так), то пофиг есть ли он при покупке. А вот то что машина не едет -- не пофиг...
E>>попробуй таки поговорить с хорошим инженером из какой-нибудь другой отрасли. AVK>Попробуй таки не поучать собеседников. Еще неизвестно, кто из нас с большим количеством инженеров общался.
Тогда я не понимаю о чём спор?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>С тормозами, с другой стороны, важно не перестараться. Слишком хорошие тормоза превратят все, что угодно, в недвижимость
Ну да. Тормоза должны быть хорошо настроены, и не только в области регэкспов, а в области вообще всего.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>У меня есть небольшое хобби, мне интересно изучать, как устроен процесс разработки в разных конторах. Так вот, ваша в этом плане весьма и весьма специфична. Да и продукты у вас тоже весьма специфические.
Ну, дык. Но у нас же много кода пишется. Много и обычного довольно. Стандартного, заурядного...
AVK>Да! Но без них — нифига не получится.
Ну там очень много без чего не получится, IMHO.
Короче, если тебе какую-то нынешнюю нашу систему покурочить надоть, то лучше с чего-то более продвинутого начать, чем с формальных языков Скажем грамматику какого-нибудь естественного языка хорошо изучить...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>Я не это имел ввиду. Чтобы подсчитать плюсики-минусики, не надо больше состояний, чем может быть плюсиков или минусиков. А их не может быть больше, чем длина строки.
Ну ладно, хоя ограничивать строку -- чтерство, пусть будет баланс скобок разных типов
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, olegkr, Вы писали:
Pzz>>Ну например, понимать e-mail адреса клиентов во всем том разнообразии синтаксических оттенков, которое допускает RFC822. O>Легко! O>http://www.rsdn.ru/Forum/?mid=2729536
Здравствуйте, SE, Вы писали:
SE>А доказать что этот регексп полностью соответствует RFC тоже легко? А написать его было тоже легко? Он получился простой для понимания?
Практически возможно. Доказано электроникой. Вопрос легко/тяжело не стоял.
Здравствуйте, olegkr, Вы писали:
SE>>А доказать что этот регексп полностью соответствует RFC тоже легко? А написать его было тоже легко? Он получился простой для понимания? O>Практически возможно. Доказано электроникой. Вопрос легко/тяжело не стоял.
При выборе способа решения у адекватного программиста всегда стоит вопрос легко/тяжело. Причем как в отношении сделать, так и в отношении понять.
Здравствуйте, SE, Вы писали:
SE>При выборе способа решения у адекватного программиста всегда стоит вопрос легко/тяжело. Причем как в отношении сделать, так и в отношении понять.
Адекватному программисту и в голову не придет разбирать все варианты e-mail адреса по RFC. Если обойтись без экзотики и фанатизма, то регэксп получится на одну строчку. Речь шла о возможности вообще такового разбора.
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, AndrewVK, Вы писали:
И>>>если мне вдруг понадобится помощь математика для упрощения сложного выражения, то я пойду к математику за консультацией. AVK>>Я так понимаю, что логическое выражение вроде !(!(a && b) || (c && d)) это уже сложное, и нужно идти к математику?
E>А как и зачем ты собираешься его упрощать?
Здравствуйте, Pzz, Вы писали:
Pzz>Но что важнее, структурирую код таким образом, что о нем можно рассуждать в таких терминах. Что делает код более понятным и управляемым.
Ну это, IMHO, просто обязательное требование
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Alexeyss, Вы писали:
A>(a && b) && (! (c && d) ) так ?
Я не знаю. Мне a && b && ( !c || !d ) кажется более понятным условием
Но что и куда там упрощать -- вопрос мутный. Мне и исходное выражение вполне понятно было, в целом...
Я думаю, что можно придумать такие предикаты a, b, c, d, что каждая из трёх форм окажется естественной...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
Pzz>>Но что важнее, структурирую код таким образом, что о нем можно рассуждать в таких терминах. Что делает код более понятным и управляемым. E>Ну это, IMHO, просто обязательное требование
А как вы это требование сформулируете в таких терминах, которые не оскорбляют нежный слух уважаемых "практиков", которые считают, что "теория" — не для нормальных людей?
Здравствуйте, Pzz, Вы писали:
Pzz>А как вы это требование сформулируете в таких терминах, которые не оскорбляют нежный слух уважаемых "практиков", которые считают, что "теория" — не для нормальных людей?
Я прошу подчинённых заботать что такое WP, и потом писать asserts в соответствующем духе...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>Т.е., если программа не понимает половину корректных вариантов — это значит, "адекватный программист" приложил руку, и обошелся регулярным выражением на одну строчку?
Что-то как-то мне так кажется, что многие из тех "корректных" вариантов лучше бы и не поддерживать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
Pzz>>Т.е., если программа не понимает половину корректных вариантов — это значит, "адекватный программист" приложил руку, и обошелся регулярным выражением на одну строчку?
E>Что-то как-то мне так кажется, что многие из тех "корректных" вариантов лучше бы и не поддерживать...
К сожалению, ребята, которые придумали синтаксис e-mail адресов, плохо подумали (или слишком хорошо умели программировать), и даже такая простая задача, как определить, где там имя-фамилиё, а где, собственно, адрес, требует определенной аккуратности. И регекспами, насколько я помню, не решается, т.к. там скобочная структура.
Я не говорю о совсем уж вычурных случаях, когда адрес внутри себя содержит uucp-routing, это действительно можно не поддерживать.
Erop wrote: > Здравствуйте, AndrewVK, Вы писали:
> Ну тогда тебе знание грамматик -- существенно. Но это же очень специфично для конкретно твоих задач... > А мне вот одно время нужно было обрабатывать тексты на естественных языках, там грамматики в смысле LL(k) практически бесполезны
И что использовали, если не секрет? GLR? Или какие-нибудь link grammar?
Или просто рукава закатали, вручную справились ?
Pzz>Разговариваем, разговариваем... А что, кстати, значит сокращение WP, кроме как Washington Post? Pzz>P.S. Давайте пофлеймим еще о выкидывании ассертов из релизного кода. Я за то, чтобы не выкидывать.
Этот оператор ввёл, кажется, Дейкстра. Weekest Precondition называется. Продвинутых прошу wlp ещё посмотреть
А asserts у нас есть трёх видов. Типа staticAssert, debugAssert и просто assert. При этом последний остаётся во всех версиях...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AndrewVK, Вы писали:
AVK>Ты все таки хочешь вместо вопроса технической квалификации обсудить менеджеров? Ок, тогда ответь на второй вопрос — почему нежелание сотрудничать не было замечено во время испытательного срока?
Потому, что оно было сильно неочевидным.
E>>Зато я писал. Было много разных менеджеров, которые пробовали разные варианты воздействия. IMHO самый компетентный уволил AVK>Вы 10 месяцев тянули волынку.
Я согласен, что это была ошибка. Просто слишком парень был хороший на самом деле, вот сразу и не расстались. А получилось как-то странно, и выбросить жалко и пользы никакой.
E>>Ну я считаю, что негодной, потому что очень большой AVK>Ты так и не смог доказать, что проблемой была черезмерная квалификация.
Черезмерная квалификация оказалась ресурсом, позволявшим морочить голову менеджерам.
E>> Ну он повыпендривался и свалил в конце концов. AVK>Я повторюсь — желание повыпендриваться это признак низкой квалификации.
Ну я не знаю, что ты вкладываешь в понятие "квалификация", но он как разработчик не плох. У него же есть известная мне история за пределами нашей конторы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>Ты или путаешься и получается сломаный телефон или вы там действительно накосячили с этим человеком.
Ясный пень, что накосячили, так как получили одни проблемы и убытки, а чувак вроде как классный.
Но, IMHO, накосячили именно в том, что не просекли, что он слишком хорошо для нас. Когда просекли, что так тоже таки бывает в реальности -- расстались...
Случай конечно скандальный, но некоторое количество менеджеров пробовали что-то сделать и каждый считал предшественников дураками. В конце концов чувак опозорил всех, кроме того, кто его уволил Что-то мне так кажется, что и ты и Андрей -- просто ещё два менеджера в той очереди желающих опозориться. Просто у вас нет способа попробовать опозориться на практике
В любом случае это всё увело нас очень далеко от первоначальной темы. Я привёл эту историю в пример того, что вообще бывает таки излишняя квалификация, и что большие знания не обозначают большую производительность труда...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Случай конечно скандальный, но некоторое количество менеджеров пробовали что-то сделать и каждый считал предшественников дураками. В конце концов чувак опозорил всех, кроме того, кто его уволил Что-то мне так кажется, что и ты и Андрей -- просто ещё два менеджера в той очереди желающих опозориться. Просто у вас нет способа попробовать опозориться на практике
Вопрос не в том, кто может или не может опозориться. Просто геморрой в течении 10 месяцев на проекте это заслуга никак не девелопера, хотя вины девелопера это не снимает.
Здравствуйте, ettcat, Вы писали:
E> И что использовали, если не секрет? GLR? Или какие-нибудь link grammar?
Ясен пень ARME использовали ну и под задачу кой чего понаписали....
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
Pzz>>Разговариваем, разговариваем... А что, кстати, значит сокращение WP, кроме как Washington Post? Pzz>>P.S. Давайте пофлеймим еще о выкидывании ассертов из релизного кода. Я за то, чтобы не выкидывать.
E>Этот оператор ввёл, кажется, Дейкстра. Weekest Precondition называется. Продвинутых прошу wlp ещё посмотреть
Здравствуйте, Erop, Вы писали:
E>В целом согласен. Но, IMHO, для того, чтобы писать простые и понятные условия надо таки уметь просто и ясно мыслить. Если тебе в этом помогает знание булевой алгебры -- прекрасно, что хоть что-то помогает. Аналитический ум дар крайне редкий. E>Но в целом, IMHO, опять же, для того, чтобы ясно мыслить булева алгебра не нужна. Мало того, ясно мыслить намного важнее. Просто потому, что обычно программы устроены намного сложнее, чем какие-то условия в if'ах...
Булева алгебра и есть способ навести порядок в мыслях. Изначально ясно мыслить мешают следующие факторы:
1. Программы часто создаются коллективным мышлением. А чужая душа потемки.
2. Процесс написания программы разнесен во времени при меняющихся требованиях.
3. Зачастую код выражает весь процесс поиска решения, который необходимо проанализировать
4. Зачастую сложность проблемы такова, что практически невозможно удержать в голове все ее детали. В этом случае помогают формальные методы.
Изначально работа над кодом примерно такая:
Предметная область => (формализация) => программный код
Булевая алгебра позволяет добавить
Программный код => (формальные правила) => программные код => (интерпретация) => предметная область
Здравствуйте, Roman Odaisky, Вы писали:
RO>верно? А вот не заметить, что вариант «2πR» не подходит по размерности, — грубая ошибка. Он с тем же успехом не заметит разницы между O(n²) и O(n³), а это даже для AJAX бывает важно.
Я думаю, что речь в данном случае идёт о попытке вспомнить формулу, как цепочку символов
Просто есть кандидаты которые про такие формулы никода не слышали...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Mystic, Вы писали:
M> Булевая алгебра позволяет добавить
M>
M> Программный код => (формальные правила) => программные код => (интерпретация) => предметная область
M>
Если тебе именно так удобно мыслить яснее, то я не против. И сотрудникам не мешаю. Но если ты умеешь ясно мыслить не при помощи булевой алгебры, а при помощи наития или ещё чего (скажем Эркюль Пуаро мыслил ясно, но никакой булевой алгебры не использовал) то тоже не плохо. Мало того, лично мне думать как Э. Пуаро кажется естественнее, чем при помощи алгебры.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
И>(x – a)^2 + (y – b)^2 = R2
И>второй этап: организация двойного цикла, в котором бы перебирались все координаты x,y. и по формуле вычислял бы, принадлежит ли точка окружности или нет. если принадлежит, то точка становится видимой.
Подводный камень: двойной целочисленный цикл по x,y даст не совсем ожидаемый результат -- поскольку точное равенство соблюдаться будет только у некоторых точек окружности.
Здравствуйте, Erop, Вы писали:
E>Я думаю, что речь в данном случае идёт о попытке вспомнить формулу, как цепочку символов :) E>Просто есть кандидаты которые про такие формулы никода не слышали...
Даже если и не слышать (о формуле площади круга?), самое меньшее, что можно сказать, «это R², умноженное на какую-то константу, в которой как-то упоминается π». Вариант «2πR» говорит именно о механическом повторении цепочки символов без малейшей попытки проверить ее осмысленность.
Здравствуйте, Roman Odaisky, Вы писали:
RO>Даже если и не слышать (о формуле площади круга?), самое меньшее, что можно сказать, «это R², умноженное на какую-то константу, в которой как-то упоминается π». Вариант «2πR» говорит именно о механическом повторении цепочки символов без малейшей попытки проверить ее осмысленность.
Что ты думаешь о разведении сепулек?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
RO>>Даже если и не слышать (о формуле площади круга?), самое меньшее, что можно сказать, «это R², умноженное на какую-то константу, в которой как-то упоминается π». Вариант «2πR» говорит именно о механическом повторении цепочки символов без малейшей попытки проверить ее осмысленность.
E>Что ты думаешь о разведении сепулек?..
Здравствуйте, Roman Odaisky, Вы писали:
E>>Что ты думаешь о разведении сепулек?.. RO>Что Лема не читал, но осуждаю.
Ну вот ты что-то о них слышал. А есть люди которые ничего про это не думают...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>>>Что ты думаешь о разведении сепулек?.. RO>>Что Лема не читал, но осуждаю. E>Ну вот ты что-то о них слышал. А есть люди которые ничего про это не думают...
...и это в меньшей мере характеризует их как AJAX-программистов, чем представление о взаимосвязи площади круга и его радиуса?
Здравствуйте, Erop, Вы писали:
ГВ>>У-у-у, как всё запущено-то, оказывается... Хотя, чему я удивляюсь, если никто из комментаторов о банальнейших вещах не вспомнил? E>Особенностью вопросов на собеседовании является то, что не ясен контекст вопроса. Так, например, интересует ли кого-то в вопросе про суммирование массива твоё знание о том, что бывают переполнения, или твоё знание std::accumulate совершенно не понятно...
А что, std::accumulate спасает от переполнений?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Roman Odaisky, Вы писали:
RO>...и это в меньшей мере характеризует их как AJAX-программистов, чем представление о взаимосвязи площади круга и его радиуса?
Да нет, насколько я понял, топикстартер проверял, слышал ли кандидат о площади круга...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Это не показательный пример и не противопоказание к образованию. ИМХО, человеку просто скучно было. Ну и менеджмент, конечно, тоже хорош.
Ну дык вот. Именно скучно. А продвинутому математику будет скучно разрабатывать программы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А как это — инженер без матподготовки? Типа, на одной интуиции? Шаман-с?
А так, если я непонятно пишу, то значит я тебе увы и ах не смогу помочь меня понять.
Для того свойства, которое я называю "быть хорошим инженером" очень важно понимать что и зачем ты делаешь, чем за что и почему и для чего ты платишь в своих технических решениях, понимать что тут главное, а что второстепенное и т. д. Нафига для этого вообще матподготовка --
Но я про другое на самом деле пишу-то. Вот та самая возможность быть хорошим инженером очень важна и критична для кандидата, в отличии от мат. подготовки. Просто потому, что хорошего инженера долго воспитывать, ещё и фиг воспитаешь и не из всех получится. А вот та самая преславутая "мат.подготовка" -- это всего-то пара книжек. Так что нужную на данном конкретном направлении работ часть мат.подготовки выботать -- плёвое дело. Вопрос недели-двух, на самом деле.
Вообще все эти знания булевой алгебры, формальных грамматик, автоматов и пр. ДМ сильно тут народом преувеличены. Не Бог весть какая мудрость-то, чтобы её в абсолют возводить
E>>А вот блестящий математик, но плохой инженер совсем не годится ГВ>Давай, не будем передёргивать? Профессиональный математик и математическая подготовка — не одно и то же.
Давай не будем прикидываться шлангами...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>>>Ну я считаю, что негодной, потому что очень большой AVK>>Ты так и не смог доказать, что проблемой была черезмерная квалификация. E>Черезмерная квалификация оказалась ресурсом, позволявшим морочить голову менеджерам.
Не верю. Просто менеджеры не знали толком, чего сами хотели — в это мне верится больше. Глупость, знаешь ли, зачастую самое экономичное и надёжное объяснение для огромного количества загадочных коллизий. Банальная глупость, а не "чрезмерная квалификация", ставшая "ресурсом" и т.п.
E>>> Ну он повыпендривался и свалил в конце концов. AVK>>Я повторюсь — желание повыпендриваться это признак низкой квалификации. E>Ну я не знаю, что ты вкладываешь в понятие "квалификация", но он как разработчик не плох. У него же есть известная мне история за пределами нашей конторы...
Что-то не понятно. Почему это как разработчик он неплох, если его программа не подошла под выдвинутые требования (по твоим же словам — когда скриптовый язык пришлось срочно дополнять dll-ками)?
Либо лыжи не едут... (c)
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
BZ>бред какой. в классификации хомского 4 уровня языков — от 0 до 3 (самый сложный), RE afaik это 1-й уровень. например ими нельзя описать язык с согласованием скобок (последовательность '(' и )' где в любой момент времени закрывающих скобок не больше чем открывающих) BZ>кол-во строк ограниченной длины ограничено n^m, значит любой такой язык описывается конечным автоматом с не более чем n^m состояниями
Анекдот:
Шерлок Холмс и доктор Уотсон катались на воздушном шаре. Вдруг налетел уроган и унёс их шар незнамо куда. Вот летят они над пустыней и не понимают что делать дальше. Вдруг видят внизу человека.
-- Сэр! Скажите пожалуйста, где мы находимся? -- Кричит ему Ш. Х.
-- На воздушном шаре -- отвечает чел, и шар уносит дальше...
-- Уотсон! -- говорит Ш. Х. -- как вы думаете, кто был этот человек?
-- ???
-- Математик!
-- Но почему, Холмс?
-- Элементарно, Уотсон! Он дал абсолютно точный и абсолютно бесполезный ответ...
Теперь по существу. Придумай, пожалуйста, реалистичный вывод каких-то полезных данных, якобы печатаемых прогой на КАБОЛе, который не разбирается регулярным выражением. Про скобочки все тут знают, про Хомского, скорее всего тоже, так что на халяву за умного сойти не получится.
А ещё можно, в принципе, сначала дочитывать подветку до конца, а уже потом писать ответ. Так проще ответить в тему разговора
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А что, std::accumulate спасает от переполнений?
Не обязан. Но когда тебе задают такой вопрос, то в отличии от случая реальной разработки, ты не знаешь, что имеют в виду: переполнения, использование std::accumulate, максимальную скорость, или что-то ещё...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Не верю. Просто менеджеры не знали толком, чего сами хотели — в это мне верится больше. Глупость, знаешь ли, зачастую самое экономичное и надёжное объяснение для огромного количества загадочных коллизий. Банальная глупость, а не "чрезмерная квалификация", ставшая "ресурсом" и т.п.
Ну, например, ты не можешь понять, что происходило на самом деле... Как ты думаешь, чем это объясняется?
ГВ>Что-то не понятно. Почему это как разработчик он неплох, если его программа не подошла под выдвинутые требования (по твоим же словам — когда скриптовый язык пришлось срочно дополнять dll-ками)?
У него был некоторый класс преобразований, и хотелось узнать к чему приводит использования преобразований такого класса на реальных изображениях. То есть, что же может быть вообще в принципе, уже узнали путём предварительного анализа, а что бывает на реальных данных надо было узнать и настроиться.
По ходу пьесы понимание того, что бывает, а чего не бывает уточнялось постепенно, и несколько менялось, по сравнению с первоначальными соображениями представление о необходимых преобразованиях. Работа состояла в том, чтобы провести серию экспериментов, разобраться что и как бывает и не бывает и разработать и настроить в результате некую технологию обработки неких специфических изображений с некоторыми специфическими целями.
Но вместо того, чтобы быстренько родить на уже имеющихся тулкитах экспериментальную установку и заняться непосредственно измерениями, он сделал намного более прикольную установку, которая могла намного больше, чем предполагаемая, например мной. Но засада состояла в том, что предполагаемая мной была бы вся кишками наружу, и простая, как валенок, и когда понадобилось вдруг сделать кое-что, чего сначала не ждали, то в кишках было бы просто покопаться. А его красивая и отшлифованная машинка так не могла, увы. Хотя и была бесконечно удобнее, круче и прекраснее.
Но мне лично, в этой истории не понравилось больше всего даже не это, а то, что он основное время и усилия тратил не на эксперименты, а на их автоматизацию. Потому что в результате, получалось неэффективно, хотя и интересно...
ГВ>Либо лыжи не едут... (c)
Ну-ну, самокритично так выступил, уважаю...
Но в целом я уже достаточно про эту историю рассказал. С самого начала описал и задачу и что было, так что если кто-то не умеет внимательно читать, то не умеет.
Кроме того, я на этой истории ещё одну вещь понял: большинство слабых менеджеров думают, что у них бы всё получилось классно...
Вот у нас тоже несколько по очереди думали, что у них получится...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Я, кстати, тут подумал, и понял, что тоже не знаю нахрена бы булева алгебра нужна кодеру, кроме как для общего развития
Who is кодер?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
E>>Я, кстати, тут подумал, и понял, что тоже не знаю нахрена бы булева алгебра нужна кодеру, кроме как для общего развития ГВ>Who is кодер?
Одна из производственных ролей программиста. Кодер -- это тот, кто кодирует уже известный и специфицированный алгоритм, на каком-то языке программирования и отлаживает полученную реализацию. Конечно реальные программисты редко выполняют исключительно эту роль, но тут писали, что именно кодеру во б. ал. и необходима по самое не могу. IMHO, это заблуждение...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>P.S.: Сюрная дискуссия, прям скажем.
Дык участники пытаются мне что-то доказать, при этом не вникая даже в детали.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Пока ясно только то, что обе стороны упрямо гнули свою линию, не считаясь с потерями. При чём тут квалификация?
При том, что чел, неспособный одной левой пяткой творить всемогутеры, собрал нормальную установку и быстренько сделал всю работу...
Вот у нас есть очередной мегамозг, кстати, который всё время хочет локфри очередь реализовать, хотя в реальности у нас нет потребности в такой структуре. Но он не понимает, что отладки и поддержка такого изделия дорога, так как ему кажется, что это просто (возможно ему это и правда просто, но пока не ясно действительно ли его поделие локфри )
И вот так каждый раз
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
ГВ>>Не верю. Просто менеджеры не знали толком, чего сами хотели — в это мне верится больше. Глупость, знаешь ли, зачастую самое экономичное и надёжное объяснение для огромного количества загадочных коллизий. Банальная глупость, а не "чрезмерная квалификация", ставшая "ресурсом" и т.п. E>Ну, например, ты не можешь понять, что происходило на самом деле... Как ты думаешь, чем это объясняется?
Моё мнение, что вам всем было "по приколу" этим заниматься. Над фирмой, видимо, не каплет. Можно и поиграться.
E>Но мне лично, в этой истории не понравилось больше всего даже не это, а то, что он основное время и усилия тратил не на эксперименты, а на их автоматизацию. Потому что в результате, получалось неэффективно, хотя и интересно...
Вот это я и представляю в качестве основной причины. Соответственно, единственная "вина" назадачливого коллеги в том, что его бесконечная убеждённость в своей правоте и оказавшаяся безосновательной вера в правильность выбранных методов (в простонародии — "ясные голубые глаза") повлияли на других. Ну и, видимо, менеджерам тоже "было интересно". Да и вообще, горячо убеждённый в чём-либо человек зачастую может заразить своей идеей и других — феномен известный, от профессии не зависит.
И вот вы так игрались-игрались, пока не оглянулись, и не поняли, что заигрались. Ну и уволили сотрудника по-тихому, а в мир понесли благую весть о "слишком высокой квалификации".
ГВ>>Либо лыжи не едут... (c) E>Ну-ну, самокритично так выступил, уважаю...
Не надо хамить.
E>Но в целом я уже достаточно про эту историю рассказал. С самого начала описал и задачу и что было, так что если кто-то не умеет внимательно читать, то не умеет. E>Кроме того, я на этой истории ещё одну вещь понял: большинство слабых менеджеров думают, что у них бы всё получилось классно... E>Вот у нас тоже несколько по очереди думали, что у них получится...
Думается, что кроме всего прочего, им ещё и по приколу было поразбираться и поуправлять этаким персонажем — пиписьками они с ним, короче, мерялись. Но это на правах вольной фантазии.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>А что, std::accumulate спасает от переполнений? E>Не обязан.
Упс. А что, может???
E>Но когда тебе задают такой вопрос, то в отличии от случая реальной разработки, ты не знаешь, что имеют в виду: переполнения, использование std::accumulate, максимальную скорость, или что-то ещё...
Ну это-то понятно. Только я говорил о том, без чего операция сложения элементов массива рискует потерять смысл. Хоть быстрая, хоть шаблонная.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
ГВ>Обращаю внимание на вот этот кусочек: "Конечно реальные программисты редко выполняют исключительно эту роль..." ГВ>Дальше можно не продолжать.
Если ты таки хочешь тупо пофлеймить, т о можешь и дальше читать поверхностно доводы оппонентов, а потом "не продолжать"...
В конце концов у всех свои способы ментального самоудовлетворения.
Но тут приводили соображения именно про работу кодера. Упрощение условий в if'ах, например, а вовсе не про какие-то другие аспекты, а весь топик посвящён обсуждению навыков и знаний необходимых кандидатам...
Конечно, если программист разрабатывает фреймворк для разработок цифровых автоматов, то ему нужна и булевая алгебра и ПТЦА и много что ещё, но если он разрабатывает систему моделирования турбулентного обтекания киля "Боинга", то выч.маты и линейная алгебра ему будут намного нужнее... У каждой работы свой мат. бэкграунд. У некоторых нет практически никакого. Скажем на кой тебе бэкграунд такого рода, если ты оптимизацией SQL запросов занимаешься в основном? Тебе намного важнее знать приколы конкретного сервера, а не общетеоритические соображения.
И я считаю, что нужную часть математики средний нормальный программист в состоянии заботать если она ему реально нужна. Потому что не такая уж там и умная математика, да и применять её надо на уровне инженерных навыков, а не нетривиальные теоремы доказывать...
Хотя, конечно, конкретно в знании булевой алгебры программистом ничего плохого нет, но нет, IMHO, и ничего такого сверх-необходимого. И все тутошние удивления "а как может быть на свете программист, который не знает формулу площади круга?" -- они, IMHO, чрезмерно преувеличены.
Ну а если на минуточку отойти от оценки кандидатов, к оценкам программистов, то, IMHO, оценка только одна -- насколько хорошо выполняет свою работу. Насколько он эффективен, как разработчик. А знает он там ПТЦА или нет -- дело десятое. Главное, что если ему нужно по ходу пьесы введение в ПТЦА, то он его быстро изучит. А дальше вопрос переходит в чисто эмпирическую плоскость -- берём известных нам хороших разработчиков и смотрим знают они что-то или нет, и смотрим на корреляцию...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Моё мнение, что вам всем было "по приколу" этим заниматься. Над фирмой, видимо, не каплет. Можно и поиграться.
Ну главное, что он так и вышел на полную свою зарплату, потому что не смог предоставить аттестационные материалы, ввиду отсутствия доделанных работ
ГВ>Да и вообще, горячо убеждённый в чём-либо человек зачастую может заразить своей идеей и других — феномен известный, от профессии не зависит.
Да нет, он своими убеждениями мало кого заразил. Он просто был достаточно крутой, чтобы всё время проект представлялся как "почти доделанный"
ГВ>И вот вы так игрались-игрались, пока не оглянулись, и не поняли, что заигрались. Ну и уволили сотрудника по-тихому, а в мир понесли благую весть о "слишком высокой квалификации".
Да его не по-тихому уволили. Внутри устроили втык менеджерам. С чуваком расстались в том числе и по его желанию. Мне правда кажется, что он хотел не работать у нас, а чего-то другого. Может он технологическим шпионажем занимался, например, или ещё чем-то неожиданным.
Правда есть у меня ещё одна теория. Но она теория заговора, так что скорее всего неверная.
Я думаю, что он хотел создать в конторе моду на то, в чём он очень хорошо разбирается, и таким образом занять позицию технологического лидера. Ну типа так ему показалось проще -- не подучиться тому старью, которое мы любим и уважаем, а продвинуть среду настолько, чтобы она могла его по достоинству оценить
ГВ>Не надо хамить.
Хороший принцип...
Я, в принципе, написал, что уважаю тебя за самокритичность, и вроде бы больше ничего не писал...
ГВ>Думается, что кроме всего прочего, им ещё и по приколу было поразбираться и поуправлять этаким персонажем — пиписьками они с ним, короче, мерялись. Но это на правах вольной фантазии.
Ну я почти согласен. Только мне кажется, что там мерялись менеджеры между собой, а он таким странным образом показывал своё превосходство над ними
Но я всё равно считаю, что суть проблемы была в том, что квалификация у чувака была высокая, но для его работы ненужная. Вот он и страдал разными психологическими экспериментами...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ну и напрашивается вопрос об адекватности применения термина "квалификация".
Если ты понимаешь слово "квалификация" как то, насколько чел подходит к выполнению какой-то конкретной задачи, то да, слишком к. быть нельзя.
Но если вернуться к общечеловеческому пониманию термина "квалификация разработчика", то тут, IMHO, нечего обсуждать особо.
ГВ>У меня складывается всё более стойкое впечатление, что ты называешь "мегамозгами" и "сильно квалифицированными", если сказать мягко — тех, кто увлечён какой-то идеей.
Нет, маньяков, одержимых каким-то идеями, я много встречал, и у нас такие работают, кстати. Но для того, чтобы морочить голову нескольким довольно опытным и умным людям, надо таки иметь большой запас по подготовке, мозгам, психологии и т. д.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Математическая подготовка нужна для того, чтобы приучить не просто к здравомыслию, о котором ты вещаешь, а к формализации и сведении в систему своих наблюдений. Для этого нужно знать хотя бы о существовании математических приёмов как таковых. Только тогда все эти что, зачем и почему могут принять какую-то предметную и верифицируемую форму до того, как лоб покроется шишками. А иначе это просто состязания в уверенности.
Это, всего лишь, один из путей. Он привычен тебе и мне. Но и только. Я знаю людей, которые являются хорошими инженерами, но, при этом о ДМ вообще не слова не слышали...
ГВ>Ты не путай общую матподготовку и специализированную.
Ну, вот, например, знания "сопротивления материалов" и "теории механизмов" -- этого для подготовки достаточно?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, ettcat, Вы писали:
E> Как вариант (пример из реального лога, правда прога не на КОБОЛЕ) — выводится строчка в кавычках, а внутри также могут быть кавычки. Строго говоря, это баг — внутренние кавычки не эскейпятся. Но прога (как и мифическая прога на КОБОЛЕ) с историей, и просто так лезть в нее не хочется. Приходится применять эвристику — считать _" и "_ (_ == пробел) как открывающую и закрывающую скобку. В этом случае логи читаются, проблем не возникает. Регуляркой уже не описывается. Можно, конечно, еще одну эвристику применить и ограничить вложенность — тогда можно будет описать регуляркой. Мы просто сварганили КА со стеком и все.
Да, прикольный пример. И даже на КОБОЛе могла быть такая фигня, IMHO.
Хотя, с эвристикой, конечно, работали бы и RE...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Упс. А что, может???
Смотря от каких. Ты, в принципе, можешь управлять типом переменной, в которой накопится сумма...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Остановлюсь на ключевом:
E>Хотя, конечно, конкретно в знании булевой алгебры программистом ничего плохого нет, но нет, IMHO, и ничего такого сверх-необходимого. И все тутошние удивления "а как может быть на свете программист, который не знает формулу площади круга?" -- они, IMHO, чрезмерно преувеличены.
0 = 1. И матподготовки нет, и в то же время, необходимую математику быстро разучивает по ходу дела, следовательно, матподготовка есть. При таком подходе мы будем изыскивать аргументы до бесконечности. Потому, кстати, ты и вынужден время от времени прибегать к высказываниям... Э-э-э.. Не слишком допустимого свойства. Так всегда бывает, когда доказываешь нечто, содержащее внутреннее противоречие.
E>Ну а если на минуточку отойти от оценки кандидатов, к оценкам программистов, то, IMHO, оценка только одна -- насколько хорошо выполняет свою работу. Насколько он эффективен, как разработчик. А знает он там ПТЦА или нет -- дело десятое. Главное, что если ему нужно по ходу пьесы введение в ПТЦА, то он его быстро изучит. А дальше вопрос переходит в чисто эмпирическую плоскость -- берём известных нам хороших разработчиков и смотрим знают они что-то или нет, и смотрим на корреляцию...
Смотреть надо не только на то, что они знают сейчас, а ещё и на то, чему их учили до того, как. Отсюда естественно выводятся и тезисы о кодерах и т.д.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>Моё мнение, что вам всем было "по приколу" этим заниматься. Над фирмой, видимо, не каплет. Можно и поиграться. E>Ну главное, что он так и вышел на полную свою зарплату, потому что не смог предоставить аттестационные материалы, ввиду отсутствия доделанных работ
Не понятно сформулировано.
ГВ>>Да и вообще, горячо убеждённый в чём-либо человек зачастую может заразить своей идеей и других — феномен известный, от профессии не зависит. E>Да нет, он своими убеждениями мало кого заразил. Он просто был достаточно крутой, чтобы всё время проект представлялся как "почти доделанный"
Это оно и есть.
ГВ>>И вот вы так игрались-игрались, пока не оглянулись, и не поняли, что заигрались. Ну и уволили сотрудника по-тихому, а в мир понесли благую весть о "слишком высокой квалификации". E>Да его не по-тихому уволили. Внутри устроили втык менеджерам. С чуваком расстались в том числе и по его желанию. Мне правда кажется, что он хотел не работать у нас, а чего-то другого. Может он технологическим шпионажем занимался, например, или ещё чем-то неожиданным.
Вряд ли.
E>Правда есть у меня ещё одна теория. Но она теория заговора, так что скорее всего неверная. E>Я думаю, что он хотел создать в конторе моду на то, в чём он очень хорошо разбирается, и таким образом занять позицию технологического лидера. Ну типа так ему показалось проще -- не подучиться тому старью, которое мы любим и уважаем, а продвинуть среду настолько, чтобы она могла его по достоинству оценить
Ох, уж это "технологическое лидерство"... Ну, твоя теория — имеешь на неё полное право.
ГВ>>Не надо хамить. E>Хороший принцип... E>Я, в принципе, написал, что уважаю тебя за самокритичность, и вроде бы больше ничего не писал...
Ладно, проехали.
ГВ>>Думается, что кроме всего прочего, им ещё и по приколу было поразбираться и поуправлять этаким персонажем — пиписьками они с ним, короче, мерялись. Но это на правах вольной фантазии. E>Ну я почти согласен. Только мне кажется, что там мерялись менеджеры между собой, а он таким странным образом показывал своё превосходство над ними E>Но я всё равно считаю, что суть проблемы была в том, что квалификация у чувака была высокая, но для его работы ненужная. Вот он и страдал разными психологическими экспериментами...
Думаю, ты путаешь причины и следствия. Квалификация в смысле знаний инструментария — дело нехитрое. Гораздо сложнее квалификация, которая есть композиция знаний инструмента, теорий, инженерного подхода и умения общаться с окружающими "здесь и сейчас". Инженер, он, в общем-то, всегда с людми должен общаться.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>Математическая подготовка нужна для того, чтобы приучить не просто к здравомыслию, о котором ты вещаешь, а к формализации и сведении в систему своих наблюдений. [...] E>Это, всего лишь, один из путей. Он привычен тебе и мне. Но и только. Я знаю людей, которые являются хорошими инженерами, но, при этом о ДМ вообще не слова не слышали...
Инженеров или программистов? И потом, в данном случае я имел в виду математику "вообще", скажем, в объёме 1-2-го курса технического вуза. ДМ — достаточно специализированная ветвь.
ГВ>>Ты не путай общую матподготовку и специализированную. E>Ну, вот, например, знания "сопротивления материалов" и "теории механизмов" -- этого для подготовки достаточно?
Для инженера, специализирующегося на механических устройствах, ИМХО, это необходимые дисциплины.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
ГВ>>Упс. А что, может??? E>Смотря от каких. Ты, в принципе, можешь управлять типом переменной, в которой накопится сумма...
Ага, но это означает, что о переполнениях вспомнили.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>0 = 1. И матподготовки нет, и в то же время, необходимую математику быстро разучивает по ходу дела, следовательно, матподготовка есть. При таком подходе мы будем изыскивать аргументы до бесконечности.
ну прочитай внимательно топик, что ли. Речь шла о знании совсем элементарной школьной математики, конкретно формулы площади круга.
А отдельно тут ещё поднялся флейм о том, что программисту надо-надо знать ДМ.
ГВ>Потому, кстати, ты и вынужден время от времени прибегать к высказываниям... Э-э-э.. Не слишком допустимого свойства. Так всегда бывает, когда доказываешь нечто, содержащее внутреннее противоречие.
Ну непристойную частушку про лыжи не я тут цитировал...
ГВ>Смотреть надо не только на то, что они знают сейчас, а ещё и на то, чему их учили до того, как. Отсюда естественно выводятся и тезисы о кодерах и т.д.
Это трудноисследуемо, увы.
Хотя я согласен, что отношение и степень вовлечённости и понимания предыдущих проектов — очень важный показатель.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
E>>Ну главное, что он так и НЕ вышел на полную свою зарплату, потому что не смог предоставить аттестационные материалы, ввиду отсутствия доделанных работ ГВ>Не понятно сформулировано.
"НЕ" выпало.
E>>Да нет, он своими убеждениями мало кого заразил. Он просто был достаточно крутой, чтобы всё время проект представлялся как "почти доделанный" ГВ>Это оно и есть.
Ну я не знаю, что такое "оно", но смысл в том, что всем было более или менее понятно, что так делать нехорошо, но всем по очереди казалось, что нужно продолжать уже начатое, так как конец уж близок, а не идти сначала, как после его увольнения потом сделали.
ГВ>Ох, уж это "технологическое лидерство"... Ну, твоя теория — имеешь на неё полное право.
Ну так я же и сам считаю, что это на правах бреда теория
ГВ>Ладно, проехали.
+1
ГВ>Думаю, ты путаешь причины и следствия. Квалификация в смысле знаний инструментария — дело нехитрое. Гораздо сложнее квалификация, которая есть композиция знаний инструмента, теорий, инженерного подхода и умения общаться с окружающими "здесь и сейчас". Инженер, он, в общем-то, всегда с людми должен общаться.
Ну это ещё от целей инженера зависит сильно. IMHO он морочил нам голову с какими-то своими конкретными целями.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Другого способа нет, как бы ты ни уповал на некие врождённые инженерные таланты. Поскольку таланты и способности — это одно, а владение системой символов и формальными методами — совсем другое.
IMHO, есть. Вот, скажем человек с подготовкой инженера-механика может быть подходящим?
А, лингвист?
ГВ>>>Смотреть надо не только на то, что они знают сейчас, а ещё и на то, чему их учили до того, как. Отсюда естественно выводятся и тезисы о кодерах и т.д. E>>Это трудноисследуемо, увы. ГВ>Да ну. Это исследуется путём внимательного прочтения строчки "образование" в резюме.
Ну в современной РФ это не очень информативно, а насколько я понял топикстартера, в Индии, вообще бессмысленно читать что-то в резюме.
E>>Хотя я согласен, что отношение и степень вовлечённости и понимания предыдущих проектов — очень важный показатель. ГВ>При чём тут проекты...
При том, что именно там кандидат мог что-тоизучать "по ходу" и учиться учиться в таком режиме...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
Pzz>В каком-нубудь лиспоподобном синтаксисе, например.
Маловаточитабельно однако будет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ага, но это означает, что о переполнениях вспомнили.
Вспомнить можно в разной степени. Во многих программах нет нужды что-то предпринимать на эту тему специальное, в некоторых std::accumulate сделает всё за тебя, например в таком:
А в некоторых других программах чтобы учесть переполнения надо бы по хафману суммировать, например...
И чего от тебя хотят собеседователи --
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Pzz, Вы писали:
SE>>>При выборе способа решения у адекватного программиста всегда стоит вопрос легко/тяжело. Причем как в отношении сделать, так и в отношении понять. O>>Адекватному программисту и в голову не придет разбирать все варианты e-mail адреса по RFC. Если обойтись без экзотики и фанатизма, то регэксп получится на одну строчку. Речь шла о возможности вообще такового разбора. Pzz>Т.е., если программа не понимает половину корректных вариантов — это значит, "адекватный программист" приложил руку, и обошелся регулярным выражением на одну строчку?
Вот интересно, а как часто пользователь RSDN используют при регистрации адрес, "слишком сложный" для регекспа из одной строки?
Рассказывал мне когда-то коллега, в мейлер-демонах ранних версий была уязвимость, при передаче почтового адреса в качестве командной строки, этот вполне корректный с точки зрения RFC, но содержащий управляющие последовательности, адрес валил к чертям мейлер демона, и хорошо, если только его, и хорошо, если не перехватывал управление
Здравствуйте, BulatZiganshin, Вы писали:
BZ>это как?
Ну, если скорость не интересует, то складываешь все числа в кучу, достаёшь два самых мелких, складываешь и засовываешь сумму обратно. И так пока не останется только одно число
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, denisko, Вы писали:
D>Тоже интересно. Оказывается, Хаффман разносторонний человек был.
Да вы тут все знатоки переполнений, я гляжу
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, OnlyWhisky, Вы писали:
OW>Сумма элементов как впрос на отсеивание совсем нулёвых подходит, факториал тоже. OW>А можно спросить на c++ факториал стадии компиляции через templates. Может он и не ответит, а если ответит?)
IMHO, это очень очень очень C++-specific, а кроме того, для предварительно отсева индусов это точно совершенно overkill...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
ГВ>>Другого способа нет, как бы ты ни уповал на некие врождённые инженерные таланты. Поскольку таланты и способности — это одно, а владение системой символов и формальными методами — совсем другое. E>IMHO, есть. Вот, скажем человек с подготовкой инженера-механика может быть подходящим? E>А, лингвист?
Смотря, для каких задач и что это за специалисты. Если говорить о программировании, то мне кажется, что могут подойти оба. AFAIK, по крайней мере, подготовка по специальности "структурная лингвистика" кое-какую математику включает (глубже не расспрашивай — я здесь дилетант). Инженер-механик тоже подойдёт. Правда, скорее всего, подучивать той же ДМ придётся обоих. Но для них это не должно составить сложности.
Ещё думаю, что лингвист может подойти в качестве консультанта. Пожалуй, я бы даже охотнее согласился именно на такую роль лингвиста. Хотя опять — что за лингвист, какая специализация и т.п. Так что, вышесказанное — на правах фантазии. Главное, что я хотел сказать, что оба этих специалиста так или иначе должны быть знакомы с формальными абстрактными системами, в том числе с математикой и т.д.
ГВ>>>>Смотреть надо не только на то, что они знают сейчас, а ещё и на то, чему их учили до того, как. Отсюда естественно выводятся и тезисы о кодерах и т.д. E>>>Это трудноисследуемо, увы. ГВ>>Да ну. Это исследуется путём внимательного прочтения строчки "образование" в резюме. E>Ну в современной РФ это не очень информативно, а насколько я понял топикстартера, в Индии, вообще бессмысленно читать что-то в резюме.
Думается, что это вопрос опыта таких исследований. Тебя никогда не спрашивали: "кто преподавал"?
E>>>Хотя я согласен, что отношение и степень вовлечённости и понимания предыдущих проектов — очень важный показатель. ГВ>>При чём тут проекты... E>При том, что именно там кандидат мог что-тоизучать "по ходу" и учиться учиться в таком режиме...
Ну, это да, конечно. Но базовой подготовки, ИМХО, такое "обучение" не заменит.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>это как?
E>Ну, если скорость не интересует, то складываешь все числа в кучу, достаёшь два самых мелких, складываешь и засовываешь сумму обратно. И так пока не останется только одно число
Месье знает толк в извращениях.....
Здравствуйте, denisko, Вы писали:
D>Месье знает толк в извращениях.....
Месье не видит большой разницы между переполнениями и округлениями...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, sharpcoder, Вы писали:
S>>Недавно пришел разработчик, не смог сделать сальто, и плохо закрывает печень в боксерской стойке. Я сразу сказал "no hire", коллега же еще поспрашивал ну и человек вроде бы всякую пургу типа T-SQL, C#, ASP.NET, ABAP, XSLT, WPF/Silverlight, WCF, IDEFX'ы на mid-level тянет. Коллега предлагает hire. E>А должность-то какая?
Программист! Мне кажется мои тесты показывают способность человека быть программистом не хуже, чем тесты mymuss'а.
M>Вот поспорили с коллегой насчет собеседований. M>У меня такой принцип, всем кандидатам сходу задается три простейших вопроса: на любом языке программирования написать ф-ции, ну например:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Ваше мнение?
Результат: можно с уверенностью сказать, что все ваши работники знают как: M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
Теперь к Вам два вопроса:
1.Сколько Вам лет?
2.Вы хоть раз на собеседовании были?
А теперь история из жизни.
Когда я после увольнения из вооружённых сил устраивался на работу меня тоже не брали. У меня не было опыта о котором можно было бить себя в грудь. Ну не могу я зная два слова на иностранном языке сказать, что владею им в совершенстве(иняз- аналогия). А потом меня взял один человек( в последствии мой непосредственный начальник) и не задавал никаких умных вопросов. В результате, когда через несколько лет я уходил оттуда, вся работа была продвинута мной на совершенно другой уровень.
И вот теперь, когда у меня есть опыт, я бывает хожу на собеседования и выслушиваю там вопросы, решаю задачи, а потом полчаса объясняю умникам как эти две строчки работают. Или решил задачу, отослал, молчат, потом между прочим, спрашиваешь, ну как решение? Да так,- ВАЛИДНОЕ(слово то какое). А что, спрашиваю, у Вас есть другое, более эффективное-правильное-лучшее? Мялся мялся, потом с неохотой говорит: Да нет, это и есть правильное решение. А в вакансии написано что и такие они крутые и сякие, одним словом,- КОМАНДА.
Короче- детсад.
Здравствуйте, dilmah, Вы писали:
ГВ>>Упс. А что, может???
D>переполнение это undefined behaviour. UB может сделать все что угодно, в частности спасти от переполнения
Ни одной акулы не осталось, их всех распугали электрические скаты. (c)
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Garb, Вы писали:
G>И вот теперь, когда у меня есть опыт, я бывает хожу на собеседования и выслушиваю там вопросы, решаю задачи, а потом полчаса объясняю умникам как эти две строчки работают
Pzz>Есть проекты, в которых надо ручку крутить, а есть, в которых надо головой думать. Соответственно, для тех и других люди нужны разные. Ваш совет подходит только в первом случае.
Пример второго проекта в студию? И не забудьте, мы говорим о должности developer, разработка коммерческих бизнес-систем (окошкоклепапние).
У меня похожий случай был — был на работе один человек, который очень любил принципы ООП, абстракцию и паттерны. Ладно бы просто любил, но он ещё и применял их везде, где только можно (и где нельзя тоже).
Вообще он переписал часть проекта, а потом уволился, время шло и понадобилось нам дальше развивать систему
— глянули и выпали в осадок: в том месте, где был простой функционал на пяток методов и разобраться в нём любой программист смог бы за полчаса, появились пара классов с функционалом, пара классов-хелперов, абстрактные фабрики и прочее O_o Если под дебагом смотреть по шагам что и куда ходит и наблюдать за кол-стеком, то обнаруживается, что функций 10 вызывается...
Здравствуйте, Davader, Вы писали:
D>Пример второго проекта в студию?
Если честно, то я примера первого не знаю. Во всех проектах, в которых я участвовал надо было хорошо головой думать, а они далеко не всегда были наукоемкие.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики?
Вообще-то можно. Чтобы заставить готовый прасер разбирать твои выражения и преобразовывать их во что-то нужно знать как указать парсеру какие входные данные и в каком формате являются допустимыми
Например в файле надо написать что-то типа такого:
символ ::= a-z|A-Z|_
цифра ::= 0-9
идентификатор ::= символ[символ|цифра]*
тип_данных ::= integer|string|float
объявление_переменной ::= тип_данных идентификатор;
P.S.
Я не говорю, что разработчик парсера не должен знать формальные грамматики, я говорю, что для использования готового парсера понимание его внутренних механизмов не требуется.
Здравствуйте, olegkr, Вы писали:
O>Здравствуйте, Davader, Вы писали:
D>>Пример второго проекта в студию? O>Если честно, то я примера первого не знаю. Во всех проектах, в которых я участвовал надо было хорошо головой думать, а они далеко не всегда были наукоемкие.
Ну, ясно, что про ручку это была аллегория. Везде надо головой думать. У нас же типа интеллектуальный труд и все такое... Тов. Pzz имел в виду, что есть некое деление на "более умные" и "менее умные" проекты. Я утверждаю, что 95% современных проектов по разработке корпоративных бизнес-систем относятся ко 2-ой группе. К 1-ой может относиться, например, разработка новых алгоритмов распараллеленного сжатия видео-потока или тому подобная хрень. А мы говорим про позицию developer 2-ой группы, насколько это описал тов. mymuss.
Здравствуйте, Davader, Вы писали:
D>Но пока не начнешь проводить собеседования — и не узнаешь, сколько неадекватов и людей с гипертрофированной самооценкой приходят к HR. Никогда бы не подумал, что человек, написавший в резюме, что он 2 года работал тим-лидом на ASP.Net проекте не сможет мне сказать, чем отличаются value и reference types, где может храниться сессия и можно ли реализовать несколько интерфейсов одному классу. Оказывается, есть и такие "работники". D>... D>большая часть т.н. "тим-лидов" путались в эл. вещах и кричали об каком-то опыте "руководства", "анализа", "проектирования" и т.п.
По-моему, есть люди, которые решают глобальные вопросы, не обращая внимание на детали.
Например, говорят даже, что начальник не должен вникать в детали и сам работать, а только руководить.
Да, в конкретном случае, похоже, автору нужен тим лид, который может ответить на его вопросы, и
упомянутые кандидаты "не туда попали".
Но, если автор называет их неадекватами, это, по-моему, показывает, что он такой же максималист,
как эти кандидаты.
Я о себе тоже могу сказать, что я тоже никогда не интересовался деталями и не мог ответить на
вопросы, чем отличаются value и reference types, итд., итп.
Это, конечно, нехорошо и часто на этом разговор с потенциальным работодателем оканчивается,
но, по-моему, это избавляет от проблем и работодателя, и меня.
Здравствуйте, landerhigh, Вы писали:
L>Вот тоже был случай — написали "как бы побыстрее", потому что "это просто" и "расширять не понадобится" и "любой программист может разобраться за полчаса". Через год глянули и выпали в осадок — классы с сотней методов, дублирование кода, глобальные функции, дикие зависимости в коде. Никаких юнит-тестов, а если под дебагом смотреть, до функций 100 вызывают друг друга непонятно для чего.
Если ты про то, что мы были не правы, когда реализовали этот функционал в пяток методов, то это не так — там действительно всё было понятно, прозрачно и могло модифицировалось без проблем.
Кстати, после того, как тот чел навороил всяких умных фишек, код не стал более модифицируемым.
Здравствуйте, Erop, Вы писали:
E>Ну уволили его по его обоюдному желанию. Он решил, что у нас скучно и ретрограды, мы решили, что он слишком крут для нас... Его правда честно пытались приспособить к чему-то полезному. Например он почитал желающим лекции на разные темы. IMHO неплохие, кстати... Но пользы из него никто так и не сумел тем не менее. IMHO он таким странным образом развлекался
Был и у меня такой коллега,правда он дров не наломал(даже наоборот),но тоже — почитал лекции и уволился...реально очень классный спец ,но такие ,зачастую, не нужны...
Здравствуйте, landerhigh, Вы писали:
L>Вот тоже был случай — написали "как бы побыстрее", потому что "это просто" и "расширять не понадобится" и "любой программист может разобраться за полчаса". Через год глянули и выпали в осадок — классы с сотней методов,
рефакторить периодически надо. и не писать каждый скрипт с расчётом того, что он когда-нибудь дорастёт до ОС
Здравствуйте, olegkr, Вы писали:
O>Я прекрасно помню, как обучают архитекторов (строительных), очень много практических знаний, которые непосредственно потребуются в дальнейшей работе, очень много работы руками. Теория тоже есть, как база, но не более того.
Ну сравнивать архитектуру и разработку ПО... скорость развития слегка разная...и пока вы будуте преподавать "работу руками" она устареет,а вот теория как НЕНАДО делать очень нужна,зачастую даже больше,чем очень развиное "умение работать руками" на какой-нибудь современной платформе...
Всё ИМХО
Здравствуйте, BulatZiganshin, Вы писали:
BZ>рефакторить периодически надо. и не писать каждый скрипт с расчётом того, что он когда-нибудь дорастёт до ОС
Воооооот!
Только не рефакторить, а проводить code review. Чтобы товарищ объяснил, зачем огород копал. И чтобы остальные имели шанс понять, что огород был не просто так. А рефакторить уже если все пришли к обоюдному согласию, что огород не очень нужен.
А то порой получается, что человек написал изящный и гибкий код с бустом, а остальные товарищи буст ниасилили, а шаблонов боятся как огня, про паттерны слышали только то, что синглтон имеет кучу проблем и от того кода приходят в священный ужас. А были бы code review — глядишь, уже и не боялись бы прогресса и сами бы такой код писали.
Здравствуйте, Davader, Вы писали:
D>Соверщенно верно, вы бы не прошли однозначно.
Ну значит мне повезло, что я все эти вопросы изучил самостоятельно.
SE>>Вы спутали лид-инженера/архитекта и тим-лида. Кстати даже лид инженер и архитект могут быть так задолбаны бюрократией и всякой тянучкой-текучкой, что забудут как "Hello World" написать. Это свойство роста по карьерной лестнице.
D>Нет, ничего не спутал. Вакансия была — developer. Шли тим-лиды тоже, т.к. начинался кризис и все такое. Насчет архитектуры, паттернов и т.п. тоже спрашивали — те, кто тест прошел ответили и на эти вопросы, а те, кто нет — не ответили. Так что все закономерно.
Тогда понятно, мы тоже отсеяли пару лидов просто потому что у лидов знания вымылись. Кстати мы вынуждены были забраковать и человека, который ответил на все вопросы, решил все задачи, но вот проблема был помешан на оптимизации кода настолько, что ставил его важней понятности. Это была бы угроза всему проекту — заказчики просили именно улучшить понятность и сопровождаемость кода.
Хотя ваши вопросы он бы прошел на ура.
Здравствуйте, Erop, Вы писали:
E> Так что бывает и так, что разработчик для данной задачи слишком таки умён E> Даже для очень сложной задачи...
Ситуация известная. Но думаю, что здесь производится подмена понятий.
Слово "умен" здесь характеризует не соотношение требующихся и имеющихся
для решения поставленной задачи умственных способностей обсуждаемого
разработчика. Оно здесь "всунуто" насильно и неуместно.
Думаю, все пострадали не из-за ума, а из-за:
1. неопытность разработчика в подходе к решению задачи (в т.ч. в расстановке
приоритетов);
2. отсутствие своевременного контроля со стороны как непосредственного
технического руководства, так и со стороны менеджерского состава;
3. вероятно имел место некоторый первоначальный пофигизм со стороны
непосредственного технического руководителя, который не помог
подчиненному товарищу расставить приоритеты и не настоял на последовательности
разработки, выборе средств и прочего из-за чего исполнитель просто
заигрался и улетел в кювет.
Здравствуйте, МихаилС, Вы писали:
МС> 3. вероятно имел место некоторый первоначальный пофигизм со стороны МС> непосредственного технического руководителя
ЗЫЖ: Интересно, почему всегда забывается, что "рыба гниет с головы"?
Это всегда происходит на всех уровнях и на макро, и на микро. На уровне
государства, на уровне отдела разработки, везде.
Почему после того как работа с предварительной оценкой по временным
затратам 4-5-6 недель затянулась на 2-3 месяца никто не спохватился?
Почему нужно было тянуть 9 месяцев?
Здравствуйте, SE, Вы писали:
SE>Тогда понятно, мы тоже отсеяли пару лидов просто потому что у лидов знания вымылись. Кстати мы вынуждены были забраковать и человека, который ответил на все вопросы, решил все задачи, но вот проблема был помешан на оптимизации кода настолько, что ставил его важней понятности. Это была бы угроза всему проекту — заказчики просили именно улучшить понятность и сопровождаемость кода. SE>Хотя ваши вопросы он бы прошел на ура.
Да, и правильно не взяли. Если заказчики требуют одно, а человек хочет другое делать — тогда либо он соглашается делать то, что говорят, либо лесом. И хорошо, что у вас все выяснилось на собеседовании, а то бывает, что выясняется когда уже начал работать (пройдя все тесты на отлично и т.п.).
Здравствуйте, МихаилС, Вы писали:
МС>Нет. Я решительно против рождения уродов по принципу "переделывают только только тогда, когда МС>это нужно для бизнеса".
IMHO, обе крайности плохи. Обычно нет денег на то, чтобы писать и переписывать всё совсем супер, но и писать всё крайне криво тоже потом дорого выходит. Это обычная довольно бизнес-история про инвестиции. Типа траты на улучшение кода -- это инвестиции. И они вполне конкурируют с другими инвестициями...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
МС>Да не является этот случай демонстрацией проблем с "излишнеквалифицированным" МС>сотрудником. Как бы он не демонстрировал обратной ситуации с отсутствием МС>квалификации:
Ну ты не один такой умный, кто думает, что знает как управлять такими перцами... У всех результат был похожий...
Но как программист чувак крутой. И был крутой и сейчас крутой. У него же не только опыт работы в нашей конторе за плечами...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, МихаилС, Вы писали:
МС>Почему после того как работа с предварительной оценкой по временным МС>затратам 4-5-6 недель затянулась на 2-3 месяца никто не спохватился? МС>Почему нужно было тянуть 9 месяцев?
Потому, что несколько ребят, примерно таких же умных, как ты, пытались что-то сделать. В результате облажались все менеджеры, кроме того, кто его уволил
МС>Однозначно ночальнег виноват.
Ну ты просто ещё один в той очереди менеджеров
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Если ты понимаешь слово "квалификация" как то, насколько чел подходит к выполнению какой-то конкретной задачи, то да, слишком к. быть нельзя. E>Но если вернуться к общечеловеческому пониманию термина "квалификация разработчика", то тут, IMHO, нечего обсуждать особо.
КВАЛИФИКАЦИЯ (от лат. qualis — качество) — профессиональная зрелость работников, их подготовленность к качественному выполнению конкретных видов работ, определяемые наличием знаний, умений, профессиональных навыков, опыта.
Современный экономический словарь
Квалификация
(от лат. qualis — какой по качеству и facio — делаю), 1) степень и вид профессиональной обученности работника, наличие у него знаний, умения и навыков, необходимых для выполнения им определённой работы. ...
Большая советская энциклопедия
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, millevi, Вы писали:
ГВ>>Интересно, а как можно использовать готовые парсеры, не представляя, что такое формальные грамматики?
M>Вообще-то можно. Чтобы заставить готовый прасер разбирать твои выражения и преобразовывать их во что-то нужно знать как указать парсеру какие входные данные и в каком формате являются допустимыми M>Например в файле надо написать что-то типа такого: M>символ ::= a-z|A-Z|_ M>цифра ::= 0-9 M>идентификатор ::= символ[символ|цифра]* M>тип_данных ::= integer|string|float M>объявление_переменной ::= тип_данных идентификатор;
Если это — не разновидность формальной грамматики, то... 2x2 != 4.
M>P.S. M>Я не говорю, что разработчик парсера не должен знать формальные грамматики, я говорю, что для использования готового парсера понимание его внутренних механизмов не требуется.
Про внутренние механизмы парсера и я не говорил. Формальная граматика — это как раз "язык общения" с парсером.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
BZ> ты полагаешь, что Эйнштейн справится с закручиванием лампочек не BZ> хуже обычного фонарщика? есть целые профессии, в которые не BZ> пускают мужчин, поскольку в них нужна сосредоточенная монотонная работа
Я полагаю, что когда мы говорим о "квалифицированности" сотрудника мы рассматриваем
это явление в рамках некоторой области, в которой мы собираемся сотрудничать с этим
сотрудником. Понятно, что человек может быть очень хорошим и его ум, оторванный от
задач, решаемых нашим коллективом, может оказаться просто блистательным.
Тем не менее, когда мы говорим о такой вещи как "квалификация", именно
"квалификация", как "специальный ум", а не "ум общий", то абстрактный ум
и абстрактные человеческие характеристики идут лесом.
Квалификация — набор знаний, навыков и качеств требующихся в какой-то
конкретной области деятельности. Вот немногое, что говорит википедия:
Специали́ст (дипломированный специалист) — квалификация, приобретаемая
студентом после освоения _специальной_ программы обучения.
Вот из другого источника:
Квалификация — это совокупность свойств работника, характеризующих объем
его профессиональных знаний и трудовых навыков, которыми он должен обладать
для трудовой деятельности на конкретном рабочем месте.
Если человек является гением в нанотехнологиях для супертермоядерной техники,
то он вполне может иметь никакую квалификацию как, например, инженер-разработчик.
А инженер-разработчик может быть нифига неквалифицированным в другой области,
требующей гораздо меньших знаний.
Современный разработчик (в отличие от разрабочика древнего) даже не являясь
натасканным в менеджменте достаточно хорошо представляет, что все телодвижения
осуществляются в пределах отведенного на решение задачи срока. Это основополагающий
пункт. Исходя из временнЫх границ осуществляется выбор средств и подходов к
реализации, технологий и реализуемых фич. Это самая база современной разработки,
которую должен понимать любой разработчик с достаточным "специальным"
(квалифицированным) умом и который желает и может заниматься разработкой, а не
играться в песочнице.
В рамках изложенной истории я не заметил квалифицированных действий человека.
Вполне допускаю, что он суперспециалист в ряде сложных областей, но не соглашусь
с тем, что он является сверхквалифицированным разработчиком — не заметил я в
описании квалифицированных действий, таких как, например:
— определить срок — на протяжении какого времени деньгоприноситель согласен
платить за решение этой задачи;
— распилить задачу на подзадачи, функциональность на группы функций, определить
критические — те без выполнения которых решение нафиг никому не уперлось;
— выбрать и оценить средства, использование которых максимизирует выполнение
критических задач и наборов функций;
— рассмотреть риски и подготовить пути отступления — замены неверно выбранных
технологий, глючных компонентов и прочего;
— сконструировать архитектуру, которая поможет минимизировать опасность от
неверно выбранных средств, нерабочих компонентов итд;
— приступить к реализации наиболее сложных и критических компонентов;
— реализовать и оттестировать все критическое;
— заняться рюшечками и прочей фигней, которая добьет нафиг доведенного
до экстаза заказчика, увидившего успешную реализацию критических
элементов проекта, и заставит его полезть в карман за дополнительным
чеком на премиальные.
Здравствуйте, SE, Вы писали: SE>Здравствуйте, jeeist, Вы писали: J>>Сертификаты вроде MCAD есть, честно заработаны, без махинаций. J>>На вопросы о языке ответить (наизусть) не может SE>Не верю (с) SE>Чтоб сдать экзамены, нужно как минимум зубрить. Какая после этого проблема ответить на вопросы о языке наизусть.
Механизм сдачи экзамена такой:
есть софт, на котором можно тренироваться —
покупаем 200 вопросов специально для конкретного экзамена,
загружаем в софт и "проходим экзамен", отвечаем на 60 вопросов.
И так продолжаем, пока процент правильных ответов достигает ~100 %,
идем сдавать, сдаем — MCP, MCAD, Oracle, Java.
Конечно, "чайник", наверно, не сдаст экзамен, но иногда
кажется, что более-менее "нетупой" человек так может сдать
экзамен по любой теме, причем без глубоких знаний.
Можете послушать Задорнова, что он думает по этому поводу
Здравствуйте, МихаилС, Вы писали:
МС>Я полагаю, что когда мы говорим о "квалифицированности" сотрудника мы рассматриваем МС>это явление в рамках некоторой области, в которой мы собираемся сотрудничать с этим МС>сотрудником. Понятно, что человек может быть очень хорошим и его ум, оторванный от МС>задач, решаемых нашим коллективом, может оказаться просто блистательным. МС>Тем не менее, когда мы говорим о такой вещи как "квалификация", именно МС>"квалификация", как "специальный ум", а не "ум общий", то абстрактный ум МС>и абстрактные человеческие характеристики идут лесом.
Тогда это просто спор о терминах. Раз не подошёл, значит неквалифицированный
Просто я таки намекаю, что программирование вообще, и даже программирование на С++ и даже ещё более узкие какие-то ниши (скажем разработка ИИ алгоритмов) всё ещё очень широки чтобы туда поместился и аналог Энштейа и аналог завёртывателя лампочек...
МС>- определить срок — на протяжении какого времени деньгоприноситель согласен МС>платить за решение этой задачи;
что-то мне таки кажется, что всё он верно определил. Зряплату-то он получал...
Насколько я понял, ты почему-то думаешь, что сотрудники решают ТВОИ проблемы (в смысле проблемы работодателя или фирмы или "деньгоприносителя", например), а это нифига не так. Разработчики, всегда решают свои проблемы. Твои они решают только в том случае если от чего-то считают их своими.
МС>- распилить задачу на подзадачи, функциональность на группы функций, определить МС>критические — те без выполнения которых решение нафиг никому не уперлось; МС>- выбрать и оценить средства, использование которых максимизирует выполнение МС>критических задач и наборов функций;
Ну он хотел сменить технологическую культуру на другую, на отдельном его участке. Если бы культуру сменили на большом участке, возможно это было бы даже и выгодно. Но пока культуру сменили на небольшом фронте работ, очень много трудозатрат пошло на сопряжение ужа с ежом...
МС>... — заняться рюшечками и прочей фигней, которая добьет нафиг доведенного МС>до экстаза заказчика, увидившего успешную реализацию критических МС>элементов проекта, и заставит его полезть в карман за дополнительным МС>чеком на премиальные.
Насколько я понял, ты от чего-то предполагаешь, что у любой разработки всегда есть какой-то сторонний заказчик. Тем не менее в нашем случае обычно это не так...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[40]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, AndrewVK, Вы писали:
E>>Если ты понимаешь слово "квалификация" как то, насколько чел подходит к выполнению какой-то конкретной задачи, то да, слишком к. быть нельзя. E>>Но если вернуться к общечеловеческому пониманию термина "квалификация разработчика", то тут, IMHO, нечего обсуждать особо.
[констуктив = Off] AVK>
КВАЛИФИКАЦИЯ (от лат. qualis — качество) — профессиональная зрелость работников, их подготовленность к качественному выполнению конкретных видов работ, определяемые наличием знаний, умений, профессиональных навыков, опыта.
AVK>Современный экономический словарь
AVK>Квалификация
AVK>(от лат. qualis — какой по качеству и facio — делаю), 1) степень и вид профессиональной обученности работника, наличие у него знаний, умения и навыков, необходимых для выполнения им определённой работы. ...
AVK>Большая советская энциклопедия
Очень хорошо может ли "разработка ПО" считаться "конкретным видом работ"? Например, в отличии, от газосварочных работ и в отличии от работы кровельщика?
Советую посмотреть в словарях ещё и значения слов "конкретный" и "работа", ну и "вид", тоже можно глянуть для гарантии [/констуктив = Off]
Собственно то, что хотел сообщить я сообщил. Если тебе не нравится слово "слишком квалифицированный", то можно использовать другое какое-нибудь "знающий и умеющий слишком много", например...
А "точное" значение слова "квалифицированный", IMHO, обсуждать не интересно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, jeeist, Вы писали:
J>покупаем 200 вопросов специально для конкретного экзамена, J>загружаем в софт и "проходим экзамен", отвечаем на 60 вопросов. J>И так продолжаем, пока процент правильных ответов достигает ~100 %, J>идем сдавать, сдаем — MCP, MCAD, Oracle, Java.
А я то думаю, почему на моих проектах ни один MCAD собеседования так и не прошел
Знаю я конечно про возможность зазубрить. Но так человек же и писал про ответы на вопросы наизусть. Раз хватило времени и упорства заучить 200 вопросов на МКАДа, то что за проблема заучить 500 на собеседование. Глядишь и разобрался бы
J>Можете послушать Задорнова, что он думает по этому поводу
Не хочу его слушать, он 60% историй уворовал c дарвиновских премий, 30% подслушал, а оставшиеся 10 то ли выдумал то ли Башорг читать начал.
Re[43]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, BulatZiganshin, Вы писали:
BZ>а он и не должен.
Должен, ему за это деньги платят.
BZ> задачу поставьте. проконтролируйте.
Ну вот Егор, который тебе плюсик поставил, утверждает что задачу ему поставили и проконтроллировали. А результата за 9 месяцев так и не получили.
BZ> челвоек может быть замечательным кодером и даже арзхитектором, но не ориентированным на конечный результат
Это значит всего лишь, что для работ, где требуется определенная степень свободы, квалификация у этого человека негодная.
BZ> он может быть просто гораздо квалифицированней того, что нужно данной конторе
Вот в это я и не верю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Erop, Вы писали:
E>А что в данном случае обозначает "справиться"? Насколько я понял, суть разводки состоит в том, что множество значений представимых float это не R?..
Здравствуйте, Erop, Вы писали:
E>Кстати, не факт. Надо поспрашать какую-нибудь полную хрень. Скажем попросить перечислить признаки параллелограмма, или там построить треугольник по медиане, высоте и гипотенузе... E>IMHO завалить можно любого, тем более не в его области специализации. Только, IMHO, это ничего не значит...
Да, по задачам на построение завалишь 100%. Всегда их не любил.
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>Скажите — какую цель вы преследуя задавая тот или иной вопрос... Что бы хотите узнать о кандидате этими тремя вопросами? Подумайте — что вы реально узнаете о человеке как специалисте, о его специализации, о его профессионализме, умении работать в комманде и многое другое?
UN>Считаю 3х вопросов не достаточными, что бы оценить уровень и компетенцию того или иного специалиста.
Это необходимое условие, а не достаточное.
Re[44]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, AndrewVK, Вы писали:
BZ>>а он и не должен.
AVK>Должен, ему за это деньги платят.
теоретически — да. а практически люди склонны заниматься тем, что им интересно. особенно творческие и талантливые. и если ты собираешься организовывать реальный бизнес, то с этим нужно смириться и либо заинтересовывать, либо понукать, либо отбирать "самомотивированных", т.е. реально — воспринимающих цели бизнеса как свои собственные
BZ>> задачу поставьте. проконтролируйте.
AVK>Ну вот Егор, который тебе плюсик поставил, утверждает что задачу ему поставили и проконтроллировали. А результата за 9 месяцев так и не получили.
вот они и старались организовать его работу, а не уволили за низкую квалификацию. т.е. занимались своим обычным менеджерским делом, да только безуспешно
BZ>> челвоек может быть замечательным кодером и даже арзхитектором, но не ориентированным на конечный результат
AVK>Это значит всего лишь, что для работ, где требуется определенная степень свободы, квалификация у этого человека негодная.
я именно об этом и талдычу. у каждого свои плюсы и минусы. для задач, где требуется копать от забора до обеда — творческие люди вообще не пригодны. а вот люди с меньшими способностями, но более послудные и дисциплинированные — самое то. для разработки чего-то принципиально нового — наоборот. вот только понятие дисциплинированности и исполнительности нельзя называть квалификацией, это — "личные качества"
BZ>> он может быть просто гораздо квалифицированней того, что нужно данной конторе
AVK>Вот в это я и не верю.
может поверишь кадровикам, у которых такое понятие есть?
Люди, я люблю вас! Будьте бдительны!!!
Re[46]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, SE, Вы писали:
SE>>А может быть квалифицированным более чем, но не мотивированным?
AVK>Напоминаю, мы здесь обсуждаем вред излишней квалификации.
а она приводит к тому, что человеку элементарно неинтересно "формочки рисовать". и он начинает например делать вместо этого GUI-библиотеку. что бизнесу как кость поперёк горла — например, потому что этот код потом придётся сопровождать и поддерживать
Люди, я люблю вас! Будьте бдительны!!!
Re[45]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, BulatZiganshin, Вы писали:
BZ>теоретически — да.
Это именно что практически. Большинство работодателей, если ты яйца нести перестанешь, быстро с тобой распрощаются.
BZ> а практически люди склонны заниматься тем, что им интересно.
А я с этим и не спорю. Но только, коль уж ты претендуешь на высокую квалификацию, ты таки обязан уметь делать и неинтересную работу. Ну и интересность работы это по большей части твое собственное умение сделать данную конкретную работу интересной для себя. Если ты не способен к этому — квалификация у тебя низкая.
BZ> особенно творческие и талантливые
Ой, вот только не надо делить всех на гениев и быдло, мы не о живописи говорим, а о коммерческом программировании.
BZ>. и если ты собираешься организовывать реальный бизнес, то с этим нужно смириться и либо заинтересовывать, либо понукать, либо отбирать "самомотивированных", т.е. реально — воспринимающих цели бизнеса как свои собственные
Это безусловно. Но какое это имеет отношение к избыточной квалификации?
BZ>вот они и старались организовать его работу, а не уволили за низкую квалификацию. т.е. занимались своим обычным менеджерским делом, да только безуспешно
Напоминаю, это было приведено в качестве примера черезмерной квалификации.
BZ>я именно об этом и талдычу. у каждого свои плюсы и минусы. для задач, где требуется копать от забора до обеда — творческие люди вообще не пригодны.
А требовалось ли в примере Егора копать от забора до обеда? И много ли в современном программировании, особенно не в аутсорсе, вообще таких задач? Вот у нас, к примеру, таких задач вовсе нет, даже в прикладной разработке, хотя мы занимаемся тем, что многие тут считают самой нудной вещью — автоматизацией бизнеса.
BZ> а вот люди с меньшими способностями, но более послудные и дисциплинированные — самое то.
Типа, быдло
BZ> для разработки чего-то принципиально нового
А зачем разрабатывать не новое, если оно уже есть???
BZ>>> он может быть просто гораздо квалифицированней того, что нужно данной конторе
AVK>>Вот в это я и не верю.
BZ>может поверишь кадровикам, у которых такое понятие есть?
У кадровиков есть такое понятие в связи совсем с другим — с соответствием запрашиваемой зарплаты и того результата,который планируется получить. It's nothing but the money.
... << RSDN@Home 1.2.0 alpha 4 rev. 1120 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>а она приводит к тому, что человеку элементарно неинтересно "формочки рисовать".
AVK>Бывает. Обычно такой человек либо получает более сложные задачи, либо меняет работу.
Плюс еще два, даже три, варианта:
1. Поднимает мотивацию самому себе. Например устраивает себе такое рабочее место, чтоб за ним было интересно даже формочки рисовать.
2. В свободное от рисования формочек время улучшает процессы, чтоб рисование формочек занимало как можно меньше времени и требовало со временем меньше корректировок / багфиксинга.
3. Изучает текущую технологию настолько глубоко, насколько вообще возможно.
> я сейчас с таким дело имею — человека просят реализовать готовый алгоритм jpeg-пережатия, а он отказывается, говоря что он может сделать новый, гораздо лучше. и это при том, что такого типа алгоритмов в мирен разработано всего 4-5. скажешь, у него недостаточна квалификация?
Тут понимаешь какая штука, ты можешь только предполагать наличие у него квалификации, а проверить это никогда не сможешь. В таких случаях хоть головой об стенку убейся, а результата не дождешься Он будет вместо решения реальной задачи создавать свой алгоритм, ему это интересно. А квалификации "в теории", без её фактического подтверждения не бывает. "Слишком умный" — это просто название, а по сути за этим названием один из видов несоответствия (т.е. неквалифицированности), когда человек вроде бы знает и умеет даже больше, чем нужно, но у него всё-равно не получается.
Здравствуйте, grosborn, Вы писали:
>> я сейчас с таким дело имею — человека просят реализовать готовый алгоритм jpeg-пережатия, а он отказывается, говоря что он может сделать новый, гораздо лучше. и это при том, что такого типа алгоритмов в мирен разработано всего 4-5. скажешь, у него недостаточна квалификация?
G>Тут понимаешь какая штука, ты можешь только предполагать наличие у него квалификации, а проверить это никогда не сможешь. В таких случаях хоть головой об стенку убейся, а результата не дождешься Он будет вместо решения реальной задачи создавать свой алгоритм, ему это интересно. А квалификации "в теории", без её фактического подтверждения не бывает. "Слишком умный" — это просто название, а по сути за этим названием один из видов несоответствия (т.е. неквалифицированности), когда человек вроде бы знает и умеет даже больше, чем нужно, но у него всё-равно не получается.
хорошие теоретические рассуждения, но вообще-то он действительно специалист в этой области
> хорошие теоретические рассуждения, но вообще-то он действительно специалист в этой области
Если он, как ты утверждаешь, квалифицированный специалист в этой области, он на практике доказал это? Если нет, то он может быть высококлассным специалистом с блестящей теоретической подготовкой. Но не кваликом. Ещё раз напомню, квалификации "в теории" не бывает. Предлагаю придерживаться этого критерия.
Здравствуйте, grosborn, Вы писали:
G>Если он, как ты утверждаешь, квалифицированный специалист в этой области, он на практике доказал это? Если нет, то он может быть высококлассным специалистом с блестящей теоретической подготовкой. Но не кваликом. Ещё раз напомню, квалификации "в теории" не бывает. Предлагаю придерживаться этого критерия.
Я конечно не знаю что там у Булата, но таки вполне могу представить себе ситуацию, что тот сотрудник уже пару-тройку-десяток аналогичных задач успешно решил...
И что тогда?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[46]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, AndrewVK, Вы писали:
AVK>А я с этим и не спорю. Но только, коль уж ты претендуешь на высокую квалификацию, ты таки обязан уметь делать и неинтересную работу. Ну и интересность работы это по большей части твое собственное умение сделать данную конкретную работу интересной для себя. Если ты не способен к этому — квалификация у тебя низкая.
Не согласен. Бывают реально нудные и неинтересные работы. Например поддержка горы говно-кода, с запретом рефакторинга...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, grosborn, Вы писали:
>> Я конечно не знаю что там у Булата, но таки вполне могу представить себе ситуацию, что тот сотрудник уже пару-тройку-десяток аналогичных задач успешно решил...
G>Ещё раз: квалифицированным закручивателем лампочек он не является.
речь вроде шла о реализации алгоритма из области, на которой специализируется чувак...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
>>> Я конечно не знаю что там у Булата, но таки вполне могу представить себе ситуацию, что тот сотрудник уже пару-тройку-десяток аналогичных задач успешно решил... > > G>Ещё раз: квалифицированным закручивателем лампочек он не является. > речь вроде шла о реализации алгоритма из области, на которой специализируется чувак...
Речь идет о вреде избыточной квалификации, обсуждается замечание об ошибочном использовании сомого термина "квалификация".
Если бы чувак о котором ты упомянул, ранее решал такие задачи, то вопрос о его квалификации не стоял бы вовсе — квалифицирован и квалификация его была подтверждена "в рамках некоторой области". И соответственно Булат не приводил бы его в пример. Соответственно, чувак является частным примером, когда квалификация не подтверждена "в рамках некоторой области", а якобы чувак настолько умен, что уж задачи из "некоторой области" для него уж точно решаемы. Типа никогда не решал такие задачи и от этой отказался, но всё-равно квалифицирован, поскольку очень умен.
Теперь понятно?
Здравствуйте, grosborn, Вы писали:
G>Если бы чувак о котором ты упомянул, ранее решал такие задачи, то вопрос о его квалификации не стоял бы вовсе — квалифицирован и квалификация его была подтверждена "в рамках некоторой области". И соответственно Булат не приводил бы его в пример.
его квалификация подтверждена и именно потому я его привёл в пример. что-то ты между строк прочёл
> G>Если бы чувак о котором ты упомянул, ранее решал такие задачи, то вопрос о его квалификации не стоял бы вовсе — квалифицирован и квалификация его была подтверждена "в рамках некоторой области". И соответственно Булат не приводил бы его в пример. > > его квалификация подтверждена и именно потому я его привёл в пример. что-то ты между строк прочёл
Тогда в пример чего ты его привел? В пример программиста-бизнесмена?
> G>Тогда в пример чего ты его привел? В пример программиста-бизнесмена? > > как ещё один пример того, как высококвалифицированному специалисту не дают реализоваться
Что-то в твоем примере не раскрыта тема угнетения высококвалифицированного специалиста. Скорее уж наоборот, работу предлагают, а он отказывается.
Здравствуйте, mymuss, Вы писали:
M> 1. посчитать сумму элементов целочисленного массива M> 2. найти площадь круга по радиусу M> 3. записать текущую дату в текстовый файл
M>Ваше мнение?
Мда. Я то думал спрашивать формулы, которые нельзя легко вывести в уме, даже такие простые — это уже давно всеми признанный баранизм. Оказывается, ещё находятся "специалисты".
К тому же в распоряжении отвечающего всегда должны быть интернет, справка и компилятор. Без них лично я вряд ли дам удовлетворяющие меня самого решения на 1 и 3. А про круг я знаю две формулы и всё время путаю какая куда. Хотя, конечно, зная что такое число пи можно вывести окружность самому, а вторая формула как раз и будет площадью, но это же надо напрягаться. С интернетом это будет много быстрее.
1 и 3 с компилятором в руках решаются в одну строчку. Я знаю как это сделать, но имён методов не помню. Дайте мне компилятор и я покажу. Кстати, по этому поводу у Ершова в "Раздумьях ездового пса" хорошо сказано: "Настоящий профессионал — может показать руками, как ЭТО делается. Непрофессионал будет много и красиво рассказывать. Но — не покажет.". Дайте людям в руки компилятор, справку и инет и пусть они показывают.
Если нам не помогут, то мы тоже никого не пощадим.
Re[47]: О словах спорить скучно... И главное, -- не за чем..
Здравствуйте, Erop, Вы писали:
E>Не согласен. Бывают реально нудные и неинтересные работы. Например поддержка горы говно-кода, с запретом рефакторинга...
И на это я тоже уже отвечал — если это временно, то смирится, если нет — искать пути сделать временным. Не вижу трагедии, и, главное, связи интересности такой работы с квалификацией.
... << RSDN@Home 1.2.0 alpha 4 rev. 1127 on Windows Vista 6.0.6001.65536>>
Здравствуйте, IT, Вы писали: IT>1 и 3 с компилятором в руках решаются в одну строчку. Я знаю как это сделать, но имён методов не помню. Дайте мне компилятор и я покажу. Кстати, по этому поводу у Ершова в "Раздумьях ездового пса" хорошо сказано: "Настоящий профессионал — может показать руками, как ЭТО делается. Непрофессионал будет много и красиво рассказывать. Но — не покажет.". Дайте людям в руки компилятор, справку и инет и пусть они показывают.
По-моему, если человеку приходится "делать все", например, в ИТ-отделе
предприятия, то он с помощью компилятора, справки и инета может
программировать практически на любом языке.
Хуже, если у него нет "основного" языка, который он знает хорошо.
Но, по-моему, "знать все" тоже можно называть специализацией.
Здравствуйте, SE, Вы писали: SE>А я то думаю, почему на моих проектах ни один MCAD собеседования так и не прошел SE>Знаю я конечно про возможность зазубрить. Но так человек же и писал про ответы на вопросы наизусть. Раз хватило времени и упорства заучить 200 вопросов на МКАДа, то что за проблема заучить 500 на собеседование. Глядишь и разобрался бы
Проблема в том, что неизвестно, каким языком придется заниматься.
Скорее всего, всеми, но поверхностно, по-этому тратить время на
нюансы языка будет нецелесообразно. Специализация такая
Здравствуйте, jeeist, Вы писали:
J>Здравствуйте, SE, Вы писали: SE>>А я то думаю, почему на моих проектах ни один MCAD собеседования так и не прошел SE>>Знаю я конечно про возможность зазубрить. Но так человек же и писал про ответы на вопросы наизусть. Раз хватило времени и упорства заучить 200 вопросов на МКАДа, то что за проблема заучить 500 на собеседование. Глядишь и разобрался бы
J>Проблема в том, что неизвестно, каким языком придется заниматься. J>Скорее всего, всеми, но поверхностно, по-этому тратить время на J>нюансы языка будет нецелесообразно. Специализация такая
Ой-ей-ей. Это что же за специализация такая-то? Что, приходится одновременно писать на С++, С#, Java и LISP и на десятке другом похожих языков под совершенно разные платформы?
Здравствуйте, grosborn, Вы писали:
G>Что-то в твоем примере не раскрыта тема угнетения высококвалифицированного специалиста. Скорее уж наоборот, работу предлагают, а он отказывается.
а если тебе предложат работать дворником — ты обрадуешься? вот для него это примерно как для тебя быть подметать дворы
> G>Что-то в твоем примере не раскрыта тема угнетения высококвалифицированного специалиста. Скорее уж наоборот, работу предлагают, а он отказывается. > > а если тебе предложат работать дворником — ты обрадуешься? вот для него это примерно как для тебя быть подметать дворы
Сравнение некорректно, дворником и уборщицей ему не предлагали работать. В принципе, разница получается только в реализации двух алгоритмов, выполняющих одну и ту же функцию.
Здравствуйте, grosborn, Вы писали:
G>Сравнение некорректно, дворником и уборщицей ему не предлагали работать. В принципе, разница получается только в реализации двух алгоритмов, выполняющих одну и ту же функцию.
т.е. ты считаешь, что разработать алгоритм самому и реализовать существующий — нужна одинаковая квалификация?
Здравствуйте, grosborn, Вы писали:
>> G>Сравнение некорректно, дворником и уборщицей ему не предлагали работать. В принципе, разница получается только в реализации двух алгоритмов, выполняющих одну и ту же функцию. >> >> т.е. ты считаешь, что разработать алгоритм самому и реализовать существующий — нужна одинаковая квалификация?
G>Я считаю, что человек отказывающийся от заказа только из гордости — совершенно справедливо непризнан. Могу ещё заметить, что в бизнесе очень важно уметь отсекать таких людей и по возможности быстрее заменять их в проектах, даже ценой большого увеличения затрат. На моей памяти не одна компания развалилась из за таких людей.
ну сколько можно галлюцинировать?? он предложил вместо реализации существующего алгоритма сделать новый, более эффективный
> ну сколько можно галлюцинировать?? он предложил вместо реализации существующего алгоритма сделать новый, более эффективный
Ага, ситуация проясняется, он оказывается уже такие задачи решал, таки уже не "отказался", а "предложил". Теперь осталось понять, почему это называется "высококвалифицированному специалисту не дают реализоваться"?
Здравствуйте, jeeist, Вы писали:
J>Хуже, если у него нет "основного" языка, который он знает хорошо.
Знать язык хорошо, по-моему, как раз самое простое. Открыл спецификацию, почитал и знаешь. Я, например, никогда не работал с java, но если я почитаю спецификацию, то знать этот язык я буду. Другое дело, я всё равно не стану после этого java-программистом, т.к. кроме языка существует ещё множество других вещей, которые мне будут нужны, чтобы писать софт на java.
J>Но, по-моему, "знать все" тоже можно называть специализацией. J>Или нет?
Если знать всё поверхностно, то такие знания, как и такая специализация мало чего стоят.
Если нам не помогут, то мы тоже никого не пощадим.
J>>Но, по-моему, "знать все" тоже можно называть специализацией. J>>Или нет? IT>Если знать всё поверхностно, то такие знания, как и такая специализация мало чего стоят.
Вопрос такой — есть ли альтернатива (в ИТ-отделе предприятия)?
Есть ли универсальный язык/технология, который можно применять всегда.
По-моему, нет. По-этому, если осваивать хорошо, то приходится
пытаться хорошо освоить несколько языков.
Или же пытаться сделать все максимально просто, пусть и не столь
эффективно и обходя проблемы.
Я не знаю, всегда ли возможен такой подход, но, по-моему, если человек
способен это сделать, то это ценный "скилл".
V>А если просто, сколько футов в миле? Неужели знаешь?
любой наблюдательный человек, читавший художественные книжки знает что рост стройного человека около 6 футов, и что миля это около 1700 метров. Отсюда с точностью 5% можно прикинуть ответ.
Здравствуйте, Vamp, Вы писали:
V>А если просто, сколько футов в миле? Неужели знаешь?
Что интересно — число футов в миле не ровное (5280). Так что запомнить не так просто. И объяснение есть интересное
Why are there 5,280 feet to a mile? Why not a number like 5,000?
Если вкратце, то в римской миле было ровно 5000 футов. Но в англии пост-римских времен земельные наделы измерялись в фурлонгах (сколько лошадь протащит плуг без передышки), по договоренности это было 660 футов. Англичанам захотелось привязать милю к фурлонгу, но 8 фурлонгов составляли 5280 футов. В качестве альтернативы можно было фурлонг сделать равным 625 футам, но тогда замельные наделы в фурлонгах сокращались и чего-то никому этого не хотелось Почему-то пересчитать наделы в новых фурлонгах они не захотели.
Здравствуйте, OnlyWhisky, Вы писали:
OW>Сумма элементов как впрос на отсеивание совсем нулёвых подходит, факториал тоже. OW>А можно спросить на c++ факториал стадии компиляции через templates. Может он и не ответит, а если ответит?)
Про факториал можно спросить. Сложно представить человека, который имеет образование в области IT (не опыт), и не разу не сталкивался с факториалом.
А шаблоны — слишком специфично, если человек ни разу не сталкивался с шаблонами такого уровня, то вряд ли догадается. А если во-всю использовал шаблоны, то не могу поверить, что он ни разу не писал факториал на стадии компиляции или хотя бы не видел.