A>Простые задачки на графы и сортировки не могут решить!
Да в гробу я , пардон , видал ваши задачки про графы
Квалификацию программиста нужно оценивать по опыту и проектам , а не по алгоритмам из книжки кнута
Гм, я так понял господин Калачев предлагает сговор фирм с целью уменьшения оплаты труда программистов? Ну во-первых, это незаконно, во-вторых программисты "проголосуют ногами" — уедут в другие города. Сговориться на всей России — программисты снова потянуться за рубеж. Сговориться всем миром? Тогда в эту отрасль пойдет ещу меньше талантливых людей и нехватка кадров станет еще более ощутимой.
Как же в отрасли где существует такая огромная нехватка кадров труд может быть переоценен? Вот труд актеров точно переоценен, притом никакой нехватки кадров там и в помине нет. И талантов, тоже кстати достаточно.
Здравствуйте, pavel_turbin, Вы писали:
ГВ>>Просто, если разница в з/п супер-пупер квалифицированого специалиста и вчерашнего студента будет 1,5-2 раза, то тогда можно стонать о "переоцененности" сколько влезет, ничего не изменится.
_>а сколько должна быть разница?
Она никому ничего не должна. Вопрос следует ставить по-другому. Какой смысл "вкалывать", искать какие-то неординарные решения, если в смысле вознаграждения такая работа не уйдёт дальше чем вдвое-втрое от сидения на месте и ожидания команды от тимлида и тому подобных персонажей?
Получаем сверхзабавную ситуацию: разговоры о том, что квалифицированный-де программист в десятки раз эффективнее неквалифицированного и фактическую разницу в зарплате в два-три раза как потолок. Ну и зачем, спрашивается, квалифицированному программисту делать за час то, что можно "делать" неделю, если з/п при этом, фактически, не изменится? Надеяться на бонус? Какой? В размере годового оклада? Или как обычно — 50% от месячного раз в квартал?
Вот и получаем сверхзабавную ситуацию: трындёж на каждом углу, что, мол, квалифицированные специалисты в десятки раз лучше неквалифицированных, но различие в фактических з/п от двух до трёх раз как потолок. Какой при таких условиях, квалифицированому программисту смысл искать эффективные, к примеру, решения, если он спокойно, не потеряв ничего, сможет делать одно и тоже и в течение часа и в течение недели? Надеяться на милость менеджмента в виде бонуса? А какого бонуса? В размере годовой з/п? Или как всегда — 50% от оклада раз в квартал?
Что в итоге? В итоге получаем:
а) демотивацию лучших специалистов;
б) деквалификацию их же;
в) сведение сути работы к набору магических аббревиатур и к откровенной ахинее (по части аббревиатур почитайте форум по архитектуре, масса интересного. ключевое слово — "паттерн");
г) орду страждущих занять позицию "тимлида", "пээма", поскольку такая строчка в резюме значит куда как больше реальной квалификации;
д) уравнивание з/п в секторе специалистов;
е) вымывание квалифицированных специалистов и получение оравы менеджеров, которые хорошо, если своих подчинённых не боятся, потому что из специалистов они ушли вынужденно.
Кому в результате хорошо? Менеджерскому сознанию того, что программист "должен...", "не должен..." и т.п. Хорошо мифу о том, что "незаменимых нет" (правильно, плохо работать все умеют). Всем остальным — хреновей некуда. И не надо валить на "молодость индустрии" и подобные байки. Чушь это всё. Глупость — величина вневозрастная. А лимитировать оклады специалистов просто потому, что это специалисты, а не менеджеры — есть глупость несусветнейшая. И не говорите мне, что этого нет. Откуда тогда на том же job.<нужное вписать> регулярно появляются объявления, где доходы расставлены примерно так: программист — 1.0-1.2, ведущий программист (иногда — тимлид) — 1.0-1.5, менеджер — 1.5-2.0. Из этих троих одна категория будет пахать как бобик по 12 часов в сутки. Догадайтесь, какая. Правильно — вторая. Тогда почему она получит на 30% меньше третьей? И почему только на 30% больше первой? ОБвиим её в неспособност свалить работу на других? Свалим на "несправедливое мироустройство"? Ещё какую-то отговорку придумаем из серии "все так делают"? Пути менеджерской фантазии да неисповедимы, ибо сон разума, как известно...
Возвращаясь к исходному тезису о "переоцененности" специалистов добавлю, что исходная посылка изначально содержит вверхтормашковую составляющую. Бессмысленно рассуждать об очень высокой цене специалистов, если организация изначально ориентирована на то, что низкая цена специалистов является её конкурентным преимуществом. Естественно, что такой работодатель архистеснён в манёвре величинами окладов. Ну это уже из области бизнес-моделей и непосредственно к интересующей теме, как мне кажется, не относится.
_> В Штатах примерно такая же зазница.
И что с того? На кого ещё нужно оглянуться? Пип.., тьфу, примерами меряться будем? Своей головы мало? Кстати, в тех же Штатах (и не только) имеется ещё куча схем мотивации, ну да не суть.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, execve, Вы писали:
E>На самом деле не качество кадров резко ухудшилось, а появилась возможность получать сравнимые с западом деньги. E>Поэтому работодатели, которые 2-3 года назад находили за $NN хороших работников, сейчас их найти не могут, т.к. они стали дороже стоить. E>А за $NN теперь работают те, кто уровнем сильно ниже.
Угу. Со обоих сторон и девелоперов и работадателей раздается плачь Ярославны, что зарплаты неправильные(только в разные стороны). Если со стороны девелоперов, которым нет особого дела до чьей то там рентабельности и ебитды, это еще можно понять. То со стороны работадателя это выглядит как-то странно, уж кому бы как не им знать законы рынка и баланс спроса и предложения.
С чего собственно кто-то решил что если последние 10 лет деньги можно было зарабатывать просто на разнице зарплат программистов здесь и там, то так будет всегда. Нужно было делать свои продукты, чья тиражируемость обеспечивает высокую добавленную стоимость, а не балду пинать, продавая часы. Чем собственно сам топ менеджмент то эти годы занимался? Продукты конечно делать сложнее т.к. нужно планировать развития продукта и архитектуру на годы вперед. Но кто говорил, что будет легко.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Интересно, это только с возрастом проходит или как? Помню когда-то я тоже людей собеседовал по принципу — может ли он мне сортировку написать. Вы ребята поймите, это никак не относится к тому — сможет этот чел проект сдать или нет. А насчет вопросов на собеседовании — если меня спрашивают — как посчитать производную или почему небо синее — я встаю и ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с несформировавшимся мировоззрением. Для меня лично важно — не встанет ли человек в один прекрасный момент и не уйдет с проекта, как он на овертаймы среагирует и вообще такие вот вещи — а не то — умеет он в середину списка элементы добавлять или нет. А если по себе мерять — вот я умею сортировку писать — а он нет — то, ребята, вам пожалуй в детский сад неплохо бы. К бизнесу алгоритмы никакого отношения не имеют.
Садитесь, два балла.
> #include<stdio.h> > gopstop(int *a, int *k){ > int i; > for(i=1; i<=6; i++) > if(a[i]>a[i-1]&&a[i]>a[i+1]) > *k=*k+1; > }
1) Кому нужна функция, которая работает только с массивом из 6-и элементов?
2) А Вы пробовали скомпилировать свою программу?
3) А зачем целое число возвращать через указатель?
4) Если уж возвращаете, почему инициализировать его должна вызывающая
сторона?
В общем, чем дальше, тем хуже. Я же сразу Вам сказал, Вам не надо
программировать — Вам надо сразу в Большие Начальники.
Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать,
как работает qsort из принципа, программировать в принципе не могут. Но
я не ожидал получить этому столь быстрое и наглядное подтверждение. Спасибо!
> int main(){ > int m=0; > int z[7]={2,1,8,6,3,4,1}; > gopstop(z, &m); > printf("\n%i", m); > > return 0; > }
\n в начале строки — это круто. Это явно способствует формированию
хорошего вкуса у пользователей Вашей программы.
Здравствуйте, WPooh, Вы писали:
WP>Игорь, тут есть причинно-следственная связь или просто временная? Любопытства ради, не ерничества для. Куча народу просто свалила или поток соискателей не была принята на работу в проекте?
Я тут несколько месяцев назад искал работу, вот такой спам приходил мне от рекрутеров:
Hi,
In reference to the job .Net Web Service Developer, wanted to check your interest and availability for Microsoft, Redmond, WA. If you are not interested, please ignore this mail.
Position Details
Duration: 6 Months
Rate: $50/Hr
Required Skills
· Strong C# .Net developer with web services.
· Must have excellent communication skills.
· Experience with Siebel (CRM) a definite plus.
· Developer will make changes (bug fixes/change requests) to existing .NET web services that interact with Siebel COM to read/write data into the Siebel database.
If interested please send me your updated word format resume ASAP. Also let me know your Availability, Work Status and Present Location.
If any of your friends are working on same technology and looking for a job or interested to take up this opportunity please forward this requirement to them or you can refer him.
Regards,
Patrick
Ramsoft Systems, Inc.
Phone: 248.354.0100 X 1577
Fax: 248.354.3626
E-Mail: Patrick@Ramsoft.net
URL: www.ramsoft.net
$50/Hr — это рейт контрактника, который традиционно выше зарплат постоянных работников. Причём рейт на довольно короткий контракт (6 месяцев), короткие контракты традиционно ещё выше.
А вот для сравнения другое, вполне приличное, предложение:
Greetings:
My name is Mike and I'm an IT recruiter at Mitchell/Martin, Inc.
Contract: 6 months+
Location: NYC
Rate: 650-700 a day
Our client is a Major Investment Bank and they are looking for a Strong C#/WinForms Developer with Fixed Income experience. Will be responsible for developer screens for Fixed Income traders.
Required Skills: C#, WinForms, SQL
Must have Financial/Brokerage experience
Fixed Income Expeirence is a major plus.
When you respond, please include a daytime phone number so that I can reach you and also your salary requirements, your availability date and your citizenship status. In considering candidates, time is of the essence, so please respond ASAP. Thank you.
Sincerely yours,
Mike Andrew
Mitchell/Martin, Inc.
Note: Please allow me to reiterate that I chose to contact you either because your resume had been posted to one of the internet job sites to which we subscribe, or you had previously submitted your resume to Mitchell/Martin. I assumed that you are either looking for a new employment opportunity, or you are interested in investigating the current job market.
If you are not currently seeking employment, or if you would prefer I contact you at some later date, please indicate your date of availability so that I may honor your request. In any event, I respectfully recommend you continue to avail yourself to the employment options and job market information we provide with our e-mail notices.
Thanks again.
Mike
Mitchell/Martin, Inc.
700 a day = 87.5 / Hr
Т.е. грубо говоря, контракник в MS получает на 75к грязными в год меньше, чем в других местах.
И это, между прочим, ещё не жадный рекрутер попался, обычно предлагают по 40-45.
Теперь давай подумаем. Зарплата у среднего девелопера в MS — 60k — 80k. Сегодня на рынке такого спеца с опытом работы в MS оторвут с руками за деньги минимум в полтора, а то и в два раза больше. С карьерой в MS не фонтан, начнёшь с багфиксера (как в первом письме), года через три-пять можешь дослужишься до девелопера, если индусы разрешат. Ну можно ещё надеятся, что повезёт
Теперь вопрос. Что там делать нормальному инженеру с головой? Правильно, набираться опыта и валить.
Тогда второй вопрос. А кто же работать будет? Ответ — новеньких наберут, контракников наймут плюс, где же без них, наши восточные братья. Братьям нашим много денег не надо, они могут жить по 12 штук в 2-х бедрумной квартире, ездить все вместе на одной машине и не жужжать. Но зато, за время которое они работают, нормальный народ уйдёт, у них будут все шансы попасть в начальники, архитекторы и прочие менеджеры. После этого надуть грозно щёки и завалить нафик какой-нибудь проект, например WinFS
У меня нет прямых доказательств сказанного Не очень то и хочется их коллекционировать. Всё это больше наблюдения. Но есть некоторые вещи, которые не могут не подтверждать мои слова. Вот скажите мне, люди добрые! Как команда из 500!!! человек, ПЯТИСОТ!!! ПЯТЬ-СОТ!!! Это не опечатка. ПЯТЬСОТ!!!, которая пишет студию и причендалы к ней типа Team System, никак не может родить что-то безглючное и конкурентно способное. Всё чему мы сейчас так радуемся в новой студии и дружно хлопаем в ладоши уже несколько лет присутствует в IntelliJ IDEA. Тот же первый решарпер по своей функциональности мощнее чем рефакторинг в новой студии. Хотя может конечно в штате у JetBrains не 500, 5000 человек? Team System — лажа полная. Софт для менеджера, чтобы он мог посчитать количество написанных девелопером строчек. Возьмём тот же SourceGear Vault. Просто, удобно, быстро, очень функционально. Интергируется со студией лучше чем родной VSS. Расширяемость студии — повбывавбы. Куда там до Эклипса. Родить какой-нибудь плагин для студии... легче слонёнка родить. Совершенно непонятно в каком бреду придуманная объектная модель. Половина на COM, половина на .NET.
И всё это, господа, в 2006 году, во времена разгула управляемых сред, при наличии полного доступа к телу (знаете чем наверняка большую часть времени занимаются разработчики из JetBrains? я думаю, что декомпиляцией студии и изучением того как она работает, а тут неограниченный доступ к телу), ПЯТЬСОТ!!! Ещё раз для тех кто не понял, ПЯТЬСОТ!!!
Между прочим. При средних затратах на одного девелопера в 100к в год, бюджет команды студии получается минимум 500 x 100,000 = Ы? 50,000,000 зелёных президентов в год. Вот так!
В принципе, на примеры того, как грамотно отобрать у заказчика его деньги, манипулируя лишь одними словами, я достаточно насмотрелся пока работал в IBM. Но то ведь заказчик-лох-ушастый. А это получается у самих себя
В общем, если всё это обобщить, то подобное безобразие можно идентифицировать только как — зажрались хлопцы, ожирели. А лишний вес, как известно, никогда на здоровье положительно не влиял.
ЗЫ. Интересно, сколько человек писало 6-ю студию?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Для тех аутсорсеров, которые получают от заказчика фиксированную сумму на одну душу,
действительно есть реальный предел зарплат.
Предположим получает та же Телма от забугорного дядьки
по $2000 на одного девелопера.
На эти деньги надо видимо содержать офис, платить зарплату, и пр...
Ну и конечно владельцы компании должны жить хорошо.
Если зарплаты в целом по отрасли растут, то становится все тяжелее
жить с этого, на самом деле не такого уж и жирного пирога за $2000.
Вывод, покуда у компании не будет своего собственного продукта,
зарплаты всегда будут ограничены.
Если руководство мечтает о больших прибылях,
то надо думать о собственном продукте.
Крохи с барского стола никогда не сделают всех сытыми.
Здравствуйте, Gorbatich, Вы писали:
G>Не допускается проявление грубого или неуважительного... G>указывать на орфографические и синтаксические ошибки и т. д.
ИМХО, глупое правило, по крайней мере в такой формулировке. Я бы предложил изменить так:
...указывать на орфографические и синтаксические ошибки в грубой форме запрещается.
Иногда просто раздражают орфографические ошибки (не опечатки). И по мне так лучше, чтобы мне указали, и я потом всю жизнь правильно писал, чем соблюдать ханженскую политкорректность. Хоть грамотность повысится у посетителей.
Интересная тема...
По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить!
На самом rsdn-е очень часто появлются темы после прочтения которых у молодого специалиста возникает ощущение что всё круто и он сможет со своим не большим набором знаний расчитывать на достойную среднего специалиста ЗП.
Резюмируя — качество кадров резко ухудшилось по сравнению с тремя-двумя годами ранее.
Здравствуйте, Sh1ZoID, Вы писали:
SZI>нибудь интеллектуальным анализом. Человек, который не SZI>способен отсортировать список, в таком проекте просто будет SZI>простаивать. Нахрена мне такой не нужен!?!?
Самое интересное что в твоем Гейм Дев ничего кроме умножения матариц поворота нету ) А про физические процессы, дык там все формулы 9 класса ) Если у человека есть аттестат то он их знает, а если забыл то вспомнит.
Здравствуйте, ttoorrmmoozz, Вы писали:
A>>Простые задачки на графы и сортировки не могут решить!
T> Да в гробу я , пардон , видал ваши задачки про графы T>Квалификацию программиста нужно оценивать по опыту и проектам , а не по алгоритмам из книжки кнута
Вот работадателям не пофиг какие проекты программист делал раньше, их на хлеб не намажешь.
Ему нужно узнать какие ты проекты будешь делать у них, а не какие делал раньше.
Тем более что раньше ты их мог делать под постоянными пинками тимлида или QA.
Оценка по резюме и предудущему опыту это "для бедных", которые не могут целовека грамотно оценить на собеседовании по его объективным заниям и умениям. Расскажи о такой методике хотя бы microsoft-у который забить хотел на предыдущие достижения кандидатов.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Геннадий Васильев wrote: > > Она никому ничего не должна. Вопрос следует ставить по-другому. Какой > смысл "вкалывать", искать какие-то неординарные решения, если в смысле > вознаграждения такая работа не уйдёт дальше чем вдвое-втрое от сидения > на месте и ожидания команды от тимлида и тому подобных персонажей?
Высокая квалификация приносит и разные нематериальные блага. Например,
возможность выбирать работу на свой вкус. Возможность делать то, что
считаешь нужным, и что интересно, а не что хочет менеджер. Ну и т.д.
Интересно, что в США разница между новичком и очень квалифицированным
специалистом меньше, чем в Москве. В США вилка где-то $60K-$150K в год.
В Москве — $500-$4000 в месяц.
> Что в итоге? В итоге получаем: > > а) демотивацию лучших специалистов; > б) деквалификацию их же; > в) сведение сути работы к набору магических аббревиатур и к откровенной > ахинее (по части аббревиатур почитайте форум по архитектуре, масса > интересного. ключевое слово — "паттерн"); > г) орду страждущих занять позицию "тимлида", "пээма", поскольку такая > строчка в резюме значит куда как больше реальной квалификации; > д) уравнивание з/п в секторе специалистов; > е) вымывание квалифицированных специалистов и получение оравы > менеджеров, которые хорошо, если своих подчинённых не боятся, потому что > из специалистов они ушли *вынужденно*.
Это все часть более общего процесса, который называется "потеря культуры
производства".
Хуже то, что:
1) при планировании уже заранее закладываются на низкую квалификацию
персонала
2) все больше работы делается людьми, которым пыль-то с монитора
страшно доверить смахивать (сломать могут)
3) менеджмент не верит, и не в курсе, что бывают специалисты,
обладающие действительно нормальной квалификацией
4) все боятся как огня ввязываться в действительно сложные проекты,
где надо думать и писать оригинальный код, а не прикручивать друг к
другу готовые библиотеки
5) молодые программеры считают, что изучать надо всякие идиотские
новые технологии (которые, к слову, больше 5-и лет не живут), вместо
того, чтобы обзавестись какими-нибудь более-менее фундаментальными знаниями.
Тоска, короче
> Кому в результате хорошо? Менеджерскому сознанию того, что программист > "должен...", "не должен..." и т.п. Хорошо мифу о том, что "незаменимых > нет" (правильно, плохо работать все умеют). Всем остальным — хреновей > некуда. И не надо валить на "молодость индустрии" и подобные байки. Чушь
Как раз, переход к конвеерному производству говорит о том, что пора
молододости для этой индустрии миновала. Что, по-моему, большая ошибка.
Программирование — слишком сложный вид человеческой деятельности, чтобы
считать, что человечество так уж далеко продвинулось на этом поприще.
С другой стороны, за последние 20 лет практически ничего нового
придумано не было, что печально...
Здравствуйте, Pzz, Вы писали:
Pzz>Конвеерное производство имеет одно преимущество, важное для бизнеса: Pzz>производительность труда растет прямо пропорционально количеству Pzz>тружеников.
Исследованиям IBM на эту тему уже сто лет в обед. Производительность труда расёт вовсе не прямо пропорционально численности сотрудников. В лучшем случае — пропорционально квадратному корню численности. Ты-то хоть не забивай себе голову менеджерской ахинеей!
Pzz>С другой стороны, за это приходится платить. Например, Pzz>качеством, или тем, что ничего действительно нового так не сделаешь.
А вот теперь давай зададим себе вопрос: а на ... оно нужно при такой цене?
Pzz>То, что такой подход должен был рано или поздно добраться и до Pzz>программирования, было предопределено. Но от этого не менее обидно...
Да не в том дело. В пресказуемости — только в ней. Вернее, не в самой по себе предсказуемости, которая не более чем иллюзия (примеров тому — выше крыши), а в том, что назвав разработку софта "конвейерным производством" люди получили долгожданную опору в рассуждениях относительно сроков и стоимости. Она, эта опора, совершенно бестолкова, но менеджеры... это такой забавный народ, скажу я тебе... Вот уговорились они называть разработку ПО "конвейером", так хоть кол на башке теши — будут называть конвейером. И будут подходить с теми же мерками, что и к конвейерному производству. И в конце-концов заболтают всех так, что все вокруг будут уверены, что таки да, разработка ПО = конвейер. Даром, что и из тех, кто говорит, и из тех кто слушает настоящего конвейера никто в глаза не видел, но всё равно: разработка ПО = конвейер!
Pzz>С другой стороны, на мой взгляд программирование, по крайней мере Pzz>сейчас, все еще слишком сложно для конвеера, и никакие C# не отменяют Pzz>этого факта.
Мамма миа! У меня складывается впечатление, что ты ждёшь — не дождёшься, когда же на нас снизойдёт благодать в виде "конвейерного производства софта". Ой, не могу! Срочно в отпуск! Сро-чно! Или хоть напейся.
Pzz>А это позволяет надеяться, что на наш век хватит интересной Pzz>и высокооплачиваемой работы, требующей нормальной квалификации
А ты в этом усомнился, что-ли? Ещё раз повторюсь: технология забалтывания очень простая. Вот пообщаешься ты с десятком менеджеров, которые программированием уже не занимаются, а причастны только к руководству. Скажут они тебе десять раз что-то вроде: "ну, у нас производство...", "у нас культура производства..." и прочее. Ну нужен им свой язык, понимаешь? Нельзя сказать, что просто "программы пишем". Нужно что-то серьёзное, "промышленное". А что "промышленное" — оно всегда серъёзное и придаёт веса в глазах окружающих. Да и потом с солдатиками, пусть и оловянными, играть всегда интереснее, чем с абстракными конпептами. И пошёл гулять вирус: "промышленность!", "конвейер!", "чернорабочие!" и прочая белибердень. К сути дела ни на йоту не приблизились, а мозги слушателям якобы умными речами уже запарили.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравое зерно есть в изначальном утверждении Калачева есть. Действительно, если сохранится динамика роста зарплат, то это приведет к тому, что российские IT-компании станут просто неконкурентноспособными по сравнению с индусами и прочими китайцами. Вопрос в том — что делать, а здесь у г-на Калачева начинается бред...
Лично мое мнение — в текущем контексте сделать ничего нельзя в принципе. Стоимость жизни в России стремится (а кое-где уже и превысила) к стоимости жизни в "цивилизованных" странах. Человеку (и в том числе программисту ) надо где-то жить и что-то есть, а значит ему нужно платить по $2000/кв.м недвижимости (в Москве) и т.п. И ничего г-н Калачев с этим сделать своими нелепыми ограничениями не сможет. Увы, надо признать, что при высоких ценах на нефть, разработка софта в России постепенно станет все менее выгодным делом из-за слишком больших расходов. Будем аутсорсить в Индию, как это делают американцы или европейцы...
Здравствуйте, Melo, Вы писали:
M>Утверждаете, что качество софта сделанного в России является лучшим в мире? Причем настолько, что за него готовы платить больше? Ох, не уверен...
Подозреваю, что о крутости российских программистов знают только российские программисты
Gorbatich wrote: > > Pzz>Локальный максимум — такой элемент массива, который больше своих > соседей. > > не написал строчку? > > if(g[i]>g[i--]&&g[i]>g[i++]) printf(....,g[i]); > > может ему стало стыдно на такие тупые вопросы отвечать и пошел другую > работу искать?
Нет, его решение было все-таки не _настолько_ плохим. Оно могло бы
работать по крайней мере хоть иногда, в отличии от Вашего.
моё мнение по повоуд плохих специалистов не знающих алгоритмов.
я поддерживаю такого мнения что программист не обязан знать многие вопросы касающиеся алгоритмов . он должен лишь иметь представленеи о том что то то и то то есть в жизни и знать где про это выясниь. любая задача при локальном решении может быть решена при наличии под рукой необюходимой литературы и понятия куда копать. Просто с таким подходам когда у программиста при приёме спрашивают кучу всяких алгоритмических знаний напоминает здачу экзамена при поступлении на тестах. пройдёт год и эти тесты человек который их здал здать снова не может. Конечно это завсит от области где требуються эти знания алгоритмов. но в повседнейвной пронграмерской работе это встречаеться редко. И если у работодателя есть действительно такго рода заморочки в реальных проектов. то это ни как не может отражать тот момент что человека которого он интревьирует и он не знает что то на чём он заморачиваеться значитт что интервьируемых прохой специалист. хороший специалист тот кто доводить проект не бросив его на середине и более того приносит прибылт на реалтизованном проекте. Всё ведь сводиться к зарабатываю денег . Просто иногда удивляет тот момент что каждый работодатель заморачиваеться на своих фичах не подразумевая о том что эти фичи просто e интервьируемых не использует и у него также есть эти фичи которыми он также может опутстить работодателя в случае если ему пофык на судьбу самого процесса интервирования. Возможно во многом где то тут я не прав но сейчас в данный момент я вижу лишь ту денденцию что сам работодатель не может интервировать. Когда у меня будет свой бизнес (о чём я искренне надеюсь) я буду нанимать человека не потому прицнипцу что он знает о том или ином зверском алгоритме при работе над строками а том насколько он сможет вьехать в те задачи которые нужно будет решать. Простым языком на сколько он может быть в теме моего проекта . Всё остальное набиваеться в течение 2-3 месяцев после работы при желании конешно самого сотрудника — имхо именно для этого и стоит вводит 3-х месячные сроки в течении ктоторых человек просто дополняет свои знания знаниями которые требуються для успешной работе в команде над проектом. Просто ну не возможно знать всё и вся по той причине что на это просто не хватает времени.
Здравствуйте, Pzz, Вы писали:
Pzz>Думаю, многие из тех, кто сейчас сидит и посмеивается, выступили бы не лучше Вас...
May be. А зачем этим многим нужно выступать? Что бы показать как они "круты"?! Так они это и без вас знают. Что бы доказать вам, что ваш способ тестирования при приёме на работу крайне неудачен? Так Вас не переубедить, ведь если , допустим, сказать вам, что куча многомиллионных проектов обошлась без рукописных поисков максимумов/сортировок/обходов графов (использовались библиотеки, естественно) то вы же не поверите ни одному слову.
Согласитесь, что соискатель выбирает фирму а фирма соискателя. Это обоюдно. Некоторым может крайне не понравиться занудливый интервьюер, который заставляет опытного специалиста заниматься никому не нужной ерундой, а некоторые любят решать подобные задачки. И если парень, которого вы собеседовали, не захотел решать вашу задачку, это совсем не значит, что у него "какая-то другая профессия", это говорит только о том, что вы друг другу не подошли.
Позвольте дать вам один совет. На собеседовании просите у соискателей реализовать несколько типов сортировок, пирамидальную например, нещадно гоняйте людей по сложностям алгоритмов, просите дать определение интеграла и решить квадратное уравнение. Чем больше от вас уйдёт хороших специалистов, тем больше их придёт в другие фирмы. Например к нам.
Здравствуйте, awod, Вы писали:
A>Интересная тема... A>По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить!
Не берите таких людей на работу — и они вымрут сами по себе.
A>На самом rsdn-е очень часто появлются темы после прочтения которых у молодого специалиста возникает ощущение что всё круто и он сможет со своим не большим набором знаний расчитывать на достойную среднего специалиста ЗП. A>Резюмируя — качество кадров резко ухудшилось по сравнению с тремя-двумя годами ранее.
На самом деле не качество кадров резко ухудшилось, а появилась возможность получать сравнимые с западом деньги.
Поэтому работодатели, которые 2-3 года назад находили за $NN хороших работников, сейчас их найти не могут, т.к. они стали дороже стоить.
А за $NN теперь работают те, кто уровнем сильно ниже.
Вообще ситуация забавная.
Работодатели декларируют, что IT всё менее и менее выгодно.
Но, тем не менее, из IT-бизнеса почему-то не уходят.
Хотя казалось бы, если ваш бизнес из-за высоких зарплат становится невыгодным — закрывайтесь и переходите в другую отрасль.
Там заработаете больше.
А здесь количество рабочих мест сократится, спрос на рынке труда будет превышать предложение и цены на рабочую силу упадут.
Но нет, наоборот, почему-то появляется всё больше и больше вакансий.
Видимо кто-то где-то лукавит.
Здравствуйте, Melo, Вы писали:
M>Абсолютно не согласен. У огромного числа аутсорсеров по всему миру нет и никогда не было "собственного продукта". И ничего — живут себе нормально. Дело абсолютно не в этом.
Как я понимаю здесь имелось в виду немного другое.
По сути дела аутсорсер является спекулянтом, перепродающим труд других людей и ему приходится конкурировать с другими аутсорсерами. Понятное дело, что при крайне низкой себестоимости "товара" делать это гораздо проще — установил ценник мизерный и ничего больше делать не надо, а доход за счет низкой себестоимости получается оченно неплохой.
Теперь же эти горе-аутсорсеры плачут. А все почему? Да потому, что благодаря получаемым ими сверх-доходам на рынок пришли много других игроков-аутсорсеров, желающих так же получать хотя бы часть этих доходов и по большому счету не особо напрягаться. Именно они и скупают квалифицированную рабочую силу за большие деньги.
Вот и кончается халява, надо либо жить на меньшую маржу (что понятное дело неохота), либо конкурировать на западном рынке не только за счет дешевизны (тут уже мозги надо напрягать, что не у всех получается).
Жить-то нормально можно, но придется все-таки работать на рынке, да и сверхдоходов не будет. А то вспоминаются времена расцвета дикого капитализма в 90х, бизнес типа "купи-продай", когда доход меньше 100% считался копеечным и народ просто отказывался от таких сделок. Ничего. Прошло время, научились нормально жить и на меньшие проценты.
Здравствуйте, bralgin, Вы писали:
B>почему-то твой пост вызывает во мне ассоциации с постами горе-кадровиков, публикующих в объявлении о вакансии длинющий список требований к кандидату.
Даже не знаю, почему. Я не кадровик. Все, что я написал, исходит из личного опыта. Я не могу понять, ради чего я должен работать рядом с человеком, который
— не может написать за два часа поиск экстремума в массиве, с доступом к инету и литературе. (А как он тогда настоящую задачу выполнит? Или мы всей командой будем ходить вокруг него хороводом, пока он тупит?)
— обнаружив баг, начинает ныть, и ему надо каждый раз объяснять, как читать логи и где поставить брекпоинт. Потом все таки дебагаться самому, убеждаться, что именно он виноват, и переходить к предыдущему пункту
— требует найма отдельного техрайтера для документирования написанного кода. При этом эффективность процесса резко падает: вменяемый разработчик пишет сопровождающую доку за примерно 20% времени от разработки. Примерно столько же он потратит на объяснения техрайтеру, только техрайтер тоже небесплатный, да еще и добавляется риск неправильно понять.
— не понимает, чем отличается экпорт от чекаута, постоянно теряет линку на корпоративный FTP, каждый раз спрашивает, как посмотреть план запроса в QA
— постоянно ноет, что остальные делают что попало, мешают ему работать, вносят баги и т.п.
— напившись в пятницу, любит обсуждать личные качества руководства, систему мотивации, используемые технологии и прочую подноготную с посторонними людьми.
— не может с трех попыток прочитать письмо от заказчика на средненьком английском; если заказчик написал press, а не click, то уже "ниче не понятно", при неопределенности в требованиях выбирает всегда наименее вероятный вариант и отстаивает его с пеной у рта
— не может избавиться от циклической зависимости между классами/пакетами. И вообще не понимает, зачем это нужно
— останавливается и тупит, как только задача выходит за пределы стандартных сэмплов из документации.
Что, печальная картина? Так это суровая действительность — я и сам под некоторые пункты иногда попадаю
B>вот только мизерной з/платы в твоем сообщении не хватает для полной идентичности с такими объявлениями.
Мизерность — штука относительная. Я просто перечислил основные вещи. Это можно было бы сформулировать и короче: "решать проблем больше, чем создавать". Казалось бы, для этого немного надо. Самый-самый старт карьеры. Действительно, можно платить за это минимум. Хороший программист должен уметь каждый из этих пунктов на пять баллов. И что-нибудь сверх того. Я вообще начинаю потихоньку фигеть — тут что, форум по защите убогих что ли собрался? Давайте теперь давить работодателей — а то офигели совсем, требуют от нас уметь писать код прямо при приеме на работу!
Обалдеть. А что, кто-то ожидает, что работодатель даст денюжку за просто так? За то, что сотрудник во время испытательного срока соизволит пойти наконец в интернет и прочитать, как же на самом деле устроена сортировка? Работодателю нужно, чтобы поставленная задача была решена в срок. И, как правило, работодатель имеет на это право.
Только дефицит рабочей силы в нашей области может провоцировать ситуацию, когда некомпетентность заявляет свои права на безбедную жизнь.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, LuciferMoscow, Вы писали:
LM>Определение интеграла или попросить посчитать интеграл? Я и LM>сейчас скажу. 5-ый курс уже в прошлом
Считаю, что к 5 му курсу уже не прилично заниматься и отвечать на такие вопросы. Там уже решаются намного более важные задачи.
Для меня спрашивающий сразу попадает в категорию "дураков".
sigsegv wrote: > > Pzz wrote: >> >> Вы, кстати, не расстраивайтесь так. Вы смелый человек — кроме Вас никто >> не рискнул выставить свой код на публичное обсуждение. > > Можно и выставить
О Боже! Я не построить список локальных максимумов. Я просил подсчитать
их количество!
Ну давайте вашу алгоритму тоже поругаю, если уж Вам так хочется.
Грубые ошибки:
1. Случай пустого массива (size == 0) не обработан. На пустом массиве
Ваша програмка просто упадет, слазив в a[1].
2. Если про крайние элементы можно еще поспорить, являются ли они
локальными максимумами, или нет, по причине отсутствия соседа с одной
стороны, то уж единственный элемент массива из одного элемента точно на
локальный максимум не тянет
3. Неправильно понято условие задачи — просили количество локальных
максимумов, а не их список. Фактически, поставленная задача не решена.
Придирки:
1. Зачем Вам отдельный терминирующий элемент в списке? Вполне хватило
бы того, что у последнего элемента next == NULL
2. Мне очень не нравится макрос ADD. Он трогает переменные,
определенные вокруг него, но в том месте, где этот макрос вызывается,
этого не видно.
3. Логику, которая аллоцирует память, проверяет на NULL и завершает
программу, я бы предпочел видеть в одном месте, а не размазанную по
всему коду.
4. Зачем эти сравнения с INT_MIN?
5. С крайними элементами эффективнее разобраться вне цикла. Впрочем
ладно, забудем пока про эффективность.
6. Когда Вы печатаете числа printf'ом, было бы неплохо хоть чем-нибудь
их разделять.
7. Зачем нужен fflush(stdout) прямо перед exit'ом. Горе от ума?
8. Я бы не стал называть локальную переменную словом, которое является
зарезервированным в C++ (я имею ввиду, new).
Результат, конечно, лучше, чем у предыдущего оратора, но общем, тоже
цирк с кОнями
И главное, зачем надо было так выпендриваться?...
> #include <stdio.h> > #include <stdlib.h> > #include <limits.h> > #include <err.h> > > struct e_list { > struct e_list *next; > int ind; > }; > > int > find_max(int *a, int size, struct e_list **e) > { > int i; > struct e_list *new; > > #define ADD do { \ > new = calloc(1, sizeof(*new)); \ > if (new == NULL) { \ > errx(1, "get more ram"); \ > } \ > new->ind = i; \ > new->next = *e; \ > *e = new; \ > } while(0) > > if (size < 0) { > return -1; > } > > if (size == 1) { > i = 0; > ADD; > return 0; > } > > for (i = 0; i <= size — 1; i++) { > if (i == 0) { > if (a[i] > INT_MIN && a[i] > a[i + 1]) { > ADD; > } > } else if (i == size — 1) { > if (a[i] > a[i — 1] && a[i] > INT_MIN) { > ADD; > } > } else { > if (a[i] > a[i — 1] && a[i] > a[i + 1]) { > ADD; > } > } > } > > return 0; > } > > int > main() > { > struct e_list *e, *curr; > int l[] = {2, 1, 4, 1, 1, 1, 5, 6}; > int rc; > > e = calloc(1, sizeof(*e)); > if (e == NULL) { > errx(1, "get more ram"); > } > > rc = find_max(l, sizeof(l)/sizeof(l[0]), &e); > if (rc != 0) { > errx(1, "shit happens!"); > } > > while (e->next != NULL) { > fprintf(stdout, "%5i", e->ind); > curr = e; > e = e->next; > free(curr); > } > > fprintf(stdout, "\n"); > fflush(stdout); > > free(e); > > return 0; > } >
lynn-lynn wrote: > > Ага, первый аргументированный ответ. Вот тут я с Вами полностью > согласен. Да, я именно формочки + SQL умею и на них зарабатываю. В > геймдев мне никогда не светит, там да — там надо алгоритмы колбасить. > Только ведь из исходных постов было не ясно — куда же должен попасть > человек со знанием графов. А мне на собеседованиях на роль MSSQL > девелопера сортировки предлагали писать и списки реверсировать. Это — > адекватно? Я должен дальше сидеть и с уважительным видом слушать этот > бред из-за которого я пол Москвы проехал? В каждой избушке свои игрушки, > но думать ведь надо о чем на собеседованиях спрашиваешь у человека и не > надо думать что у всех вежливости хватит на то чтобы отсидеть пару часов > двигая биты в байте, когда тебя берут отчеты в кристале рисовать.
Так бы и сказали сразу, что Вы не программист. Конечно, человека Вашей
профессии совершенно бессмысленно программистскими задачками
тестировать. Для Вас надо какие-то другие тесты придумывать. Какие
именно, не знаю, т.к. вашу профессию представляю себе очень
приблизительно...
A>Интересная тема... A>По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить!
Знаете, мне за мой опыт графы понадобились один раз, сортировка — ни разу Если всплывает необходимость — открываем Кнута/Сэнджвика и прочих умных ребят и за пол дня восполняем пробелы... А вот грамотно проектировать приложение что бы всё работало, было расширяемо и удобно ни за день ни за месяц не научишься...
Здравствуйте, beerserg, Вы писали:
B>Хмм... А квадратное уравнение здесь причем. С какого перепугу ты его сюда поставил? Или я чего-то не понимаю в этой жизни?
Это шутка такая. Речь о том, как проводить собеседования и нужно ли собеседовать по алгоритмам, заходит на rsdn'е каждые пол года. В предыдущем обсуждении этой темы один человек писал, что после 8 лет, прошедших после окончания института, он не помнит как решать даже квадратное уравнение. Я вот тоже не помню, однако не считаю себя несостоятельным в своей профессии.
Вот читаешь в таких ветках утверждения наподобии: "Если человек не знает Д. Кнутта наизусть все 3 тома, что человек не программист, а дворник" и просто злость берёт. Не потому, что я сам только Вирта изучал в своё время, а потому, что большинство подобных высказываний пишут люди никогда не создававшие коммерческий код, imho.
Знать нужно где и что можно посмотреть, этого достаточно нормальному специалисту.
Здравствуйте, LuciferMoscow, Вы писали:
LM>Здравствуйте, Melo, Вы писали:
M>>
LM>>>Качество.
M>>Утверждаете, что качество софта сделанного в России является лучшим в мире? Причем настолько, что за него готовы платить больше? Ох, не уверен... LM>В "интелектуальном" софте думаю да. По той причине, что конкурентов(которые смогут реализовать туже функциональность) мало
В большей части софта который заказывают наружу нет никакого rocket science, т.е. это абсолютно типовой софт. Для того чтобы делать его с надлежащим качеством нужны не суперкрутые программисты(там просто нет сложных задач), а правильный процесс разработки(хотя бы человеческое тестирование выпоненное не гоблином, а грамотным QA повышает качество настолько, что никакая крутость программистов не поможет).
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, AmSpb, Вы писали:
Pzz>>Я думаю, такое получается у людей, которые много подковыривают в чужих Pzz>>проектах, но своего собственного кода пишут мало. Но надо понимать, что Pzz>>это не программирование, а какая-то другая профессия.
AS>Т.е. строитель должен уметь изготавливать цемент, кирпич, а только потом строить из него дом ? AS>Нет, не так. Строитель берет готовые блоки и строит дом.
А вы спросите строителя знает он это или нет. Его ответ Вас очень не порадует
Как делается кирпичи знают многие. И не потому что это надо, просто в общем рассмотрении это просто.
Сортировка и работа с графами это азы. Как алфавит при изучении языка. А то что некоторые "программисты" этого не знают — это проблема НЕ подготовки кадров.
Здравствуйте, Gorbatich, Вы писали:
G>Самое интересное что в твоем Гейм Дев ничего кроме умножения матариц поворота нету ) А про физические процессы, дык там все формулы 9 класса ) Если у человека есть аттестат то он их знает, а если забыл то вспомнит.
G>Так что не надо тут про сложные физ. процессы
Глупости! Геймдев это одно из тех мест, где от программиста требуется хорошая алгоритмическая подготовка.
Любая сложная технология неотличима от волшебства. (Артур Кларк)
Спасибо за очередную демонстрацию локальной победы разума над коллективной мыслью.
Вообще такие вот простенькие задачки очень хорошо позволяют оценить человека в первом приближении. имхо, конечно.
В частности:
— дефенсивность кода — ассерты, проверки, эксепшены — depends on предметной области и необходимости.
— краевые условия задачи, частные случаи
— обобщенность (отвлеченность от конкретных входных данных), и в то же время отсутствие излишней обобщенности (i.e. виртуальные интерфейсы и шаблонные функции )
— адекватность — когда на задачку дают 2 минуты, ее нужно сразу же закодить, а над душой сидят 2 человека — почти все допускают ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы, которые могут вывести его на правильный путь — очень многое можно сказать о человеке
sigsegv wrote: > >> Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли, >> как найти туалет, и выходили на час-полтора из комнаты > > ну так взяли кого-нибудь в итоге-то ?
— дебильные вопросы про пузырьковую сортировку на собеседованиях (соискатели)
— дебилы не знающие что такое пузырьковая сортировка (работодатели)
значит проблема есть. Как правило для решения проблемы нужно как минимум признать что она существует. Тех специалисты проводящие собеседования не обладают достаточным опытом для этого. И образование у них не профильное, техническое. Оценивать кандидатов не умеют. Сколько господин Pzz нанял программистов? десяток? Маловато опыта в этом деле. Отсюда и возникают выверты с тех. вопросами по которым у него самого были когда-то проблемы. После первой тысячи нанятых уже можно будет какие-то выводы делать по выбранной методе. А так это откровенная глупость, следует признать. Ну и желание чувствовать себя единственным и неповторимым вероятно (кстати, можно по собеседованиям на сходные вакансии походить и сравнить свои требования с не менее странными требованиями других)
В свою очередь соискатели тоже не умеют себя продать т.к. они вроде как программисты а не проф. искатели работы. Но если проходить собеседования регулярно то какой-то опыт со временем приобретается, появляется понимание что необязательно эту хрень знать, нужно просто понять что от тебя хотят. Желательно конечно заранее узнавать чё ж там на собеседовании выдумают, кто-то анкеты с цветными фигурками заполняет, кто-то на вакансию скл-кодера заставляет интегралы вспоминать, кто-то перловщику предлагает рассказать про выделени памяти в куче и пр.
Хороших специалистов мало в любой области, и программированиее и в рекрутинге
Gorbatich wrote: > > Amspb прав. > > Зачем голову забивать лажей, когда везде валяются заготовки типа > qsort(). Не копаюсь в этих вещах принципиально.
Тогда Вам не стоит заниматься программированием — идите сразу в Большие
Начальники.
> Это тоже самое, что спросить студента 5 курса, что такое интеграл?
А что, студентов лоботомируют где-то между вторым и пятым курсом, и они
забывают, что такое интеграл?
AmSpb wrote: > > A>Если он не ответит — значит зря он пошёл учиться. Значит человек > занимает НЕ СВОЁ место. > > Мне интересно, а зачем нужно знать, что такое интеграл, если он у > работодателя в работе не применяется, а делаются обычные > бизнес-проекты(SQL, C++, Java, UNIX).
А зачем культурному человеку надо уметь читать-писать и кушать ножем и
вилкой (а не руками)?
Я думаю, в первую очередь затем, чтобы иметь возможность общаться с
другими культурными людьми.
Здравствуйте, Gorbatich, Вы писали:
G>Здравствуйте, LuciferMoscow, Вы писали:
LM>>Определение интеграла или попросить посчитать интеграл? Я и LM>сейчас скажу. 5-ый курс уже в прошлом
G>Считаю, что к 5 му курсу уже не прилично заниматься и отвечать на такие вопросы. Там уже решаются намного более важные задачи. G>Для меня спрашивающий сразу попадает в категорию "дураков".
У меня знакомая преподает в ВУЗе. В таком выражение:
dx/dt букву d сокращали!
Здравствуйте, Pzz, Вы писали:
Pzz>AmSpb wrote: >> >> A>Если он не ответит — значит зря он пошёл учиться. Значит человек >> занимает НЕ СВОЁ место. >> >> Мне интересно, а зачем нужно знать, что такое интеграл, если он у >> работодателя в работе не применяется, а делаются обычные >> бизнес-проекты(SQL, C++, Java, UNIX).
Pzz>А зачем культурному человеку надо уметь читать-писать и кушать ножем и Pzz>вилкой (а не руками)?
Pzz>Я думаю, в первую очередь затем, чтобы иметь возможность общаться с Pzz>другими культурными людьми.
"У тебя неправильная рубашка, без петельки, я с тобой общаться не буду"
Pzz>1) Кому нужна функция, которая работает только с массивом из 6-и Pzz>элементов?
Если я и сделаю "умный" список, то наверное не бесплатно и уж явно не чтобы сюда кинуть.
Pzz>2) А Вы пробовали скомпилировать свою программу?
0 err, 1 warn — забыл слово void
Pzz>3) А зачем целое число возвращать через указатель?
Не люблю конструкции типа y=f(x). Предпочитаю f(x,&y).
Поработайте с большим объемом дыннах — узнаете почему.
Pzz>В общем, чем дальше, тем хуже.
а дальше только распечатка
Pzz>Я же сразу Вам сказал, Вам не надо Pzz>программировать — Вам надо сразу в Большие Начальники.
Сразу не быывает. Только универ закончил.
Pzz>Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать, Pzz>как работает qsort из принципа, программировать в принципе не могут. Но Pzz>я не ожидал получить этому столь быстрое и наглядное подтверждение. Pzz>Спасибо!
Может быть когда-нибудь я буду вашим начальником Но я не буду таким занудным это уж точно )
>> int main(){ >> int m=0; >> int z[7]={2,1,8,6,3,4,1}; >> gopstop(z, &m); >> printf("\n%i", m); >> >> return 0; >> }
Pzz>\n в начале строки — это круто. Это явно способствует формированию Pzz>хорошего вкуса у пользователей Вашей программы.
Каждый считает себя самым умным. Удачи Вам в этом, возможно, заблуждении.
Здравствуйте, MasterMind, Вы писали:
MM>Когда у меня будет свой бизнес (о чём я искренне надеюсь) я буду нанимать человека не потому прицнипцу что он знает о том или ином зверском алгоритме при работе над строками а том насколько он сможет вьехать в те задачи которые нужно будет решать. Простым языком на сколько он может быть в теме моего проекта .
Good lack! Будут у тебя в бизнесе работать люди которые будут уметь въезжать. А работать кто будет?
MM>Всё остальное набиваеться в течение 2-3 месяцев после работы при желании конешно самого сотрудника — имхо именно для этого и стоит вводит 3-х месячные сроки в течении ктоторых человек просто дополняет свои знания знаниями которые требуються для успешной работе в команде над проектом. Просто ну не возможно знать всё и вся по той причине что на это просто не хватает времени.
Ну вот взял ты человека на 3 месяца, а он оказался не тот. Взял второго, третьего, пятого, десятого. Прошло 30 месяцев, пора такой бизнес закрывать.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Gorbatich, Вы писали:
G>Самое интересное что в твоем Гейм Дев ничего кроме умножения матариц поворота нету ) А про физические процессы, дык там все формулы 9 класса ) Если у человека есть аттестат то он их знает, а если забыл то вспомнит.
Поверь человеку который не по наслышке знает что такое гейм дев... ты очень сильно ошибаешся.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WindWalker, Вы писали:
WW>>>Хорошо у вас в России. СШ>>Кому именно? WW>В плане более вменяемого трудового законодательства(для сотрудников) — и 2 недели на увольнение, и...
WW>А у вас таких засад вроде срочных ТД не бывает ?
У нас таких преимуществ не бывает. В итоге Валерии приходиться выходить замуж за очередного продюссера — иначе какие у него гарантии, что он вложит $100К в её раскрутку, а она потом не положит заявление об увольнении?
Рост зарплат — это всё фигня. Гораздо интереснее, как они собираются выстраивать внутренние градации зарплат. Будет внутри фирмы, скажем, 15-кратная вилка для специалистов или нет? Менеджеров в расчёт не брать, руководителей проектов — тоже.
Просто, если разница в з/п супер-пупер квалифицированого специалиста и вчерашнего студента будет 1,5-2 раза, то тогда можно стонать о "переоцененности" сколько влезет, ничего не изменится.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
LM>Антивирусы, Abbyy Finereader(не out-source, но все же)
Путаете частное с общим. Какой процент всемирно известных антивирусных программ пишется в России? Никто не спорит с тем, что в России могут быть (и есть) отдельные успешные IT-компании, но говорить о каком-то принципиальном преимуществе нашего IT-бизнеса все ж не приходится.
LM>Различные системы образования. В Штатах готовят "специалистов по правой нозре", у нас "ухо-горло-носа". Эти знания менее глубокие в узкоспециализированной области, но гораздо более широкие. На этом и стоит играть
Если честно, то я думаю, что время нашего преимущества на этом поле уходит (если уже не ушло). У нас как заклинание твердят о некоем преимуществе нашего образования, но при том финансировании что существует сегодня, жить ему (преимуществу) осталось недолго. А я даже думаю, что померло это самое преимущество уж лет несколько как...
LM>НО: в целом согласен, большая часть out-source в России умрет
Здравствуйте, olegkr, Вы писали:
M>>1. Аутсорсить в Индию/Китай M>>2. Аутсорсить в Россию M>>3. Не аутсорсить вообще, т.е. разрабатывать софт у себя в Европе/США.
M>>Назовите мне причины по которым заказчик выберет вариант #2?
O>Вариант 3 отпадает по простой причине — даже при одинаковой зарплате расходы на одного девелопера в европе выше в разы. Причины — высокие налоги, социалка, тот же офис, инфраструктура. Кроме того, хорошие местные девелоперы в той же Англии чуть-ли не поголовно сидят в консалтерах, а консалтеры стоят дорого, очень дорого.
Все еще проще.
Да, московская, накаченная нефтью зарплата программистов похоже всерьез собралась догонять американскую/европейскую.
Но видели бы вы тех американских программистов. Казалось бы, люди с опытом точно больше пяти лет, с профильным образованием, но после пяти лет работы в проекте запросто вставляют в базовый класс иерархии метод, имеющий отношение только к одному из наследников, причем вызывают этот метод синхронно, написав специальные функции доступа к этому ранее закрытому от всех и вся объекту, хотя прекрасно видят, что все остальные методы вызываются асинхронно, через очередь.
Вот слезы на глаза наворачиваются.
Поэтому пока московской зарплате еще далеко даже до зарплаты низкоквалифицированных западных кадров, беспокоиться за аутсорсинг не надо.
<scipped> M>Допустим, у нас средне-европейские зарплаты. В этом случае у заказчика есть три варианта: M>1. Аутсорсить в Индию/Китай M>2. Аутсорсить в Россию M>3. Не аутсорсить вообще, т.е. разрабатывать софт у себя в Европе/США.
M>Назовите мне причины по которым заказчик выберет вариант #2?
Качество.
Здравствуйте, Pzz, Вы писали:
>> В большей части софта который заказывают наружу нет никакого rocket >> science, т.е. это абсолютно типовой софт. Для того чтобы делать его с >> надлежащим качеством нужны не суперкрутые программисты(там просто нет >> сложных задач), а правильный процесс разработки(хотя бы человеческое >> тестирование выпоненное не гоблином, а грамотным QA повышает качество >> настолько, что никакая крутость программистов не поможет).
Pzz>В Америке сейчас явная тенденция весь девелопмент выводить в страны Pzz>третьего мира, а не только багфигсинг и суппорт.
Pzz>Соотстветственно, живя в России, вполне можно оказаться в core team Pzz>какой-нибудь западной компании, и заниматься чем-нибудь более Pzz>интересным, чем писать драйвера на потоке.
Маленькая поправка: ВСЮ разработку выводят компании у которых написание софта не основная ключевая компетенция,
не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания не отдаст в oursource свою ключевую компетенцию.
Google или Microsoft никогд разработку не заоутсорсят. (Google попыталась, но не аутсорсом, а сделав свой R&D центр в индии.
По достоверным слухам потерпела неудачу)
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, MasterMind, Вы писали:
MM>я поддерживаю такого мнения что программист не обязан знать многие вопросы касающиеся алгоритмов . он должен лишь иметь представленеи о том что то то и то то есть в жизни и знать где про это выясниь.
Зря. Программер должен быть способен безо всякой доки налабать хоть и очень тупой, но рабочий алгоритм на любой случай. Если чел на это не способен, то книжки ему ни разу не помогут.
Здравствуйте, Pzz, Вы писали:
>> Первая 2-ка тоже должна быть локальным экстемумом >> pzz, это так по вашей постановке задачи ?
Pzz>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В
Сами дали определение:
Локальный максимум — такой элемент массива, который больше своих соседей.
xtile wrote: > > — адекватность — когда на задачку дают 2 минуты, ее нужно сразу же > закодить, а над душой сидят 2 человека — почти все допускают > ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы, > которые могут вывести его на правильный путь — очень многое можно > сказать о человеке
Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли,
как найти туалет, и выходили на час-полтора из комнаты
Здравствуйте, lynn-lynn, Вы писали:
LL>А насчет вопросов на собеседовании — если меня спрашивают — как посчитать производную или почему небо синее — я встаю и ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с несформировавшимся мировоззрением. Для меня лично важно — не встанет ли человек в один прекрасный момент и не уйдет с проекта, как он на овертаймы среагирует и вообще такие вот вещи
Так вот ты и провалил тест на овертайм и "несваливаемость с проекта". Тебе дают задачу, тебе она кажется тупой и ненужной, ты сразу уходишь. Такие сразу не нужны.
aik wrote: > > С другой стороны, может, это и не важно, и народ надо долбать только > задачами как это делают в MS, а уж что за человек — пофиг, если и свалит > — тут целая очередь новых. Хотя, в маленьких конторах такой формальный > подход хуже проканывает, уход всего одного человека может заметно сказаться.
Задача — повод для разговора (вернее, ее решение, даже неоконченное).
Скажите, а что, я очень сложную задачку привел, что все так
заволновались? Я ведь не просил, например, компилятор написать на
коленке
Здравствуйте, Gorbatich, Вы писали:
G>Не советую копать в этом направлении. Лучше на что-нибудь боле полезное время потрать.
Всякие такие задачи оттачивают мышление. Кроме того, вроде простая задача, а если поглубже в ней разобраться, то можно усвоить много полезного.
Например у меня в подкорке сидело сомнение в целесообразности умножения, но я не обратил на это внимания и мне справедливо указали на то, чем может быть чреват такой подход.
Или опять же, если вернуться к задаче, то почему оптимальней сравнивать элементы массива тройками? Этому ведь есть простое объяснение.
1) Рендеринг.
Отсечение скрытих поверхностей.
Вся помощь, предоставляемая DX заключается в Z-buffer и CullFace. Но это только ОПТИМИЗАЦИЯ отбрасываня ненужных полигонов. Здесь нужно реализовывать такие вещи, как рендер посредством обхода (а в случае создания карт — разбиения) QuadTree(или OcTree), причём зачастую в каждом листе этого дерева реализуется алгоритм BSP+PVS. Или метод порталов, или много ещё чего.
2) Динамика.
а) Скелетная/морфическая анимация — Сплайновая и кватерионная интерполяция.
б) Обработка столкновений с последующей реакцией.
в) RagDoll(это когда трупики так, как надо падают )
3) AI
Ну, здесь, я думаю, даже не стоит ничего объяснять
4) GamePlay
Скриптовый интерпретатор.
Всё это нужно делать САМОМУ! Никакой поддержки со стороны DX или OGL. И это только капля в море геммороя, с которым приходится сталкиваться геймдеверам!
Vogul wrote: > > Pzz>Этого мне не понять! > > Ну как же! Первая производная в экстремуме меняет знак.
Нет, все-таки у физиков-математиков голова устроена не так, как у
простых программистов Мне бы никогда не пришло рассуждать о массиве
целых чисел в терминах производной. Для меня формулировка "локальный
максимум это элемент, который больше своих соседей" совершенно
естественно и напрямую превращается в сравнение с соседями:
if( a[i-1] < a[i] && a[i] > a[i+1] ) ...
И далее совершенно естественно возникает вопрос о диапазоне i, в котором
определены a[i-1] и a[i+1].
> Как раз и сравниваем приращения, поэтому выгодней обрабатывать элементы > массива тройками, чтобы определить, на каком элементе производная сменит > знак.
Вообще говоря, выгоднее бежать по массиву до тех пор, пока разность
между соседями не меняет знак (вернее, не знак, а свойство быть
отрицательной, нулевой или положительной). И только уже в этих точках
разбираться, нашли мы локальный максимум, или нет. Но получающийся
алгоритм будет заметно более сложный и неочевидный.
> Заметьте, что > > a[i+1] — a[i] > 0 тождественно a[i] < a[i+1] > > это как раз и поводит четкую математическую основу под решение задачи, а > такая основа придает уверенность в правильности решения.
Заметил, но для меня это совершеннейшая тавтология
Вы, кстати, никогда не смотрели в сторону функционального
программирования (Haskell, Ocaml, ...)? Посмотрите — Вам это должно
понравиться.
A__>А вообще по поводу уточнения задания... Я просто достаточно с этим шишек набил. Не всегда творчество приносит пользу. При наличии неких разночтений всегда лучше уточнить у заказчика. Иначе потом придётся делать всё заново так, как ему это нравится.
Всякие заказчики бывают. Когда я к одному приставал с вопросами, он мне отвечал: да хрен знает, ты сам что-нибудь придумай, а мы посмотрим. А когда я предъявлял, слышал: Вот! Вот так точно не надо!
Здравствуйте, beroal, Вы писали:
B>То, что вы описали, называется традиция . И не надо обвинять, типа мы всё это придумали. Я это не придумывал. Тех, кто придумал конвеер, давно нет в живых.
"Пошёл старший брат, наступил на грабли — убили его грабли. Пошёл средний брат, наступил на грабли — убили его грабли. Закручинился младший брат, а деваться-то некуда!"
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Pzz, Вы писали:
Pzz>С другой стороны, на мой взгляд программирование, по крайней мере сейчас, все еще слишком сложно для конвеера, и никакие C# не отменяют этого факта. А это позволяет надеяться, что на наш век хватит интересной и высокооплачиваемой работы, требующей нормальной квалификации
Как только программирование можно будет поставить на конвейер, программисты, пишущие код перестанут быть нужны вообще.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Andir, Вы писали: VAB>>многие бы весьма удивились, узнав какой путь после ухода в WriteFile проходит байтик посланный на диск к примеру... A>Чисто ради удивления и из любопытства: какой? вот такой
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.
Помнится, после того как Балмер заявил в 2003 году, что средний девелопер должен получать не более 50к в год, WinFS был убран из Лонгхорна буквально через несколько месяцев и так до сих пор не очухался
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, awod, Вы писали:
A>Здравствуйте, zhora, Вы писали:
Z>>вот какая дискуссия возникла на нижегородском форуме программистов Z>>http://www.nn.ru/biz/forum/software/?do=read&thread=177602&topic_id=3004991 Z>>для справки Калачев- руководитель одной из крупнейших аутсорсинговых компаний Н Новгорода
A>Интересная тема... A>По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить! A>На самом rsdn-е очень часто появлются темы после прочтения которых у молодого специалиста возникает ощущение что всё круто и он сможет со своим не большим набором знаний расчитывать на достойную среднего специалиста ЗП. A>Резюмируя — качество кадров резко ухудшилось по сравнению с тремя-двумя годами ранее
А с другой стороны человек имеющий высшее образование и хоть какие-то мозги имеет как миниумум право получать достаточно денег чтобы снять квартиру(в москве я так понимаю 500 у.е.), что-то есть (200 у.е.) ... В о что-то одеватся — (200 у.е.). Итого в Москве, минимальная зарплата для зеленного новичка должна быть 900 у.е.
Поправте если где-то ошибся в расчетах..
Для Киева Квартира 300 у.е., питание 150 у.е., одежда 150 у.е.... Итого 600 у.е.
Epsilon wrote: > > Если не затруднит, зацените, пожалуста
1. Зачем все эти break/continue?
2. Первый else if относится к внутреннему if'у, а не к внешнему. Вообще,
в таких случаях лучше не искушать судьбу, и использовать фигурные скобки.
3. Вы инкрементируете i по два раза
4. С краями, по-моему, лучше разобраться вне цикла. Код будет чище и
эффективнее.
5. Программа упадет, если первый элемент не является локальным
максимумом: она изящно обойдет всю эту длинную цепочку if'ов, и
попробует обратиться к vec[i-1].
> unsigned int getCountLocalMax(int *vec, const unsigned int n) > { > if (vec == NULL || n < 2) > return 0; > > unsigned int count = 0; > > for (unsigned int i = 0; i < n; i++) > { > if (i == 0) > if (vec[0] > vec[1]) > { > count++; > i++; > continue; > } > > else if (i == n-1) > if (vec[i] > vec[i-1]) > { > count++; > break; > } > > if (vec[i] > vec[i+1] && vec[i] > vec[i-1]) > { > count++; > i++; > } > } > > return count; > } >
Здравствуйте, Gorbatich, Вы писали: >>> Первая 2-ка тоже должна быть локальным экстемумом >>> pzz, это так по вашей постановке задачи ? Pzz>>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В G>Сами дали определение: G>Локальный максимум — такой элемент массива, который больше своих соседей. G>Слева от "2" — нет соседей!!!
Это спорно. На основании исходного задания в этом нельзя быть уверенным.
Vogul wrote: > > Не компилил правда, но задача показалась интересной, в своей простоте. > Просто на обсуждение. Упрощенный вариант, не учитывающий плоские экстемумы.
Условие в if'е больно уж умственное. Что-то спросонья я не могу понять,
чем это лучше чем if( a[i] < a[i+1] && a[i+1] > a[i+2] ).
Кроме того, Ваш вариант не будет работать во всем диапазоне int'а, из-за
переполнения при умножении.
Наверное, Вы математик...
> int max_count(int * a, int size) > { > int count = 0; > > if(size > 2) > { > for(int i = 0; i < size — 2; i++) > { > if(((a[i+1] — a[i])*(a[i+2] — a[i+1]) < 0) && ((a[i+1] — a[i]) > 0)) > count++ > } > return count; > }else > { > return 0; > } > } > > > > Если ввести сохраняемую дельту, то можно и плоские экстремумы > находить(про них правда ничего не сказано), да проблема с граничными > условиями решается сама собой.
Здравствуйте, Pzz, Вы писали:
Pzz>Нет, все-таки у физиков-математиков голова устроена не так, как у Pzz>простых программистов Мне бы никогда не пришло рассуждать о массиве Pzz>целых чисел в терминах производной. Для меня формулировка "локальный Pzz>максимум это элемент, который больше своих соседей" совершенно Pzz>естественно и напрямую превращается в сравнение с соседями:
Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ...
Pzz>И далее совершенно естественно возникает вопрос о диапазоне i, в котором Pzz>определены a[i-1] и a[i+1].
А потом, как уже говорили, возникает вопрос о поведении алгоритма на границах.
Допустим, что и на границах алгоритм должен находить максимумы,
следовательно значения за пределами массива равны минус бесконечность.
Если рассматривать приращения, то, в этом случае, достаточно лишь определить на границах любое отрицательное приращение.
Pzz>Вообще говоря, выгоднее бежать по массиву до тех пор, пока разность Pzz>между соседями не меняет знак (вернее, не знак, а свойство быть Pzz>отрицательной, нулевой или положительной). И только уже в этих точках Pzz>разбираться, нашли мы локальный максимум, или нет. Но получающийся Pzz>алгоритм будет заметно более сложный и неочевидный.
Здесь вы рассуждаете, по сути, в терминах производных.
>> Заметьте, что >> >> a[i+1] — a[i] > 0 тождественно a[i] < a[i+1] >> >> это как раз и поводит четкую математическую основу под решение задачи, а >> такая основа придает уверенность в правильности решения.
Pzz>Заметил, но для меня это совершеннейшая тавтология
Это тавтология до тех пор, пока мы рассмотриваем одномерный массив целых чисел.
Нормальные люди в Москве на работу, не связанную с поездками, представительскими функциями и если не из за города, ездят на метро и ходют пешком — это гороаздо убоднее и выгоднее, чем торчать в пробках.
Ну и если понтовые комплексы не жмут, конечно.
У нас в совке красные руководители — основная проблема. Казалось бы логично задуматься, как повысить отдачу от использования труда программистов, не распылять силы, а сосредоточиться на ключевых направлениях и т.д. В общем: "А я мента узнаю по походке. Он брючки носит на галифе..."
Здравствуйте, Melo, Вы писали:
M>Абсолютно не согласен. У огромного числа аутсорсеров по всему миру нет и никогда не было "собственного продукта". И ничего — живут себе нормально. Дело абсолютно не в этом.
А в чем? В возросших аппетитах программеров?
Научи, как поделить пирог на $2000, если его делят
трое и каждый мечтает о $3000
И еще...
Почему огромное число аутсорсеров расположены именно в бедных странах?
В общем у стандартных аутсорсеров нету дохода.
Есть фиксированная ставка, которая не зависит от прибыли, полученной заказчиков.
Это и объясняет невозможность существенного роста зарплат у аутсорсеров.
Знаешь когда лучше всего работать у аутсорсеров?
Когда в стране полная задница, типа как в 98-м году.
А если ситуация в стране улучшается, то привлекательность аутсорсеров (в смысле зарплат) падает.
M>Утверждаете, что качество софта сделанного в России является лучшим в мире? Причем настолько, что за него готовы платить больше? Ох, не уверен...
В "интелектуальном" софте думаю да. По той причине, что конкурентов(которые смогут реализовать туже функциональность) мало
ttoorrmmoozz wrote: > > A>Простые задачки на графы и сортировки не могут решить! > Да в гробу я , пардон , видал ваши задачки про графы > Квалификацию программиста нужно оценивать по опыту и проектам , а не по > алгоритмам из книжки кнута
Ну это смотря для чего этого программера нанимают. Если чтобы заказчику
голову морочить, то нужен опыт, измеряемый в годах, проекты и
сертификаты. А если чтобы программы писать, то хотелось бы посмотреть
сначала, на что этот программист на самом деле способен.
Я как-то принимал собеседование у парня, который производил ну очень
хорошее впечатление. И говорил бойко и интересно, и рассуждал здраво, и
куча проектов за плечами. Но вот простейшую задачку решить не смог. Мы
его не взяли.
Я думаю, такое получается у людей, которые много подковыривают в чужих
проектах, но своего собственного кода пишут мало. Но надо понимать, что
это не программирование, а какая-то другая профессия.
Anatolix wrote: > > Pzz>Соотстветственно, живя в России, вполне можно оказаться в core team > Pzz>какой-нибудь западной компании, и заниматься чем-нибудь более > Pzz>интересным, чем писать драйвера на потоке. > > Маленькая поправка: ВСЮ разработку выводят компании у которых написание > софта не основная ключевая компетенция, > не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания > не отдаст в oursource свою ключевую компетенцию. > Google или Microsoft никогд разработку не заоутсорсят. (Google > попыталась, но не аутсорсом, а сделав свой R&D центр в индии. > По достоверным слухам потерпела неудачу)
Опровергающий пример: Skype пишет небольшая команда в Эстонии.
Вообще, бизнес-модель современного американского IT-стартапа выглядит
примерно так: менеджмент и секретарша в Америке, деньги — где
безопаснее, разработка — Индия/Россия/...
Поскольку конкуренция на региональном рынке кадров высокая, то средняя заработная плата разработчиков ПО постепенно увеличивается, — это одна из больных тем. «Тэлма» постоянно выступает инициатором встреч и переговоров с коллегами-конкурентами и местными властями по урегулированию этой ситуации...
По-моему, на юридическом языке это называется монопольный сговор. Только государство зачем приплели?
Кстати, вспомнил про подобную вещь по Украине: здесь
Здравствуйте, AmSpb, Вы писали:
AS>Представим ситуацию, AS>1. Программист думает неделю над своим тупым алгоритмом и в конце недели реализовывает не самую эффективную его версию. AS>2. Программист знает, где искать, быстро находит в инете эффективный алгоритм и встраивает его в проект, пусть на это ушел 1 день. AS>Имея эти две ситуации, как вы думаете, какая из них ситуация выгодна бизнесу, а какая убыточна?
Если вот так тупо на них смотреть, то, конечно, вторая. Только обе ситуации надуманные.
Во1ых, речь о собеседовании шла. На нем любой алгоритм проканает, тут важно понять что чел умеет думать сам В ПРИНЦИПЕ.
Во2ых, "эффективный" алгоритм совершенно не обязательно реально эффективен. В инете миллионы обезьян, думающих что они — программеры. И ты/я — далеко не худшие в этом мире. И алгоритмы просто так не валяются, это еще надо суметь понять что ищешь и понять что ты нашел именно что искал.
В3их, алгоритм еще надо суметь быстро прикрутить к своим данным. Это очень круто когда алгоритм в виде STL подается. А если нет?
AmSpb wrote: > > Pzz>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать > Pzz>культурность с соблюдением закона или норм общественной морали. Вы-то > Pzz>сами все налоги платите? Если нет, Вы тоже уголовник > > Тогда, все становится понятно, для вас культурный человек это тот, кто > умеет читать-писать и кушать ножем и вилкой. Ну не надо же себя так > ограничивать в понимании культурного человека, надо дальше развиваться...
Нет, вышеперечисленное отличает бомжа от не-бомжа. Культурному человеку
(после того, как он научится читать, писать и пользоваться столовыми
приборами) не помешало бы еще научиться с другими людьми вежливо
разговаривать, придерживаясь темы беседы, и не переходя на личности.
Здравствуйте, aik, Вы писали:
aik>Зря. Программер должен быть способен безо всякой доки налабать хоть и очень тупой, но рабочий алгоритм на любой случай. Если чел на это не способен, то книжки ему ни разу не помогут.
Хм... странная т.з.
Я думаю этого сам Кнут не сможет, "налабать на любой случай".
Программер широкое понятие.
Алгоритмы надо спрашивать там, где на их понимании основана вся работа. Тем более, что алгоритмов миллион штук и разновидностей и подразновидностей.
Здравствуйте, Anatolix, Вы писали:
A>Маленькая поправка: ВСЮ разработку выводят компании у которых написание софта не основная ключевая компетенция, A>не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания не отдаст в oursource свою ключевую компетенцию. A>Google или Microsoft никогд разработку не заоутсорсят. (Google попыталась, но не аутсорсом, а сделав свой R&D центр в индии. A>По достоверным слухам потерпела неудачу)
еще одно маленькое дополнение:
И последнее — еще раз напомню фразу Гейтса You Can Outsource Everything Except Your Core Business.
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.
Здравствуйте, Anatolix, Вы писали:
A>... Для того чтобы делать его с надлежащим качеством нужны не суперкрутые программисты(там просто нет сложных задач), а правильный процесс разработки(хотя бы человеческое тестирование выпоненное не гоблином, а грамотным QA повышает качество настолько, что никакая крутость программистов не поможет).
Вопрос: какой ценой?
IMHO грамотный QA конечно позволяет "выпустит" наружу только качественный продукт, но чем выше квалификация программистов, тем меньше раундов тестирования придется сделать.
Остается просто посчитать стоит раунд тестирования
Здравствуйте, sunshine, Вы писали:
S>А вот, интересно, если не секрет, на какую зарплату искали чела при помощи этих тестов? Это без подколки, просто из познавательного интереса задаю вопрос.
Задачи такого рода предназначены для начального отсева народа, когда надо понять стоит с кандидатом вообще дело иметь или нет.
Здравствуйте, Gorbatich, Вы писали:
G>Здравствуйте, Sh1ZoID, Вы писали:
SZI>>нибудь интеллектуальным анализом. Человек, который не SZI>способен отсортировать список, в таком проекте просто будет SZI>простаивать. Нахрена мне такой не нужен!?!?
G>Самое интересное что в твоем Гейм Дев ничего кроме умножения матариц поворота нету )
В юмор!
А про физические процессы, дык там все формулы 9 класса )
SZI> Интересная точка зрения... SZI> Полностью согласен, если речь идёт ТОЛЬКО о проектах а-ля Формочки+SQL. А как насчёт, например, GameDev? Или вы считаете, что в DX9.0 ВСЕ возможные алгоритмы уже написаны за нас? SZI> Я, например, никогда не могу предположить, каким проектом мне придётся заниматься завтра. Может это будет проект, связанный с моделированием физических процессов или каким-нибудь интеллектуальным анализом. Человек, который не способен отсортировать список, в таком проекте просто будет простаивать. Нахрена мне такой не нужен!?!?
Ага, первый аргументированный ответ. Вот тут я с Вами полностью согласен. Да, я именно формочки + SQL умею и на них зарабатываю. В геймдев мне никогда не светит, там да — там надо алгоритмы колбасить. Только ведь из исходных постов было не ясно — куда же должен попасть человек со знанием графов. А мне на собеседованиях на роль MSSQL девелопера сортировки предлагали писать и списки реверсировать. Это — адекватно? Я должен дальше сидеть и с уважительным видом слушать этот бред из-за которого я пол Москвы проехал? В каждой избушке свои игрушки, но думать ведь надо о чем на собеседованиях спрашиваешь у человека и не надо думать что у всех вежливости хватит на то чтобы отсидеть пару часов двигая биты в байте, когда тебя берут отчеты в кристале рисовать.
SZI>этого дерева реализуется алгоритм BSP+PVS. Или метод порталов, или много ещё чего.
Ну и где _сложная_ _математика_ в BSP алгоритме? Посчитать нормаль, скалярное и векторное произведения?
Имхо, математики тут особо нет, просто хорошо нужно понимать сам алгоритм. SZI>2) Динамика. SZI> а) Скелетная/морфическая анимация — Сплайновая и кватерионная интерполяция.
Операции с кватернионами (кстати, они есть в dx sdk) не сложнее операций с матрицами.
В сплайнах особой сложности не вижу.
К тому же все это (выгрузка анимации, и интерполяция ее) написано один раз, возможно, кем-то одним из разработчиков, остальные люди вряд ли знают все тонкости сплайновых преобразований.
SZI> б) Обработка столкновений с последующей реакцией. SZI> в) RagDoll(это когда трупики так, как надо падают )
Часто используют соответствующие движки — от tokamak'а, например, до havok.
SZI> Скриптовый интерпретатор.
lua
SZI> Всё это нужно делать САМОМУ! Никакой поддержки со стороны DX или OGL.
Есть куча middleware.
Я вот тоже не понимаю, откуда эта шумиха о "сверхсложных алгоритмических задачах в геймдеве" — на многие вещи есть сторонние движки и библиотеки.
А если чего нет (или не могут купить), так такую работу делают 1-2 человека из команды разработчиков.
Или у вас в команде _каждый_ разработчик в состоянии написать скриптовый интерпретатор? Если да, то почему же зарплаты в геймдеве низкие и в массе своей черно-темно-серые?
Здравствуйте, Gorbatich, Вы писали:
Pzz>>Никого я здесь не провOцирую. И тем более, не провАцирую.
G>Читали правила?
G>Не допускается проявление грубого или неуважительного... G>указывать на орфографические и синтаксические ошибки и т. д.
Здравствуйте, Sash_xp, Вы писали: S_>Гм, я так понял господин Калачев предлагает сговор фирм с целью уменьшения оплаты труда программистов? Ну во-первых, это незаконно, во-вторых программисты "проголосуют ногами" — уедут в другие города. Сговориться на всей России — программисты снова потянуться за рубеж. Сговориться всем миром? Тогда в эту отрасль пойдет ещу меньше талантливых людей и нехватка кадров станет еще более ощутимой.
поддерживаю. товарищ калачёв решил попытаться воспроизвести социализм в отдельно взятой конторе. очень часто сменой места можно получить больше.
Pzz>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В Pzz>реальной жизни заметить недосказанность в постановке задачи бывает сложнее.
Pzz>Какой ответ — не важно. Важно, что он должен быть.
Вообще то, у меня при прочтении задачки мгновенно возникли сразу несколько уточняющих вопросов, без которых я и не взялся бы за решение:
— Оператор сравнения, ">", или ">=" ?
— Учитывать ли серии локальных максимумов, если оператор ">=" ?
— Что делать с краями массива: исключить их из кандидатов на локальные максимумы, либо рассчитывать на "виртуальное" значение несуществующего соседа
— Принять "виртуальное" значение равным соседнему элементу (например, массив 5,4,6,8 дополняем до (5),5,4,6,8), либо противоположному краевому элементу (тот же массив дополняется до (8),5,4,6,8)
— Нужно ли решение только для одномерных массивов, или для произвольномерных BTW, "это был бы номер" (с).
Pzz>Соотстветственно, живя в России, вполне можно оказаться в core team Pzz>какой-нибудь западной компании, и заниматься чем-нибудь более Pzz>интересным, чем писать драйвера на потоке.
А драйвера-то тут причем? (Всегда считал такие задачи одними из самых сложных, требующих немалой квалификации).
Glоbus wrote: > > Pzz>Пусть это оценивают знатоки C++ > > Pzz>Я к их числу не принадлежу... > > Не понял — а как же вы, уважаемый, оцениваете решения, предложенные > кандидатами?
Ну хорошо, если Вы так настаиваете, я оценю Вашу программу. Но оценю не
очень высоко...
1. Я просил подсчитать локальные максимумы в массиве. Не в C++'ном
контейнере, а именно в массиве. Т.е., задание понято неверно.
Теперь, раз уж Вы сделали обобщенное решение, давайте поговорим о нем.
2. Ваше решение требует прямой "ссылки" на последний элемент
последовательности. Это очень жесткое ограничение. Чтобы найти последний
элемент, в общем случае требуется просмотреть последовательность до
конца, а потом перемотать ее в начало. Это не всегда возможно, и не
всегда легко. Например, Ваш алгоритм невозможно использовать для
последовательности чисел, которые приходят из сети, и которых слишком
много, чтобы удерживать их в памяти. Содержательно Вам это ограничение
не нужно, задача решается путем однократного просмотра
последовательности от начала до конца.
Интересно, что человеку, который ничего не понимает в C++'ных
итераторах, но хоть немного понимает в алгоритмах, это бросается в глаза
сразу. Из этого можно сделать вывод, что компутерная наука еще не
достигла такого состояния, когда можно собирать программы из готовых
компонентов, не задумываясь, что у этих компонентов внутри (и достигнет
ли? Не является ли идея компонентного программирования вредной иллюзией?).
4. На ту же тему — Вам нужно уметь отматывать последовательность назад
(--last_it). Не для всякой последовательности это возможно или легко, и
это тоже совершенно избыточное требование.
5. Насколько я понял, val_it должен ссылаться на текущий элемент
последовательности, prev_it — на предыдущий, и next_it — на следующий за
ним. Однако prev_it Вы инкрементируете только один раз, в самом начале.
6. У Вас слишком много переменных, без которых можно было бы обойтись.
Вы заводите переменную nCurr, только для того, чтобы (неправильно!)
контролировать, когда Вы можете инкрементировать prev_it, и переменную
last_it, чтобы контролировать, докуда можно инкрементировать next_it.
Обе эти переменные излишни, и только усложняют код.
7. Ваша программа сломается на последовательности из одного элемента:
++next_it вначале программы сделает next_it равным end_it, после чего Вы
попробуете воспользоваться значением *next_id.
8. Вообще, Ваше решение чрезмерно усложнено. Такой код трудно понимать,
и трудно поддерживать.
СШ>Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские.
Про Google можно подробнее? Неужели С. Бирна можно всерьез русским считать
Или, по-твоему, "русскость" — это с рождения, в крови так сказать, и никакими иноземными образованиями и университетами это не изменить
Здравствуйте, Слава Шевцов, Вы писали:
СШ>Здравствуйте, ggg, Вы писали:
СШ>>>Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские.
ggg>>Про Google можно подробнее? Неужели С. Бирна можно всерьез русским считать
СШ>Брин родился и вырос в Москве, в США он обучался в университете.
Тезка, не уподобляйся нашим журналистам. Ему и так икается там неслабо =)
1) Он эмигрировал с родителями в возрасте 6 лет.
2) По национальности он еврей.
Гениально! Только что я оценил смысл и прелесть простых задачек. По ним сразу можно увидеть что:
человек промышленного софта не писал;
в команде не работал;
проблемами разработки не интересовался;
с чужим кодом не разбирался.
Т.к. человек пишет качественный код независимо от сложности задачи, а в силу привычки.
- Простите, профессор, не пса, а когда он уже был человеком.
— То-есть он говорил? Это еще не значит быть человеком. (с) Булгаков
Ничего себе нагадили в ветке. Праздники же . Сам только от новогонего похмелья отошел
_>Гениально! Только что я оценил смысл и прелесть простых задачек. По ним сразу можно увидеть что: _>человек промышленного софта не писал; _>в команде не работал; _>проблемами разработки не интересовался; _>с чужим кодом не разбирался.
Какой Вы умный!!!! Но вот ни в один пункт не попали
_>Т.к. человек пишет качественный код независимо от сложности задачи, а в силу привычки.
Здравствуйте, execve, Вы писали:
E>Здравствуйте, awod, Вы писали:
A>>Интересная тема... A>>По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить!
E>Не берите таких людей на работу — и они вымрут сами по себе.
Возникнет новая формация программистов которая умеет работать с графами и делать сортировку, но не умеет делать все остальное. Вообще такими "студенческими" задачами как раз студентов и хорошо искать.
A>>На самом rsdn-е очень часто появлются темы после прочтения которых у молодого специалиста возникает ощущение что всё круто и он сможет со своим не большим набором знаний расчитывать на достойную среднего специалиста ЗП. A>>Резюмируя — качество кадров резко ухудшилось по сравнению с тремя-двумя годами ранее.
E>На самом деле не качество кадров резко ухудшилось, а появилась возможность получать сравнимые с западом деньги. E>Поэтому работодатели, которые 2-3 года назад находили за $NN хороших работников, сейчас их найти не могут, т.к. они стали дороже стоить. E>А за $NN теперь работают те, кто уровнем сильно ниже.
А жизнь вообще дорожает. С чего Вы взяли, что зарплаты должны отставать. К примеру я сейчас снимаю квартиру почти в 3 раза дороже, чем это делал 5 лет назад. Примерно в 2-3 раза подорожало все! Так что аргументов почему СЕГОДНЯ специалист должен стоить ВЧЕРАШНИЕ деньги я не вижу.
E>Вообще ситуация забавная. E>Работодатели декларируют, что IT всё менее и менее выгодно. E>Но, тем не менее, из IT-бизнеса почему-то не уходят. E>Хотя казалось бы, если ваш бизнес из-за высоких зарплат становится невыгодным — закрывайтесь и переходите в другую отрасль. E>Там заработаете больше. E>А здесь количество рабочих мест сократится, спрос на рынке труда будет превышать предложение и цены на рабочую силу упадут. E>Но нет, наоборот, почему-то появляется всё больше и больше вакансий. E>Видимо кто-то где-то лукавит.
Здравствуйте, k., Вы писали:
k.>можно тоже пару слов добавить?
k.>дело совсем не в сложности Вашей задачи. дело в другом. сужу исключительно по себе. k.>задача не трудная, просто если с какой либо областью не сталкиваешся долгое время — она само собой забывается.
Простите, а из какой конкретно области данная задача? Мне кажется, тут элементарное понимание работы с массивами и функциями. Ну и парочка подводных камней на сообразительность. Разве есть такие направления в программировании, где эти знания не являются обязательными?
Здравствуйте, lynn-lynn, Вы писали:
LL>Интересно, это только с возрастом проходит или как? Помню когда-то я тоже людей собеседовал по принципу — может ли он мне сортировку написать. Вы ребята поймите, это никак не относится к тому — сможет этот чел проект сдать или нет. А насчет вопросов на собеседовании — если меня спрашивают — как посчитать производную или почему небо синее — я встаю и ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с несформировавшимся мировоззрением. Для меня лично важно — не встанет ли человек в один прекрасный момент и не уйдет с проекта, как он на овертаймы среагирует и вообще такие вот вещи — а не то — умеет он в середину списка элементы добавлять или нет. А если по себе мерять — вот я умею сортировку писать — а он нет — то, ребята, вам пожалуй в детский сад неплохо бы. К бизнесу алгоритмы никакого отношения не имеют.
Видишь ли, в чем проблема. Тут обсуждается прием на работу не бизнесменов, а программистов.
А программисты, в большинстве своем, должны уметь писать код.
Коммуникабельность и прочие социальные навыки, конечно же, важны. Но если пренебречь способностями в основной области, то тоже получается абсурд — у нас этот сотрудник будет сидеть ночами без малейших возражений, культурно себя вести и проявлять неподражаемую лояльность к компании. А толку? Если он, простите, поиск элемента в массиве неделю кодирует — пусть и молча и по ночам. Проект-то стоит! Как-то хочется чтобы он просто взял и написал этот поиск элемента за полчаса. Пусть он уже домой идет со спокойной совестью. А не напрягает QA отдел, прогоняя все новые глючные версии этого поиска через полный цикл тестирования.
Вообще, в программисте должно быть прекрасно всё:
— умение писать код. Просто писать код без ошибок и быстро.
— умение отлаживать ошибки, независимо от того, кем они были сделаны
— умение писать документацию. Естественно, умение читать документацию тоже
— владение основными используемыми инструментами разработки
— умение общаться в команде, без нытья и сваливания всего на других
— умение общаться за пределами команды, не портя репутацию компании
— умение общаться с заказчиком, гибкость в понимании требований. Этим заказчиком может быть кто угодно — от тим лидера до президента компании-инвестора.
— умение проектировать софт
— умение вести исследовательскую работу, готовность решать задачи, для которых нет готовой книжки с рецептами
А пока что большинство участников дискуссии спорят на уровне "что важнее для велосипедиста — руки или ноги".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Вообще, в программисте должно быть прекрасно всё: S>- умение писать код. Просто писать код без ошибок и быстро. S>- умение отлаживать ошибки, независимо от того, кем они были сделаны S>- умение писать документацию. Естественно, умение читать документацию тоже S>- владение основными используемыми инструментами разработки S>- умение общаться в команде, без нытья и сваливания всего на других S>- умение общаться за пределами команды, не портя репутацию компании S>- умение общаться с заказчиком, гибкость в понимании требований. Этим заказчиком может быть кто угодно — от тим лидера до президента компании-инвестора. S>- умение проектировать софт S>- умение вести исследовательскую работу, готовность решать задачи, для которых нет готовой книжки с рецептами
почему-то твой пост вызывает во мне ассоциации с постами горе-кадровиков, публикующих в объявлении о вакансии длинющий список требований к кандидату.
вот только мизерной з/платы в твоем сообщении не хватает для полной идентичности с такими объявлениями.
Здравствуйте, Demiurg, Вы писали:
D>Здравствуйте, zhora, Вы писали:
Z>>вот какая дискуссия возникла на нижегородском форуме программистов Z>>http://www.nn.ru/biz/forum/software/?do=read&thread=177602&topic_id=3004991 Z>>для справки Калачев- руководитель одной из крупнейших аутсорсинговых компаний Н Новгорода
D> Не смог прочитать — форум нечитаемый какой-то...
да неа..все нормально там..подожди подольше, просто постов там много, уж больно больную тему затронул ))
цитата из интервью Калачева
"Поскольку конкуренция на региональном рынке кадров высокая, то средняя заработная плата разработчиков ПО постепенно увеличивается, — это одна из больных тем. «Тэлма» постоянно выступает инициатором встреч и переговоров с коллегами-конкурентами и местными властями по урегулированию этой ситуации, ведь процесс рост зарплат программистов может быть бесконечным."
B>Вывод, покуда у компании не будет своего собственного продукта,
B>зарплаты всегда будут ограничены.
B>Если руководство мечтает о больших прибылях,
B>то надо думать о собственном продукте.
Абсолютно не согласен. У огромного числа аутсорсеров по всему миру нет и никогда не было "собственного продукта". И ничего — живут себе нормально. Дело абсолютно не в этом.
Здравствуйте, Melo, Вы писали:
M>Действительно, если сохранится динамика роста зарплат, то это приведет к тому, что российские IT-компании станут просто неконкурентноспособными по сравнению с индусами и прочими китайцами.
Основная ошибка в данных утверждениях, что в качестве единственного фактора учитывается зарплата. Для западного заказчика есть еще куча других факторов, из-за которых аутсорс не будет перенесен в Китай и Индию, даже если у нас будут средне-европейские зарплаты (а они уже вплотную к ним начинают подбираться). И это не мое мнение, а мнение "западного заказчика". Выше европы зарплаты уже навряд вырастут, ну да и ладно.
O>Основная ошибка в данных утверждениях, что в качестве единственного фактора учитывается зарплата. Для западного заказчика есть еще куча других факторов, из-за которых аутсорс не будет перенесен в Китай и Индию, даже если у нас будут средне-европейские зарплаты (а они уже вплотную к ним начинают подбираться). И это не мое мнение, а мнение "западного заказчика". Выше европы зарплаты уже навряд вырастут, ну да и ладно.
Допустим, у нас средне-европейские зарплаты. В этом случае у заказчика есть три варианта:
1. Аутсорсить в Индию/Китай
2. Аутсорсить в Россию
3. Не аутсорсить вообще, т.е. разрабатывать софт у себя в Европе/США.
Назовите мне причины по которым заказчик выберет вариант #2?
LM>В "интелектуальном" софте думаю да.
По той причине, что конкурентов(которые смогут реализовать туже функциональность) мало
Я не совсем понимаю, что имеется в виду под "интеллектуальным" софтом. Может примеры приведете?
Я очень-очень-очень сильно сомневаюсь в изначальном "интеллектуальном" преимуществе российских специалистов по сравнению с европейскими/американскими. Но допустим, это так. Даже в этом случае мне очевидно — каким бы сложным софт ни был, от конечного программера-винтика в итоге зависит очень мало. Ядро любой системы проектируется и разрабатывается всегда очень узким кругом лиц. И "интеллектуальность" софта зависит именно от них. Так вот если у нас будут средне-европейские зарплаты, то выгоднее будет вывезти в Европу/Индию этих самых "гуру", а в качестве девелоперов использовать местную рабсилу.
Здравствуйте, Melo, Вы писали:
M>Здравствуйте, LuciferMoscow, Вы писали: M>
LM>>В "интелектуальном" софте думаю да.
M>По той причине, что конкурентов(которые смогут реализовать туже функциональность) мало
M>Я не совсем понимаю, что имеется в виду под "интеллектуальным" софтом. Может примеры приведете?
Антивирусы, Abbyy Finereader(не out-source, но все же)
M>Я очень-очень-очень сильно сомневаюсь в изначальном "интеллектуальном" преимуществе российских специалистов по сравнению с европейскими/американскими.
Различные системы образования. В Штатах готовят "специалистов по правой нозре", у нас "ухо-горло-носа". Эти знания менее глубокие в узкоспециализированной области, но гораздо более широкие. На этом и стоит играть M>Но допустим, это так. Даже в этом случае мне очевидно — каким бы сложным софт ни был, от конечного программера-винтика в итоге зависит очень мало. Ядро любой системы проектируется и разрабатывается всегда очень узким кругом лиц. И "интеллектуальность" софта зависит именно от них. Так вот если у нас будут средне-европейские зарплаты, то выгоднее будет вывезти в Европу/Индию этих самых "гуру", а в качестве девелоперов использовать местную рабсилу.
18-летних гуру не бывает. А более старшие люди уже обзавелись семьей. И менять место жительство они не горят.
НО: в целом согласен, большая часть out-source в России умрет
Melo wrote: > > Допустим, у нас средне-европейские зарплаты. В этом случае у заказчика > есть три варианта: > > 1. Аутсорсить в Индию/Китай > 2. Аутсорсить в Россию > 3. Не аутсорсить вообще, т.е. разрабатывать софт у себя в Европе/США. > > Назовите мне причины по которым заказчик выберет вариант #2?
1. Меньшая разница в культуре — проще договариваться, и вообще понимать,
что происходит
2. Наличие русских людей в менеджменте заказчика (соответственно,
наличие индусов или китайцев будет тянуть одеяло в сторону индии или китая)
3. Доступность более квалифицированных кадров
Melo wrote: > > Утверждаете, что качество софта сделанного в России является лучшим в > мире? Причем настолько, что за него готовы платить больше? Ох, не уверен...
Anatolix wrote: > > В большей части софта который заказывают наружу нет никакого rocket > science, т.е. это абсолютно типовой софт. Для того чтобы делать его с > надлежащим качеством нужны не суперкрутые программисты(там просто нет > сложных задач), а правильный процесс разработки(хотя бы человеческое > тестирование выпоненное не гоблином, а грамотным QA повышает качество > настолько, что никакая крутость программистов не поможет).
В Америке сейчас явная тенденция весь девелопмент выводить в страны
третьего мира, а не только багфигсинг и суппорт.
Соотстветственно, живя в России, вполне можно оказаться в core team
какой-нибудь западной компании, и заниматься чем-нибудь более
интересным, чем писать драйвера на потоке.
Melo wrote: > > "интеллектуальность" софта зависит именно от них. Так вот если у нас > будут средне-европейские зарплаты, то выгоднее будет вывезти в > Европу/Индию этих самых "гуру", а в качестве девелоперов использовать > местную рабсилу.
Melo wrote: > > Путаете частное с общим. Какой процент всемирно известных антивирусных > программ пишется в России? Никто не спорит с тем, что в России могут > быть (и есть) отдельные успешные IT-компании, но говорить о каком-то > принципиальном преимуществе нашего IT-бизнеса все ж не приходится.
Надо, наверное, сравнивать не вообще, а по отношению к тому, сколько
вообще программистов работает в России, и сколько — в других странах.
Кроме того, не про все программы так уж легко узнать, где они делаются.
Вот где, например, на этом сайте написано, что программы на самом деле
пишутся в России?
LM>>НО: в целом согласен, большая часть out-source в России умрет
M>Ну и я о том же...
Дело в том, что это не хорошо и не плохо. out-source свое дело сделал(создал программистов). А без работы народ не останется. Встанут прооблемы автоматизации российских компаний и это индусам пока отдавать не собираются. Часть фирм сменит спецмализацию, часть умрет. Но это жизнь.
Pzz>Я думаю, такое получается у людей, которые много подковыривают в чужих Pzz>проектах, но своего собственного кода пишут мало. Но надо понимать, что Pzz>это не программирование, а какая-то другая профессия.
Т.е. строитель должен уметь изготавливать цемент, кирпич, а только потом строить из него дом ?
Нет, не так. Строитель берет готовые блоки и строит дом.
AmSpb wrote: > > Pzz>Я думаю, такое получается у людей, которые много подковыривают в чужих > Pzz>проектах, но своего собственного кода пишут мало. Но надо понимать, что > Pzz>это не программирование, а какая-то другая профессия. > > Т.е. строитель должен уметь изготавливать цемент, кирпич, а только потом > строить из него дом ? > Нет, не так. Строитель берет готовые блоки и строит дом.
Ну, если мы приравниваем работу программистов к работе рабочих на
стройке, то да, Вы правы. Рабочий не обязан даже знать, какая марка
цемента к чему подходит — что на стройку завезли, тем он и пользуется.
Здравствуйте, ttoorrmmoozz, Вы писали:
A>>Простые задачки на графы и сортировки не могут решить! T> Да в гробу я , пардон , видал ваши задачки про графы T>Квалификацию программиста нужно оценивать по опыту и проектам , а не по алгоритмам из книжки кнута
Квалификацию программиста по проекту не оценишь, потому что где-то точно наврет. Это ж рассказ в свободной форме. А про графы — если чел настолько неумен, что не может решить и простой задачи с графом, а вместо этого сразу бычит, то и нафиг такой вообще нужен.
Здравствуйте, Gorbatich, Вы писали:
G>Здравствуйте, Pzz, Вы писали: G>Amspb прав. G>Зачем голову забивать лажей, когда везде валяются заготовки типа qsort(). Не копаюсь в этих вещах принципиально. G>Это тоже самое, что спросить студента 5 курса, что такое интеграл?
Определение интеграла или попросить посчитать интеграл? Я и сейчас скажу. 5-ый курс уже в прошлом
Здравствуйте, Pzz, Вы писали:
Pzz>2. Наличие русских людей в менеджменте заказчика (соответственно, Pzz>наличие индусов или китайцев будет тянуть одеяло в сторону индии или китая)
Здравствуйте, Pzz, Вы писали:
Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. Pzz>Локальный максимум — такой элемент массива, который больше своих соседей.
Какаято неправдоподобная ситуация ... Может он после того что вы его решить попросили просто забил ? и в дурочку свалял ?
execve wrote: > > Pzz>2. Наличие русских людей в менеджменте заказчика (соответственно, > Pzz>наличие индусов или китайцев будет тянуть одеяло в сторону индии или > китая) > > И много их, русских-менеджеров в US?
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Pzz, Вы писали:
Pzz>>Подсчитать количество локальных максимумов в массиве целых чисел. Pzz>>Локальный максимум — такой элемент массива, который больше своих соседей.
M>Какаято неправдоподобная ситуация ... Может он после того что вы его решить попросили просто забил ? и в дурочку свалял ?
Вполне может быть. К нам приходили студенты которые не могли описать (не реализовать) алгоритм по поиску средней длины слов в строке.
minorlogic wrote: > > Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. > Pzz>Локальный максимум — такой элемент массива, который больше своих > соседей. > > Какаято неправдоподобная ситуация ... Может он после того что вы его > решить попросили просто забил ? и в дурочку свалял ?
А Вы сами попробуйте решить, а я скажу Вам, сколько Вы сделали ошибок
Здравствуйте, awod, Вы писали:
A>Если он не ответит — значит зря он пошёл учиться. Значит человек занимает НЕ СВОЁ место.
Мне интересно, а зачем нужно знать, что такое интеграл, если он у работодателя в работе не применяется, а делаются обычные бизнес-проекты(SQL, C++, Java, UNIX).
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Pzz, Вы писали:
Pzz>>Подсчитать количество локальных максимумов в массиве целых чисел. Pzz>>Локальный максимум — такой элемент массива, который больше своих соседей.
M>Какаято неправдоподобная ситуация ... Может он после того что вы его решить попросили просто забил ? и в дурочку свалял ?
Я вот тоже думаю, странно как-то.
Или в этой задаче какой-то суровый под..бон сокрыт, сходу невидимый?
>> Т.е. строитель должен уметь изготавливать цемент, кирпич, а только потом >> строить из него дом ? >> Нет, не так. Строитель берет готовые блоки и строит дом.
Pzz>Ну, если мы приравниваем работу программистов к работе рабочих на Pzz>стройке, то да, Вы правы. Рабочий не обязан даже знать, какая марка Pzz>цемента к чему подходит — что на стройку завезли, тем он и пользуется.
Здравствуйте, Anatolix, Вы писали:
A>Google или Microsoft никогд разработку не заоутсорсят. (Google попыталась, но не аутсорсом, а сделав свой R&D центр в индии. A>По достоверным слухам потерпела неудачу)
AmSpb wrote: > >>> Т.е. строитель должен уметь изготавливать цемент, кирпич, а только потом >>> строить из него дом ? >>> Нет, не так. Строитель берет готовые блоки и строит дом. > > Pzz>Ну, если мы приравниваем работу программистов к работе рабочих на > Pzz>стройке, то да, Вы правы. Рабочий не обязан даже знать, какая марка > Pzz>цемента к чему подходит — что на стройку завезли, тем он и пользуется. > > Не мы, а Вы.
>> Pzz>Ну, если мы приравниваем работу программистов к работе рабочих на >> Pzz>стройке, то да, Вы правы. Рабочий не обязан даже знать, какая марка >> Pzz>цемента к чему подходит — что на стройку завезли, тем он и пользуется. >> >> Не мы, а Вы.
Pzz>Я-то почему?
Я знаю, почему вы к себе обращаетесь во множественном числе.
Вы в институт пошли учиться для чего?
Для человаека которые Вам его задал, дураком будете Вы (ничего личного). И дело не в том какой Вы курс закончили, а в том насколько человек хорошо умеет учиться. Именно этому нас всех учат в институтах. И если человек закончивший ВУЗ не может ответить на этот вопрос — зря он потратил 5-6 лет в учёбе — это не его.
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, MasterMind, Вы писали:
MM>>я поддерживаю такого мнения что программист не обязан знать многие вопросы касающиеся алгоритмов . он должен лишь иметь представленеи о том что то то и то то есть в жизни и знать где про это выясниь.
aik>Зря. Программер должен быть способен безо всякой доки налабать хоть и очень тупой, но рабочий алгоритм на любой случай. Если чел на это не способен, то книжки ему ни разу не помогут.
Представим ситуацию,
1. Программист думает неделю над своим тупым алгоритмом и в конце недели реализовывает не самую эффективную его версию.
2. Программист знает, где искать, быстро находит в инете эффективный алгоритм и встраивает его в проект, пусть на это ушел 1 день.
Имея эти две ситуации, как вы думаете, какая из них ситуация выгодна бизнесу, а какая убыточна?
ТЗ при приёме на работу как минимум предполагает проверку того что человек не туп. Через 3 месяца будет понятно насколько было правильно первое впечатление.
В Вашей же ситуации это уже работа человека над проектом. Он делает то что ему скажут манагер или team-лидер. Так что в данной ситуации всё зависит от того насколько умна команда в целом.
А на Ваш пример есть контрпример: что лучше для бизнеса написать свой медленный алгоритм или использовать быстрый но дорогой?
Здравствуйте, awod, Вы писали:
A>ТЗ при приёме на работу как минимум предполагает проверку того что человек не туп. Через 3 месяца будет понятно насколько было правильно первое впечатление. A>В Вашей же ситуации это уже работа человека над проектом. Он делает то что ему скажут манагер или team-лидер. Так что в данной ситуации всё зависит от того насколько умна команда в целом. A>А на Ваш пример есть контрпример: что лучше для бизнеса написать свой медленный алгоритм или использовать быстрый но дорогой?
или найти быстрый и бесплатный... не ограничиваетесь рамками "медленный алгоритм" и "быстрый но дорогой" это сужает картину мира...
Здравствуйте, Pzz, Вы писали:
Pzz>execve wrote: >> >> Pzz>2. Наличие русских людей в менеджменте заказчика (соответственно, >> Pzz>наличие индусов или китайцев будет тянуть одеяло в сторону индии или >> китая) >> >> И много их, русских-менеджеров в US?
Pzz>Достаточно. А в чем проблема?
Достаточно для чего?
Последние несколько лет сталкиваюсь с компаниями из US — огромное кол-во менеджеров-индусов, иногда попадаются китайцы, но русских — ни одного.
А вот русские программисты попадаются намного чаще.
Здравствуйте, DMVB, Вы писали:
DMV>Я вот тоже думаю, странно как-то. DMV>Или в этой задаче какой-то суровый под..бон сокрыт, сходу невидимый?
Первый и главный — станет ли кандидат писать решение или начнет бычить. Второй — сколько элементарных ошибок понаделает. Будут ли там ассерты или всякого рода проверки. Третий — насколько алгоритм будет быстр. Ну и хорошо бы чтоб делал это все быстро, хотя на собеседованиях тупление прощается. Вот и все подколки.
Здравствуйте, execve, Вы писали:
E>Последние несколько лет сталкиваюсь с компаниями из US — огромное кол-во менеджеров-индусов, иногда попадаются китайцы, но русских — ни одного.
Все верно. Манагер должен бегло говорить по-английски. Наши — не умеют. А индусы — с малолетства.
AmSpb wrote: > > Pzz>А зачем культурному человеку надо уметь читать-писать и кушать ножем и > Pzz>вилкой (а не руками)? > > Странно, уголовники-рецедивисты тоже могут читать-писать и кушать ножем > и вилком... Поэтому с аналогией в ошиблись.
И что это доказывает?
Кстати, уголовники тоже могут быть культурными людьми. Не надо путать
культурность с соблюдением закона или норм общественной морали. Вы-то
сами все налоги платите? Если нет, Вы тоже уголовник
Gorbatich wrote: > > Pzz>работать по крайней мере хоть иногда, в отличии от Вашего. > > Только что нашел 2 максимума в {2,1,8,6,3,4,1} с заменой --на-1 > > и в чем же проблема
Одну Вы сами уже нашли. Давайте полный код (с циклом), будем обсуждать
дальше. Но тест Вы уже не прошли: кто же будет в реальном проекте
просматривать Ваш код на предмет замены -- на -1?
Pzz>И что это доказывает?
Pzz>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать Pzz>культурность с соблюдением закона или норм общественной морали. Вы-то Pzz>сами все налоги платите? Если нет, Вы тоже уголовник
Тогда, все становится понятно, для вас культурный человек это тот, кто
умеет читать-писать и кушать ножем и вилкой. Ну не надо же себя так ограничивать в понимании культурного человека, надо дальше развиваться...
A>Если он не ответит — значит зря он пошёл учиться. Значит человек занимает НЕ СВОЁ место.
Интересно, а сам спрашивающий может _правильно_ ответить, что такое интеграл Римана и интеграл Лебега?
Или имелось в виду попросить посчитать неопр. интеграл от е в степени х ?
Gorbatich wrote: > > #include<stdio.h> > int main(){ > int i=0; > int a[7]={2,1,8,6,3,4,1}; > for(i=1; i<=6; i++) > if(a[i]>a[i-1]&&a[i]>a[i+1]) printf(" ГЫЫЫЫ \n"); > return 0; > } > > 2 раза выдаст "ГЫЫЫЫ"
Во-первых, я просил локальные максимумы подсчитать, а не перечислить.
Во-вторых, кому нужен этот код, если все забито в main? Функцию давайте.
Когда дадите — продолжим.
A_l_e_x_e_y wrote: > > Мне кажется, что следовало бы уточнить каким должно быть поведение на > границах массива. То есть могут ли они быть локальными миксимумами или нет.
Gorbatich wrote: > Здравствуйте, Pzz, Вы писали: > > > Pzz>просматривать Ваш код на предмет замены -- на -1? > > Наверное я проверю на наличие ошибок прежде чем в проект пихать??? > > #include<stdio.h> > int main(){ > int i=0; > int a[7]={2,1,8,6,3,4,1}; > for(i=1; i<=6; i++) > if(a[i]>a[i-1]&&a[i]>a[i+1]) printf(" ГЫЫЫЫ \n"); > return 0; > } > > 2 раза выдаст "ГЫЫЫЫ"
Первая 2-ка тоже должна быть локальным экстемумом
pzz, это так по вашей постановке задачи ?
Здравствуйте, Pzz, Вы писали:
Pzz>AmSpb wrote: >> >> Pzz>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать >> Pzz>культурность с соблюдением закона или норм общественной морали. Вы-то >> Pzz>сами все налоги платите? Если нет, Вы тоже уголовник >> >> Тогда, все становится понятно, для вас культурный человек это тот, кто >> умеет читать-писать и кушать ножем и вилкой. Ну не надо же себя так >> ограничивать в понимании культурного человека, надо дальше развиваться...
Pzz>Нет, вышеперечисленное отличает бомжа от не-бомжа. Культурному человеку Pzz>(после того, как он научится читать, писать и пользоваться столовыми Pzz>приборами) не помешало бы еще научиться с другими людьми вежливо Pzz>разговаривать, придерживаясь темы беседы, и не переходя на личности.
Культурный человек не ограничивает себя в понимании сАмого понятия "культурный человек".
Pzz>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать Pzz>культурность с соблюдением закона или норм общественной морали. Вы-то Pzz>сами все налоги платите? Если нет, Вы тоже уголовник
Ты некомпетентен в этом вопросе. Уголовная ответсвенность за неуплату налогов с "особо крупных размеров"
Здравствуйте, Kubyshev Andrey, Вы писали:
Pzz>>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать Pzz>>культурность с соблюдением закона или норм общественной морали. Вы-то Pzz>>сами все налоги платите? Если нет, Вы тоже уголовник
KA>Ты некомпетентен в этом вопросе. Уголовная ответсвенность за неуплату налогов с "особо крупных размеров"
Даже хуже того, человек не знает элементарного принципа призумпции невиновности. О чем тут говорить...
Kubyshev Andrey wrote: > > Pzz>Кстати, уголовники тоже могут быть культурными людьми. Не надо путать > Pzz>культурность с соблюдением закона или норм общественной морали. Вы-то > Pzz>сами все налоги платите? Если нет, Вы тоже уголовник > > Ты некомпетентен в этом вопросе. Уголовная ответсвенность за неуплату > налогов с "особо крупных размеров"
Там планка очень низкая. Что-то типа $30K за три года, если не ошибаюсь.
S>>или найти быстрый и бесплатный... не ограничиваетесь рамками "медленный алгоритм" и "быстрый но дорогой" это сужает картину мира...
A>Быстрый и бесплатный, не всегда поддерживаемый.
Здравствуйте, ggg, Вы писали:
A>>Если он не ответит — значит зря он пошёл учиться. Значит человек занимает НЕ СВОЁ место. ggg>Интересно, а сам спрашивающий может _правильно_ ответить, что такое интеграл Римана и интеграл Лебега? ggg>Или имелось в виду попросить посчитать неопр. интеграл от е в степени х ?
Надеюсь не к Вашему удивлению, но знаю
И не только посчитать, но и с определением и если посидеть, то и кучу доказательств на эту тему вспомню
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, execve, Вы писали:
E>>Последние несколько лет сталкиваюсь с компаниями из US — огромное кол-во менеджеров-индусов, иногда попадаются китайцы, но русских — ни одного.
aik>Все верно. Манагер должен бегло говорить по-английски. Наши — не умеют. А индусы — с малолетства.
А это значит, что причина #2 работать практически не будет.
По моим наблюдениям самый частый случай: поработал наш человек там программистом, оброс связями, договорился с тамошними менеджерами (всё ещё оставаясь программистом), потом чего вернулся сюда и уже здесь стал менеджером аутсоурсящей команды.
A_l_e_x_e_y wrote: > > Pzz>>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В > G>Сами дали определение: > G>Локальный максимум — такой элемент массива, который больше своих соседей. > G>Слева от "2" — нет соседей!!! > > Это спорно. На основании исходного задания в этом нельзя быть уверенным.
Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы
у меня были открытые вакансии...
Gorbatich wrote: > > Pzz>1) Кому нужна функция, которая работает только с массивом из 6-и > Pzz>элементов? > > Если я и сделаю "умный" список, то наверное не бесплатно и уж явно не > чтобы сюда кинуть.
Сколько же Вы хотите получить за решение этой простенькой задачки?
> Pzz>Я же сразу Вам сказал, Вам не надо > Pzz>программировать — Вам надо сразу в Большие Начальники. > > Сразу не быывает. Только универ закончил.
Надо было МГИМО заканчивать.
> Pzz>Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать, > Pzz>как работает qsort из принципа, программировать в принципе не могут. Но > Pzz>я не ожидал получить этому столь быстрое и наглядное подтверждение. > Pzz>Спасибо! > > Может быть когда-нибудь я буду вашим начальником Но я не буду таким > занудным это уж точно )
Вот это вряд ли. Но и я Вашим начальником тоже вряд ли буду
Pzz wrote: > xtile wrote: > >>— адекватность — когда на задачку дают 2 минуты, ее нужно сразу же >>закодить, а над душой сидят 2 человека — почти все допускают >>ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы, >>которые могут вывести его на правильный путь — очень многое можно >>сказать о человеке > > > Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли, > как найти туалет, и выходили на час-полтора из комнаты
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, LuciferMoscow, Вы писали:
LM>>У меня знакомая преподает в ВУЗе. В таком выражение: LM>>dx/dt букву d сокращали! aik>боян. Нам его еще училка в школе рассказывала
Так я все время считал это анекдотом. А тут в реале такое...
Gorbatich wrote: > > Pzz>\n в начале строки — это круто. Это явно способствует формированию > Pzz>хорошего вкуса у пользователей Вашей программы. > > Каждый считает себя самым умным. Удачи Вам в этом, возможно, заблуждении.
Вы, кстати, не расстраивайтесь так. Вы смелый человек — кроме Вас никто
не рискнул выставить свой код на публичное обсуждение. Думаю, многие из
тех, кто сейчас сидит и посмеивается, выступили бы не лучше Вас...
А вот, интересно, если не секрет, на какую зарплату искали чела при помощи этих тестов? Это без подколки, просто из познавательного интереса задаю вопрос.
sunshine wrote: > > А вот, интересно, если не секрет, на какую зарплату искали чела при > помощи этих тестов? Это без подколки, просто из познавательного интереса > задаю вопрос.
На разную — в зависимости от того, сколько работы он мог бы на себе
потянуть.
так хорошо читалась ветка, всегда приятно "видеть" коллегу-профи... и глаз споткнулся
Pzz>Соотстветственно, живя в России, вполне можно оказаться в core team Pzz>какой-нибудь западной компании, и заниматься чем-нибудь более Pzz>интересным, чем писать драйвера на потоке.
на этом месте
...перечитал несколько раз. нет каких-то оскорбительных конечно замечаний или чего-то явно нехорошего.... ну не знаю, почему мне это место так сильно не понравилось сразу...
прошу прощения, конечно, но за честь мундира так сказать обидно, поясните имелось ли ввиду что в Вашем понимании писать драйвера "на потоке" это есть абсолютно неинтересное занятие, достойное только самых исхудавших бангалорцев
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.
Valery A. Boronin wrote: > > прошу прощения, конечно, но за честь мундира так сказать обидно, > поясните имелось ли ввиду что в Вашем понимании писать драйвера "на > потоке" это есть абсолютно неинтересное занятие, достойное только самых > исхудавших бангалорцев > <http://rsdn.ru/forum/Message.aspx?mid=1540513&only=1>
Потому, что мне лично писать драйвера на потоке не интересно. После
второго-третьего драйвера понимаешь, что делаешь уже одно и то же.
Интересно же делать какие-то вещи, которые до сих пор не делал. Не
важно, в каком виде оформлен результат — в виде драйвера, программы в
user space и т.д.
> <спустя пару минут дописываю ибо появились новые разведданные > > > Коллега, кстати вот посмотрел профиль и теперь уже версия что это была > некая разновидность иронии?
A> То со стороны работадателя это выглядит как-то странно, уж кому бы как не им знать законы рынка и баланс спроса и предложения.
Ну, есть вероятность, что с помощью таких статей пытаются начальники сбить "цену". Баланс спроса и предложения всем известен, то, что налоги надо платить, тоже всем известно; но ведь испокон веков пытаются "оптимизировать" налогообложение. И вечный двигатель построить тоже хотят. Просто пока прибыли были очень большими, повышение зарплат не было так заметно. А когда прибыли стали большими, появилось беспокойствие, что скоро прибыли смогут стать _нормальными_.
Здравствуйте, Pzz, Вы писали:
>> прошу прощения, конечно, но за честь мундира так сказать обидно, >> поясните имелось ли ввиду что в Вашем понимании писать драйвера "на >> потоке" это есть абсолютно неинтересное занятие, достойное только самых >> исхудавших бангалорцев >> <http://rsdn.ru/forum/Message.aspx?mid=1540513&only=1>
?
Pzz>Потому, что мне лично писать драйвера на потоке не интересно. После Pzz>второго-третьего драйвера понимаешь, что делаешь уже одно и то же.
если добавить "определенного типа", то я соглашусь на 100%.
причем тут что-то вроде замкнутого круга: сделаешь encryption filter — получаешь заказы еще на пару "таких же" — вроде и делать уже проще ибо опыт есть и наработки, а не так интересно. рутина.
впрочем, конечно такие настроения возникают периодически у многих, наверное
но точно так же можно рассуждать и о скуке после 3го MFC приложения...
суть же не в том что это MFC и уже 2 таких сделал, а внутри приложения (обычно)
Pzz>Интересно же делать какие-то вещи, которые до сих пор не делал. Не Pzz>важно, в каком виде оформлен результат — в виде драйвера, программы в Pzz>user space и т.д.
так попробуйте какой-то новый тип драйвера, их немало на свете и появляются все новые — в Редмонде не дадут заскучать, да и третьи компании уже иногда имеют свои frameworks в ядре и вокруг — можно и под них что-то новое попробовать... не говоря уже о том что свой вариант никто не запрещал... не вижу словом повода для пессимизма, при желании в любой пожалуй области можно найти нечто новое или самому попытаться изобрести? правда кто даст под это денег...
>> <спустя пару минут дописываю ибо появились новые разведданные > >> >> Коллега, кстати вот посмотрел профиль и теперь уже версия что это была >> некая разновидность иронии?
Pzz>Ничего не понял...
неважно, ответ уже Вы дали выше. похоже это была не ирония, а усталость. Может быть действительно пора в Большие Начальники
да и все, раз уже работа как в анекдоте — "не радует"?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
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.
Здравствуйте, Melo, Вы писали:
M>1. Аутсорсить в Индию/Китай M>2. Аутсорсить в Россию M>3. Не аутсорсить вообще, т.е. разрабатывать софт у себя в Европе/США.
M>Назовите мне причины по которым заказчик выберет вариант #2?
Вариант 3 отпадает по простой причине — даже при одинаковой зарплате расходы на одного девелопера в европе выше в разы. Причины — высокие налоги, социалка, тот же офис, инфраструктура. Кроме того, хорошие местные девелоперы в той же Англии чуть-ли не поголовно сидят в консалтерах, а консалтеры стоят дорого, очень дорого.
Вариант 1 отпадает, как я уже писал в другой ветке из-за временной зоны и совершенно другой культуры, что очень сильно мешает работе. Китай так же отпадает из-за проблем с английским. С Индией есть еще один пойнт — там нет проблем с эмиграцией и более-менее качественные девелоперы или стоят дофига, или уже давно свалили в цивилизацию.
Именно эти причины были в первую очередь названы заказчиком, а не зарплата девелопера в России.
AS>Тогда, все становится понятно, для вас культурный человек это тот, кто AS>умеет читать-писать и кушать ножем и вилкой. Ну не надо же себя так ограничивать в понимании культурного человека, надо дальше развиваться...
А человек — это животное без перьев на двух ногах, с плоскими ногтями
Не компилил правда, но задача показалась интересной, в своей простоте.
Просто на обсуждение. Упрощенный вариант, не учитывающий плоские экстемумы.
int max_count(int * a, int size)
{
int count = 0;
if(size > 2)
{
for(int i = 0; i < size - 2; i++)
{
if(((a[i+1] - a[i])*(a[i+2] - a[i+1]) < 0) && ((a[i+1] - a[i]) > 0))
count++
}
return count;
}else
{
return 0;
}
}
Если ввести сохраняемую дельту, то можно и плоские экстремумы находить(про них правда ничего не сказано), да проблема с граничными условиями решается сама собой.
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, lynn-lynn, Вы писали:
LL>>А насчет вопросов на собеседовании — если меня спрашивают — как посчитать производную или почему небо синее — я встаю и ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с несформировавшимся мировоззрением. Для меня лично важно — не встанет ли человек в один прекрасный момент и не уйдет с проекта, как он на овертаймы среагирует и вообще такие вот вещи
aik>Так вот ты и провалил тест на овертайм и "несваливаемость с проекта". Тебе дают задачу, тебе она кажется тупой и ненужной, ты сразу уходишь. Такие сразу не нужны.
И как вы узнали, что он провалил тест на овертайм и "несваливаемость с проекта" если вы его даже не начали собеседовать, а решили только спросить "почему небо голубое" ?
Здравствуйте, IT, Вы писали:
MM>>Всё остальное набиваеться в течение 2-3 месяцев после работы при желании конешно самого сотрудника — имхо именно для этого и стоит вводит 3-х месячные сроки в течении ктоторых человек просто дополняет свои знания знаниями которые требуються для успешной работе в команде над проектом. Просто ну не возможно знать всё и вся по той причине что на это просто не хватает времени.
IT>Ну вот взял ты человека на 3 месяца, а он оказался не тот. Взял второго, третьего, пятого, десятого. Прошло 30 месяцев, пора такой бизнес закрывать.
На самом деле все проще. Знание алгоритмов и умение въезжать ортогональны. Если ты не можешь проверить умениен въезжать, то проверяй знание алгоритмов, среди этих людей окажется точно тпакое же количество умеющихь въезжать, но у них еще будет повышенный интеллект и знания какие то. Если можешь проверить оба умения проверяй оба.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, AmSpb, Вы писали:
AS>И как вы узнали, что он провалил тест на овертайм и "несваливаемость с проекта" если вы его даже не начали собеседовать, а решили только спросить "почему небо голубое" ?
Чел показал себя нежной цацей, которую надо будет в дальнейшем очень осторожно спрашивать, опасаясь, что он сочтет вопрос тупым и обидится. Ну плюс-минус так Собеседование ж не только профпригодность выявляет, а также и то насколько с человеком легко установить личный контакт.
С другой стороны, может, это и не важно, и народ надо долбать только задачами как это делают в MS, а уж что за человек — пофиг, если и свалит — тут целая очередь новых. Хотя, в маленьких конторах такой формальный подход хуже проканывает, уход всего одного человека может заметно сказаться.
Здравствуйте, Gorbatich, Вы писали:
Pzz>>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В G>Сами дали определение: G>Локальный максимум — такой элемент массива, который больше своих соседей. G>Слева от "2" — нет соседей!!!
И что? Не спрашивали же про соседей справа и слева. подразумевается ВСЕХ соседей. Сосед 1.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
aik>Так вот ты и провалил тест на овертайм и "несваливаемость с проекта". Тебе дают задачу, тебе она кажется тупой и ненужной, ты сразу уходишь. Такие сразу не нужны.
Если я контракт на работу подписал, я её сделаю. А насчет собеседований — если нужны разработчики которые вместо OLAP куба будут о небе думать — вперед, только мне с такой компанией не по пути — специализация не та. У нас открытый рынок и товарно денежные отношения и я свободен в своем решении выбрать компанию в которой я проведу несколько следующих лет. Время мое дорого стоит и тратить его на бессмысленные разговоры как с КА, так и с неадекватными работодателями считаю ненужным. Хотите купить это время — разговаривайте на собеседовании о соц. пакете и бесплатной парковке, а не об интегралах.
Здравствуйте, Митяй, Вы писали:
A>> То со стороны работадателя это выглядит как-то странно, уж кому бы как не им знать законы рынка и баланс спроса и предложения.
М>Ну, есть вероятность, что с помощью таких статей пытаются начальники сбить "цену". Баланс спроса и предложения всем известен, то, что налоги надо платить, тоже всем известно; но ведь испокон веков пытаются "оптимизировать" налогообложение. И вечный двигатель построить тоже хотят. Просто пока прибыли были очень большими, повышение зарплат не было так заметно. А когда прибыли стали большими, появилось беспокойствие, что скоро прибыли смогут стать _нормальными_.
Ну и что — а программисты ее постоянно набивают, постингами в форумы, у всех свои методы
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, aik, Вы писали: aik>Так вот ты и провалил тест на овертайм и "несваливаемость с проекта". Тебе дают задачу, тебе она кажется тупой и ненужной, ты сразу уходишь. Такие сразу не нужны.
Так вы понимаете "несваливаемость" как приковывание цепями к галере? Тогда вынужден напомнить Вам, что по закону я имею право уволиться, предупредив работодателя за 2 недели. И вы не найдёте человека, который так не будет делать просто потому, что это незаконно. А мы, работники, стараемся быть законопослушными гражданами.
IMHO, под несваливаемостью надо понимать умение брать ответственность. Но ответственность берётся добровольно, а если работник не хочет её брать — вина работодателя.
Здравствуйте, lynn-lynn, Вы писали:
LL>Интересно, это только с возрастом проходит или как? Помню когда-то я тоже людей собеседовал по принципу — может ли он мне сортировку написать. Вы ребята поймите, это никак не относится к тому — сможет этот чел проект сдать или нет. А насчет вопросов на собеседовании — если меня спрашивают — как посчитать производную или почему небо синее — я встаю и ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с несформировавшимся мировоззрением. Для меня лично важно — не встанет ли человек в один прекрасный момент и не уйдет с проекта, как он на овертаймы среагирует и вообще такие вот вещи — а не то — умеет он в середину списка элементы добавлять или нет. А если по себе мерять — вот я умею сортировку писать — а он нет — то, ребята, вам пожалуй в детский сад неплохо бы. К бизнесу алгоритмы никакого отношения не имеют.
Интересная точка зрения...
Полностью согласен, если речь идёт ТОЛЬКО о проектах а-ля Формочки+SQL. А как насчёт, например, GameDev? Или вы считаете, что в DX9.0 ВСЕ возможные алгоритмы уже написаны за нас?
Я, например, никогда не могу предположить, каким проектом мне придётся заниматься завтра. Может это будет проект, связанный с моделированием физических процессов или каким-нибудь интеллектуальным анализом. Человек, который не способен отсортировать список, в таком проекте просто будет простаивать. Нахрена мне такой не нужен!?!?
lynn-lynn wrote: > > Интересно, это только с возрастом проходит или как? Помню когда-то я > тоже людей собеседовал по принципу — может ли он мне сортировку > написать. Вы ребята поймите, это никак не относится к тому — сможет этот > чел проект сдать или нет. А насчет вопросов на собеседовании — если меня > спрашивают — как посчитать производную или почему небо синее — я встаю и > ухожу. Благо рынок труда достаточно развит, чтобы не работать у людей с > несформировавшимся мировоззрением. Для меня лично важно — не встанет ли > человек в один прекрасный момент и не уйдет с проекта, как он на > овертаймы среагирует и вообще такие вот вещи — а не то — умеет он в > середину списка элементы добавлять или нет. А если по себе мерять — вот
И как Вы, интересно, это оцениваете? По умению "не мешки ворочать"?
> я умею сортировку писать — а он нет — то, ребята, вам пожалуй в детский > сад неплохо бы. К бизнесу алгоритмы никакого отношения не имеют.
Да к бизнесу программирование вообще никакого отношения не имеет
Здравствуйте, Pzz, Вы писали:
Pzz>Условие в if'е больно уж умственное. Что-то спросонья я не могу понять, Pzz>чем это лучше чем if( a[i] < a[i+1] && a[i+1] > a[i+2] ).
Дело в том, что при if( a[i] < a[i+1] && a[i+1] > a[i+2] ) будет накладней сохранять знак разности для проверок в случае учета плоских экстремумов.
Да и смысл более полно раскрывается, как мне кажется.
Насчет переполнения Вы правы, лучше так. (С учетом указанного выше лишнего return)
int max_count(int * a, int size)
{
int count = 0;
if(size > 2)
{
for(int i = 0; i < size - 2; i++)
{
if(((a[i+1] - a[i]) > 0) && ((a[i+2] - a[i+1]) < 0))
count++
}
}
return count;
}
Pzz>Наверное, Вы математик...
Физик и Делфист, поэтому в моем решении нет ни одного класса.
Мда, простая задача, а сколько тонкостей. Надо срочно пересмотреть свое отношение к программированию.
Век живи — век учись.
Здравствуйте, Vogul, Вы писали:
V>Мда, простая задача, а сколько тонкостей. Надо срочно пересмотреть свое отношение к программированию. V>Век живи — век учись.
Не советую копать в этом направлении. Лучше на что-нибудь боле полезное время потрать.
SZI>> Интересная точка зрения... SZI>> Полностью согласен, если речь идёт ТОЛЬКО о проектах а-ля Формочки+SQL. А как насчёт, например, GameDev? Или вы считаете, что в DX9.0 ВСЕ возможные алгоритмы уже написаны за нас? SZI>> Я, например, никогда не могу предположить, каким проектом мне придётся заниматься завтра. Может это будет проект, связанный с моделированием физических процессов или каким-нибудь интеллектуальным анализом. Человек, который не способен отсортировать список, в таком проекте просто будет простаивать. Нахрена мне такой не нужен!?!?
LL>Ага, первый аргументированный ответ. Вот тут я с Вами полностью согласен. Да, я именно формочки + SQL умею и на них зарабатываю. В геймдев мне никогда не светит, там да — там надо алгоритмы колбасить. Только ведь из исходных постов было не ясно — куда же должен попасть человек со знанием графов. А мне на собеседованиях на роль MSSQL девелопера сортировки предлагали писать и списки реверсировать. Это — адекватно? Я должен дальше сидеть и с уважительным видом слушать этот бред из-за которого я пол Москвы проехал? В каждой избушке свои игрушки, но думать ведь надо о чем на собеседованиях спрашиваешь у человека и не надо думать что у всех вежливости хватит на то чтобы отсидеть пару часов двигая биты в байте, когда тебя берут отчеты в кристале рисовать.
Pzz>Так бы и сказали сразу, что Вы не программист. Конечно, человека Вашей Pzz>профессии совершенно бессмысленно программистскими задачками Pzz>тестировать. Для Вас надо какие-то другие тесты придумывать. Какие Pzz>именно, не знаю, т.к. вашу профессию представляю себе очень Pzz>приблизительно...
Черт его знает — какая у меня профессия. В дипломе — инженер-программист. В трудовой — программист-аналитик. В реале — рисую структуру базы со слов заказчика, потом делаю Web frontend'ы на ASP.NET'е к MSSQL, на основе собранных данных делаю OLAP кубы и строю по ним отчеты. До сих пор считал что программист, но байтики не crunch'ил уже лет 5 как
Vogul wrote: > > Pzz>Условие в if'е больно уж умственное. Что-то спросонья я не могу понять, > Pzz>чем это лучше чем if( a[i] < a[i+1] && a[i+1] > a[i+2] ). > > Дело в том, что при if( a[i] < a[i+1] && a[i+1] > a[i+2] ) будет > накладней сохранять знак разности для проверок в случае учета плоских > экстремумов.
Я примерно так и подумал.
> Да и смысл более полно раскрывается, как мне кажется.
Этого мне не понять!
> Pzz>Наверное, Вы математик... > > Физик и Делфист, поэтому в моем решении нет ни одного класса.
Однако переменную определяете в заголовке for-цикла. Т.е., ваши сишники
имеют расширение .cpp, а не .c
> Мда, простая задача, а сколько тонкостей. Надо срочно пересмотреть свое > отношение к программированию. > Век живи — век учись.
Почитайте Дейкстру, "Дисциплина Программирования". Если найдете...
Тссс, чего раскричался-то? Сейчас геймдеверы услышат
Я говорю не о сложности/простоте математики в геймдеве, а о том, что не место там человеку, не имеющего соответствующего склада ума(как следствие, немогущему написать банальный алгоритм сортировки) — аналитического, математического, логического, называйте, как хотите.
ЗЫ А чего пропустил пункты AI, RagDoll("Часто" не в счёт ), обработка столкновений
Здравствуйте, Pzz, Вы писали: >> Да и смысл более полно раскрывается, как мне кажется.
Pzz>Этого мне не понять!
Ну как же! Первая производная в экстремуме меняет знак.
Как раз и сравниваем приращения, поэтому выгодней обрабатывать элементы массива тройками, чтобы определить, на каком элементе производная сменит знак.
Заметьте, что
a[i+1] — a[i] > 0 тождественно a[i] < a[i+1]
это как раз и поводит четкую математическую основу под решение задачи, а такая основа придает уверенность в правильности решения.
SZI> ЗЫ А чего пропустил пункты AI, RagDoll("Часто" не в счёт ), обработка столкновений
Читай внимательнее. Ragdoll и коллизии есть в моем посте.
Про AI — сильно от игры зависит.
SZI>> RagDoll("Часто" не в счёт ),
А почему это "часто" не в счет?
Еще раз. Если вы и пишете свою физику (не пользуясь ничем сторонним), то делает это явно не вся команда. Кто-то один (два) пишут, остальные просто пользуются.
Более того, в следующей игре вы уже просто будете использовать это ваше решение (ничуть не задумываясь о тензоре инерции).
В конечном итоге придете к тому, что многое можно взять из middleware, а не писать каждый раз с нуля Так что основная часть работы вовсе не разработка и реализация алгоритмов.
Физика, кстати, на уровне студента второго курса — тензор инерции, моменты, ускорения и т.д.
Здравствуйте, ggg, Вы писали:
SZI>>> RagDoll("Часто" не в счёт ), ggg>А почему это "часто" не в счет? ggg>Еще раз. Если вы и пишете свою физику (не пользуясь ничем сторонним), то делает это явно не вся команда. Кто-то один (два) пишут, остальные просто пользуются. ggg>Более того, в следующей игре вы уже просто будете использовать это ваше решение (ничуть не задумываясь о тензоре инерции).
ggg>В конечном итоге придете к тому, что многое можно взять из middleware, а не писать каждый раз с нуля Так что основная часть работы вовсе не разработка и реализация алгоритмов.
Ну я же уже всё сказал...
ggg>Физика, кстати, на уровне студента второго курса — тензор инерции, моменты, ускорения и т.д.
ЗЫ Ну ведь согласись, не матрицами одними живём...
Здравствуйте, awod, Вы писали:
Простые задачки на графы и сортировки не могут решить!
Мне в моей работе практически ни разу не приходилось решать задачки на графыи сортировку. И я не смогук толком предложить решение этих задачек (не ставлю себе это в заслугу естественно). Хотя все их я безусловно проходил в университете, и писал простые программы реализующие такие алгоритмы. Но это не значит, что я не способен их понять и разобраться в них достаточно быстро. Все эти задачки решаются простым прочтением учебников и дальннейшей их реализацией. Как говорили в универе — наша цель не столько научить вас куче алгоритмов и т.п, а научить учиться и быстро находить решение.
Здравствуйте, Pzz, Вы писали: Pzz>Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы Pzz>у меня были открытые вакансии...
Поздно. Как минимум в течении года я точно не буду менять работу в силу подписанного договора.
А вообще по поводу уточнения задания... Я просто достаточно с этим шишек набил. Не всегда творчество приносит пользу. При наличии неких разночтений всегда лучше уточнить у заказчика. Иначе потом придётся делать всё заново так, как ему это нравится.
Здравствуйте, A_l_e_x_e_y, Вы писали:
A__>Здравствуйте, Pzz, Вы писали: Pzz>>Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы Pzz>>у меня были открытые вакансии... A__>Поздно. Как минимум в течении года я точно не буду менять работу в силу подписанного договора.
В договоре написано, что ты не имеешь права уволится менее чем через год? Можешь игнорировать данный пункт договора как противоречящий законодательству РФ(Трудовой кодекс)
<skipped>.
Здравствуйте, LuciferMoscow, Вы писали: Pzz>>>Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы Pzz>>>у меня были открытые вакансии... A__>>Поздно. Как минимум в течении года я точно не буду менять работу в силу подписанного договора. LM>В договоре написано, что ты не имеешь права уволится менее чем через год? Можешь игнорировать данный пункт договора как противоречящий законодательству РФ(Трудовой кодекс)
Нет. Ничего такого в договоре нет. Просто я подписался на квартирный кредит от конторы.
Здравствуйте, awod, Вы писали:
AS>>или найти быстрый и бесплатный... не ограничиваетесь рамками "медленный алгоритм" и "быстрый но дорогой" это сужает картину мира...
A>Быстрый и бесплатный, не всегда поддерживаемый.
Алгоритм Дейксты поддерживаемый? Или Кнута-Морриса-Пратта?
Здравствуйте, Pzz, Вы писали:
Pzz>vitaly_spb wrote: >> >> Pzz>Но вот простейшую задачку решить не смог. Мы его не взяли. >> >> А что за задачка?
Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. Pzz>Локальный максимум — такой элемент массива, который больше своих соседей.
Здравствуйте, Gorbatich, Вы писали:
G>Здравствуйте, Anatolix, Вы писали:
A>>И что? Не спрашивали же про соседей справа и слева. A>подразумевается ВСЕХ соседей. Сосед 1.
G>Тут ясновидящих, телепатов и прочих медиумов нет. И кем же это подразумевается?
Здравствуйте, ggg, Вы писали:
SZI>>этого дерева реализуется алгоритм BSP+PVS. Или метод порталов, или много ещё чего. ggg>Ну и где _сложная_ _математика_ в BSP алгоритме? Посчитать нормаль, скалярное и векторное произведения? ggg>Имхо, математики тут особо нет, просто хорошо нужно понимать сам алгоритм.
Не поверишь, но к 30 годам большая часть программистов не может решить квадратное уравнение. О каких матрицах, сплайнах и кватернионах может идти речь ?
SZI>>2) Динамика. SZI>> а) Скелетная/морфическая анимация — Сплайновая и кватерионная интерполяция. ggg>Операции с кватернионами (кстати, они есть в dx sdk) не сложнее операций с матрицами. ggg>В сплайнах особой сложности не вижу. ggg>К тому же все это (выгрузка анимации, и интерполяция ее) написано один раз, возможно, кем-то одним из разработчиков, остальные люди вряд ли знают все тонкости сплайновых преобразований.
Пишется одним, но представлять суть должны все, т.к. выгребание багла — занятие коллективное.
SZI>> б) Обработка столкновений с последующей реакцией. SZI>> в) RagDoll(это когда трупики так, как надо падают ) ggg>Часто используют соответствующие движки — от tokamak'а, например, до havok.
ха-ха.. Не понимая как работает алгоритм фиг прикрутишь эти движки, т.к. их по жизни нужно напильником дотачивать.
SZI>> Скриптовый интерпретатор. ggg>lua
да, один из. А, например, проверка синтаксиса?
SZI>> Всё это нужно делать САМОМУ! Никакой поддержки со стороны DX или OGL. ggg>Есть куча middleware.
Опять же его нужно напильником постоянно обрабатывать, иначе ничего кроме убогого клона не получится.
ggg>Я вот тоже не понимаю, откуда эта шумиха о "сверхсложных алгоритмических задачах в геймдеве" — на многие вещи есть сторонние движки и библиотеки. ggg>А если чего нет (или не могут купить), так такую работу делают 1-2 человека из команды разработчиков.
ggg>Или у вас в команде _каждый_ разработчик в состоянии написать скриптовый интерпретатор? Если да, то почему же зарплаты в геймдеве низкие и в массе своей черно-темно-серые?
ЗП белые, чуть-чуть ниже рынка, но не намного. Зато работа очень интересная
да, кстати, в AI иногда серьезные вещи используются вплоть до нейронных сетей, но далеко не всегда. Зачастую хватает обычных ДКА, да и то кастрированных, т.к. поведение AI должно быть в первую очередь предсказуемым для дизайнеров/программитов.
Glоbus wrote: > >>> А что за задачка? > > Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. > Pzz>Локальный максимум — такой элемент массива, который больше своих > соседей. > > А это че — на графы разве задачка?
Нет, не на графы.
> Я б решил так > > template<class TTPred,class TTIterator> > size_t countMaxes( TTIterator _start_it, TTIterator _end_it, const TTPred& _pred = TTPred() )
Уй, мама родная! А зачем так сложно? Можно, я не буду это читать?
Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер
массива (вернее, в Вашем случае — не массива, а последовательности) Вам
не нужно. Что позволит Вашему алгоритму работать не только с массивами,
но и со списками, и вообще с любыми последовательностями.
Здравствуйте, Владислав, Вы писали:
В>Позвольте дать вам один совет. На собеседовании просите у соискателей реализовать несколько типов сортировок, пирамидальную например, нещадно гоняйте людей по сложностям алгоритмов, просите дать определение интеграла и решить квадратное уравнение. Чем больше от вас уйдёт хороших специалистов, тем больше их придёт в другие фирмы. Например к нам.
А зачем вам вообще собеседование? В резюме и так всё написано.
Владислав wrote: > > Pzz>Думаю, многие из тех, кто сейчас сидит и посмеивается, выступили бы > не лучше Вас... > > May be. А зачем этим многим нужно выступать? Что бы показать как они > "круты"?! Так они это и без вас знают. Что бы доказать вам, что ваш > способ тестирования при приёме на работу крайне неудачен? Так Вас не > переубедить, ведь если , допустим, сказать вам, что куча многомиллионных > проектов обошлась без рукописных поисков максимумов/сортировок/обходов > графов (использовались библиотеки, естественно) то вы же не поверите ни > одному слову.
Наш способ тестирования удачен. Нам удалось собрать небольшую, но очень
эффективную команду, которая за несколько лет сделала проект (вернее,
несколько взаимосвязанных проектов), для которых в нормальных условиях
потребовалась бы команда, в 10 раз большая.
Сейчас, по независящим от нас причинам, команда распущена (фирма решила
выйти из этого бизнеса). Все без исключения члены команды нашли себе
интересную работу за 1-2 месяца, и все оказались на каких-нибудь
достаточно отсетственных позициях.
> Согласитесь, что соискатель выбирает фирму а фирма соискателя. Это > обоюдно. Некоторым может крайне не понравиться занудливый интервьюер, > который заставляет опытного специалиста заниматься никому не нужной > ерундой, а некоторые любят решать подобные задачки. И если парень, > которого вы собеседовали, не захотел решать вашу задачку, это совсем не > значит, что у него "какая-то другая профессия", это говорит только о > том, что вы друг другу не подошли.
Никто, кстати, не отказывался.
> Позвольте дать вам один совет. На собеседовании просите у соискателей > реализовать несколько типов сортировок, пирамидальную например, нещадно > гоняйте людей по сложностям алгоритмов, просите дать определение > интеграла и решить квадратное уравнение. Чем больше от вас уйдёт хороших > специалистов, тем больше их придёт в другие фирмы. Например к нам.
Это Вы уже проецируете на нас какие-то свои негативные ожидания. Ничего
подобного мы не делали.
Я, кстати, прошел несколько раундов собеседований в разных московских
конторах. Попадались мне и в таком роде, как Вы говорите. Мне было очень
забавно посмотреть на этот процесс с другой стороны. И особенно было
забавно сравнить, как мало в среднем информации добывают о соискателе
другие конторы, тратя при этом неимоверные усилия.
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>А зачем вам вообще собеседование? В резюме и так всё написано.
Собеседования существуют для того, что бы проверить человека на 3 основных способности:
1. Умение работать в команде (уживётся ли он с коллективом).
2. Культура кода, знание языка (небольшое тестовое задание или пример 5 строк прямо на интервью).
3. Знание технологий, необходимых для написания продакшн кода в соответствии со спецификой конторы.
И этого обычно достаточно. Естественно, если фирма занимается game dev либо созданием симуляторов либо ещё т.п. то и алгоритмы так же должны входить в этот список.
Но алгоритмами на собеседованиях многие злоупотребляют, и мне кажется, это от неумения придумать именно те вопросы, ответы на которые действительно важны, что бы правильно оценить кандидата.
Здравствуйте, Pzz, Вы писали:
Pzz>Glоbus wrote: >> >>>> А что за задачка? >> >> Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. >> Pzz>Локальный максимум — такой элемент массива, который больше своих >> соседей. >> >> А это че — на графы разве задачка?
Pzz>Нет, не на графы.
>> Я б решил так >> >> template<class TTPred,class TTIterator> >> size_t countMaxes( TTIterator _start_it, TTIterator _end_it, const TTPred& _pred = TTPred() )
Pzz>Уй, мама родная! А зачем так сложно? Можно, я не буду это читать?
Pzz>Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер Pzz>массива (вернее, в Вашем случае — не массива, а последовательности) Вам Pzz>не нужно. Что позволит Вашему алгоритму работать не только с массивами, Pzz>но и со списками, и вообще с любыми последовательностями.
Я думаю, если бы вы таки-почитали то, что я написал, то увидели бы, что этот метод как раз и заточен так, чтобы работать с любой последовательностью, заданной двумя итераторами.
Здравствуйте, Pzz, Вы писали:
Pzz>Задача — повод для разговора (вернее, ее решение, даже неоконченное).
Pzz>Скажите, а что, я очень сложную задачку привел, что все так Pzz>заволновались? Я ведь не просил, например, компилятор написать на Pzz>коленке
Да простая задачка. Не знаю, что народ возмущается.
Glоbus wrote: > > Pzz>Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер > Pzz>массива (вернее, в Вашем случае — не массива, а последовательности) Вам > Pzz>не нужно. Что позволит Вашему алгоритму работать не только с массивами, > Pzz>но и со списками, и вообще с любыми последовательностями. > > Я думаю, если бы вы таки-почитали то, что я написал, то увидели бы, что > этот метод как раз и заточен так, чтобы работать с любой > последовательностью, заданной двумя итераторами.
Длина-то последовательности Вам зачем? Содержательно она не нужна. Если
вам по каким-то причинам так кодировать _удобнее_, это Ваши сложности.
Вычисление длины, например, для односвязанного списка это не дешевая
операция. Или на таком уровне абстракции это уже считается неважным?
Здравствуйте, Pzz, Вы писали:
Pzz>Glоbus wrote: >> >>>> А что за задачка? >> >> Pzz>Подсчитать количество локальных максимумов в массиве целых чисел. >> Pzz>Локальный максимум — такой элемент массива, который больше своих >> соседей. >> >> А это че — на графы разве задачка?
Pzz>Нет, не на графы.
>> Я б решил так >> >> template<class TTPred,class TTIterator> >> size_t countMaxes( TTIterator _start_it, TTIterator _end_it, const TTPred& _pred = TTPred() )
Pzz>Уй, мама родная! А зачем так сложно? Можно, я не буду это читать?
Pzz>Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер Pzz>массива (вернее, в Вашем случае — не массива, а последовательности) Вам Pzz>не нужно. Что позволит Вашему алгоритму работать не только с массивами, Pzz>но и со списками, и вообще с любыми последовательностями.
Все-таки позволю себе привести пример не с массивом, с листом:
Здравствуйте, Pzz, Вы писали:
Pzz>Glоbus wrote: >> >> Pzz>Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер >> Pzz>массива (вернее, в Вашем случае — не массива, а последовательности) Вам >> Pzz>не нужно. Что позволит Вашему алгоритму работать не только с массивами, >> Pzz>но и со списками, и вообще с любыми последовательностями. >> >> Я думаю, если бы вы таки-почитали то, что я написал, то увидели бы, что >> этот метод как раз и заточен так, чтобы работать с любой >> последовательностью, заданной двумя итераторами.
Pzz>Длина-то последовательности Вам зачем? Содержательно она не нужна. Если Pzz>вам по каким-то причинам так кодировать _удобнее_, это Ваши сложности. Pzz>Вычисление длины, например, для односвязанного списка это не дешевая Pzz>операция. Или на таком уровне абстракции это уже считается неважным?
Так, это уже лучше То есть все-таки сошлись на том, что будет работать с любой последовательностью? Чудненько Да, насчет длинны тут можно и поспорить. Единственное предназначение — избежать инкремента итератора, указывающего на элемент за обрабатываемым в том случае, если обрабатываемый элемент — граничный. Тут возможно с вами, многоуважаемый и соглашусь — можно переписать и красивше.
Здравствуйте, Glоbus, Вы писали:
G>Здравствуйте, Pzz, Вы писали:
Pzz>>Glоbus wrote: >>> >>> Pzz>Замечу только, что раз уж Вы пользуетесь итераторами, то знать размер >>> Pzz>массива (вернее, в Вашем случае — не массива, а последовательности) Вам >>> Pzz>не нужно. Что позволит Вашему алгоритму работать не только с массивами, >>> Pzz>но и со списками, и вообще с любыми последовательностями. >>> >>> Я думаю, если бы вы таки-почитали то, что я написал, то увидели бы, что >>> этот метод как раз и заточен так, чтобы работать с любой >>> последовательностью, заданной двумя итераторами.
Pzz>>Длина-то последовательности Вам зачем? Содержательно она не нужна. Если Pzz>>вам по каким-то причинам так кодировать _удобнее_, это Ваши сложности. Pzz>>Вычисление длины, например, для односвязанного списка это не дешевая Pzz>>операция. Или на таком уровне абстракции это уже считается неважным?
G>Так, это уже лучше То есть все-таки сошлись на том, что будет работать с любой последовательностью? Чудненько Да, насчет длинны тут можно и поспорить. Единственное предназначение — избежать инкремента итератора, указывающего на элемент за обрабатываемым в том случае, если обрабатываемый элемент — граничный. Тут возможно с вами, многоуважаемый и соглашусь — можно переписать и красивше.
И так — убираем ненужный расчет длины
— как оцените, драгоценнейший, такой вариант?
Glоbus wrote: > > Pzz>Длина-то последовательности Вам зачем? Содержательно она не нужна. Если > Pzz>вам по каким-то причинам так кодировать _удобнее_, это Ваши сложности. > Pzz>Вычисление длины, например, для односвязанного списка это не дешевая > Pzz>операция. Или на таком уровне абстракции это уже считается неважным? > > Так, это уже лучше То есть все-таки сошлись на том, что будет работать с > любой последовательностью? Чудненько Да, насчет длинны тут можно и > поспорить. Единственное предназначение — избежать инкремента итератора, > указывающего на элемент за обрабатываемым в том случае, если > обрабатываемый элемент — граничный. Тут возможно с вами, многоуважаемый > и соглашусь — можно переписать и красивше.
Ну вот, почти договорились.
А теперь представьте себе, что Вы по каким-то причинам вынуждены
работать с последовательностью, которую два раза туда-сюда не пробежишь.
Например, это не последовательность целых чисел, а последовательность
товарных вагонов, и пробег по последовательности означает физическое их
перемещение. А мазута (для тепловоза) у Вас конечное количество. Будет
Ваш алгоритм работать с такой последовательностью?
Здравствуйте, lynn-lynn, Вы писали:
LL>Ага, первый аргументированный ответ. Вот тут я с Вами полностью согласен. Да, я именно формочки + SQL умею и на них зарабатываю. В геймдев мне никогда не светит, там да — там надо алгоритмы колбасить. Только ведь из исходных постов было не ясно — куда же должен попасть человек со знанием графов. А мне на собеседованиях на роль MSSQL девелопера сортировки предлагали писать и списки реверсировать. Это — адекватно? Я должен дальше сидеть и с уважительным видом слушать этот бред из-за которого я пол Москвы проехал? В каждой избушке свои игрушки, но думать ведь надо о чем на собеседованиях спрашиваешь у человека и не надо думать что у всех вежливости хватит на то чтобы отсидеть пару часов двигая биты в байте, когда тебя берут отчеты в кристале рисовать.
Попробую разубедить тебя в том, что прожекты типа "формочки + секвель" могут стряпаться прораммером не знакомым с графами.
Представь себе некий типичный смарт клиент.
В базе на сервере энное количество табличек (допустим 50) и связей (путь будет тоже 50).
Юзверь на клиенте получает какие то данные в датасетовом виде, что то туда добавляет (допустим pk у нас гуиды так что добавления безгеморойно можно делать на клиентах), что то удаляет, а что то, соотвественно, изменяет. Затем все изменения шлет накатываться на сервер.
Внимание вопрос — как без графов ты собираешься разрулить порядок наката изменений каждой таблички на базу?
Здравствуйте, Gorbatich, Вы писали:
G>Зачем голову забивать лажей, когда везде валяются заготовки типа qsort().
Для того, что бы понимать, когда вместо такой заготовки нужно использовать пузырёк?
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
Здравствуйте, AmSpb, Вы писали:
AS>Представим ситуацию, AS>1. Программист думает неделю над своим тупым алгоритмом и в конце недели реализовывает не самую эффективную его версию. AS>2. Программист знает, где искать, быстро находит в инете эффективный алгоритм и встраивает его в проект, пусть на это ушел 1 день.
AS>Имея эти две ситуации, как вы думаете, какая из них ситуация выгодна бизнесу, а какая убыточна?
Сам лично делал ооооочень тупые, медленные и громоздкие реализации свободно доступных в сети алгоритмов. Делалось это даже не с целью продажи конкретному заказчику, а так... research — просто посмотреть, что получится и с большой вероятностью нигде не использовать. И да, это конечно же было выгодно бизнесу, иначе бы за это не платили
Ситуации очень разные бывают.
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
Здравствуйте, Pzz, Вы писали:
Pzz>Сейчас, по независящим от нас причинам, команда распущена (фирма решила Pzz>выйти из этого бизнеса). Все без исключения члены команды нашли себе Pzz>интересную работу за 1-2 месяца, и все оказались на каких-нибудь Pzz>достаточно отсетственных позициях.
Странно, у меня на поиск работы уходило не более 2-3-х недель.
И практически нигде не гоняли алгоритмами. Обичные вопросы — что делал раньше, а почему делал так, а не иначе. Последний раз в двух фирмах попросили назвать известные мне способы организации paging'a записей из базы с их плюсами и минусами, ну и подобные вопросы. ИМХО, намного это больше говорит о кандидате, чем знание типичных алгоритмов.
Кстати, когда сам собеседовал людей — применял похожие методы, т.е. ситуации из реальных проектов, например, как бы человек организовал обмен данными с базой, ну и т.п. Был чувак — студент, знал много алгоритмов и говорил об этом на каждом углу (собеседовал не я), так он потом подходил ко мне с вопросом, почему у него не создается экземпляр абстрактного класса .
Abalak wrote: > > Pzz>Сейчас, по независящим от нас причинам, команда распущена (фирма решила > Pzz>выйти из этого бизнеса). Все без исключения члены команды нашли себе > Pzz>интересную работу за 1-2 месяца, и все оказались на каких-нибудь > Pzz>достаточно отсетственных позициях. > > Странно, у меня на поиск работы уходило не более 2-3-х недель.
За 2-3 недели работу можно найти только, если либо заранее к этому
подготовиться (т.е., это, на самом деле не 2-3 недели), либо соглашаться
на первый же предложенный вариант. Поскольку это как раз время, которое
проходит от рассылки резюме до первого раунда собеседований.
> И практически нигде не гоняли алгоритмами. Обичные вопросы — что делал > раньше, а почему делал так, а не иначе. Последний раз в двух фирмах > попросили назвать известные мне способы организации paging'a записей из > базы с их плюсами и минусами, ну и подобные вопросы. ИМХО, намного это > больше говорит о кандидате, чем знание типичных алгоритмов.
Меня, вообще, пугает наблюдающаяся тенденция. Я что, какой-то хитрый
алгоритм попросил закодировать? Может быть, я попросил вас, например,
написать программу, которая преобразует недетерминированный конечный
автомат в детерменированный? Или попросил по памяти написать работу с
RB-деревьями?
Нет, я всего лишь предложил задачку, которая требует всего лишь
аккуратности при обращении с массивами. И оказалось, что решить ее для
многих непросто.
Что же тогда вообще такое сейчас программист, если программисты даже с
массивами не умеют теперь работать?
> Кстати, когда сам собеседовал людей — применял похожие методы, т.е. > ситуации из реальных проектов, например, как бы человек организовал > обмен данными с базой, ну и т.п. Был чувак — студент, знал много > алгоритмов и говорил об этом на каждом углу (собеседовал не я), так он > потом подходил ко мне с вопросом, почему у него не создается экземпляр > абстрактного класса .
Ну так надо было помочь чуваку с изучением C++. Этот вопрос только
кажется очевидным, почему в этом дурацком языке не создаются экземпляры
абстрактных классов (и закаким хреном вообще нужны такие классы,
экземпляр которых нельзя создать). Потому что по какому-то глупому
недоразумению этот язык не различает понятие класса и понятие интерфейса.
Здравствуйте, Pzz, Вы писали:
>> Странно, у меня на поиск работы уходило не более 2-3-х недель.
Pzz>За 2-3 недели работу можно найти только, если либо заранее к этому Pzz>подготовиться (т.е., это, на самом деле не 2-3 недели), либо соглашаться Pzz>на первый же предложенный вариант. Поскольку это как раз время, которое Pzz>проходит от рассылки резюме до первого раунда собеседований.
Как было у меня: Место действия — Москва. В конце сентября понял что на предыдущей работе ловить больше нечего, и что потолок в зп, который я могу достигнуть только года через два на данном месте намного ниже среднего по рынку (а кататься на новой машине и водить девушку в рестораны хотелось уже тогда). За пару часов проапгрейдил резюме и запостил на HeadHunter (сам никуда не посылал). Через два дня уже пошел на первое собеседование, а еще через день в ящике было с 10 приглашений. Через неделю получил первый оффер, а еще через 1,5 их было 4. Это с учетом того, что последнего (нынешнее место работы) ждал дольше всех. Всего собеседовался в 6 компаниях. Все офферы были от ведущих игроков рынка (Если желаете, могу перечислить). Правда с учетом специфики нынешней работы (см. профайл) приступить смог только в декабре (закончился паспорт + виза), но это никак не сказалось на моем финансовом положении.
Pzz>Меня, вообще, пугает наблюдающаяся тенденция. Я что, какой-то хитрый Pzz>алгоритм попросил закодировать? Может быть, я попросил вас, например, Pzz>написать программу, которая преобразует недетерминированный конечный Pzz>автомат в детерменированный? Или попросил по памяти написать работу с Pzz>RB-деревьями?
Нет, задачка-то красивая, только в топике речь уже шла о всяких сортировках и графах, вот это я считаю лишним.
Pzz>Ну так надо было помочь чуваку с изучением C++. Этот вопрос только Pzz>кажется очевидным, почему в этом дурацком языке не создаются экземпляры Pzz>абстрактных классов (и закаким хреном вообще нужны такие классы, Pzz>экземпляр которых нельзя создать). Потому что по какому-то глупому Pzz>недоразумению этот язык не различает понятие класса и понятие интерфейса.
Ну у нас речь шла о с#. Помогал, куда деваться, но мне кажется, что такие понятия олжен каждый программер, пишущий на оо-языке. АФАИК, понятие интерфейса пришло в плюсы с сом'ом, поэтому эти сущности не разделены, но я не вижу здесь ничего сложного для понимания. По мне гораздо сложнее было разобраться как работают различные cast'ы и где какой надо применять.
ок, разберемся. я знаком с графами. за 7 лет работы с сиквелом я применял их ровно два раза.
первый — у меня был граф роутов и надо было найти все возможные пути между двумя точками. пишется на t-sql'е только в путь. к тому же ситуация подробно описана в BOL, так что возможно придумывать даже ничего не стоит.
второй — процедура, строящая граф зависимостей между табличками в базе. используется для последовательной очистки всей базы, а также для заполнения её тестовыми данными начиная со справочников. для вашего примера тоже подойдет. написал не знаю уже даже сколько времени назад, с тех пор просто пользуюсь.
как видите, работа с графами мне тоже нужна, но все же я не считаю это тем, что стоит спрашивать на собеседовании. конечно, задачка для сиквела интересная, но лучше бы чел немного лучше знал оптимизатор.
Здравствуйте, lynn-lynn, Вы писали:
LL>как видите, работа с графами мне тоже нужна, но все же я не считаю это тем, что стоит спрашивать на собеседовании. конечно, задачка для сиквела интересная, но лучше бы чел немного лучше знал оптимизатор.
А еще лучше какой-нибудь OR-bridge
Здравствуйте, Esef, Вы писали: E>А с другой стороны человек имеющий высшее образование и хоть какие-то мозги имеет как миниумум право получать достаточно денег чтобы снять квартиру(в москве я так понимаю 500 у.е.), что-то есть (200 у.е.) ... В о что-то одеватся — (200 у.е.). Итого в Москве, минимальная зарплата для зеленного новичка должна быть 900 у.е. E>Поправте если где-то ошибся в расчетах.. E>Для Киева Квартира 300 у.е., питание 150 у.е., одежда 150 у.е.... Итого 600 у.е.
(уважительно)дорогой коллега, этого недостаточно. потребностей у молодого организма гораздо больше, чем можно позволить себе на 300-400уе. тем более в москве. ну, а поскольку амбиций — масса, можно потребовать и 1200, и 1500.
В>Позвольте дать вам один совет. На собеседовании просите у соискателей реализовать несколько типов сортировок, пирамидальную например, нещадно гоняйте людей по сложностям алгоритмов, просите дать определение интеграла и решить квадратное уравнение. Чем больше от вас уйдёт хороших специалистов, тем больше их придёт в другие фирмы. Например к нам.
Хмм... А квадратное уравнение здесь причем. С какого перепугу ты его сюда поставил? Или я чего-то не понимаю в этой жизни?
Здравствуйте, Sash_xp, Вы писали:
S_>Гм, я так понял господин Калачев предлагает сговор фирм с целью уменьшения оплаты труда программистов? Ну во-первых, это незаконно, во-вторых программисты "проголосуют ногами" — уедут в другие города. Сговориться на всей России — программисты снова потянуться за рубеж. Сговориться всем миром? Тогда в эту отрасль пойдет ещу меньше талантливых людей и нехватка кадров станет еще более ощутимой.
Ну... не все настолько мобильны, но... даже профсоюз плюс забастовка ударят по Калачеву сильнее, чем по персоналу.
Здравствуйте, Pzz, Вы писали:
Pzz>Glоbus wrote: >> >> И так — убираем ненужный расчет длины >> — как оцените, драгоценнейший, такой вариант?
Pzz>Пусть это оценивают знатоки C++
Pzz>Я к их числу не принадлежу...
Не понял — а как же вы, уважаемый, оцениваете решения, предложенные кандидатами?
Здравствуйте, Юнусов Булат, Вы писали:
ЮБ>Внимание вопрос — как без графов ты собираешься разрулить порядок наката изменений каждой таблички на базу?
это не значит что нельзя взять справочник и посмотреть туда, когда нужно. А не таскать все это в голове постоянно, чтобы блеснуть на собеседовании.
чтобы быть в состоянии решить подобные задачи, нужно как минимум периодически освежать в памяти знания. Если человек не решил на собеседованит — это не значит что он не в состонии решить в принципе.
Здравствуйте, Pzz, Вы писали:
>> Маленькая поправка: ВСЮ разработку выводят компании у которых написание >> софта не основная ключевая компетенция, >> не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания >> не отдаст в oursource свою ключевую компетенцию. >> Google или Microsoft никогд разработку не заоутсорсят. (Google >> попыталась, но не аутсорсом, а сделав свой R&D центр в индии. >> По достоверным слухам потерпела неудачу)
Pzz>Опровергающий пример: Skype пишет небольшая команда в Эстонии.
Skype с самого начала в эстонии писался как и kazaa, кроме того это не аусторс, а вполне себе офис компании skype, просто не в США.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, _Black_, Вы писали:
A>>Google или Microsoft никогд разработку не заоутсорсят. (Google попыталась, но не аутсорсом, а сделав свой R&D центр в индии. A>>По достоверным слухам потерпела неудачу)
_B_>Может в Питере у Google что получится 3 тыс. сотрудников Google посадят в технопарке Петербурга
Это бред, перепечатанный журналистами. У Google сейчас в сумме 3000 сотрудников вместе с менеджерами и уборщицами. А в питере столько программистов уровня Google просто нет. Ноги растут из следующего "правительство хочет в питере технопарк из 3000 программистов(всего)", Google по слухам хочет участвовать. После чего журналисты записывают весь технопарк на google.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Anatolix, Вы писали:
A>Здравствуйте, Pzz, Вы писали:
>>> Маленькая поправка: ВСЮ разработку выводят компании у которых написание >>> софта не основная ключевая компетенция, >>> не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания >>> не отдаст в oursource свою ключевую компетенцию. >>> Google или Microsoft никогд разработку не заоутсорсят. (Google >>> попыталась, но не аутсорсом, а сделав свой R&D центр в индии. >>> По достоверным слухам потерпела неудачу)
Pzz>>Опровергающий пример: Skype пишет небольшая команда в Эстонии.
A>Skype с самого начала в эстонии писался как и kazaa, кроме того это не аусторс, а вполне себе офис компании skype, просто не в США.
Здравствуйте, Gorbatich, Вы писали:
A>>И что? Не спрашивали же про соседей справа и слева. A>подразумевается ВСЕХ соседей. Сосед 1. G>Тут ясновидящих, телепатов и прочих медиумов нет. И кем же это подразумевается?
Математикой за первый курс.
Слово "всех" достаточно часть пропускается в математических определениях где используется множественое число.
Да и в матане точку не перестают считать экстремумом из-за того что она на конце отрезка.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Pzz, Вы писали:
Pzz>Ну вот, почти договорились.
Pzz>А теперь представьте себе, что Вы по каким-то причинам вынуждены Pzz>работать с последовательностью, которую два раза туда-сюда не пробежишь. Pzz>Например, это не последовательность целых чисел, а последовательность Pzz>товарных вагонов, и пробег по последовательности означает физическое их Pzz>перемещение. А мазута (для тепловоза) у Вас конечное количество. Будет Pzz>Ваш алгоритм работать с такой последовательностью?
Все проще есть такая штука как istream_iterator, он только forward.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Трофимов, Вы писали: A__>>А вообще по поводу уточнения задания... Я просто достаточно с этим шишек набил. Не всегда творчество приносит пользу. При наличии неких разночтений всегда лучше уточнить у заказчика. Иначе потом придётся делать всё заново так, как ему это нравится. Т>Всякие заказчики бывают. Когда я к одному приставал с вопросами, он мне отвечал: да хрен знает, ты сам что-нибудь придумай, а мы посмотрим. А когда я предъявлял, слышал: Вот! Вот так точно не надо!
Всё это не применимо в том случае, когда приходится разрабатывать отдельные компаненты сложной системы. В этом случае поведение должно быть стртого детерминировано. То есть необходимо сначала договориться с разработчиками компанент, с которыми придутся взаимодействовать, и/или архитектором системы. Самодеятельность может принести массу геморроя всем.
ЗЫ. В вашем случае согласование с заказчиком таки было проведено.
Vogul wrote: > > Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ... > > Pzz>И далее совершенно естественно возникает вопрос о диапазоне i, в котором > Pzz>определены a[i-1] и a[i+1]. > > А потом, как уже говорили, возникает вопрос о поведении алгоритма на > границах. > Допустим, что и на границах алгоритм должен находить максимумы, > следовательно значения за пределами массива равны минус бесконечность. > Если рассматривать приращения, то, в этом случае, достаточно лишь > определить на границах любое отрицательное приращение.
С границами все равно ничего не получится сделать, кроме как явно с ними
разбираться. Это происходит 1) из-за ограниченности диапазона целых
чисел в компутере 2) отсутствия специальных значений для плюс/минус
бесконечности (INT_MAX и INT_MIN не являются такими значениями).
Мне кажется, для Вас переход от массива целых чисел к непрерывной
числовой прямой совершенно естественнен. Для меня же он совершенно
противоестественнен.
Для меня, как для программиста, любое множетсво конечно, к некоторым
множетсвам имеет смысл относиться, как к счетным, а континуум это нечто
совершенно невообразимое. Более того, и числа для меня являются числами
в некотором ограниченном диапазоне (не важно, сколько в числе бит, важно
что их всегда конечное количество).
> Pzz>Вообще говоря, выгоднее бежать по массиву до тех пор, пока разность > Pzz>между соседями не меняет знак (вернее, не знак, а свойство быть > Pzz>отрицательной, нулевой или положительной). И только уже в этих точках > Pzz>разбираться, нашли мы локальный максимум, или нет. Но получающийся > Pzz>алгоритм будет заметно более сложный и неочевидный. > > Здесь вы рассуждаете, по сути, в терминах производных.
Да, я чуть было не употребил слово "производная", и специально переписал
свое рассуждение без него. Это было Ваше влияние!
>>> Заметьте, что >>> >>> a[i+1] — a[i] > 0 тождественно a[i] < a[i+1] >>> >>> это как раз и поводит четкую математическую основу под решение задачи, а >>> такая основа придает уверенность в правильности решения. > > Pzz>Заметил, но для меня это совершеннейшая тавтология > > Это тавтология до тех пор, пока мы рассмотриваем одномерный массив целых > чисел.
Anatolix wrote: > >>> Маленькая поправка: ВСЮ разработку выводят компании у которых написание >>> софта не основная ключевая компетенция, >>> не вопрос отдать всю бухгалтерию и бизнес приложения. Ни одна компания >>> не отдаст в oursource свою ключевую компетенцию. >>> Google или Microsoft никогд разработку не заоутсорсят. (Google >>> попыталась, но не аутсорсом, а сделав свой R&D центр в индии. >>> По достоверным слухам потерпела неудачу) > > Pzz>Опровергающий пример: Skype пишет небольшая команда в Эстонии. > > Skype с самого начала в эстонии писался как и kazaa, кроме того это не > аусторс, а вполне себе офис компании skype, просто не в США.
Это был опровергающий пример к Вашим рассуждениям о Google.
Я думаю, такая модель будет практиковаться все больше и больше: компания
американская, а core team сидит где-нибудь в России или Индии.
Действительно, это надо отличать от outsource. Работать в такой компании
гораздо приятнее, чем в аутсорсинговой.
Здравствуйте, Pzz, Вы писали:
>> Pzz>Опровергающий пример: Skype пишет небольшая команда в Эстонии. >> >> Skype с самого начала в эстонии писался как и kazaa, кроме того это не >> аусторс, а вполне себе офис компании skype, просто не в США.
Pzz>Это был опровергающий пример к Вашим рассуждениям о Google.
Pzz>Я думаю, такая модель будет практиковаться все больше и больше: компания Pzz>американская, а core team сидит где-нибудь в России или Индии. Pzz>Действительно, это надо отличать от outsource. Работать в такой компании Pzz>гораздо приятнее, чем в аутсорсинговой.
К этому идём. Посмотрите на Акронис, SW-Soft, Аэлиту и шароварные компании вообще. Сама компания "американская", а разработка в стране. Имхо, это абсолютно правильная модель: разработкой занимаются классные местные технари, а компания создаётся вне российской юрисдикции (то есть уходит от проблем с государством, плохими законами, стабильным загниванием страны и т.п.). Только это не аутсорс, а скорее вынос головного отделения за океан. Не надо путать эти две схемы
Слава Шевцов wrote: > > Pzz>Я думаю, такая модель будет практиковаться все больше и больше: компания > Pzz>американская, а core team сидит где-нибудь в России или Индии. > Pzz>Действительно, это надо отличать от outsource. Работать в такой компании > Pzz>гораздо приятнее, чем в аутсорсинговой. > > К этому идём. Посмотрите на Акронис, SW-Soft, Аэлиту и шароварные > компании вообще. Сама компания "американская", а разработка в стране. > Имхо, это абсолютно правильная модель: разработкой занимаются классные > местные технари, а компания создаётся вне российской юрисдикции (то есть > уходит от проблем с государством, плохими законами, стабильным > загниванием страны и т.п.). Только это не аутсорс, а скорее вынос > головного отделения за океан. Не надо путать эти две схемы
Я имел ввиду другой вариант: не вынос головного отделения в US, а "внос"
девелоперского отделения в Россию. Т.е., когда компания "на самом деле"
американская.
В одну из перечисленных Вами компаний я ходил поговорить про работу. Мне
не понравилось: оплата полусерая, отпуск урезанный по сравнению с
КЗОТом, плохое душное помещение для программистов (у меня там голова
почти сразу выключилась), никаких гарантий в случае увольнения. Если
учесть, что до того я работал в нормальной американской компании,
которая не пытается поиметь своих работников по мелочи, то разница очень
чувствуется.
Думаю, по мере того, как все больше иностранных компаний будут открывать
у нас свои центры разработки, ситуация на рынке труда будет становиться
более цивилизованной.
Здравствуйте, Pzz, Вы писали:
>> Pzz>Я думаю, такая модель будет практиковаться все больше и больше: компания >> Pzz>американская, а core team сидит где-нибудь в России или Индии. >> Pzz>Действительно, это надо отличать от outsource. Работать в такой компании >> Pzz>гораздо приятнее, чем в аутсорсинговой. >> >> К этому идём. Посмотрите на Акронис, SW-Soft, Аэлиту и шароварные >> компании вообще. Сама компания "американская", а разработка в стране. >> Имхо, это абсолютно правильная модель: разработкой занимаются классные >> местные технари, а компания создаётся вне российской юрисдикции (то есть >> уходит от проблем с государством, плохими законами, стабильным >> загниванием страны и т.п.). Только это не аутсорс, а скорее вынос >> головного отделения за океан. Не надо путать эти две схемы
Pzz>Я имел ввиду другой вариант: не вынос головного отделения в US, а "внос" Pzz>девелоперского отделения в Россию. Т.е., когда компания "на самом деле" Pzz>американская.
Такого, скорее всего, не будет — Anatolix объяснил почему. Он классный специалист в этом вопросе. Компании лучше пригласить программиста к себе на базу, чем иметь удалённых высококлассных специалистов: другой дух, другая инфраструктура, другие стимулы. Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские. Но ни первый, ни второй не стали выносить центр разработки в Россию даже с учётом того, что в 1998-2000 гг. в России была очень низкая зарплата, а у них в Силиконовой долине очень высокая и им требовались действительно классные разработчики с математическими способностями.
Если же кто-то и будет выносить разработку, то только разработку, где не требуется больших знаний и умений. А на этом секторе рынка Бангалор бьёт Россию по всем параметрам: менеджмент, стоимость человеко-часа, знание английского.
Здравствуйте, Anatolix, Вы писали:
A>Да и в матане точку не перестают считать экстремумом из-за того что она на конце отрезка.
Иногда перестают — в "матане" при указании границ отрезка используются квадратные \ круглые скобки для указания того, принадлежат ли границы отрезку или нет.
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, ggg, Вы писали:
СШ>>Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские.
ggg>Про Google можно подробнее? Неужели С. Бирна можно всерьез русским считать
Брин родился и вырос в Москве, в США он обучался в университете.
ggg>Или, по-твоему, "русскость" — это с рождения, в крови так сказать, и никакими иноземными образованиями и университетами это не изменить
"Каждый вправе определять и указывать свою национальную принадлежность. Никто не может быть принужден к определению и указанию своей национальной принадлежности." Откуда цитата?
Слава Шевцов wrote: > Здравствуйте, ggg, Вы писали: > > СШ>>Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские. > > ggg>Про Google можно подробнее? Неужели С. Бирна можно всерьез русским считать > > Брин родился и вырос в Москве, в США он обучался в университете.
"вырос" до 6, что-ли, лет. Да, это, конечно, решает.
Здравствуйте, Pzz, Вы писали:
Pzz>DMVB wrote: >> >> Pzz>А Вы сами попробуйте решить, а я скажу Вам, сколько Вы сделали ошибок >> А какие в основном ошибки? Выходы за границы?
Pzz>Ну, кто-то должен рискнуть предложить свою версию для дальнейшего Pzz>обсуждения
Только сильно не пинайте
#include <stdio.h>
#define N 25
unsigned int MATRIX[N] = {
1, 3, 6, 4, 5,
6, 7, 8, 10, 9,
11, 32, 13, 14, 15,
16, 17, 48, 19, 20,
21, 22, 23, 23, 25
};
int main()
{
unsigned int count_loc_max = 0;
for (int i = 1; i < N-1; i++)
if (MATRIX[i] > MATRIX[i-1] && MATRIX[i] > MATRIX[i+1])
{
count_loc_max++;
printf("local max is %d\n", MATRIX[i]);
i++;
}
printf("count of local max: %d\n", count_loc_max);
return 0;
}
Здравствуйте, LuciferMoscow, Вы писали:
LM>Здравствуйте, A_l_e_x_e_y, Вы писали:
A__>>Здравствуйте, Pzz, Вы писали: Pzz>>>Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы Pzz>>>у меня были открытые вакансии... A__>>Поздно. Как минимум в течении года я точно не буду менять работу в силу подписанного договора. LM>В договоре написано, что ты не имеешь права уволится менее чем через год? Можешь игнорировать данный пункт договора как противоречящий законодательству РФ(Трудовой кодекс) LM><skipped>.
Хорошо у вас в России. А в беларусии есть такая штюка как срочный договор. И если в него не вписать дополнительные условия по расторжению, то его можно расторгнуть только по согласию сторон либо инициативе нанимателя...
Совсем недавно на такое натолкнулся... :/
Здравствуйте, Слава Шевцов, Вы писали:
СШ>Здравствуйте, WindWalker, Вы писали:
WW>>Хорошо у вас в России.
СШ>Кому именно?
В плане более вменяемого трудового законодательства(для сотрудников) — и 2 недели на увольнение, и...
Здравствуйте, EM, Вы писали:
EM>Здравствуйте, Anatolix, Вы писали:
A>>Да и в матане точку не перестают считать экстремумом из-за того что она на конце отрезка.
EM>Иногда перестают — в "матане" при указании границ отрезка используются квадратные \ круглые скобки для указания того, принадлежат ли границы отрезку или нет.
AFAIR отрезок это по определению с квадратными скобками, с круглыми это интервал.
Кстати причем здесь круглые и квадратные скобки, и вообще есть точка во множестве или нет?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Слава Шевцов, Вы писали:
СШ>>>Посмотрите на Google и Paypal: в обеих техническую часть проекта возглавляли русские. ggg>>Про Google можно подробнее? Неужели С. Бирна можно всерьез русским считать СШ>Брин родился и вырос в Москве, в США он обучался в университете.
Да он родился в москве, но на счет вырос я бы не стал так уверенно говорить.
AFAIK, Брина вывезли из России в возрасте 3 лет.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Просто, если разница в з/п супер-пупер квалифицированого специалиста и вчерашнего студента будет 1,5-2 раза, то тогда можно стонать о "переоцененности" сколько влезет, ничего не изменится.
а сколько должна быть разница? В Штатах примерно такая же зазница.
Здравствуйте, IT, Вы писали: IT>Помнится, после того как Балмер заявил в 2003 году, что средний девелопер должен получать не более 50к в год, WinFS был убран из Лонгхорна буквально через несколько месяцев и так до сих пор не очухался
Игорь, тут есть причинно-следственная связь или просто временная? Любопытства ради, не ерничества для. Куча народу просто свалила или поток соискателей не была принята на работу в проекте?
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС
unsigned int getCountLocalMax(int *vec, const unsigned int n)
{
if (vec == NULL || n < 2)
return 0;
unsigned int count = 0;
for (unsigned int i = 0; i < n; i++)
{
if (i == 0)
if (vec[0] > vec[1])
{
count++;
i++;
continue;
}
else if (i == n-1)
if (vec[i] > vec[i-1])
{
count++;
break;
}
if (vec[i] > vec[i+1] && vec[i] > vec[i-1])
{
count++;
i++;
}
}
return count;
}
Спасибо! И как я не заметил этой ошибки с if...
Действительно, надо привыкать скобки ставить.
Огромное спасибо.
Pzz>3. Вы инкрементируете i по два раза
Это потому что два максимума не могут быть соседями. Или могут?
Здравствуйте, IT, Вы писали:
IT>Помнится, после того как Балмер заявил в 2003 году, что средний девелопер должен получать не более 50к в год, WinFS был убран из Лонгхорна буквально через несколько месяцев и так до сих пор не очухался
Стареет Балмер, стареет. А жаль..
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Pzz, Вы писали:
Pzz>Для меня формулировка "локальный Pzz>максимум это элемент, который больше своих соседей" совершенно Pzz>естественно и напрямую превращается в сравнение с соседями:
Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ...
А кроме того, если найден локальный максимум, то следующий за максимумом элемент можно не анализировать. Оптимизция, однако...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Anatolix, Вы писали:
A>Да и в матане точку не перестают считать экстремумом из-за того что она на конце отрезка.
А часто в повседневной жизни отдельно взятые слова значат то же самое, что и в матане?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Epsilon wrote: > > Pzz>3. Вы инкрементируете i по два раза > > Это потому что два максимума не могут быть соседями. Или могут?
Да, Вы правы. Но это не очевидно — я бы написал соответствующий
комментарий в коде. Чтобы кто-нибудь потом не "исправил" это как
"ошибку", не разобравшись...
Геннадий Васильев wrote: > > Pzz>Для меня формулировка "локальный > Pzz>максимум это элемент, который больше своих соседей" совершенно > Pzz>естественно и напрямую превращается в сравнение с соседями: > > Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ... > > А кроме того, если найден локальный максимум, то следующий за максимумом > элемент можно не анализировать. Оптимизция, однако...
С другой стороны, лишняя проверка/переход. Плюс, код чуть сложнее, что
может ухудшить кодогенеразию в компиляторе. И такая оптимизация может на
самом деле дать небольшой проигрыш в скорости.
Здравствуйте, Pzz, Вы писали:
>> Кому в результате хорошо? Менеджерскому сознанию того, что программист >> "должен...", "не должен..." и т.п. Хорошо мифу о том, что "незаменимых >> нет" (правильно, плохо работать все умеют). Всем остальным — хреновей >> некуда. И не надо валить на "молодость индустрии" и подобные байки. Чушь
Pzz>Как раз, переход к конвеерному производству говорит о том, что пора Pzz>молододости для этой индустрии миновала. Что, по-моему, большая ошибка.
Я думаю, что "переход к конвейерному производству" лишний раз подтверждает, что химерам границы неизвестны. Получается примерно так: сначала долго и нудно рисуем конвейер (то есть, выпускаем химеру), потом также долго и нудно подгоняем наше понимание реальности под термины конвейера (даём ей "оторваться"), потом удивляемся, что конвейер уже всех достал, а что делать — никто не знает (поглощены химерой). Ну правильно. Мы же сами себя загнали в идиотские рамки, а потом жалуемся. Притом, обрати внимание, рамки-то — нарисованные! Как это называется?
Pzz>Программирование — слишком сложный вид человеческой деятельности, чтобы Pzz>считать, что человечество так уж далеко продвинулось на этом поприще.
"Человечество" в данном случае поступает более чем забавно. Имея возможность моделировать всё, что угодно, оно начинает моделировать банальное механическое производство. Само же себя нередко убеждает, что поступает неправильно и продолжает ходить по граблям. А потом жалуется на деквалификацию. Ну дык, чего хотели, то и получили. Хотели граблей? Нет проблем — компонент TRake всегда в свободном доступе.
Pzz>С другой стороны, за последние 20 лет практически ничего нового Pzz>придумано не было, что печально...
А ты на что рассчитывал? На конвейере работают, а не выдумки выдумывают!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали: ГВ>сначала долго и нудно рисуем конвейер (то есть, выпускаем химеру), потом также долго и нудно подгоняем наше понимание реальности под термины конвейера (даём ей "оторваться"), потом удивляемся, что конвейер уже всех достал, а что делать — никто не знает (поглощены химерой). Ну правильно. Мы же сами себя загнали в идиотские рамки, а потом жалуемся. Притом, обрати внимание, рамки-то — нарисованные! Как это называется?
То, что вы описали, называется традиция . И не надо обвинять, типа мы всё это придумали. Я это не придумывал. Тех, кто придумал конвеер, давно нет в живых.
Здравствуйте, awod, Вы писали:
A>Надеюсь не к Вашему удивлению, но знаю A>И не только посчитать, но и с определением и если посидеть, то и кучу доказательств на эту тему вспомню
А в чём, собственно, прикол?
Я вот, например, тангенс от 56123451967,44556677 считать лучше калькулятор заставлю.
tg(56123451967,44556677) = 2,407741132907830149100147761358.
Я думаю, вы в отличие от калькулятора эту операцию за 1 секунду не проделаете в уме с такой точностью.
Вопросы должны быть адекватными.
Зачем кодеру ядра ОС считать в уме интегралы?
Вы бы лучше будущего мультимедийщика про FFT и алгоритмы MPEG4 спрашивали.
Здравствуйте, Pzz, Вы писали:
>> Pzz>Для меня формулировка "локальный >> Pzz>максимум это элемент, который больше своих соседей" совершенно >> Pzz>естественно и напрямую превращается в сравнение с соседями: >> >> Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ... >> >> А кроме того, если найден локальный максимум, то следующий за максимумом >> элемент можно не анализировать. Оптимизция, однако...
Pzz>С другой стороны, лишняя проверка/переход. Плюс, код чуть сложнее, что Pzz>может ухудшить кодогенеразию в компиляторе. И такая оптимизация может на Pzz>самом деле дать небольшой проигрыш в скорости.
Думаю, что не всегда. Например, в таком коде:
template<typename T>
int get_local_maximum_count(const T *a, int array_size)
{
--array_size;
int res = 0;
for(int i = 1; i < array_size; ++i)
{
if (a[i] > a[i - 1]
&&
a[i] > a[i + 1])
{
++res;
++i;
}
}
return res;
}
влияние дополнительного инкремента будет невелико. Особливо, если на вход подан массив объектов.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Contract: 6 months+
Location: NYC
Rate: 650-700 a day
Our client is a Major Investment Bank and they are looking for a Strong C#/WinForms Developer with Fixed Income experience.
Will be responsible for developer screens for Fixed Income traders.
Required Skills: C#, WinForms, SQL
Must have Financial/Brokerage experience
Fixed Income Expeirence is a major plus.
Не секрет что в банках всегда были/есть/будут рэйты выше чем в других местах. Из-за "Must have Financial/Brokerage experience" все в порядке. Позиции не равнозначные — рэйты тоже.
Здравствуйте, HotShot, Вы писали:
HS>Не секрет что в банках всегда были/есть/будут рэйты выше чем в других местах. Из-за "Must have Financial/Brokerage experience" все в порядке.
Берут и без экпириенса, поверь мне Да и софт там ничем особенным не отличается, те же базы данных, сервера приложений, формочки.
HS>Позиции не равнозначные — рэйты тоже.
Т.е. ты утверждаешь, что инженер в MS и инженер в банке — это неравнозначные позиции? Ну, в принципе, и я о том же. Получается, что программистов в банках ценят больше, чем программистов в MS.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Pzz, Вы писали: Pzz>Я имел ввиду другой вариант: не вынос головного отделения в US, а "внос" Pzz>девелоперского отделения в Россию. Т.е., когда компания "на самом деле" Pzz>американская.
Собственно именно в такой компании я и работаю. Сейчас в Россию вынесено только часть производства. Как я понял, со временем планируется перенести сюда вообще всё.
A_l_e_x_e_y wrote: > > Здравствуйте, Pzz, Вы писали: > Pzz>Я имел ввиду другой вариант: не вынос головного отделения в US, а "внос" > Pzz>девелоперского отделения в Россию. Т.е., когда компания "на самом деле" > Pzz>американская. > > Собственно именно в такой компании я и работаю. Сейчас в Россию вынесено > только часть производства. Как я понял, со временем планируется > перенести сюда вообще всё.
Геннадий Васильев wrote: > > Pzz>Как раз, переход к конвеерному производству говорит о том, что пора > Pzz>молододости для этой индустрии миновала. Что, по-моему, большая ошибка. > > Я думаю, что "переход к конвейерному производству" лишний раз > подтверждает, что химерам границы неизвестны. Получается примерно так: > сначала долго и нудно рисуем конвейер (то есть, выпускаем химеру), потом > также долго и нудно подгоняем наше понимание реальности под термины > конвейера (даём ей "оторваться"), потом удивляемся, что конвейер уже > всех достал, а что делать — никто не знает (поглощены химерой). Ну > правильно. Мы же сами себя загнали в идиотские рамки, а потом жалуемся. > Притом, обрати внимание, рамки-то — нарисованные! Как это называется?
Конвеерное производство имеет одно преимущество, важное для бизнеса:
производительность труда растет прямо пропорционально количеству
тружеников. С другой стороны, за это приходится платить. Например,
качеством, или тем, что ничего действительно нового так не сделаешь.
То, что такой подход должен был рано или поздно добраться и до
программирования, было предопределено. Но от этого не менее обидно...
С другой стороны, на мой взгляд программирование, по крайней мере
сейчас, все еще слишком сложно для конвеера, и никакие C# не отменяют
этого факта. А это позволяет надеяться, что на наш век хватит интересной
и высокооплачиваемой работы, требующей нормальной квалификации
Здравствуйте, IT, Вы писали:
IT>Т.е. ты утверждаешь, что инженер в MS и инженер в банке — это неравнозначные позиции? Ну, в принципе, и я о том же. Получается, что программистов в банках ценят больше, чем программистов в MS.
может и ценят, но только в забугорных банках, двое коллег работал в разных украинских банках, зарплата там была достаточно высокая, но в аутсорце выше...
Здравствуйте, Pzz, Вы писали:
Pzz>Кроме того, не про все программы так уж легко узнать, где они делаются. Pzz>Вот где, например, на этом сайте написано, что программы на самом деле Pzz>пишутся в России?
А почему это должно быть написано? Потребителю не должно быть важно ГДЕ написан. Главное для него КАКОЙ это софт.
Здравствуйте, Sh1ZoID, Вы писали:
SZI>ЗЫ Ну ведь согласись, не матрицами одними живём...
Я, если четсно, всегда считал что от нашего брата в геймдеве зависит очень мало.
Намного большую отвественность за успешность-неуспешность проекта несут сценаристы, художники, дизайнеры и тестировщики.
дело совсем не в сложности Вашей задачи. дело в другом. сужу исключительно по себе.
задача не трудная, просто если с какой либо областью не сталкиваешся долгое время — она само собой забывается. это не значит что решить задачу из этой области нельзя — просто надо глянуть в справочник и освежить данную инфу. да, в свое время читал книги по алгоритмам и пробовал сам их реализовывать /собстно кто не делал этого?/, только за последние годы работы не сталкивался с подобными задачами, ну не нужны они были
мне кажется вопрос на синхронизацию, либо что-то такое же несложное, но часто использумое в повседневной работе на собеседовании более уместен, если уж так хочется попросить написать код.
хотя, если решение алгоритмических задач занимает основное/важное место в процессе разработки то безусловно надо и их спрашивать.
может стоит спрашивать именно то, что пригодится в работе?
Здравствуйте, Esef, Вы писали:
E>А с другой стороны человек имеющий высшее образование и хоть какие-то мозги имеет как миниумум право получать достаточно денег чтобы снять квартиру(в москве я так понимаю 500 у.е.), что-то есть (200 у.е.) ... В о что-то одеватся — (200 у.е.). Итого в Москве, минимальная зарплата для зеленного новичка должна быть 900 у.е.
Так и жить: на работу ходить пешком, личную жизнь не устраивать и отдыхом (и прочими глупостями) не заниматься.
Здравствуйте, Pzz, Вы писали:
Pzz>Нет, вышеперечисленное отличает бомжа от не-бомжа. Культурному человеку Pzz>(после того, как он научится читать, писать и пользоваться столовыми Pzz>приборами) не помешало бы еще научиться с другими людьми вежливо Pzz>разговаривать, придерживаясь темы беседы, и не переходя на личности.
Бомж — это человек, у которого отняли жилье, а не тот, который вырос некультурным.
Вы бы еще написали "негр" и "не-негр".
Здравствуйте, Epsilon, Вы писали:
E>Здравствуйте, Pzz, Вы писали:
Pzz>>Ну, кто-то должен рискнуть предложить свою версию для дальнейшего Pzz>>обсуждения
E>Только сильно не пинайте
Сходу вижу 2 ошибки.
1. Не будет посчитан последний максимум — число 25.
2. Цикл будет перескакивать через 1 элемент (i++).
Здравствуйте, Sash_xp, Вы писали:
S_>Здравствуйте, zhora, Вы писали:
Z>>вот какая дискуссия возникла на нижегородском форуме программистов Z>>http://www.nn.ru/biz/forum/software/?do=read&thread=177602&topic_id=3004991 Z>>для справки Калачев- руководитель одной из крупнейших аутсорсинговых компаний Н Новгорода
S_>Гм, я так понял господин Калачев предлагает сговор фирм с целью уменьшения оплаты труда программистов? Ну во-первых, это незаконно, во-вторых программисты "проголосуют ногами" — уедут в другие города. Сговориться на всей России — программисты снова потянуться за рубеж. Сговориться всем миром? Тогда в эту отрасль пойдет ещу меньше талантливых людей и нехватка кадров станет еще более ощутимой. S_>Как же в отрасли где существует такая огромная нехватка кадров труд может быть переоценен? Вот труд актеров точно переоценен, притом никакой нехватки кадров там и в помине нет. И талантов, тоже кстати достаточно.
Очень понравилось!!
Особенно то, что можно сделать вывод — на западе нехватка кадров ИТ... А судя по Германии — ну просто сговорились!! Давно подозрение у меня такое было! Да, и не только подозрение...
Кстати, а нельзя ли это как формулу применить?
Нехватка кадров = все в сговоре (/на км квадратный )
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, MasterMind, Вы писали:
aik>Зря. Программер должен быть способен безо всякой доки налабать хоть и очень тупой, но рабочий алгоритм на любой случай. Если чел на это не способен, то книжки ему ни разу не помогут.
Я полагаю, что под тупым, но рабочим алгоритмом подразумевается, к примеру, ЛЮБАЯ сортировка? Или нужно написать "тупой, но рабочий алгоритм" сортировки методом Шелла?
Я могу понять обе стороны. Если компания работает с большими объемами данных, и им крайне важны знания по быстрой сортировке различных типов и структур, то они и требуют знаний многих методов сортировки. Но и я, как разработчик, вполне спокойно себя чувствую, умея работать со стандартными методами сортировки в STL, и зная парочку методов сортировки (к примеру, метод выборки и быструю сортировку). А чтоб узнать и понять любой другой метод, мне понадобится 5-10 минут.
Но очень не нравится, когда на собеседовании даются какие-то "специально придуманные замороченные задачки", даже больше не на логику и понимание, а чтоб подтвердить статистику о нерешаемости задачи.
Тот исходник был написан мной, не подумав предварительно.
По наивности своей я купился на видимую простоту задачи, которую давал Pzz.
Позже, дочитав ветку, я написал "обдуманную версию"
, но и там умудрился напортачить.
Далбанная сессия !
Но всё же давайте обсудим ...
IM>Сходу вижу 2 ошибки.
IM>1. Не будет посчитан последний максимум — число 25.
+1.
Я тогда не осознал проблему выбора краевых условий, поэтому край у меня там — не лок. максимум.
IM>2. Цикл будет перескакивать через 1 элемент (i++).
-1.
Правильно, так было задумано. Два локальных максимума не могут быть соседями, поэтому наткнувшись на один локальный максимум, можно не рассматривать его соседа, т.к. достоверно известно, что этот сосед локальным максимумом являться не может.
Я удивлён, что это сразу не приходит всем в голову...
Здравствуйте, Pzz, Вы писали:
Pzz>sigsegv wrote: >> >>> Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли, >>> как найти туалет, и выходили на час-полтора из комнаты >> >> ну так взяли кого-нибудь в итоге-то ?
Pzz>Да.
А куда взяли-то?
Мне уж тоже интересно стало решить задачку.
#include <iostream>
using namespace std;
int maximums(const int arr[], int size)
{
int n=0;
for (int i=0; i<size; i++)
if ((i == 0 || arr[i] > arr[i-1]) && (i == size-1 || arr[i] > arr[i+1]))
n++;
return n;
}
int main()
{
const int arr[] = { 2, 5, 7, 6, 4, 9, 1, 5, 6, 2, 8, 4, 3, 2, 5 };
cout << maximums(arr, sizeof(arr) / sizeof(arr[0])) << endl;
getchar();
return 0;
}
Здравствуйте, Epsilon, Вы писали:
IM>>1. Не будет посчитан последний максимум — число 25. E>+1. E>Я тогда не осознал проблему выбора краевых условий, поэтому край у меня там — не лок. максимум.
Я понял.
Я вот сначала тоже написал без краев. Но когда просмотрел еще раз условия проверки, понял, что надо и их добавить. На форум не подглядывал, честно.
IM>>2. Цикл будет перескакивать через 1 элемент (i++). E>-1. E>Правильно, так было задумано. Два локальных максимума не могут быть соседями, поэтому наткнувшись на один локальный максимум, можно не рассматривать его соседа, т.к. достоверно известно, что этот сосед локальным максимумом являться не может.
E>Я удивлён, что это сразу не приходит всем в голову...
Здравствуйте, Igor Trofimov, Вы писали:
IM>>Так и жить: на работу ходить пешком
iT>Нормальные люди в Москве на работу, не связанную с поездками, представительскими функциями и если не из за города, ездят на метро и ходют пешком — это гороаздо убоднее и выгоднее, чем торчать в пробках. iT>Ну и если понтовые комплексы не жмут, конечно.
А метро у нас бесплатное? Я в общем-то говорил к тому, что помимо еды и одежды в жизни человека есть еще и прочие затраты. Транспорт, телефон, интернет, подарки, пьянки...
Здравствуйте, Pzz, Вы писали:
Pzz> 3. Неправильно понято условие задачи — просили количество локальных Pzz>максимумов, а не их список. Фактически, поставленная задача не решена.
неправильные ответы возникают из-за некоректных вопросов!
Определите, пожайлуста, локальный максимум для вашей задачи!
( Соголашусь, что из соображений здравого смысла должно быть рассчитано на чило точек больше 1!)
Igor Trofimov wrote: > > IM>Так и жить: на работу ходить пешком > > Нормальные люди в Москве на работу, не связанную с поездками, > представительскими функциями и если не из за города, ездят на метро и > ходют пешком — это гороаздо убоднее и выгоднее, чем торчать в пробках. > Ну и если понтовые комплексы не жмут, конечно.
Зависит от того, где дом и где работа. Одно время я ездил на работу из
Ясенево на Сокол, плюс еще на автобусе. На машине этот путь занимает в
среднем 50 минут, на общественном транспорте — полтора часа. Разница, в
общем-то, заметная.
Epsilon wrote: > > Тот исходник был написан мной, не подумав предварительно. > По наивности своей я купился на видимую простоту задачи, которую давал Pzz.
Не знаю, не знаю. По-моему, эта задача _простая_. Если это не так, то
что же такое простая задача? Подсчитать число элементов в массиве из N
элементов?
Здравствуйте, Pzz, Вы писали:
Pzz>Не знаю, не знаю. По-моему, эта задача _простая_. Если это не так, то Pzz>что же такое простая задача? Подсчитать число элементов в массиве из N Pzz>элементов?
Совсем нет. Задача, действительно очень простая, и это должно было меня насторожить, но в азарте какая-то часть моего мозга отказалась функционировать.
По-моему мнению, цель выполнения такого рода задачи — посмотреть на отношение кандидата к выполнению задачи. То есть мало выполнить необходимое условия, надо ещё организовать проверки ("защита от дурака"). Но это в голову сразу не приходит.
Кажется, поэтому Ваш кандидат и не справился?
Если короче: Лёгкость задачи — отвлекающий манёвр, суть — в проверках на входные данные и на общее оформление кода.
Вот скажите, если уже можно. Чего вы ожидали от Вашего кандидата при решении данной задачки такого, что гарантировало бы ему успех при приёме на работу? Вроде как простого её решения недостаточно, как я понял...
Здравствуйте, Pzz, Вы писали:
Pzz> 2. Если про крайние элементы можно еще поспорить, являются ли они Pzz>локальными максимумами, или нет, по причине отсутствия соседа с одной Pzz>стороны, то уж единственный элемент массива из одного элемента точно на Pzz>локальный максимум не тянет
Это тоже не совсем верно (ну мало ли какие требования у заказчика). Мне кажется, что если уж мы проверяем на максимум в отстутствие одного соседа, то вполне логично рассматривать ситуацию и в отстутствие обоих соседей. В общем, можно поспорить.
Epsilon wrote: > > IM>Мне уж тоже интересно стало решить задачку. > > Красивое условие! Но есть и недостаток: > — Если отправить NULL вместо указателя на массив, то программка упадёт...
По-моему, для программы на C это не является недостатком. Ведь даже если
функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит.
Т.е., я хочу сказать, что если работа с памятью unsafe, то частичная
safety ничего не улучшает. И может даже ухудшить надежность, т.к.
иллюзия безопасности провоцирует более расслабленное отношение к
указателям, без существенных на то оснований.
Здравствуйте, Epsilon, Вы писали:
E>Здравствуйте, i-maverick, Вы писали:
IM>>Мне уж тоже интересно стало решить задачку.
E>Красивое условие! Но есть и недостаток: E>- Если отправить NULL вместо указателя на массив, то программка упадёт...
Каким образом отправить NULL? Можно конкретный пример?
Pzz wrote: > Epsilon wrote: > >>IM>Мне уж тоже интересно стало решить задачку. >> >>Красивое условие! Но есть и недостаток: >>— Если отправить NULL вместо указателя на массив, то программка упадёт... > > > По-моему, для программы на C это не является недостатком. Ведь даже если > функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит.
А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику
вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_
большая редкость.
Здравствуйте, sigsegv, Вы писали: S>А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику S>вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_ S>большая редкость.
Тем не менее такие вакансии есть. Как мне кажется, в большинстве случаев это связано с тем, что для некоторых специфических устройств просто не существует других компиляторов. По крайней мере именно так обстоит дело в нашей компании.
sigsegv wrote: > >> По-моему, для программы на C это не является недостатком. Ведь даже если >> функция и проверяет NULL pointer, то (void*) 1 ее все равно свалит. > > А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику > вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_ > большая редкость.
Понятно, что устроиться на работу в McDonald's проще, чем устроиться на
работу шеф-поваром в приличный ресторан. Понятно также, что работа в
McDonald'sе будет малоопливаемая, неинтересная, и без серьезных
проффесиональных перспектив.
Я не готов рассуждать о том, есть ли какие-то языки "для простых людей"
и "для профессионалов". Еще менее я готов рассуждать на тему, какие
языки для кого круче.
Но вот в чем я глубоко убежден, что человек, который подстраивает свою
квалификацию под сиюминутные требования рынка труда, обречен работать в
программерском McDonald'sе. Впрочем, и в McDonald'sе можно дослужиться
до должности директора ресторана (однако мало кому это удается).
P.S. Специалистов высокого класса обычно нанимают не чтобы писать
столько-то строк в день на C++, или любом другом языке, а чтобы решать
проблемы определенного класса. Это должно быть как-то отображено в
описании вакансии.
Epsilon wrote: > > IM>Каким образом отправить NULL? Можно конкретный пример? > > Это всё, конечно, чисто мои придирки, но может просто вызвать функцию > некорректно > Например если так, что вылетит: > > int *arr = NULL; > ... > cout << maximums(arr, 15) << endl;
На мой взгляд, лучше всего, если в этом месте программа свалится по
SIGSEGV'у. Если при этом еще и получится core dump, будет совсем
замечательно.
P.S. Я в курсе, что бывают системы, в которых нет ни SIGSEGV'ов, ни core
dump'ов...
Здравствуйте, sigsegv, Вы писали:
S>А по-моему, C как язык уже нафик никому не нужен. Посмотрите статистику S>вакансий на rsdn !! Что видим: java, C#, .Net, C++. Pure C -- _очень_ S>большая редкость.
хаха, идите расскажите это в низкоуровневом программировании
или расскажите это Микрософту тому же, НТ-ХП-Виста все так же внутри на С с вкраплениями С++ мало-мало тянется и думаю еще долго протянется.
оффтопик: только название у форума уж очень неудачное, я бы скорее системным программированием обозвал. А то все думают там патлатые затворники с очками по -8 днем и ночью инструкции на асме прямо в опкодах правят на самом то бишь низком уровне. Шучу я Если серьезно, то низкоуровневостью уже давно в том форуме (который в основном по kernel development) не пахнет. многие бы весьма удивились, узнав какой путь после ухода в WriteFile проходит байтик посланный на диск к примеру...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
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 wrote: > P.S. Специалистов высокого класса обычно нанимают не чтобы писать > столько-то строк в день на C++, или любом другом языке, а чтобы решать > проблемы определенного класса. Это должно быть как-то отображено в > описании вакансии.
Вот! Профессионал будет использовать C только если отступать по
производительности уже некуда или надо работать с железом напрямую. В
остальных случаях будет использована какая-нибудь java. Выбор
адекватного инструмента -- это тоже критерий профессионализма и
областей, где использование C оправдано и даже необходимо очень мало. И
становится все меньше. И это отражается в спросе на программистов.
Здравствуйте, Epsilon, Вы писали:
E>Здравствуйте, i-maverick, Вы писали:
IM>>Каким образом отправить NULL? Можно конкретный пример?
E>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно E>Например если так, что вылетит: E>
Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит. Ну да, выдаст неправильный результат 1. Но не вылетит. В общем, "защиту от дурака" можно делать очень навороченную, но задача все-таки не в том состояла. Потому что у разработчиков, использующих библиотеки и чужие ф-ии нет такой цели — угробить программу.
согласился бы со всем написанным не замешай вы в котлету муху!
Наверное ник жужжаший \Pzz, прошу прощения не хотел обидеть — но удержаться сложно не обыграть ник\ тому виной...
нормальная задачка, что ж еще спрашивать у кандидата на позицию С\С++ инженера?
точнее что делать если такие задачи вызывают такую реакцию? не у web-дизайнера ж спрашивают задачку решить...
тут по-моему быстрее сесть и спокойно на бумаге написать чем потом об этом трещать
тем более решение такой задачи разумным способом есть хороший повод перейти на другие вопросы по смежным темам, заодно быстро посмотреть кандидата в деле. А то будет как с жонглерами в peopleware...
\бормоча под нос\ наверное все дело в длинне топика, действует гипнотизирующе — сложность задачи растет пропорционально
S>Хороших специалистов мало в любой области, и программированиее и в рекрутинге
а земля круглая...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
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.
Здравствуйте, i-maverick, Вы писали:
IM>Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит.
Я же говорил
E>>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно
IM> Ну да, выдаст неправильный результат 1. Но не вылетит. В общем, "защиту от дурака" можно делать очень навороченную, но задача все-таки не в том состояла. Потому что у разработчиков, использующих библиотеки и чужие ф-ии нет такой цели — угробить программу.
Я вот тоже сейчас задумался на эту тему. Вот, например, в "заводских" функциях таких как strlen и др., особо ничего не проверяестя... или это специально, чтоб не расслаблялись.
Epsilon wrote: > > Я вот тоже сейчас задумался на эту тему. Вот, например, в "заводских" > функциях таких как strlen и др., особо ничего не проверяестя... или это > специально, чтоб не расслаблялись.
Считается, что пользователь ожидает от этих функций максимально
возможной эффективности. И это разумно. В конце концов, приделать
паранойю к эффективной функции не сложно, а приделать эффективность к
параноидальной, но медленной функции, вряд ли у кого получится.
Надо еще понимать, что C API, и культура его использования формировались
в те времена, когда и сахар был слаще, и соль соленее, и от
программистов можно было ожидать IQ > 100. Теперь, когда в программисты
стали брать тех, кого не взали из-за низкого интеллекта в дворники,
требования на API существенно изменились. Да и другие языки стали
входить в моду...
Pzz>Зависит от того, где дом и где работа. Одно время я ездил на работу из Pzz>Ясенево на Сокол, плюс еще на автобусе. На машине этот путь занимает в Pzz>среднем 50 минут, на общественном транспорте — полтора часа. Разница, в Pzz>общем-то, заметная.
Согласен. Да, бывает, каюсь за излишнее абсолютизирование .
Но по личному опыту — это скорее исключение, чем правило, особенно если говорим о съемной квартире.
E>Вот скажите, если уже можно. Чего вы ожидали от Вашего кандидата при решении данной задачки такого, что гарантировало бы ему успех при приёме на работу? Вроде как простого её решения недостаточно, как я понял...
Нужно было нормальноерешение, а не простое.
Помилуйте, какой "отвлекающий маневр"? Если "простота задачи, как отвлекающий маневр" будет в реальной работе заставлять программера писать кривой код, то грош цена такому программеру. "Отвлекающий маневр", я фигею...
Здравствуйте, Igor Trofimov, Вы писали:
E>>Вот скажите, если уже можно. Чего вы ожидали от Вашего кандидата при решении данной задачки такого, что гарантировало бы ему успех при приёме на работу? Вроде как простого её решения недостаточно, как я понял...
iT>Нужно было нормальное решение, а не простое.
Приведёте пример нормального решения?
iT>Помилуйте, какой "отвлекающий маневр"?
Это просто я так выразился. Признаю, что криво.
iT> Если "простота задачи, как отвлекающий маневр" будет в реальной работе заставлять программера писать кривой код, то грош цена такому программеру.
Я полностью согласен, но речь вроде шла о собеседовании, где не последнюю роль играет фактор стресса. Получив такое простое задание, как подсчёт локальных максимумов и "ведясь" на его простоту, можно сгоряча наделать кучу ошибок. Те варианты решения, которые были здесь выложены, в целом говорят об этом. Это я хотел сказать, когда употребил выражение "простота — отвлекающий манёвр".
iT> "Отвлекающий маневр", я фигею...
Извините, что расстроил на ночь глядя. Кошмары не мучили?
Здравствуйте, Epsilon, Вы писали:
IM>>Забавный пример. А зачем передавать размер 15? Вы уж тогда определяйте размер как у меня в примере, через sizeof. И тогда она не вылетит. E>Я же говорил E>
E>>>Это всё, конечно, чисто мои придирки, но может просто вызвать функцию некорректно
Любая ф-ия, принимающая на входе массив и размер этого массива, подразумевает, что входные данные уже будут проверены (хотя бы на соответствие массива размеру, если уж не на NULL). Иначе какой смысл в передаче размера? Тем более, проверить это никак не получится. Разве что понаставить исключений на каждое действие.
Здравствуйте, Pzz, Вы писали:
Pzz>Вот где, например, на этом сайте написано, что программы на самом деле Pzz>пишутся в России?
Pzz> http://www.parallels.com/
E>Я вот тоже сейчас задумался на эту тему. Вот, например, в "заводских" функциях таких как strlen и др., особо ничего не проверяестя... или это специально, чтоб не расслаблялись.
Это делается ещё и потому, что всегда есть большой вопрос о том, кто должен отлавливать и обрабатывать исключительные ситуации: вызывающий код или вызываемый. Кто-то считает правильным отлавливать исключения даже в библиотечных функциях, а кто-то ставит try{}catch(...) в main — и не утруждает себя проблемами вылета прикладухи.
Здравствуйте, awod, Вы писали:
A>Здравствуйте, zhora, Вы писали:
Z>>вот какая дискуссия возникла на нижегородском форуме программистов Z>>http://www.nn.ru/biz/forum/software/?do=read&thread=177602&topic_id=3004991 Z>>для справки Калачев- руководитель одной из крупнейших аутсорсинговых компаний Н Новгорода
A>Интересная тема... A>По поводу переоценки стоимости кадров абсолютно согласен. В Москве, когда искал себе в команду людей, приходили граждане совершенно ничего не смыслящие и умеющие делать лишь "мышиную" работу и при этом просили 1200$ на испытательный!!! Простые задачки на графы и сортировки не могут решить! A>На самом rsdn-е очень часто появлются темы после прочтения которых у молодого специалиста возникает ощущение что всё круто и он сможет со своим не большим набором знаний расчитывать на достойную среднего специалиста ЗП. A>Резюмируя — качество кадров резко ухудшилось по сравнению с тремя-двумя годами ранее.
Ну я бы не сказал, что это такая простая задача. Например когда я впервый раз устраивался, то мне, дали задачку, НА ДОМ!!!
Простейшая казалось бы вещь, найти среднее из введенных юзверем занчений...
Так вот, я над ней неделю думал, все пытался понять, где же тут фокус, слишком просто что бы быть правдой, а потом написал, за последние часы, ессесно написал фигню, с кучей тупых недочетов. Потом получил зло_комментариев еще больше чем недочетов, на левые зло_комментарии ответил вежливо_объяснениями почему эти коментарии неправильны. вежливо_объяснения были с радостью приняты! Вот так я получил свою первую работу.
Кстати, надо сказать, что это было самое тяжелое задание. Задачки типа сравнить 2 xml файла + UI или 4-х часовое собеседование на нынешею работу проходили намного легче, хотя и пытали со всех сторон и по всем заявленным в резюме технологиям + алгоритмы + задачи на нестандартное мышление.
И еще немного из личного опыта, я к примеру Кнутов не читал, и алгоритмов умных не знаю, и реализовать сортировку пузырьком струдом смогу по памяти, зато знаю все прикладные характеристики основых алгоритмов (скорости работы а реальных данных с разной степенью отсортированности, размером и.т.д.), графики их сравнений у меня всегда остались в голове. Кроме того, когда мне нужны алгоритмы, которых не существует в принципе (незнаю(?)) я их придумываю сам, очень быстро.
чем больше читаю тем больше поражаюсь.
Мне безумно интересно увидеть метематика в реальном проекте ( если честно видел. больше не хочу
Конечно здорово уметь писать короткий, быстрый, и никому не понятный код, но тогда, хотя бы комментариями объяснить. Я вот сейчас джуниором тружусь, многого не знаю, но имхо работать в команде, это значит НЕ выделываться и показывать поттайные грани своего разума. я имею ввиду, что нужно расчитвать, что твой код может читать кто то другой, не такой гениальный, и долго размышлять, что же это означает. А потом еще и неправильно понять и все сломать .
Был у меня проект, один из первых, так вот там писали на VB.NET и ругали за "умность". А еще хвалили за коментарии. Зато код можно быть читать как художественную литературу.
Здравствуйте, Pzz, Вы писали:
Pzz>sigsegv wrote: Pzz> 2. Если про крайние элементы можно еще поспорить, являются ли они Pzz>локальными максимумами, или нет, по причине отсутствия соседа с одной Pzz>стороны, то уж единственный элемент массива из одного элемента точно на Pzz>локальный максимум не тянет Pzz> 3. Неправильно понято условие задачи — просили количество локальных Pzz>максимумов, а не их список. Фактически, поставленная задача не решена.
2. Что такое локальный максимум?
по аналогии с математическим локального максимума функции ... если найдется некоторая окрестность данной точки, для всех точек которой выполняется условие
окрестность определили ... так что я думаю это локальный максимум, даже если рядом (или тем более вообще нет других элементов, для которых выполняется условие ...)
3. Считаю задачу решеной с запасом ( оценку +/- запаса можно обсуждать )
Здравствуйте, Pzz, Вы писали:
Pzz>Геннадий Васильев wrote: >> >> Pzz>Для меня формулировка "локальный >> Pzz>максимум это элемент, который больше своих соседей" совершенно >> Pzz>естественно и напрямую превращается в сравнение с соседями: >> >> Pzz>if( a[i-1] < a[i] && a[i] > a[i+1] ) ... >> >> А кроме того, если найден локальный максимум, то следующий за максимумом >> элемент можно не анализировать. Оптимизция, однако...
Pzz>С другой стороны, лишняя проверка/переход. Плюс, код чуть сложнее, что Pzz>может ухудшить кодогенеразию в компиляторе. И такая оптимизация может на Pzz>самом деле дать небольшой проигрыш в скорости.
Я хочу узнать почему 'локальный максимум' стал 'строгим локальным максимумом'?
то бишь, почему <= заменили на <, а >= на >?
Или по вашему (локального) максимума не существует, если есть (в области) несколько наибольших элементов?
Здравствуйте, Pzz, Вы писали:
Можно я тоже вмешаюсь?
Pzz>Gorbatich wrote: >> Давайте завершим наш спор. "Правильную" версию программы в студию!!!
Pzz>Ну вот, например:
int max_count(int * a, int size)
{
int count = 0;
if(size > 2)
{
for(int i = 0; i < size - 2; i++)
{
if(((a[i+1] - a[i]) > 0) && ((a[i+2] - a[i+1]) < 0))
count++
}
}
return count;
}
Будет работать неправильно. К сожалению, a[i+1] — a[i] > 0 не тождественно a[i] < a[i+1].
(То, что код не компилится, за ошибку не считаем — это компилятор отследит)
При прогоне теста:
{int a[3] = {-2147483648,20,-2147483648};
if (max_count(a, 3) != 1) printf ("Test of min element fail\n");
}
Здравствуйте, execve, Вы писали:
E>Чтобы корова меньше ела и больше давала молока, её нужно меньше кормить и больше доить.
IMHO меткий ответ на весь флем. Ну что поделаешь, если отдельные человЕки мнят себя богами и решают, что и сколько должно стоить. Был у меня однокурсник, он в начале 90-х так на вещевых рынках так и торговался "ну это так не стоит, максимум столько-то". Иногда удавалось убедить продавца
Могу добавить одно, что не только с программерами это связано. Глобально это как-то. Вот на прошлой неделе один управленец из крупной автодилерской компании скулил в "Эксперте", мол русские мужчины не хотят работать рядовыми автомеханиками, все хотят либо быть управленцами, либо "решать не стандартные задачи". Однако про зарплаты "рядовых" он умолчал Другие работодатели плачутся, что типа з/п достигли некого "разумного максимума".
А в чем собственно беда? А в том, что действительно нужно много рядовых работников. Кои никем не управляют и не будут управлять. Эдакие "младшие научные сотрудники до пенсии". Но обеспечить им приемлемый уровень жизни никто и не думает.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, bralgin, Вы писали:
B>>почему-то твой пост вызывает во мне ассоциации с постами горе-кадровиков, публикующих в объявлении о вакансии длинющий список требований к кандидату. S>Даже не знаю, почему. Я не кадровик. Все, что я написал, исходит из личного опыта. Я не могу понять, ради чего я должен работать рядом с человеком, который
Ты берешь какие-то крайние случай... либо все, либо ничего.
Кстати я знаю несколько человек, которые знают "все" алгоритмы, все парадигмы и методологии, знают как что оптимизировать, найдут любую инфу в доках и инете. НО, в реальных проектах пользы от них ой как мало. Потому что все уходит на "наилучший алгоритм" и на последующию "наибыстрейшую оптимизацию" этого самого алгоритма.
Здравствуйте, i-maverick, Вы писали:
IM>А метро у нас бесплатное?
Считай да. Я за 4100 купил проездной на год. Получается в месяц 341 рубль. 12 баксов. Не сравнить с почти минимальныим 200 (а то и 300) баксами на тачку (парковки, бензин, масло, ремонт, взятки...). Метро выгоднее в ДЕСЯТКИ раз.
Здравствуйте, whacraic, Вы писали:
W>А в чем собственно беда? А в том, что действительно нужно много рядовых работников. Кои никем не управляют и не будут управлять. Эдакие "младшие научные сотрудники до пенсии". Но обеспечить им приемлемый уровень жизни никто и не думает.
Те же автомеханики много халтурят на сторону, рядовой программист может запросто на рабочем месте выполнять леваки, продавцы подкручивают ценники итд. Не хочет работодатель обеспечивать приемлемую зп — добрать до уровня нынче не проблема, было бы желание.
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>многие бы весьма удивились, узнав какой путь после ухода в WriteFile проходит байтик посланный на диск к примеру...
Здравствуйте, Igor Trofimov, Вы писали:
IM>>Так и жить: на работу ходить пешком
iT>Нормальные люди в Москве на работу, не связанную с поездками, представительскими функциями и если не из за города, ездят на метро и ходют пешком — это гороаздо убоднее и выгоднее, чем торчать в пробках.
Это всё весьма дело вкуса.
Насчёт удобства ехать в метро — тоже весьма спорно, с утра уехать из каких нибудь Кузьминок — это атас полный... Иногда лучше постоять в пробке, но в своей машине, чем испытать остроту ощущений в метро...
Здравствуйте, bralgin, Вы писали: B>Ты берешь какие-то крайние случай... либо все, либо ничего.
Да почему все-то? Достаточно одной таблетки из этого списка. B>Кстати я знаю несколько человек, которые знают "все" алгоритмы, все парадигмы и методологии, знают как что оптимизировать, найдут любую инфу в доках и инете. НО, в реальных проектах пользы от них ой как мало. Потому что все уходит на "наилучший алгоритм" и на последующию "наибыстрейшую оптимизацию" этого самого алгоритма.
Странные у тебя какие-то знакомства. Непонятно, кстати, каким это образом эти знакомые оправдывают отказ писать код на собеседовании.
Я вот знаю нескольких людей, одно присутствие которых в проекте существенно повышает его шансы на успешное завершение. Речь не о том, чтобы они назубок знали отличие Бойса-Кодда от Бойера-Мура, а о том, что в итоге оказывается, что 60% кода проекта написано этим человеком, и еще 20% кода им поправлено. Причем наблюдается какая-то удивительная корреляция между умением общаться в команде, способностью доводить задачу до конца, пониманием самой задачи в условиях дефицита времени, и умением просто писать код. Корреляция между знанием умных слов и результативностью гораздо слабее, хотя она тоже есть.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Igor Trofimov, Вы писали:
TT>>И еще немного из личного опыта, я к примеру Кнутов не читал, и алгоритмов умных не знаю, и реализовать сортировку пузырьком струдом смогу по памяти
iT>Кнутов, простите? А в школе пузырек уже не проходят? Эх, куда катимся...
Сам то понял что сказал? Я к примеру еще и математику не знаю, только по видимому мое "не знаю" это намного больше чем Ваше "хорошо знаю". Без обид, я просто имею ввиду что разные люди вкладывают разный смысл в одни и теже слова.