Re[17]: Собеседование в Яndex :) В Новосибирске будет?
От: BulatZiganshin  
Дата: 25.10.07 19:24
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>я к примеру пишу на c++ алгоритмы сжатия, и использую в них специализированные структуры данных, разрабатываемые специально под требуемые характеристики, при этом учитывается каждое обращение к памяти


F>При этом ты должен очень хорошо понимать, где и на чём можешь выиграть. Для этого ты как минимум должнен знать, что готовое может тебе предложить STL (и не только), и почему это тебе не подходит (т.е. разбираться на уровне эксперта). В противном случае все эти слова про качество, оптимизацию и тд выглядят, мягко говоря, неубедительными. (Это не относится к тебе , но к очень многим на этом форуме)


а что такого есть в stl, чего нет в Кнуте/Вирте? для вас изучение STL просто заменяет чтение классики

речь о "выиграть" не идёт, просто разрабатываются специализированные вариации классических структур данных, делающих реализацию алгоритма вообще возможной. я бы посмотрел, как бы ты пользовался rsync, если бы он работал в 500 раз медленнее
Люди, я люблю вас! Будьте бдительны!!!
Re[14]: Собеседование в Яndex :) В Новосибирске будет?
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 25.10.07 21:30
Оценка: 1 (1)
Здравствуйте, frogkiller, Вы писали:

F>Не совсем соглашусь. Если кто-то "очень успещно, т.е. прибыльно работает на С++, вообще не зная STL", то это скорее всего означает, что он работает в какой-то узкоспецифичной области. И, скорее всего, ему достаточно чистого C. (Какие-нибудь embedded платформы)...


Почему "какие-нибудь embedded платформы" обязательно ассоциируются с чистым C? Это вовсе не обязательно. Embedded проекты бывают такой сложности, что многим не-embedded и не снилось. И таки да, в embedded обычно не используют STL — "патамушта RTTI", "патамушта exceptions" и "патамушта свободная память" (адекватность этих аргументов мы сейчас не обсуждаем, просто "так принято").
Вот вам и пример: при серьезных требованиях к C++ знание STL в работе не требуется вовсе.

F>В противном случае (в большинстве вакантных должностей из активно тут обсуждаемых)...


А embedded это mainstream для C++. То, что в job.offers мало таких проектов IMHO связано с тем, что большая часть этих вакансий — outsorcing, а outsorce'ить embedded проекты более рискованно, чем не-embedded.

(Ни в коем случае не извиняю незнание программистом C++ стандартной библиотеки, частью которой STL является).
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 25.10.07 22:56
Оценка:
Здравствуйте, Anatolix, Вы писали:

A>С чего бы это свой? 200 тыс записей это очень мало, плюс вектор это просто линейный кусок памяти, и если задача просто "запихать" то никакой другой контейнер быстрей не будет. Если так уверен можешь мне сказать какой именно контейнер ты имеешь ввиду?


беда в том, что это все в памяти. Если каждая запись будет 200 байт, то весь массив будет уже 40 М. Плохо. Главное плохо, что потребляемая память прямо зависит от количества записей. Хорошо бы иметь константу как для памяти, так и для доступа.

Здесь нужно отображать вектор на диск. Держать в мозгах только "окно" доступа, подгружая необходимые куски. Нужно создать индеск, для оптимизации поиска.
Можно пытаться использовать всякие SQLite если разрешено использовать 3rd party code.

Подобная ситуация и со строками. Попробуйте запихать "войну и мир" в std::string и поискать в ней что-нибудь или добавить.
Можно использовать rope, но это уже не std.

Нет, я не спорю STL хорош для небольших проектов, где надо что быстренько сделать чтобы работало не заботясь сильно о перформансе. Хотя, я не уверен, что для таких проектов C++ имеет смысл вообще использовать, есть C# и phyton. Удел C++ как раз перформансе и гибкость.

S>>А для меньшего количества и самопальный лист подойдет и линейный поиск.

A>Ты сам то пробовал например хотя бы 100 раз в секунду поискать по 100K стрингов в листе?

А ты?
Для таких размеров и требований STL вообще не подходит.
Re[15]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 25.10.07 23:36
Оценка:
Здравствуйте, shrecher, Вы писали:

S>для реальных проектов STL вообще не подходит. Попробуй 200т записей в vector запихать. Нужно свой писать. 200т записей это не так и много, даже мало. К примеру паттерны в распознавании речи, обазов или другие сигнатуры легко выбирают этот лимит. А для меньшего количества и самопальный лист подойдет и линейный поиск.

Пойду расскажу ребятам, а то они не знают.
Вы бы уточнили, какой размер записей — если там счет идет на десятки гигабайтов, то вектор сам по себе тут ни при чем.
Re[17]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 25.10.07 23:40
Оценка:
Здравствуйте, shrecher, Вы писали:

S>Нет, я не спорю STL хорош для небольших проектов, где надо что быстренько сделать чтобы работало не заботясь сильно о перформансе. Хотя, я не уверен, что для таких проектов C++ имеет смысл вообще использовать, есть C# и phyton. Удел C++ как раз перформансе и гибкость.

S>>>А для меньшего количества и самопальный лист подойдет и линейный поиск.
A>>Ты сам то пробовал например хотя бы 100 раз в секунду поискать по 100K стрингов в листе?
S>А ты?
S>Для таких размеров и требований STL вообще не подходит.

Специалисты-теоретики, как я погляжу, собрались.
В общем, понятно, откуда растут ноги у вопросов про имя типа у filebuf<char>

Только грустно все это.
Re[12]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 25.10.07 23:41
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

L>>А я вот не знал. Только в отличие от Вас, последние несколько лет использую С++ и STL на полную катушку, а не эпизодически. Может, в этом разница?

_O_>С разницей wstring/string сталкиваешься, когда пишешь UNICODE-ые приложения. В иных случаях, можно и не лезть в детали.
Это малозначительные детали реализации.
Только тот вопрос даже не про юникод был.
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 25.10.07 23:47
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, shrecher, Вы писали:


S>>для реальных проектов STL вообще не подходит. Попробуй 200т записей в vector запихать. Нужно свой писать. 200т записей это не так и много, даже мало. К примеру паттерны в распознавании речи, обазов или другие сигнатуры легко выбирают этот лимит. А для меньшего количества и самопальный лист подойдет и линейный поиск.

L>Пойду расскажу ребятам, а то они не знают.
L>Вы бы уточнили, какой размер записей — если там счет идет на десятки гигабайтов, то вектор сам по себе тут ни при чем.

могу только предложить почитать это
http://www.rsdn.ru/forum/message/2707257.1.aspx
Автор: shrecher
Дата: 26.10.07
Re[17]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 26.10.07 00:10
Оценка:
Здравствуйте, shrecher, Вы писали:

L>>Пойду расскажу ребятам, а то они не знают.

L>>Вы бы уточнили, какой размер записей — если там счет идет на десятки гигабайтов, то вектор сам по себе тут ни при чем.
S>могу только предложить почитать это
S>http://www.rsdn.ru/forum/message/2707257.1.aspx
Автор: shrecher
Дата: 26.10.07


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

Ну потратили 20-40 метров памяти, ну и что? А может, это словарь какой, который почти никогда не меняется, но к которому постоянно нужно иметь очень быстрый доступ на чтение? Читай, статический массив в памяти.
В любом случае, причем тут STL, если данные сами по себе занимают такой объем? Это все выглядит как попытка описать недостатки микроскопа, когда неизвестно, что с ним собираются делать — может, задача состоит в рассматривании поверхности луны с балкона.
Re[11]: Собеседование в Яndex :) В Новосибирске будет?
От: anton_t Россия  
Дата: 26.10.07 04:25
Оценка: :)
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, anton_t, Вы писали:


L>>>Тогда какой смысл подобного, если можно так выразиться, вопроса?

_>>По-моему вполне ясно ответили здесь:
_>>http://www.rsdn.ru/forum/message/2701238.1.aspx
Автор: Nose
Дата: 22.10.07

_>>Этот вопрос не выявляет гуру, а отсеивает тех, кто дальше книжки в использовании stl не пошёл. К примеру, я только эпизодически использую С++ и то знал ответ на этот вопрос.
L>А я вот не знал. Только в отличие от Вас, последние несколько лет использую С++ и STL на полную катушку, а не эпизодически. Может, в этом разница?

То есть вы используете STL, но не работали с STL-ными строками? Хм, редкий случай, на мой взгляд.
Re[17]: Собеседование в Яndex :) В Новосибирске будет?
От: dip_2000 Россия  
Дата: 26.10.07 04:46
Оценка: 1 (1)
Здравствуйте, shrecher, Вы писали:

S>>>А для меньшего количества и самопальный лист подойдет и линейный поиск.

A>>Ты сам то пробовал например хотя бы 100 раз в секунду поискать по 100K стрингов в листе?
S>А ты?

Для таких вопросов сначала неплохо представлять с кем говоришь

S>Для таких размеров и требований STL вообще не подходит.

И кому это объясняешь
Re[12]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 26.10.07 04:55
Оценка:
Здравствуйте, anton_t, Вы писали:

_>>>Этот вопрос не выявляет гуру, а отсеивает тех, кто дальше книжки в использовании stl не пошёл. К примеру, я только эпизодически использую С++ и то знал ответ на этот вопрос.

L>>А я вот не знал. Только в отличие от Вас, последние несколько лет использую С++ и STL на полную катушку, а не эпизодически. Может, в этом разница?
_>То есть вы используете STL, но не работали с STL-ными строками? Хм, редкий случай, на мой взгляд.
А что, в STL строка — это "filebuf<char>"?
Сильно. Да, это и правда редкий случай.
Re[3]: Собеседование в Яndex :) В Новосибирске будет?
От: ggg  
Дата: 26.10.07 08:22
Оценка: :)
Здравствуйте, AntZ, Вы писали:


AZ>Анатолий, а вот почему в Яндексе народ очень грамотный, а поисковик работает все хуже и хуже? Вот например в "Коллеги улыбнитесь" обсуждается: http://www.rsdn.ru/forum/message/2699146.1.aspx или некий Дэн только умеет в блогах кандидатов "обсуждать"? Столько народу, диссертации пишут, тот-же Павел вон ученый, работу защитил, скоро наверное академиком станет. Вопрос будет ли Яндекс нормально искать?

Даже в Коммерсанте об этом написали
http://www.kommersant.ru/doc.aspx?docsid=817802

Тем не менее, до сих пор по слову "говнодав" на 2 месте яндекс выдаёт сайт kremlin.ru

Странно, что яндекс даже на такую публикацию не отреагировал (иначе бы убрали "говнодава").
Re[15]: Собеседование в Яndex :) В Новосибирске будет?
От: frogkiller Россия  
Дата: 26.10.07 09:32
Оценка:
Здравствуйте, Alxndr, Вы писали:

F>>Не совсем соглашусь. Если кто-то "очень успещно, т.е. прибыльно работает на С++, вообще не зная STL", то это скорее всего означает, что он работает в какой-то узкоспецифичной области. И, скорее всего, ему достаточно чистого C. (Какие-нибудь embedded платформы)...


A>Почему "какие-нибудь embedded платформы" обязательно ассоциируются с чистым C? Это вовсе не обязательно. Embedded проекты бывают такой сложности, что многим не-embedded и не снилось. И таки да, в embedded обычно не используют STL — "патамушта RTTI", "патамушта exceptions" и "патамушта свободная память" (адекватность этих аргументов мы сейчас не обсуждаем, просто "так принято").

A>Вот вам и пример: при серьезных требованиях к C++ знание STL в работе не требуется вовсе.

Хм, я так и не понял, согласны Вы с моим утверждением или нет
Я вообще-то и не утверждал, что embedded — это легко и просто. Или Вам не понравилось слово "какие-нибудь"?

Да, и "раз уж пошла такая пьянка", поясните, пожалуйста, что Вы подразумеваете под серьёзными требованиями к C++ (в той части, которой нет в С) в этой отрасли. Классы (спецификаторы доступа, конструкторы-деструкторы, методы, втч виртуальные), наследование(обычное, множественное, виртуальное), что-то ещё?

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

A>(Ни в коем случае не извиняю незнание программистом C++ стандартной библиотеки, частью которой STL является).


+1
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[18]: Собеседование в Яndex :) В Новосибирске будет?
От: frogkiller Россия  
Дата: 26.10.07 10:08
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>а что такого есть в stl, чего нет в Кнуте/Вирте? для вас изучение STL просто заменяет чтение классики


Как раз перечитываю Кнута

BZ>речь о "выиграть" не идёт, просто разрабатываются специализированные вариации классических структур данных, делающих реализацию алгоритма вообще возможной. я бы посмотрел, как бы ты пользовался rsync, если бы он работал в 500 раз медленнее


Но согласись, что прежде чем что-то делать, нужно убедиться, что ты не изобретаешь велосипед (который к тому же очень хорошо вылизан, проверен множеством людей и оптимизирован), и что имеющиеся решения не подходят (или вообще не существуют). И лишь убедившись, следует начинать что-то делать (при этом взяв стандартную библиотеку за основу).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[13]: Собеседование в Яndex :) В Новосибирске будет?
От: anton_t Россия  
Дата: 26.10.07 10:36
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, anton_t, Вы писали:


_>>>>Этот вопрос не выявляет гуру, а отсеивает тех, кто дальше книжки в использовании stl не пошёл. К примеру, я только эпизодически использую С++ и то знал ответ на этот вопрос.

L>>>А я вот не знал. Только в отличие от Вас, последние несколько лет использую С++ и STL на полную катушку, а не эпизодически. Может, в этом разница?
_>>То есть вы используете STL, но не работали с STL-ными строками? Хм, редкий случай, на мой взгляд.
L>А что, в STL строка — это "filebuf<char>"?
L>Сильно. Да, это и правда редкий случай.

А где я такое говорил? Не надоело передёргивать?
Re[18]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 26.10.07 10:52
Оценка:
Здравствуйте, landerhigh, Вы писали:


L>Только грустно все это.


ну погрусти!
Re[18]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 26.10.07 11:12
Оценка:
Здравствуйте, landerhigh, Вы писали:


L>Перл про то, что STL годится только для маленьких проектов я, пожалуй, распечатаю и повешу на стенку. Рядом с очередным Дилбертом. Ничего личного.


ничего, приянто.
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 26.10.07 11:23
Оценка: 8 (1)
Здравствуйте, frogkiller, Вы писали:

F>>>Не совсем соглашусь. Если кто-то "очень успещно, т.е. прибыльно работает на С++, вообще не зная STL", то это скорее всего означает, что он работает в какой-то узкоспецифичной области. И, скорее всего, ему достаточно чистого C. (Какие-нибудь embedded платформы)...


[]

F>Хм, я так и не понял, согласны Вы с моим утверждением или нет


Ok
Не согласен с тем, что embedded (в котором STL, вообще говоря, не используют) является узкоспецифичной областью.
Не согласен с тем, что для серьезного embedded проекта достаточно чистого C (хотя примеров таких проектов, безусловно, море).

[]

F>Да, и "раз уж пошла такая пьянка", поясните, пожалуйста, что Вы подразумеваете под серьёзными требованиями к C++ (в той части, которой нет в С) в этой отрасли. Классы (спецификаторы доступа, конструкторы-деструкторы, методы, втч виртуальные), наследование(обычное, множественное, виртуальное), что-то ещё?


Лично мое мнение — все то же, что и "не-эмбеддеру": все вышеперечилсенное + шаблоны обязательно + исключения + механизм RTTI (для понимания того, почему ими не стОит пользоваться / стоит пользоваться аккуратно по крайней мере в real-time) + низкий уровень + знание стоимости каждой фичи языка.

F>(Это совсем не праздный интерес, вчера собеседовали кандидата, который занимался как раз embedded системами, и у которого в резюме значилась должность "ведущий специалист" и указывалось хорошее знание плюсов. По факту человек плохо представлял, что делают конструктор с деструктором, и вообще не знал, как работают виртуальные функции. При этом человек произвёл впечатление вполне разумного и толкового вот теперь думаем, что делать)


Аминь. Не знаю, что в такоем случае является плохим знанием C++
Re[14]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 26.10.07 11:46
Оценка: -1
Здравствуйте, frogkiller, Вы писали:

F>Здравствуйте, shrecher, Вы писали:


F>>>Значит, не на полную катушку


S>>Хороший программист не тот кто "STL на полную катушку", а совсем другое. Можно вообще STL не знать и очень успещно, т.е. прибыльно, работать на С++.


F>Не совсем соглашусь. Если кто-то "очень успещно, т.е. прибыльно работает на С++, вообще не зная STL", то это скорее всего означает, что он работает в какой-то узкоспецифичной области. И, скорее всего, ему достаточно чистого C. (Какие-нибудь embedded платформы)

F>В противном случае (в большинстве вакантных должностей из активно тут обсуждаемых), другой человек с аналогичными скиллами + знанием STL будет работать на порядок эффективнее, хотя бы потому, что ему не придётся изобретать кучу велосипедов. Имхо.

вы посмотрите на сырцы unrar, Apache, perl будете удивлены сколько там STL. Нету. Я не думаю, что программисты написавшие эти проги не знали о std::vector.

Последний раз я отвечаю в этом треде -- надоело. STL это неболее чем fopen или printf, проще говоря, это базовая конструкция огромного языка программирования и на это все. Знания vector или string не самоцель. Их незнание не говорит ни о чем. Просто у человека могли быть другие задачи, где они не использовались. Я, к примеру, не помню все спецификации printf.
Re[15]: Собеседование в Яndex :) В Новосибирске будет?
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 26.10.07 11:53
Оценка:
Здравствуйте, shrecher, Вы писали:

S>вы посмотрите на сырцы unrar, Apache, perl будете удивлены сколько там STL. Нету. Я не думаю, что программисты написавшие эти проги не знали о std::vector.


Мы же вроде о C++ говорим.

S>STL это неболее чем fopen или printf, проще говоря, это базовая конструкция огромного языка программирования и на это все. Знания vector или string не самоцель. Их незнание не говорит ни о чем.


IMHO незнание базовой конструкции говорит о многом. Взял бы ты на работу разработчика, который "не знает printf и fopen"?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.