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

>>>> Вообще какой смысл помнить про W/A или что там у нас filebuf, если все эти понятия устаревают практически моментально?

>>
>> S>более 10 лет — это моментально?
>>
>> Отнюдь
>> CreateFileA -- скорее 9х, уже лет 5 как не используется во многих проектах
>> CreateFileW -- W2k и дальше, т.к. многие перешли на Unicode уже как лет 5.

S>Здрассте. CreateFileW есть и в NT 4.0, которая сроду была юникодная. И главное — что вы хотели этим сказать? Что в свежем winbase.h отсутствует CreateFileA? или что 5 лет — это моментально?


Я хочу сказать, что если зададут вопрос: "во что раскрывается CreateFile", варианты:

1. CreateFileW/CreateFileA
2. CreateFileW/CreateFileB
3. CreateFileW/CreateFileC
4. CreateFileW/CreateFileD

для многих это может быть сюрприз, т.к. CreateFileW они знают и пользуют, как вы написали еще со времен NT, а вот ANSI вариант уже забыт, легко могут ответить 3 (типа С — character)

>> с появлением же CLR вообще

>> using namespace System::IO;
>> FileStream^ fs = File::Create( path );

S>Тут вообще-то плюсы обсуждались.


Это С++, только managed.

>> современный человек может еще и знает что такое CreateFileW, а про CreateFileA может в первый раз слышит.


S>Значит, он очень невнимательный.


спорное высказывание.

>> Ваш любимый brainbench всех их сольет и будет очень неправ.

S>Вообще он у меня не любимый, но, на мой взгляд, данный вопрос вполне имеет смысл — есть стандарт языка, в нем описан STL. Не знаешь STL — не знаешь часть языка.

с этим можно согласиться,, хотя потенциальному работатдателю 100% знание язка может быть нафиг не ненадо.
Re[13]: Собеседование в Яndex :) В Новосибирске будет?
От: Sergey Россия  
Дата: 23.10.07 11:53
Оценка:
>>>>> Вообще какой смысл помнить про W/A или что там у нас filebuf, если все эти понятия устаревают практически моментально?
>>>
>>> S>более 10 лет — это моментально?
>>>
>>> Отнюдь
>>> CreateFileA -- скорее 9х, уже лет 5 как не используется во многих проектах
>>> CreateFileW -- W2k и дальше, т.к. многие перешли на Unicode уже как лет 5.
>
> S>Здрассте. CreateFileW есть и в NT 4.0, которая сроду была юникодная. И главное — что вы хотели этим сказать? Что в свежем winbase.h отсутствует CreateFileA? или что 5 лет — это моментально?
>
> Я хочу сказать, что если зададут вопрос: "во что раскрывается CreateFile", варианты:
>
> 1. CreateFileW/CreateFileA
> 2. CreateFileW/CreateFileB
> 3. CreateFileW/CreateFileC
> 4. CreateFileW/CreateFileD
>
> для многих это может быть сюрприз, т.к. CreateFileW они знают и пользуют, как вы написали еще со времен NT, а вот ANSI вариант уже забыт, легко могут ответить 3 (типа С — character)

Это очень странная постановка вопроса, на мой взгляд совершенно бессмысленная. Вопрос надо задавать так, чтобы из него было понятно:
1) отвечающий в курсе, что CreateFile — это макрос. Данное знание может пригодиться, даже если человеку не придется самому вызывать функцию CreateFile.
2) отвечающий знает, что значительная часть WinAPI функций оформлена подобным образом.
Если он при этом забыл конкретную букву-суффикс или каким именно макросом переключаются A/W функции, большой беды нет, но вряд ли такое часто бывает в жизни.

>>> с появлением же CLR вообще

>>> using namespace System::IO;
>>> FileStream^ fs = File::Create( path );
>
> S>Тут вообще-то плюсы обсуждались.
>
> Это С++, только managed.

Это как морская свинка — и не свинья, и не морская И вообще передергивание — C++/CLI гораздо более редкий зверь, чем комбинация С++ и WinAPI. Я вообще себе слабо представляю программиста, незнакомого с WinAPI но зачем-то программирующего на managed С++, а не на C# или что там теперь в моде.

>>> современный человек может еще и знает что такое CreateFileW, а про CreateFileA может в первый раз слышит.

>
> S>Значит, он очень невнимательный.
>
> спорное высказывание.

Если он залез в winbase.h, увидел там CreateFileW и не увидел CreateFileA — то всяко невнимательный. Ну ладно, может он просто нелюбопытный — никогда не заглядывал в заголовочные файлы — но это ж еще хуже
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[11]: Собеседование в Яndex :) В Новосибирске будет?
От: Nose Россия  
Дата: 23.10.07 20:22
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Вообще-то при реальном программировании знание и понимание sequence points не очень нужно. Если человек данным вопросом не владеет, то обычно достаточно, чтобы он осознавал свою некомпетентность и без лишнего выпендрежа ставил побольше семиколонов. А на собеседовании времени как правило маловато, поэтому имеет смысл чего-нибудь более жизненное спросить.


Это не такой уж сложный вопрос, чтобы зная о существовании sequence points не понимать что это такое

А про время на собеседовании -- так вроде brainbench обсуждаем, нет?
... << RSDN@Home 1.2.0 alpha rev. 775>>
Re[14]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 23.10.07 23:29
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Это очень странная постановка вопроса, на мой взгляд совершенно бессмысленная. Вопрос надо задавать так, чтобы из него было понятно:

S>1) отвечающий в курсе, что CreateFile — это макрос. Данное знание может пригодиться, даже если человеку не придется самому вызывать функцию CreateFile.
S>2) отвечающий знает, что значительная часть WinAPI функций оформлена подобным образом.
S>Если он при этом забыл конкретную букву-суффикс или каким именно макросом переключаются A/W функции, большой беды нет, но вряд ли такое часто бывает в жизни.

типичная форумлировка вопроса для brainbench -- проверяют энциклопедические знания, а не понимание предмета. Вообще меня brainbench не устраивает, хотя есть master в ряде тестов. brainbench слишком заточен на просто кодера, где нужно быстро откодить по спеке, не задумываясь о семантике.

>>>> с появлением же CLR вообще

>>>> using namespace System::IO;
>>>> FileStream^ fs = File::Create( path );
>>
>> S>Тут вообще-то плюсы обсуждались.
>>
>> Это С++, только managed.

S>Это как морская свинка — и не свинья, и не морская И вообще передергивание — C++/CLI гораздо более редкий зверь, чем комбинация С++ и WinAPI.


Я привел эту конструкцию как пример насколько все быстро меняется. В ответ на ваше высказывание, что CreateFile уже к 10 лет и не меняется.
Вот только что работали с CreateFile в WINAPI/C++, а сейчас уже File::Create. Смысл запоминать такие детали как File::Create или FileIO::CreateFile или IO::CreateFile не вижу смысла.

S>Я вообще себе слабо представляю программиста, незнакомого с WinAPI но зачем-то программирующего на managed С++, а не на C# или что там теперь в моде.


Ну это просто: соединить managed и unmanaged code в одном проекте. Иногда легче на C++/CLI, чем на C#
Re[8]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 23.10.07 23:52
Оценка:
Здравствуйте, anton_t, Вы писали:

L>>С этим, гхм.., даже и спорить как-то не хочется.

_>Из A->B не следует, что !A->!B
Тогда какой смысл подобного, если можно так выразиться, вопроса?
Re[9]: Собеседование в Яndex :) В Новосибирске будет?
От: anton_t Россия  
Дата: 24.10.07 07:13
Оценка:
Здравствуйте, landerhigh, Вы писали:

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


L>>>С этим, гхм.., даже и спорить как-то не хочется.

_>>Из A->B не следует, что !A->!B
L>Тогда какой смысл подобного, если можно так выразиться, вопроса?

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

Этот вопрос не выявляет гуру, а отсеивает тех, кто дальше книжки в использовании stl не пошёл. К примеру, я только эпизодически использую С++ и то знал ответ на этот вопрос.
Re[12]: Собеседование в Яndex :) В Новосибирске будет?
От: Sergey Россия  
Дата: 24.10.07 08:35
Оценка:
> S>Вообще-то при реальном программировании знание и понимание sequence points не очень нужно. Если человек данным вопросом не владеет, то обычно достаточно, чтобы он осознавал свою некомпетентность и без лишнего выпендрежа ставил побольше семиколонов. А на собеседовании времени как правило маловато, поэтому имеет смысл чего-нибудь более жизненное спросить.
>
> Это не такой уж сложный вопрос, чтобы зная о существовании sequence points не понимать что это такое

Я, видимо, не вполне понятно сформулировал свою мысль. Уметь определять, что в каком-либо выражении не хватает sequence points программист, разумеется, должен. А вот разбираться, чего конкретно из-за этого будет, undefined или unspecified — не обязательно. И сложным является как раз именно второе.

> А про время на собеседовании -- так вроде brainbench обсуждаем, нет?


shrecher вроде как уже на собеседования перескочил.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[10]: Собеседование в Яndex :) В Новосибирске будет?
От: landerhigh Пират  
Дата: 24.10.07 23:15
Оценка:
Здравствуйте, anton_t, Вы писали:

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

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

_>Этот вопрос не выявляет гуру, а отсеивает тех, кто дальше книжки в использовании stl не пошёл. К примеру, я только эпизодически использую С++ и то знал ответ на этот вопрос.
А я вот не знал. Только в отличие от Вас, последние несколько лет использую С++ и STL на полную катушку, а не эпизодически. Может, в этом разница?
Re[11]: Собеседование в Яndex :) В Новосибирске будет?
От: frogkiller Россия  
Дата: 25.10.07 08:59
Оценка:
Здравствуйте, landerhigh, Вы писали:

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

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

Значит, не на полную катушку
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[11]: Собеседование в Яndex :) В Новосибирске будет?
От: _Obelisk_ Россия http://www.ibm.com
Дата: 25.10.07 09:11
Оценка:
Здравствуйте, landerhigh, Вы писали:

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


С разницей wstring/string сталкиваешься, когда пишешь UNICODE-ые приложения. В иных случаях, можно и не лезть в детали.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[12]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 25.10.07 11:22
Оценка:
Здравствуйте, frogkiller, Вы писали:

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


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

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

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


Хороший программист не тот кто "STL на полную катушку", а совсем другое. Можно вообще STL не знать и очень успещно, т.е. прибыльно, работать на С++.
Re[13]: Собеседование в Яndex :) В Новосибирске будет?
От: frogkiller Россия  
Дата: 25.10.07 11:57
Оценка:
Здравствуйте, shrecher, Вы писали:

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


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


Не совсем соглашусь. Если кто-то "очень успещно, т.е. прибыльно работает на С++, вообще не зная STL", то это скорее всего означает, что он работает в какой-то узкоспецифичной области. И, скорее всего, ему достаточно чистого C. (Какие-нибудь embedded платформы)
В противном случае (в большинстве вакантных должностей из активно тут обсуждаемых), другой человек с аналогичными скиллами + знанием STL будет работать на порядок эффективнее, хотя бы потому, что ему не придётся изобретать кучу велосипедов. Имхо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[14]: Собеседование в Яndex :) В Новосибирске будет?
От: shrecher  
Дата: 25.10.07 12:17
Оценка: -2 :)
Здравствуйте, frogkiller, Вы писали:

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


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


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


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

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

да ладно, другой чел будет занать в совершенстве string и vector, decure, list, set. Будет пол-дня думать что ему выбрать, что бы O(n) соблюсти. Это хорощо для кодера, а для прикладного нужно знать в совершенстве свою область, а не vector или list. И чтобы модуль на тестах не зарубили. И чтобы все надежно было и бысто.

для реальных проектов STL вообще не подходит. Попробуй 200т записей в vector запихать. Нужно свой писать. 200т записей это не так и много, даже мало. К примеру паттерны в распознавании речи, обазов или другие сигнатуры легко выбирают этот лимит. А для меньшего количества и самопальный лист подойдет и линейный поиск.
Re[15]: Собеседование в Яndex :) В Новосибирске будет?
От: BulatZiganshin  
Дата: 25.10.07 15:09
Оценка:
Здравствуйте, shrecher, Вы писали:

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


да, так и есть. stl нужен для прикладного программирования, где важнее скорость разработки. я к примеру пишу на c++ алгоритмы сжатия, и использую в них специализированные структуры данных, разрабатываемые специально под требуемые характеристики, при этом учитывается каждое обращение к памяти
Люди, я люблю вас! Будьте бдительны!!!
Re[15]: Собеседование в Яndex :) В Новосибирске будет?
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 25.10.07 15:31
Оценка:
Здравствуйте, shrecher, Вы писали:

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


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

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


Ты сам то пробовал например хотя бы 100 раз в секунду поискать по 100K стрингов в листе?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: frogkiller Россия  
Дата: 25.10.07 16:01
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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


При этом ты должен очень хорошо понимать, где и на чём можешь выиграть. Для этого ты как минимум должнен знать, что готовое может тебе предложить STL (и не только), и почему это тебе не подходит (т.е. разбираться на уровне эксперта). В противном случае все эти слова про качество, оптимизацию и тд выглядят, мягко говоря, неубедительными. (Это не относится к тебе , но к очень многим на этом форуме)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: WolfHound  
Дата: 25.10.07 16:44
Оценка:
Здравствуйте, Anatolix, Вы писали:

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

Во-во.
А если не забывать делать reserve...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Собеседование в Яndex :) В Новосибирске будет?
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 25.10.07 17:41
Оценка:
Здравствуйте, WolfHound, Вы писали:

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

WH>Во-во.
WH>А если не забывать делать reserve...

На самом деле как практика показывает если даже забыть — то list он на push_back обгоняет.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[18]: Собеседование в Яndex :) В Новосибирске будет?
От: WolfHound  
Дата: 25.10.07 18:47
Оценка:
Здравствуйте, Anatolix, Вы писали:

A>На самом деле как практика показывает если даже забыть — то list он на push_back обгоняет.

Тут смотря чего и сколько пушить.
Ибо если пушить инты то тут да, а если что-то с относительно дорогим конструктором копирования (например память выделяет) то...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: Собеседование в Яndex :) В Новосибирске будет?
От: BulatZiganshin  
Дата: 25.10.07 19:13
Оценка:
Здравствуйте, Anatolix, Вы писали:

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


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


представь себе, потом с ними ещё и работать приходится

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

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


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


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


имеются в виду вспомогательные структуры данных, где элементов раз-два и обчёлся, скажем список опций
Люди, я люблю вас! Будьте бдительны!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.