P>>вы вот знаете что бывают методы сортировки, и их можно посмотреть в книгах, вероятно и в какие книги смотреть тоже знаете, этого вполне достаточно.Кадру о котором речь шла неизвестно даже о том что алгоритмы сортировки давно придумали и их заметно больше, чем 1 Чувствуете разницу? D>Соглашусь. D>Тут еще надо бы упомнуть, что бы он знал, что существую паттерны, и знал бы хоть один ГЫ D>ВОт и вы рисовывается картина, что нужно знать общую теорию, и что бы знал что куда посмотреть
С таким знанием основного базиса только и паттерны идти учить...
... << А писал я этот бред на RSDN@Home 1.1.4 stable rev. 510, под звуки Styx — Boat On The River>>
Здравствуйте, execve, Вы писали:
E>Слон сильнее. E>Навскидку — будет выбран std::map.
Угу — и с чего ты так решил? 2 дня поиска в google еще не прошло.
A>>Не страшно если человек пойдет и прочитает, страшно если он пойдет и и тупо напишет сортированный массив и будет его каждый раз сортировать после вставки. Нафиг нафиг.
E>Ну и где критерий, позволяющий определить, что будет использован именно вариант №2, а не №1 ?
Критерий простой — сомневаешься, не бери человека на работу. Кандидатов много, лучше на 3 дня позже взять того кто точно использует то, что надо.
E>ЗЫ: Собственно мой пойнт в том, что это в до-интернетовскую эпоху обширный багаж знаний был действительно важен, т.к. источников информации было очень мало и резко повысить свой уровень было практически невозможно. E>Сейчас же в Сети такое кол-во информации, особенно по CS, что более-менее хорошее представление практически о любой области можно получить достаточно быстро.
Мой point в следующем:
1) За несколько лет работы нельзя не столкнуться с большим объемом данных. Хотя вполне можно с ним работать без алгоритмов, например стандартными базами или контейнерами встроенными в язык.
2) Человек который за несколько лет не поинтересовался как это(базы и контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, и не интересуется ничем кроме текущих задач.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
T_K>а вопросы типа как какой метод сортировки работает... ммм... вы что, надеетесь изобрести нечто гениальное? > достаточно просто знать какой в каком случае будет пользовать целисообразнее, но как он устроен внутри... нах...???
Ничего не имею против вас лично. Но такого программиста я бы уволил.
Здравствуйте, anonymous_user, Вы писали:
A>>Не страшно если человек пойдет и прочитает, страшно если он пойдет и и тупо напишет сортированный массив и будет его каждый раз сортировать после вставки. Нафиг нафиг.
_>а избежать этого можно только одним способом _>в принципе, не брать на работу дураков и людей не умеющих учиться, потерявших этот навык
Вот именно.
_>а теперь вопрос на засыпку _>является ли знание алгоритмов сортировки критерием отличающим умного человека от дурака?
Я в соседнем посте ответил(2execve). Да я не считаю, что человек который не поинтересовался общим устройством алгоритмов софта и библиотек, которые он использует каждый день в течении нескольких лет склонным к самообучению.
_>и еще вопрос на засыпку _>насколько часто вы практикуете в своей фирме code review?
Ни на сколько. Мы не берем на работу людей которые не могут писать код самостоятельно.
_>и еще — контрольный вопрос _>тестированием у вас занимается тот же человек, что и писал код или есть специально набранные тестеры?
И те и другие. Плюс у нас 15 миллионов тестеров — весь рунет, ты сам того не подозревая много раз тестировал наши программы. Только какое это отношение имеет к алгоритмам, тестеры должны уметь по времени работы программы какая временная сложность алгоритмов в ней внутри?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, DEMON HOOD, Вы писали:
MVK>>Придет такой вот "математик" и скажет: "Не должен я знать, что такое диф. уравнение — я же стажером устраиваюсь! Вот возьмете меня на работу — разберусь.". DH>Дифф.ур он знает, но его спрашивают, как построить небоскрёб — а этому его не учили.
Обрати внимание его спрашивают как построить небоскреб, а не просят его построить.
Хочешь раскрою тебе секрет всех собеседований? На собеседованиях смотрят не столько на то, что ты отвечаешь, как на то как ты отвечаешь.
На собеседованиях не смотрят построишь ты небоскреб, или нет. Там смотрят как ты его будешь строить. Если ты выберешь неверное решение, то тебе подскажут ошибку и посмотрят как ты ее исправишь. И это правильно, если ты действительно будешь его строить ты будешь делать это не один, ты будешь допускать ошибки и поправлять чужие. Но если ты скажешь просто "xz, мыслей нет" то тебе покажут где дверь, люди которые не умеют решать задачи, не нужны.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Anatolix, Вы писали:
DH>>Дифф.ур он знает, но его спрашивают, как построить небоскрёб — а этому его не учили.
A>Обрати внимание его спрашивают как построить небоскреб, а не просят его построить. A>На собеседованиях не смотрят построишь ты небоскреб, или нет. Там смотрят как ты его будешь строить. Если ты выберешь неверное решение,
Я понимаю, что не просят построить. Но для постройки добротного небоскрёба требуются специфические знания, а у меня их нет. У меня в дипломе, понимаешь, написано строитель, а не строитель небоскрёба.
Вот тебе жизненный пример —
один мой знакомый, очень хороший механик, хотел устроится на работу на СТО. Звонит по тел., спец. обученная девушка-секретарь его спрашивает.
====диалог=====
— Сколькими винтами прикручивается насадка на маслянный фильтр к автомобилю БМВ марки такой-то?
— Откуда мне знать? Посмотрю в справочнике, если потребуется....
— Нет, Вы нам не подходите, нам нужны действительно хорошие специалисты, которые знют.....
Ну вот он зазубрил про БМВ и винты... а на следующем СТО его уже спрашивают про гайки и мерседесы
А человек — реально берёт поломаный движок, разбирает его, собирает снова — и вуаля, как новый.
silent RSDN@Home 1.1.4 stable [510] Windows XP 5.1.2600.0
Здравствуйте, anonymous_user, Вы писали:
MVK>>По результатам выяснилось, что он не знает что такое Hashtable, не знает как пользоваться SortedList-ом, не знает что такое QuickSort и метод сортировки пузырьком(именно не знает таких терминов, т.е. я не просил рассказать мне как работает QuickSort). На вопрос об алгоритмах сортировки, он также ответил, что подобные знания практику не нужны.
_>в принципе тот парень прав в том смысле, что он не "практик", а _>"начинающий практик" (!) _>а начинающему практику знание алгоритмов сортировки действительно на хрен не нужно
Я может и ощибаюсь, но вроде под термином "стажер" обычно подразумевают "теоретика", который имеет кучу книжных знаний и хочет облечь их в практические навыки. Так что такие "начинающие практики" идут лесом, компьютеры собирать, например.
, вот только хотелось бы узнать, что именно имели в виду под "осноные приемы программирования"? Просто пример с увеличением производительности, на мой взгляд, показывает только был ли подобный опыт у соискателя или нет и к реальным знаниям отношения почти не имеет.
Я не волшебник, я только учусь.
Posted by RSDN@HOME.
Anatolix wrote: > > Мой point в следующем: > 1) За несколько лет работы нельзя не столкнуться с большим объемом > данных. Хотя вполне можно с ним работать без алгоритмов, например > стандартными базами или контейнерами встроенными в язык. > 2) Человек который за несколько лет не поинтересовался как это(базы и > контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их > применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, > и не интересуется ничем кроме текущих задач.
1) Есть множество других вещей, помимо текущих задач, которыми он
мог бы заинтересрваться. Повышение квалификации в смежных
областях, например.
2) Интерес к устройству контейнеров и алгоритмов сортировки не
сильно интересен, если не сопровождается интересом к их
стоимости. При наличии интереса к стоимости тоже неинтересен,
но само знание стоимости — полезно.
Здравствуйте, Anatolix, Вы писали:
A>Критерий простой — сомневаешься, не бери человека на работу. Кандидатов много, лучше на 3 дня позже взять того кто точно использует то, что надо.
Видимо не так уж и много кандидатов, раз у автора топика "наболело".
A>Мой point в следующем: A>1) За несколько лет работы нельзя не столкнуться с большим объемом данных. Хотя вполне можно с ним работать без алгоритмов, например стандартными базами или контейнерами встроенными в язык.
Так может специфика работы такая, что с большими объемами сталкиваться не приходиться, например программируя под мобильные устройства невозможно столкнуться... Хотя, что именно Вы понимаете под "большим объемом данных"?
A>2) Человек который за несколько лет не поинтересовался как это(базы и контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, и не интересуется ничем кроме текущих задач.
А вот это вообще бессмысленное утверждение, может человек занимается саморазвитием в другом направлении? Не всех интересуют контейнеры...
Я не волшебник, я только учусь.
Posted by RSDN@HOME.
Здравствуйте, Anatolix, Вы писали:
A>И что нужно сделать чтобы твой order by работал быстро? А на сколько будет быстрее? А в чем будут недостатки этого метода? A>Как вообще получать ответы на эти вопросы?
Не поверишь. Я как правило структуру БД не разрабатываю, но бывает что прошу внести изменения в неё(добавить индекс какой либо или ещё что) и я это делаю через лида у людей которые делают базу и пишут логику обработки на стороне сервера.
Но всё таки успокою тебя теорию БД знаю, и практика есть, и даже, о ужас, знаю о нормализации баз (когда 5 лет назад защищал диплом, это был любимейший вопрос в ГАКовцев)
ЗЫ я не ищу работу, она у меня есть я просто вставил замечание, а мне кажется тут целое себеседование провести хотят
Здравствуйте, Anatolix, Вы писали:
E>>Навскидку — будет выбран std::map. A>Угу — и с чего ты так решил? 2 дня поиска в google еще не прошло.
Из предыдущего опыта и нечёткости постановки задачи.
Начнёт тормозить — заменим.
A>Мой point в следующем: A>1) За несколько лет работы нельзя не столкнуться с большим объемом данных. Хотя вполне можно с ним работать без алгоритмов, например стандартными базами или контейнерами встроенными в язык. A>2) Человек который за несколько лет не поинтересовался как это(базы и контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, и не интересуется ничем кроме текущих задач.
Каждый кулик хвалит своё болото.
Давай перефразируем пп 1 и 2, заменяя "большие объёмы данных" на "TCP".
"За несколько лет работы нельзя не столкнуться с TCP"
"Человек, который в тонкостях не знает как работает TCP ..." — далее по тексту.
Ты знаешь TCP настолько хорошо, чтобы не заглядывая в пару десятков RFC реализовать соответствующий кусок стека?
Значит это про тебя: "не саморазвивается, и не интересуется ничем кроме текущих задач".
Здравствуйте, ЯпонИц, Вы писали:
ЯИ>Я может и ощибаюсь, но вроде под термином "стажер" обычно подразумевают "теоретика", который имеет кучу книжных знаний и хочет облечь их в практические навыки. Так что такие "начинающие практики" идут лесом, компьютеры собирать, например.
Не кучу знаний, базовый минимум, уровня "Введение в ...", не более того.
ЯИ>По сабжу — согласен с Re: Наболело...
, вот только хотелось бы узнать, что именно имели в виду под "осноные приемы программирования"?
Да, я несколько сумбурно выразился. Общими словами, имеется ввиду следующее. Хотелось, чтобы программист думал о том, что он пишет. Бездумно скопировать кусок кода с msdn и подправить под себя — большого ума не надо. Т.е. программист должен понимать, что делает и как делает его код — звучит смешно, но это вполне реальная ситуация. Скопировал с msdn, увидел незнакомый класс, метод, непонимаешь почему это работает — разберись. А то смотришь на некоторых "практиков", которые методом тыка пытаются заставить работать свой код — становиться страшно.
ЯИ>Просто пример с увеличением производительности, на мой взгляд, показывает только был ли подобный опыт у соискателя или нет и к реальным знаниям отношения почти не имеет.
Прочитал всю ветку. Та же примерно ситуация.
Как раз сейчас ищу стажера примерно на те же деньги (500 — 600 евриков), в основом ориентируемся на студентов старших курсов.
Я не спрашиваю про особенности DirectX, std::map и отличия редакций MSSQL. Техническая часть интервью обычно сводится к элементарному вопросу по поводу технологий, которые предстоит использовать, из серии "какого цвета учебник", плюс простая задачка — то, что можно набросать на странице A4 за 10-15 минут — типа связный список (односвязный, только перебор элементов и добавление в хвост) или что-то подобное. За прошедшую неделю прособеседовал 6 кандидатов. Трое из них никогда не слышали, что такое связный список. Объяснил. В результате с задачей справился 1 кандидат. По теории — вообще одни слезы.
Конечно, в реальной работе вряд ли придется писать свой связный список, но если человек не может справиться с такой элементарной задачей, то с реальными не справится и подавно — они сложнее, даже для стажера. Одно время практиковали вступительное задание, более приближенное к реальности — надо было написать простое приложение, которое загружает данные из датабазы (структура спроектирована) и отображает в TreeView. Задача на полчаса максимум. Все еще хуже — народ сидел по 3-5 часов, что-работающее демонстрировал 1 из 10, в результате отказались от этой практики.
Здравствуйте Anatolix, Вы писали : > 1) За несколько лет работы нельзя не столкнуться с большим объемом > данных. Хотя вполне можно с ним работать без алгоритмов, например > стандартными базами или контейнерами встроенными в язык.
Сталкиваясь с большим объемом данных, понимаешь, что стоимость их
обработки легко переплюнет стоимость оракла вкупе с тюнингом.
> 2) Человек который за несколько лет не поинтересовался как это(базы и > контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их > применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, > и не интересуется ничем кроме текущих задач.
То, что человек не поинтересовался как это внутри устроено, говроит
только о правильности выбранных инструментов для решения конкретной
задачи. Я, например, совершенно ничего не знаю про устройство PCI шины,
что совершенно не мешает моим проетам работать.
Posted via RSDN NNTP Server 2.0 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, execve, Вы писали:
A>>Мой point в следующем: A>>1) За несколько лет работы нельзя не столкнуться с большим объемом данных. Хотя вполне можно с ним работать без алгоритмов, например стандартными базами или контейнерами встроенными в язык. A>>2) Человек который за несколько лет не поинтересовался как это(базы и контейнеры) внутри устроено(из любопытства или чтобы лучше уметь их применять), не стоит того чтобы с ним работать, т.к. не саморазвивается, и не интересуется ничем кроме текущих задач.
E>Каждый кулик хвалит своё болото.
E>Давай перефразируем пп 1 и 2, заменяя "большие объёмы данных" на "TCP". E>"За несколько лет работы нельзя не столкнуться с TCP" E>"Человек, который в тонкостях не знает как работает TCP ..." — далее по тексту.
При чем здесь тонкости? Я знаю его достаточно чтобы знать где его стоит применять, а где нет.
Никто же не просит qsort взять и написать, нужно знать его общие принципы, что он например делает O(n^n)
если массив уже сортированный etc.
E>Ты знаешь TCP настолько хорошо, чтобы не заглядывая в пару десятков RFC реализовать соответствующий кусок стека? E>Значит это про тебя: "не саморазвивается, и не интересуется ничем кроме текущих задач".
Почему не заглядывая. Заглядывай. И в кнута заглядывай.
Кстати ip стек это сложная задача на несколько человеко лет разработки, в отличие от qsort.
Есть такое мнение что единственный хорошо написанный тсек это берклиевский. И все системы
которые от него свои стеки понаследовали(в том числе и windows например) работают как надо.
А в остальных постоянно находятся грабли.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, DEMON HOOD, Вы писали:
DH>Здравствуйте, Anatolix, Вы писали:
DH>>>Дифф.ур он знает, но его спрашивают, как построить небоскрёб — а этому его не учили.
A>>Обрати внимание его спрашивают как построить небоскреб, а не просят его построить. A>>На собеседованиях не смотрят построишь ты небоскреб, или нет. Там смотрят как ты его будешь строить. Если ты выберешь неверное решение,
DH>Я понимаю, что не просят построить. Но для постройки добротного небоскрёба требуются специфические знания, а у меня их нет. У меня в дипломе, понимаешь, написано строитель, а не строитель небоскрёба.
Ты понимаешь, что с таким подходом ты не можешь построить ничего?
Пример:
— построй конуру
— у меня же написано строитель, а не строитель конуры.
— построй X
— у меня же написано строитель, а не строитель X.
Если ты ничего не можешь построить то какой ты нафиг строитель?
DH>Ну вот он зазубрил про БМВ и винты... а на следующем СТО его уже спрашивают про гайки и мерседесы DH>А человек — реально берёт поломаный движок, разбирает его, собирает снова — и вуаля, как новый.
Это внутренние сексуальные проблемы HR-а в тех компаниях куда его не взяли. Я думаю кстати если бы человека
на собеседовании попросили в общих чертах показать как он будет перебирать мотор от самолета он бы показал.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, MaximVK, Вы писали:
MVK>Не кучу знаний, базовый минимум, уровня "Введение в ...", не более того.
Хм... тогда это базовый минимум знаний языка/платформы, а не приемов программирования. Хотя конечно некоторые приемы есть в "Введение в ...", но лучше знать парадигмы/алгоритмы/принципы создания ПО, а конкретный язык/платформу можно и потом выучить.
MVK> Да, я несколько сумбурно выразился. Общими словами, имеется ввиду следующее. Хотелось, чтобы программист думал о том, что он пишет. Бездумно скопировать кусок кода с msdn и подправить под себя — большого ума не надо. Т.е. программист должен понимать, что делает и как делает его код — звучит смешно, но это вполне реальная ситуация. Скопировал с msdn, увидел незнакомый класс, метод, непонимаешь почему это работает — разберись. А то смотришь на некоторых "практиков", которые методом тыка пытаются заставить работать свой код — становиться страшно.
Ну поставьте условие приема на работу — "Уметь разбираться почему данный код написан именно так". Вот только не всегда будет такая возможность у программиста.
Я не волшебник, я только учусь.
Posted by RSDN@HOME.
Здравствуйте, Roman Avramov, Вы писали:
RA>Как раз сейчас ищу стажера примерно на те же деньги (500 — 600 евриков), в основом ориентируемся на студентов старших курсов.
А по какой специфике ищете стажера?.NET, JAVA или что-то ещё