Какие программисты самые востребованные?

ermol

Какие программисты самые востребованные?
и больше всех получают

djdf

iphone\android..?

algraf

у тех у кого руки не из жопы растут

Damrad

iphone\android..?
факт бп

sweettydo

fox pro

FieryRush

факт бп
Херня, это лохи работающие в потогонках. Самые солидные программисты работают на джава ентерпрайз.

Damrad

Самые солидные программисты работают на джава ентерпрайз.
до этих товарищей довольно долго расти. нужно ботать широкий спектр технологий и фреймворков. а уверенным андроид/айфон прогером можно стать очень быыстро
п.с.:
довольно долго = года два-три.
очень быстро = пол года -год

Leka313

>уверенным андроид/айфон прогером можно стать очень быыстро
а ещё быстрее - уверенным пхп-прогером. и писать всякое говно потом, на которое даже страшно посмотреть.

Damrad

я беру в целом нормального адекватного товарища с головой, который знает/или интересовался алгоритмами, ооп, паттернами, с понятиями о naming conventions и code style (пусть даже не до конца знает или применяет, важно чтобы он слышал о таких словах ваще, как SVN, багтреккер и понимал, зачем они нужны и что без них очень плохо)
с набитой рукой в целом. пусть даже на университетских проектах. в общем товарища, относительно которого нет сомнений - он состоявшийся как программист. понятно ,что он легко заботает все что угодно.
в краткосрочной перспективе мобильные разработки очень очень выгодны. экономически выгодно на рынке. гигантский рост идет. бабосы можно рубить нормально
это мы сейчас говорили о программистах. большей частью о кодерах-пррогерах что ли.
есть еще архитекторы / сеньоры

Oleg4534

что, даже массив отсортировать на собеседовании просишь?
З.Ы. сейчас придёт Майк и объяснит нам, кто же такие настоящие прогеры. :grin:

Damrad

что, даже массив отсортировать на собеседовании просишь?
не прошу конечно. я бы гораздо грамотнее спросил:
просто оверью: какие ты знаешь сортировки, а также про какие слышал хоть краем уха. просто тупо названия.
ну товарищ перечисляет. если не упоминает радикс-сорт, спрашиваю, знает ли он что это такое. допустим не знает. спрашиваю, может слышал про поразрядную сортировку. а он такой, допустим "ааа да да. ну конечно же". о-! ну зашибись.
идем дальше. хипсорт. какая ассимптотика. а у квиксорта? гарантированно? а в худшем? почему на практике почти везде юзается хипсорт квиксорт? если ответит, то это уже очень хороший средний уровень имхо.
да е-мое. достаточно на самом деле очень малого количества вопросов чтобы понять что за перец перед тобой и будет ли из него толк и сможет ли он вписаться в команду
в общем техническая часть собеседования это все ерунда. довольно легко и очевидно и быстро все чекается и проверять. и не нужно даже давать тесты из разряда "что напечатает этот код"
один из важнейших вопросов это чего хочет кандидат и как он представляет себе свое развитие. нужно понять на какую высоту у него прицел стоит.
а еще я например сейчас спрашиваю что человек знает о промышленном программировании. пусть он даже не все это применял (понятно, что универские проекты этого не дадут) но если у него есть картинка в голове целостнаая, то это очень круто. Какие статьи он в целом читает. если допустим читает хабру, то какие статьи он не пропускает.

dydyka

почему на практике почти везде юзается хипсорт
че?

Damrad

забей. я описался. спал три часа всего и сегодня с восьми утра кучей дел занимаюсь

Maria-mirabella

и лажанул второй раз

Damrad

вот мне честно пофигу на то, что существует разные его модификации и оптимайзы. суть и идея не меняются
я сейчас говорю просто о наиболее общем и универсальном алгоритме. который можно применять и сильно много не думать.
или ты про то, что алгоритм должен сильно зависеть от входных данных? размера и требований как то например, "устойчивость" ?
или ты про сортировку Шелла?

Maria-mirabella

нет, просто в java, perl, python юзают СОРТИРОВКУ В SQL! mergesort

Damrad

блин реально слажал. омг! :o спасибо

a101

На TimSort там еще не перешли? Как я понимаю, в некоторых языках (в том же Go) он вроде как уже по дефолту.
Впрочем, мне казалось что в Java последней тоже уже он стоит.

Maria-mirabella

хм. пишут, что перешли. кроме перла в перле тоже не совсем mergesort, и идея улучшения та же

a101

Круто. Теперь знает правильный ответ на свой "вопрос" =)

Damrad

итого: в принципе все слажали. наиболее правильный ответ, наверное, такой:
зависит от реализации, но гарантируется то то и то то. в частности устойчивость. ну и в целом на создателей стд либов можно уже вполне полагаться и доверять, что там все будет нормалльно и максимально адекватно и здорово

Maria-mirabella

:)

Damrad

я хотел услышать не абсолютно правильный ответ. заметь, вопрос даже был в другом. а просто вопрос на тем чем плох хипсорт. вот какой вопрос нужно задавать было. ок

frostenrus

ну и в целом на создателей стд либов можно уже вполне полагаться и доверять, что там все будет нормалльно и максимально адекватно и здорово
Т.е. в целом ты спрашиваешь на собеседовании какую-то хрень, ага.

Maria-mirabella

в целом, надо смотреть на данные и включать голову

Boyan123

почему на практике почти везде юзается хипсорт квиксорт?
всегда было любопытно, почему это вообще кого-то ебет
вроде же есть стандартная библиотека

vfxbnjc

ИМХО знания и "оплачиваемость" коррелируют слабо в общем случае.
Последние месяца 2-3 собеседовал 6 человек на должность разраба. Никто из них внятно не смог мне рассказать, что такое сложность алгоритма (чтобы было понятно: люди не могли посчитать число операций простой функции). Один из кандидатов для вычисления 1180/1000 использовал калькулятор (как он вообще свою зп счита... ах да калькулятор ...). И все эти люди работают на 60-90к на своих текущих работах.
Причем один кадр меня вообще упрекнул: дескать чего это я его математику спрашиваю. Он же программист, а не математик.

Kevin111

naming conventions и code style
а можно поинтересоваться как по этим двум пунктам грамотно опросить человека?

Damrad

1. чтобы человек вообще такие слова знал
2. попросить прислать кусок его какого-нибудь кода :)

Kevin111

попросить прислать кусок его какого-нибудь кода
это да. однако некоторые говорят "я не высылаю свой код" подразумевая видимо что не шлют код от предыдущего работодателся. странно при этом то, что у человека своего кода что-ли нету. и сидим изобретаем ему тестовое задание блин.

vfxbnjc

Да че изобретать.
Дай такому кадру вот такую задачу http://www.e-olimp.com/problems/2244
Если решит, то можно и на код посмотреть.
Сама задача не сложная, но требует хорошей техники программирования.
Тут тебе и графы, и аккуратная работа с арифметикой и главное в инете негде натырить решение этой задачи. На том сайте ее никто не решил на 100% =)
P.S. И кстати, эта задача проверяет умение читать.

Kevin111

я сам такую задачу не решу наверно)
ну и олимпиадные задачи не особо подходят вообще, там на знание алгоритмов и структур данных, а нам важно чтоб человек ориентировался в сложной системе с большим количеством объектов, то есть ООП, паттерны, возможно шаблоны.
ну и конечно все это в тредах. а то недавно объяснял одному товарищу что такое мьютекс - на примере сортира со шпингалетом.

Oleg4534

для тестового задания - это перебор. такое себе могут позволить только компании уровня гугла.
хотя если бы это был конкурс на з/п 140+, я бы порешал.

Ramm13

Зависит от специфики вакансии.
Вообще для решения достаточно знать, что такое обход в ширину + немного здравого смысла.
Но вообще, судя по этому
ну и олимпиадные задачи не особо подходят вообще, там на знание алгоритмов и структур данных, а нам важно чтоб человек ориентировался в сложной системе с большим количеством объектов, то есть ООП, паттерны, возможно шаблоны.
эта задач далеко не первое, что хотелось бы спросить у претендента...

Damrad

точно обходом в ширину решается? мне вот хочется два раза дейкстру запустить
если граф хороший, как в "евклидова задача о коммивояжере". то можно и обход. вроде пофигу. но фиг знает на сколько "реальные" у них там тесты. наверняка есть и "кривые"
если допускается "читинг-нормализация всех ребер" перед применением обхода в ширину, то да. но надо прикинуть, как это скажется на времени работы. я чуток подумал и скорее всего никак.
вообще ограничения на задачу выглядят очень странно. можно в куче мест поднять на порядок/порядки. по памяти снизить. по времени - дальше уже некуда снижать :)
п.с: как всегда по традиции надеюсь, что я правильно понял условие :)
апд:
черт. есть проблемки
апд2:
там че еще бинпоиск по скорости придется делать? тогда ограничения становятся законными.
апд3:
блин. так нечестно. завтра придется решение написать

vfxbnjc

Мне кажется, что если у человека загораются глаза и рот расплывается в снисходительной улыбке при виде такой задачи, то он подойдет для того, чтобы разрюхать любую систему любой сложности.

Ramm13

Желание применить дейкстру правильное, но это некст левел (дейкстра - фактически же оптимизированный обход в ширину). На ограничения в условии я, правда, честно сказать, не посмотрел.
Бинарного поиска не вижу.
Вижу два прогона дейкстры для каждого велосипедиста, плюс один проход по всем вершинам, составляющим минимальные пути от убегающего велосипедиста до магистралей.
Критерий "не догнал" - в каждой вершине минимального пути убегающий должен побывать быстрее.
На последнем прогоне по всем точкам считаем минимум по всем путям от максимума необходимой скорости убегающего по всем точкам.

a101

Вижу два прогона дейкстры для каждого велосипедиста, плюс один проход по всем вершинам, составляющим минимальные пути от убегающего велосипедиста до магистралей.
Критерий "не догнал" - в каждой вершине минимального пути убегающий должен побывать быстрее.
На последнем прогоне по всем точкам считаем минимум по всем путям от максимума скорости убегающего по всем точкам.
А почему вы все решаете упрощенную задачу? Что если Борис знает где находится \ куда поехал Павел и может на некоторых перекрестках выбирать куда дальше ехать в завимости от более раннего выбор Павла? По крайней мере в условии о том, что путь Бориса должен быть независим от пути Павла ничего не написано. При этом вы подразумеваете, что Павел точно знает куда поехал Борис.
Например, если в городе два выезда E1, E2 и три точки в городе P1 P2 P3, при этом
D(P1, E1) = D(P1, E2) = D(P1, P2) = 1 и D(P3, E1) = D(P3, E2) = 2, Павел в P3, Борис в P2, то по вашему решению ответ 160км\ч, а реально Борису достаточно 80км\ч (когда он приедет в P1 - нужно будет ехать туда, где Павла нет).
Мне кажется в этой формулировке она более интересная :D

Damrad

дейкстра - фактически же оптимизированный обход в ширину
имхо это не так. хочешь тест дам? для произвольного графа это сто пудов не так
нарисуй сам некий неевклидов граф"непланарный граф и в котором не выполняеся неравенство треугольника"
я может щас ерунду сказал в математическом смысле (нет сил щас формулировать), но я думаю ты понял какой я хочу граф.
. очень плохой граф. без всяких ограничений из реальности
другими словами: в дейкстре имхо очень важен порядок апдейта вершин. назовем это релаксацией вершин.
придумай такой тест, в котором ты при помощи своего обхода в ширину быстро дойдешь в некую область, но с большИм значением.
а потом придумай боковой путь к одной из вершин этой области (пусть даже ко внутренней-чтобы наверняка), который будет в итоге короче (по сумме весов ребер). в итоге релаксации нужной вершины не произойдет
мне кажется тут должна проявиться проблема с этим
в общем в дейкстре важно поддерживать правильный "фронт". который на неевклидовых графах может сфейлиться если применять просто обход в ширину

Damrad

Что если Борис знает где находится \ куда поехал Павел и может на некоторых перекрестках выбирать куда дальше ехать в завимости от более раннего выбор Павла? По крайней мере в условии о том, что путь Бориса должен быть независим от пути Павла ничего не написано. При этом вы подразумеваете, что Павел точно знает куда поехал Борис.
 
и в самом деле. самое время отправлять вопрос жюри.
Мне кажется в этой формулировке она более интересная
согласен. ааааа! :shocked: :D
апд: надо очень четко посчитать за сколько там чего будет работать при "примитивном" понимании условия. предлагаю при помощи ограничений на размер входных данных вычислить истинную суть задачи и алгоритм. и сдать с первого раза ;)
меня вот сразу при первом "диагональном прочтении" смутило, что вершин всего 100. и я подумал, что просто сайт лажовый. потом, когда я поспешил написать об этом в первом посте и после этого начал придумывать тесты и проверять, я проверил что за город-хозяин сайта и понял, что грядет жопа. потом я посмотрел на статистику сабмитов (она очень даже красноречивая, если покопать) и понял, чо надо думать в чем там фигня. а потом я поехал домой. 25км на велике.
п.с.: блин сто раз же себе говорил уже: посмотри сначала сэмплы, потом еще раз перечитай, прежде чем улыбаться, потирать ладошки и откидываться на спинку стула
просто хотел решить задачу за <1 min а автор оказался крут. вот так вот

Damrad

я тут думал думал. ощущения такие, что даже в новой постановке сильно проблем не прибавляется. в том плане, что мы сможем с ними бороться, путем умножения-усложнения нашего алгоритма на 100 (кол-во вершин).
но и от идеи с бинпоиском я бы не отказывался. мне вот что тогда в голову пришло:
1. ответить на вопрос догонит или не догонит -не сложно. просто исключаем одну вершину из графа и запускаем "в глубину" для простоты реализации.
2. идем бинпоиском по скорости и ищем эту самую минимальную скорость. мин - понятно из ограничений на точность вывода. макс - надо прикинуть из ограничений на длины ребер (кстати тоже очень странно, что они такие короткие! там до длинной арифметики еще далеко вроде везде)
2.2. для каждой скорости запускаем то ли в ширину, то ли дейкстру (до конца не додумал еще). не простые а хитрые. возможно еще с довеском в виде сотни возможных состояний догоняющего. (а хватит ли сотни чтобы закодировать все что нужно?! хз).
и смотрим получилось ли с этой скоростью убежать.
надо допиливать дальше

Mike3

самые востребованные - с большими хуями

a101

надо очень четко посчитать за сколько там чего будет работать при "примитивном" понимании условия. предлагаю при помощи ограничений на размер входных данных вычислить истинную суть задачи и алгоритм. и сдать с первого раза
При базовом понимании там думать не над чем. 3 поиска в ширину с итоговым временем M log(N), предпологая что M > N. Никакие двоичные поиски не нужны.
относительно подробно описал как все это делать.

vfxbnjc

 
А почему вы все решаете упрощенную задачу? Что если Борис знает где находится \ куда поехал Павел и может на некоторых перекрестках выбирать куда дальше ехать в завимости от более раннего выбор Павла? По крайней мере в условии о том, что путь Бориса должен быть независим от пути Павла ничего не написано. При этом вы подразумеваете, что Павел точно знает куда поехал Борис.
Например, если в городе два выезда E1, E2 и три точки в городе P1 P2 P3, при этом
D(P1, E1) = D(P1, E2) = D(P1, P2) = 1 и D(P3, E1) = D(P3, E2) = 2, Павел в P3, Борис в P2, то по вашему решению ответ 160км\ч, а реально Борису достаточно 80км\ч (когда он приедет в P1 - нужно будет ехать туда, где Павла нет).
Мне кажется в этой формулировке она более интересная

Что значит в этой формулировке? =) Это и есть то, что имелось в виду. Оба действуют оптимально (это значит, что при ЛЮБЫХ действиях одного, другой сделает все, чтобы получить максимальный гарантированный выигрыш). Но если достигнуть гарантированного выигрыша можно разными способами, то берется минимальный по числу усилий (скорости).

Ramm13

Не, ну если бы такое работало, то нафига был бы нужен дейкстра с его дополнительным логарифным множителем в сложности?
Конечно, чтобы такого косяка не было, если мы достигаем уже просмотренную вершину с меньшим путем, мы перезапускаем из этой вершины волну. Именно поэтому и случится падение пефоманса.

Ramm13

Несомненно, в такой постановке она гораздо более интересна. Боюсь, правда, что она получается уже NP-полной. Я подумаю.

vfxbnjc

Несомненно, в такой постановке она гораздо более интересна. Боюсь, правда, что она получается уже NP-полной. Я подумаю.
Да ладно. Оптимизационная задача не может быть NP полной (хотя бы по-этому ты не прав).

zajxam

А почему вы все решаете упрощенную задачу? Что если Борис знает где находится \ куда поехал Павел и может на некоторых перекрестках выбирать куда дальше ехать в завимости от более раннего выбор Павла? По крайней мере в условии о том, что путь Бориса должен быть независим от пути Павла ничего не написано. При этом вы подразумеваете, что Павел точно знает куда поехал Борис.
Например, если в городе два выезда E1, E2 и три точки в городе P1 P2 P3, при этом
D(P1, E1) = D(P1, E2) = D(P1, P2) = 1 и D(P3, E1) = D(P3, E2) = 2, Павел в P3, Борис в P2, то по вашему решению ответ 160км\ч, а реально Борису достаточно 80км\ч (когда он приедет в P1 - нужно будет ехать туда, где Павла нет).
Мне кажется в этой формулировке она более интересная :D
Ага у обоих прикреплены чипы и навигаторы, чтобы мониторить кто-где и куда едет)), тогда я бы на месте Павла сидел пил кофе в P3, пока Борис в P1 не приедет, ну а дальше уже и была бы вся гонка, здесь надо понадеется, что смогу ехать более чем в два раза быстрее Бориса, ну а если не смогу, то и любая другая моя стратегия не поможет..
Мне кажется надо было сформулировать более правдоподобно, типа у Бори и Павла есть любимые места в городе, и вот однажды созвонившись они узнали, что Боря сейчас в Б, а Павел в П, на что Павел похвастался, что его место более выгодное в городе, и он сможет сейчас к любому любимому их месту приехать быстрее Бори, на что Боря подумав ответил -неправда я в М приеду быстрее тебя, на этом ребята поспорили и двинулись в путь кто быстрее. Вопрос какое место М должен был выбрать Боря и с какой скоростью ему нужно будет ехать, чтобы выиграть спор, если таких мест может быть несколько указать то, (одно из) до которого ему для выигрывания спора придется ехать с наименьшей скоростью.
Решение два раза запустить Дейкстру))
P.S Поиск в ширину позволяет ответить на вопрос, как посетив наименьшее количество ребер, из вершины п , попасть в любую из вершин s, что не тоже самое, что и кратчайший путь, за исключением случая, когда длинны всех ребер одинаковы.

LEV16101951

Или я чего-то проглядел, или условие сформулировано неверно. Там ведь нет ограничения на скорость передвижения Бориса (того, кто убегает).
Давайте предположим, что Борис хорошенько напряжётся и разовьёт скорость, достаточную для того, чтобы из произвольной точки города добраться до любой другой за время, не превышающее того времени, которое потребуется Пашке (который догоняет) на то, чтобы проехать половину кратчайшего пути между перекрёстками. При такой скорости движения Борис доедет раньше Пашки до федеральной трассы во всех случаях, кроме одного — если Пашка изначально стоит в перекрёстке, являющемся перешейком в том смысле, что Борис и федеральные трассы находятся в разных компонентах связности графа, из которого выкинут перекрёсток, занятый Пашкой; в этом случае Пашке вообще надо только стоять и терпеливо ждать, когда к нему подъедет Борис.

ghytr0001

все будет нормалльно и максимально адекватно и здорово
т.е. ты сам понял, что задавать твой вопрос не следовало?

Damrad

Или я чего-то проглядел, или условие сформулировано неверно. Там ведь нет ограничения на скорость передвижения Бориса (того, кто убегает).
не до конца дочитал. требуется не только узнать сможет ли он убежать или нет (по этой части ты прав), но и найти минимальную скорость с которой он сможет это сделать. вот это уже сложнее

Damrad

т.е. ты сам понял, что задавать твой вопрос не следовало?
в моей постановке не стоило, но скажем вопрос о недостатках хипсорта (или какого-нибудь другого алгоритма о котором претендент заявляет что вроде как знает) я считаю вполне уместен.
вообще мне кажется, что вы тут все в этом треде довольно высокую планку по уровню кандидатов и собеседований взяли. а с джуниорами как вести собеседование будете?

Damrad

Конечно, чтобы такого косяка не было, если мы достигаем уже просмотренную вершину с меньшим путем, мы перезапускаем из этой вершины волну. Именно поэтому и случится падение пефоманса.
ага. понятно. у меня просто мозг не поворачивается называть это тоже обходом в ширину. не привык. А что так тоже делают? а какая ассимптотика работы тут будет? и обязательно ли обход в ширину, точно нельзя какой-нибудь другой обход использовать?

Ramm13

ага. понятно. у меня просто мозг не поворачивается называть это тоже обходом в ширину. не привык. А что так тоже делают?
ну я так в школе делал, когда не понимал честного дейкстру =)
или если граф не взвешен - он работает быстрее дейкстры засчет отсутствия плохих случаев
а какая ассимптотика работы тут будет?
С ходу не скажу, но в худшем случае точно не лучше квадратичной
и обязательно ли обход в ширину, точно нельзя какой-нибудь другой обход использовать?
можно =)

Boyan123

нахуй идите отсюда с задачей (в хорошем смысле)

Ramm13

я не модератор, поэтому исправить ничего не могу
поэтому иди-ка ты нахуй к модератору (в хорошем смысле) с просьбой открепить ветку с задачей

Boyan123

иди нахуй (в хорошем смысле)
с предложением открепить ветку согласен!