I>Уже 10^6 раз твердили миру, что для 99.9999% проектов экономически более выгодно брать людей с хорошей подготовкой, опытом, и не на 600-700 баксов, а раза в 3 больше. Все желающие "халявных студентов" на самом деле в основном преследуют свои сугубо личные интересы. И знания HashTable здесь вообще никакой роли не играют.
Хм, не знаю причин по которым стажеров набирает автор, но вот например у нас в провинции хороших девелоперов "в свободном обращении" просто _нет_. Поэтому 90% новоприбывших — стажеры, которых растим самостоятельно.
Здравствуйте, ihatelogins, Вы писали: I>Уже 10^6 раз твердили миру, что для 99.9999% проектов экономически более выгодно брать людей с хорошей подготовкой, опытом, и не на 600-700 баксов, а раза в 3 больше. Все желающие "халявных студентов" на самом деле в основном преследуют свои сугубо личные интересы. И знания HashTable здесь вообще никакой роли не играют.
А как становится студенту человеком с хорошей подготовкой(это ладно можно подготовиться в общем, но без практики по-мойму все равно нельзя) и опытом, если их не брать на стажеров? Это все равно что в футбольную команду брать только тех кто 2 года отыграл в Милане/Реале/Ювентусе.
...Так что учите C++, даже если это нужно только для интервью.
SR>А что, Страуструпа почитать гордость не позволяет?
Да нет, позволяет. Читал когда-то (первый раз, когда еще не было шаблонов и множественного наследования). Но к разным собеседованиям приходится читать разные книги. Значит прежде чем искать работу нужно почитать (иногда заново прочитать) несколько.
SR>Не вижу ничего зазорного в том, чтобы оценить знания C++.
Я тоже. Но знать C++ и уметь решать поставленные перед тобой задачи — разные вещи. Вы, например, можете в практической работе использовать только некоторое подмножество языка. Соответственно, остальное может забываться.
SR>Некторые не так важны, а другие позволяют выявить полную некомпетентность.
А если кандидат просто устал, переволновался и не так понял вопрос? Вы сможете это выявить?
Пример из жизни: сколько строк будет выбрано запросом "select * from a, b", где в a 5 строк, а в b 6. Знаете какие ответы давали на этот вопрос люди написавшие не одну серьезную систему?... Вот и я удивляюсь как они их писали... .
SR>Не хотите, чтобы вас об этом спрашивали — честно пишите в резюме о том, что вы знаете, а что нет. И постарайтесь доказать, что то, что вы знаете, вы знаете действиетльно хорошо.
А я и не пишу в резюме, что хотя бы что-то знаю. Я пишу что разработал и что для этого использовал.
Потребителю ПО нужна программа, обеспечивающая требуемый уровень функциональности и содержащая мало ошибок,
а не знание ее разработчиком чего-то. Степень связи этих вещей еще нуждается в обосновании в каждом конкретном случае.
D>А как становится студенту человеком с хорошей подготовкой(это ладно можно подготовиться в общем, но без практики по-мойму все равно нельзя) и опытом, если их не брать на стажеров? Это все равно что в футбольную команду брать только тех кто 2 года отыграл в Милане/Реале/Ювентусе.
1. Последовательным восхождением начиная с ЗАО "рога и копыта" (куда берут вообще всех не глядя) и заканчивая ООО "нефиговые софтины" (С) кого-то из RSDN, а в пути учиться непереставая.
2. С другой стороны многие фирмы набирают стажеров на самые простые позиции — баги фиксить, юнит тесты писать, или тестерами и т.п. В этом случае можно и забить на прикладные знания (даже на основы) и смотреть прежде всего на soft skills + желание работать, учиться и расти.
Здравствуйте, DEMON HOOD, Вы писали:
DH>Здравствуйте, MaximVK, Вы писали:
MVK>>Придет такой вот "математик" и скажет: "Не должен я знать, что такое диф. уравнение — я же стажером устраиваюсь! Вот возьмете меня на работу — разберусь.". DH>Дифф.ур он знает, но его спрашивают, как построить небоскрёб — а этому его не учили.
Если для кандидата сортировка массива сопоставима по сложности со строительством небоскреба, то проще самому все сделать
Здравствуйте, ihatelogins, Вы писали:
I>Вы лучше вместо наездов на бедных стажёров ответьте, зачем вы их вообще нанимаете, если "всё так серьёзно"? Штат раздуваете? Щёки перед начальством надуваете? Бюджет осваиваете? План по найму выполняете?
Все проще — мы его(бюджет) разворовываем. Но только, тс-с-с... Это секрет!
I>Уже 10^6 раз твердили миру, что для 99.9999% проектов экономически более выгодно брать людей с хорошей подготовкой, опытом, и не на 600-700 баксов, а раза в 3 больше. Все желающие "халявных студентов" на самом деле в основном преследуют свои сугубо личные интересы.
Да, мы такие — желающие "халявных студентов".
Программист либо должен знать алгоритмы сортировки, либо способен придумать их.
Если не знает и не способен придумать хотя бы что-то типа пузырька — "мозг отсутствует" (зачем такой нужен — непонятно)
Здравствуйте, Ромашка, Вы писали:
Р>Здравствуйте Anatolix, Вы писали : >> Р>Сталкиваясь с большим объемом данных, понимаешь, что стоимость их >> Р>обработки легко переплюнет стоимость оракла вкупе с тюнингом. >> >> Правда что ли? Ты знаешь сколько Oracle стоит за двести двухпроцессорных >> машин? >> если мне не изменяет память от стоит порядка 20k$ на процессор. >> Уже не говоря о том что он для всех задач не подходит.
Р>Ну тогда заодно и расскажи, сколько будет стоить разработка кода, Р>который бы смог отсортировать массив, например, из 10 000 000 000 Р>стрингов (извини, но зачем-то же нужны 200х2 процессоров) и выбрать из Р>него 10 000 первых, за время, сопоставимое с ораклом.
Сильно дешевле и сильно быстрее.
Задача котрую я имел ввиду это Яндекс.Почта.
Оно когда то в Oracle жило, но быстро загнулось.
По разработке стоило тоже сильно дешевле.
Вообще любое специализирование решение будет сильно быстрее.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, execve, Вы писали:
E>Здравствуйте, Aptekar, Вы писали:
A>>Здравствуйте, execve, Вы писали: E>>>1-2 дня изучения гугла — и человек будет знать все эти тонкости. A>>Так вот еще какая штука — один может ответить сразу же на 90% вопросов, которые перед ним возникаюут в процессе работы, а другой на 60% вопросов ищет ответы в гугле по одному-два дня.
E>Тот, который сразу же и на 90% — это просто очень узкий специалист, не выглядывающий за пределы своей области.
Обоснуй тезис. В смысле первый это специалист который заглядывает глубоко, откуда берется тезис что он в делает это только в одной области?
Если рассматривать 99.9% может быть это и займет много времени, 90% знания в области это как раз то что получается за 10% времени.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, SeRya, Вы писали:
SR>Ну я недавно пользовался. С отсортироанными данными работают алгоритмы вроде std::set_intersection. На днях написал сортировку слиянием и сортировку подсчетом. Но это так, для удовольствия.
Искренне завидую. Завидую тому, что у вас после работы остаются время и силы чтобы писать что — либо для удовольствия.
SR>Маленькая поправка...
Вот видите, не прошёл бы я собеседования на должность beginner'а asp. Правда я кроме сортировок и asp то не знаю.
SR>С таким же успехом можно сказать, что знание, к примеру, интергралов излишне отягощает память бедных программистов из-за того что используется это очень редко (почти никогда).
Естественно. Один человек недавно в этот форум написал что он не может уже решить даже квадратное уравнение. Я тоже не могу... Забыл как их решать, тем более интегралы. Но уверен, что найду в сети алгоритм вычесления интегралов минут за 10, а за пол часа несколько этих алгоритмов и их характеристик. Разве этого не достаточно?
SR>И дело даже не в пузырьковой сортировке как таковой (хочешь — напиши сортировку вставками, никто за это не осудит). Перед человеком ставиться элементарная задача (отсотрировать массив) и если он не может справиться с ней, то что же он будет делать с действительно сложными задачами?
SR>Но отсортировать массив — это тест на вменяемость. Такую задачу я решал классе в 8 не зная ни одного метода сортировки. А здесь все-таки люди c высшим образованием. Должны как-то продемонстрировать, получили что-то помимо навыков списывания
Да поймите вы, никто ведь не спорит с тем, что нужно спрашивать сортировки/поиски/структуры данных. Но спрашивать нужно на уровне: знаешь — знаю. Т.е. без подробностей, если человек знает как использовать std::sort и примерно представляет сложность алгоритма то это и есть good. Если он при этом ещё и знает где и что посмотреть/найти так просто прекрасно. Сейчас столько информации, которую нужно прочитать чтобы хоть как — то начать программировать для OC Win, например, что для прочтения подробностей реализации сортировок просто не остаётся времени. Любой мало — мальски грамотный разработчик назовёт вам минимум 15 технологий/IDE/баз данных которые он хорошо знает. И для изучения всего этого требуется куча времени, и если выбирать между человеком, который участвовал в мировой олимпиаде по программированию и сортировки знает как свои 5 пальцев и человеком, который прилично знает C++/STL/ATL/COM, то лично я выбрал бы последнего.
I>>А что это за задачи такие серьёзные?
P>ну вот чтоб далеко не ходить, то что я сейчас делаю:база данных, где под сотню отчётов, четыре десятка таблиц,
Отчеты — это даже хуже, чем GUI, с точки зрения "квалифицированности" и рутинности работы.
А четыре десятка табличек — это не очень серьезный проект.
Здравствуйте, Smetanin, Вы писали:
DH>>Вот например, знание ф-й в iostream.h обязательно? S>DEMON HOOD, вы вообще не читаете что вам пишут?
Я читал. Про iostream, в жёлтом тексте ни слова. Мне его знать не нужно?
S>Нет. Сортировки — это базовые знания. Если ты не имеешь представления о базовых алгоритмах — ты не изучал программирование.
я имею представление, знаю что есть QuickSort. Всё. За подробностями, при необходимости, полезу в скажем гугль
S>Вообще-то это тоже базовые знания. Если ты не помнишь приблизительно, как выглядит потоковый ввод-вывод,
и как он выглядит? Как там электроны по проводам бегут? Мне действительно нужно это знать?
S>значит ты книг по С++ (например, Старуструпа)
вот ещё выжали — обязательное прочтение Страустропа. Наверное на собеседовании нужну пару раз автора процитировать?
S>не читаешь вообще. Это значит, что ты как минимум ленив и нелюбопытен. S>Понимаешь, если ты не помнишь, как, например, вывести число в консоль шестнадцатеричном виде — да, можно заглянуть в справочник.
я так и делаю.
S>Но если ты не занешь, что такое "число",
что такое число, я не знаю. зняю что "55" — число, "Ы" — буква. Мне хватает.
S>"консоль"
console, *ищет в MSDN* S> и "шестнадцатиричный вид"
"hexademical view", *ищет в MSDN*
Это было так трудно?
S>- никакие справочники тебе не помогут.
таки не помогли? Уже прочёл, и что такое консоль и что такое шестнадц.... готов приступать к выполнению задачи.
S>Вот знания, что такое "число", "консоль", "шестнадцатиричный вид", а так же ПРИМЕРНОЕ содержимое stdio.h и/или iostream.h — это базовые знания. Если у тебя нет базовых знаний — тебе не поможет справочник!!!
ну ну. ну ну. То есть нужно знать ВСЁ
где stdio.h там и iostream, где iostream там и string, где string там и *
S>По пунктам от того, что выше:
S>1. Если ты не знаешь этого пункта, то другими словами — ты не знаешь, что такое класс, структура, член класса, виртуальная функция
веришь — не знаю. Ну не могу я сейчас словами описать чем класс от структуры отличается — не помню, что не мешает этими самыми классами пользоваться. Захотел освежить память? рядом МСДН, 30-секунд и я уже знаю
S>Если ты не знаешь ПАРАДИГМЫ программирования?
Ага, значит если я не знаю, что есть виртуальная функция то и ПАРАДИГМЫ я не знаю?
S>2. Если ты не знаешь, что такое очередь, стек/дек — это говорит о том, что ты ленив и не любопытен, так как ничего не читаешь.
я знаю про слова stack, queue, и даже знаю что это виды упорядочивания данных. Что дальше? За подробностями — в МСДН при необходимости
S>И потом, ты опять не знаешь базовых вещей. Я ожидаю, что человек, собирающийся работать программистом, поймёт без дополнительных объяснений, если я его попрошу организовать стек каких-то объектов.
Я понял. Лезу в МСДН, смотрю что есть stack что есть object, думаю, и предлагаю своё решение.
S>3. Если ты этого не знаешь, то ты ничего не читал. Опять — ленив и нелюбопытен. Да, собственно, если нет такого понимания, то пациент уже просто клинический идиот.
А ну ка напиши мне программку, которая посадит космически корабль на марс. Только СПРАВОЧНИКОМ ПО ФИЗИКЕ НЕ ПОЛЬЗОВАТЬСЯ!!! Тебе должно хватить школьного курса. АХ! Ты не знаешь БАЗОВЫХ ВЕЩЕЙ!?!?!?!
S>4. Что такое процесс и поток — можно не знать, программируя под Win?
как это сочетается с отсутствием в моих программах iostream?
S>Извините, а что такое окно вы знаете? А файл?
Файл — способ сохранения информации. FILE — *смотрит в MSDN*
>> Программист — это не отличник-зубрила, это творческая натура, имхо. S>Без комментариев.
а всё таки?
silent RSDN@Home 1.1.4 stable [510] Windows XP 5.1.2600.0
DH>веришь — не знаю. Ну не могу я сейчас словами описать чем класс от структуры отличается — не помню, что не мешает этими самыми классами пользоваться. Захотел освежить память? рядом МСДН, 30-секунд и я уже знаю
Видишь ли Demon Hood, если ты не знаешь, чем отличается структура от класса, как ты принимаешь решение, что лучше создавать в данном конкретном случае: структуру или класс? Или это тебе спускает сверху архитектор?
DH>Ага, значит если я не знаю, что есть виртуальная функция то и ПАРАДИГМЫ я не знаю?
Если ты не знаешь, что такое виртуальная функция — как ты себе представляешь наследование?
DH>я знаю про слова stack, queue, и даже знаю что это виды упорядочивания данных. Что дальше? За подробностями — в МСДН при необходимости
Когда тебе встречается необходимость "упорядочить данные", ты всегда создаешь массив? Программист, который знает различные механизмы "упорядочивания данных", который при слове FIFO и FILO не впадает в ступор, не будет впихивать решение в единственный метод, про который он знает, а сможет выбрать оптимальный.
DH>а всё таки?
Про творческие натуры, отвечу вместо Smetanin-а словами Довлатова: "Если дать творческую свободу петуху, он все равно будет кукарекать.".
Здравствуйте, DEMON HOOD, Вы писали:
S>>значит ты книг по С++ (например, Старуструпа) DH>вот ещё выжали — обязательное прочтение Страустропа. Наверное на собеседовании нужну пару раз автора процитировать?
Ясно. Не читаешь.
S>>Понимаешь, если ты не помнишь, как, например, вывести число в консоль шестнадцатеричном виде — да, можно заглянуть в справочник. DH>я так и делаю.
S>>Но если ты не занешь, что такое "число", DH>что такое число, я не знаю. зняю что "55" — число, "Ы" — буква. Мне хватает.
Т.е. абсолютно неграмотен.
S>>"консоль" DH>console, *ищет в MSDN*
С учётом фильтра "С++" находится примерно 40 вхождений в индексе и 500 — поиском.
S>> и "шестнадцатиричный вид" DH>"hexademical view", *ищет в MSDN*
Нет вхождений в индексе. Нет вхождений в поиске. Из-за опечатки, ага.
DH>Это было так трудно?
Даже в приведённом примере про шестнадцатеричный вид ты вообще ничего не нашёл. Потому что ты абсолютно, чудовищно неграмотен.
S>>- никакие справочники тебе не помогут. DH>таки не помогли? Уже прочёл, и что такое консоль и что такое шестнадц.... готов приступать к выполнению задачи.
Ты ничего не нашёл. А даже если исправишь опечатку и найдёшь поиском 145 топиков про hexadecimal view (плюс 500 про консоль) — ты их читать полгода будешь. Это если там каким-то образом не окажется других неизвестных тебе сущностей.
А если ты напишешь "hexadecimal view console" ты получишь 46 топиков и ВСЕ — про .NET
S>>Вот знания, что такое "число", "консоль", "шестнадцатиричный вид", а так же ПРИМЕРНОЕ содержимое stdio.h и/или iostream.h — это базовые знания. Если у тебя нет базовых знаний — тебе не поможет справочник!!!
DH>ну ну. ну ну. То есть нужно знать ВСЁ
Нет. Нужно иметь нормальные базовые знания.
DH>где stdio.h там и iostream, где iostream там и string, где string там и *
S>>Если ты не знаешь ПАРАДИГМЫ программирования? DH>Ага, значит если я не знаю, что есть виртуальная функция то и ПАРАДИГМЫ я не знаю?
Да, не знаешь. В чём (кратенько, в трё-четырёх словах) заключается объектно-ориентированная парадигма программирования? Термины инкапсуляция и наследование тебе о чём-то говорят? А что такое полиморфизм? А как полиморфизм реализуется средствами языка C++?
S>>2. Если ты не знаешь, что такое очередь, стек/дек — это говорит о том, что ты ленив и не любопытен, так как ничего не читаешь. DH>я знаю про слова stack, queue, и даже знаю что это виды упорядочивания данных. Что дальше? За подробностями — в МСДН при необходимости
Угу, угу. Пара сотен вхождений в индеске и 500 — в поиске. Полгода на кажый термин, ага.
Вообще-то я говорил о том, что надо знать о существовании этих базовых структур данных и "про что они" (чем, собственно, стек от очереди отличается). Если ты это знаешь — всё, проехали. По этому вопросу для стажёра достаточно! Это называется — базовые знания по данному вопросу.
S>>3. Если ты этого не знаешь, то ты ничего не читал. Опять — ленив и нелюбопытен. Да, собственно, если нет такого понимания, то пациент уже просто клинический идиот. DH>А ну ка напиши мне программку, которая посадит космически корабль на марс. Только СПРАВОЧНИКОМ ПО ФИЗИКЕ НЕ ПОЛЬЗОВАТЬСЯ!!! Тебе должно хватить школьного курса. АХ! Ты не знаешь БАЗОВЫХ ВЕЩЕЙ!?!?!?!
Ты в порядке?
S>>4. Что такое процесс и поток — можно не знать, программируя под Win? DH>как это сочетается с отсутствием в моих программах iostream?
Никак. Ты можешь не отвлекаться от темы?
S>>Извините, а что такое окно вы знаете? А файл? DH>Файл — способ сохранения информации. FILE — *смотрит в MSDN*
FILE — это ты уже не то посмотрел, про что я спросил. Ага.
И файл в Win32 — это далеко не только способ сохранения информации.
>>> Программист — это не отличник-зубрила, это творческая натура, имхо. S>>Без комментариев. DH>а всё таки?
Если у тебя творческая натура — ты танцевать иди, или там книжки писать.
Здравствуйте, jdev333, Вы писали:
J> Программист либо должен знать алгоритмы сортировки, либо способен придумать их. J> Если не знает и не способен придумать хотя бы что-то типа пузырька — "мозг отсутствует" (зачем такой нужен — непонятно)
Здравствуйте, Anatolix, Вы писали:
A>Мой point в следующем: A>1) За несколько лет работы нельзя не столкнуться с большим объемом данных. Хотя вполне можно с ним работать без алгоритмов, например стандартными базами или контейнерами встроенными в язык.
Point не совсем ко двору, я думаю (не значит, что он неверный сам по себе).
Потому как ваша загадка про структуру данных ответа не имеет — данных недостаточно.
Если есть требования по объёму памяти — теоретически оптимальные структуры использовать получается нельзя. Пример — любое ПО для наладонников. На руках у людей ещё дофига устройств с 64MB памяти...
Просто нагруженные сервисы яндекса — это одно, но в общем случае кандидат не знает, что ему предстоит.
Здравствуйте, ansi, Вы писали:
A>Даааааа... Не думал, что вот такие проблемы на рынке труда имеют место быть.
Это не проблемы, это трудности. Знающих людей найти можно.
Но вообще люди правы. Я тоже не верил, что так много дубовых людей приходит — пока сам не пособеседовал кандидатов.
Причём самое поганое, что врут они. Ладно бы просто ничего не знали.
Здравствуйте, MaximVK, Вы писали:
MVK>Видишь ли Demon Hood, если ты не знаешь, чем отличается структура от класса,
я хотел сказать, что в *данный момент* я не помню различий. Во первых вечер и я устал, во вторых .... ну тут вполне хватит и во первых. Что я хочу сказать — пришёл я на собеседование разволновался и забыл! И что? Таки я плохой программист?
DH>>Ага, значит если я не знаю, что есть виртуальная функция то и ПАРАДИГМЫ я не знаю? MVK>Если ты не знаешь, что такое виртуальная функция — как ты себе представляешь наследование?
Интуитивно. Наследник расширяет возможности предка.
Ну вот пример. Циклы это базовые знания?
Что такое цикл?
вместо
делать.делать.делать.делать.делать.........
можно записать
[цикл=мой_супер_цикл]делать.[/цикл]
выпольнить "мой_супер_цикл" *надцать раз.
то есть парадигму я себе представляю.
А что мне задают на собеседованиях? Напишите цикл. А я хоть убей не знаю какой синтаксис цикла н ASM, VBA, Pascal.... предположим я шёл на паскалиста. И сколько мне потребуется времени чтобы освоить эти знания? Минута?
То же и про виртуальные ф-ии и про всё остальное. Да, я помню наизусть кое-что, но это кое-что я используюю ежедневно по десятку раз. А есть вещи которые я пользую редко или вообще не использую — и подробности мне уже нужно читать в литературе.
DH>>я знаю про слова stack, queue, и даже знаю что это виды упорядочивания данных. Что дальше? За подробностями — в МСДН при необходимости MVK>Когда тебе встречается необходимость "упорядочить данные", ты всегда создаешь массив? Программист, который знает различные механизмы "упорядочивания данных", который при слове FIFO и FILO не впадает в ступор,
первый пришёл-первый ушёл, второй не помню... последний ушёл? Видишь, в ступор ты меня не вогнал!
silent RSDN@Home 1.1.4 stable [510] Windows XP 5.1.2600.0