запилOtherSide wrote:Буквально вчера был на собесдовании на вакансию программиста .NET
Контора самая обычная. Делают сайты на заказ, штат человек 20. з.п. предлагают до 100 тыс рублей
Вопросы следующие:
Вопросы на собеседовании на вакансию C#
-
- Уже с Приветом
- Posts: 4593
- Joined: 31 Aug 2009 12:05
- Location: Москва - Горновидовка - Пало Альтово - Озерки - Портланд\Сиэттл
Re: Вопросы на собеседовании на вакансию C#
Обмен мнениями происходит в теплой и дружеской обстановке.
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
У меня действительно ощущение, что все решают личные симпатии. Вот вчера было собеседование. Традиционные задачки на ошибки в С++ коде сходу порешал. Одному интервьюеру понравился. По разговору было видно что уже готов меня взять. А второму чем-то не понравился. Стал спрашивать "Вот надо реализовать оберточный класс над потоком, как вы будете это делать". Я ответил х.з. зависит от целей. Чем не устраивает функции ОС. Потом вопрос "А где именно создается поток?" Тоже не понял что от меня хотят. Внутри процесса. В общем оказалось, что от меня требовалось знание паттерна pimpl. По победоносному виду понял что не прошел.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
Про поток вы зря так, от задач зависеть обертка не должна, типа должна быть более менее универсальна, но не до паранои.OtherSide wrote:У меня действительно ощущение, что все решают личные симпатии. Вот вчера было собеседование. Традиционные задачки на ошибки в С++ коде сходу порешал. Одному интервьюеру понравился. По разговору было видно что уже готов меня взять. А второму чем-то не понравился. Стал спрашивать "Вот надо реализовать оберточный класс над потоком, как вы будете это делать". Я ответил х.з. зависит от целей. Чем не устраивает функции ОС. Потом вопрос "А где именно создается поток?" Тоже не понял что от меня хотят. Внутри процесса. В общем оказалось, что от меня требовалось знание паттерна pimpl. По победоносному виду понял что не прошел.
Потом вопрос "А где именно создается поток?" - Вам бы прочитать книгу про внутреннее устройство винды, чтобы таких умников с такими вопросами на место ставить.
а вы не спросили в какое место он свой pimpl хочет воткнуть? (если речь все еще об обертке над потоком)В общем оказалось, что от меня требовалось знание паттерна pimpl.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Сложно сказать. Мне кажется работодателей наоборот, смущает слишком широкий и разноплановый опыт. Идеальный кандидат - который последние 5-7 лет работал на идентичном проекте и особо не дергался.Alexandr wrote:есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Вопросы на собеседовании на вакансию C#
Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimplProsche wrote:Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Смысл писать обертки над уже существующим API? Там же все есть нафига обертки. Ну я ответил что в обертке должны быть методы инициализации, запуска, паузы, остановки. Про устройство винды читал лет 10 назад. Чем отличается процесс от потока знаю. Про защищенную память тоже.Alexandr wrote: Про поток вы зря так, от задач зависеть обертка не должна, типа должна быть более менее универсальна, но не до паранои.
Потом вопрос "А где именно создается поток?" - Вам бы прочитать книгу про внутреннее устройство винды, чтобы таких умников с такими вопросами на место ставить.
Я уже описывал проблему. Если бы на всех собеседованиях спрашивали одно и тоже, а так на одном спросят про внутренности MSSQL, другом- юнити3д, третьем про объекты ядра линукс.
Вы говорите, нужна специализация. Ок. Но если затачиваться под один конкретный набор - ну скажем C++/TCPIP/Linux/Qt/bash/phyton - можно потратить скажем месяц на зубрежку - но таких ваканский на открытом рынке 5 штук. И так по каждой области. Вакансий очень мало, но требования знаний очень глубокие - т.е. что бы занимался конкретно этой задачей последние 3-5 лет
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
ну я бы рассказал как он в ядре создается и бла-бла-бла... С pimpl вообще непонятно куда он его сувать собралсяProsche wrote:Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
имхо, разноплановый опыт реально интересен только тогда, когда там есть знания и глубокие. Знать кучу всего поверхностно - это сейчас никому не интересно. Поэтому, если и демонстрировать широкий опыт, то только если там есть реально глубокие знания.OtherSide wrote:Сложно сказать. Мне кажется работодателей наоборот, смущает слишком широкий и разноплановый опыт. Идеальный кандидат - который последние 5-7 лет работал на идентичном проекте и особо не дергался.Alexandr wrote:есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
+ опять же, кризис наверное, раз работодатели носы позадирали
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Вопросы на собеседовании на вакансию C#
Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Вопросы на собеседовании на вакансию C#
мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros , SQL... сразу идут в топку.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Вопросы на собеседовании на вакансию C#
К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).Prosche wrote:Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Подразумевалось, что как раз так будут реализованы потоки для линукс и виндыМальчик-Одуванчик wrote:К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).Prosche wrote:Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
-
- Уже с Приветом
- Posts: 1218
- Joined: 06 Mar 2015 00:18
- Location: San Jose, CA
Re: Вопросы на собеседовании на вакансию C#
Только сейчас понял, что потоки - это threads, а не streams.
А как по русски будут streams?
А как по русски будут streams?
-
- Уже с Приветом
- Posts: 1663
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: Вопросы на собеседовании на вакансию C#
А я эти макросы не знаю. Все, провал в образовании...Prosche wrote:Excel мacros
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили?OtherSide wrote: Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
Не, ну точно: I had a problem, so I decided to use Java to solve it. Now I have a ProblemFactory.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
у меня как раз такое резюмеProsche wrote:мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros , SQL... сразу идут в топку.
страницы на 3
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Х.з. На мой ответ что я такой код просто перекрою дефайнами начал ехидно улыбатьсяAlexandr wrote:ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили?OtherSide wrote: Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
Не, ну точно: I had a problem, so I decided to use Java to solve it. Now I have a ProblemFactory.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
И это абсолютно верный ответ. Надо было его припечатать Работу бы все равно не получили, но "пусть знают наших" (с)OtherSide wrote: Х.з. На мой ответ что я такой код просто перекрою дефайнами начал ехидно улыбаться
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Вопросы на собеседовании на вакансию C#
Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили?
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).
-
- Уже с Приветом
- Posts: 15759
- Joined: 01 Mar 2008 15:14
Re: Вопросы на собеседовании на вакансию C#
Как вы собрались без дефайнов писать мультиплатформенный код - хзProsche wrote:Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили?
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).
-
- Уже с Приветом
- Posts: 7909
- Joined: 19 May 2008 22:10
- Location: BY->DEU->SFBA
Re: Вопросы на собеседовании на вакансию C#
А как-же правило - 2стр. максимум?Alexandr wrote:у меня как раз такое резюмеProsche wrote:мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros , SQL... сразу идут в топку.
страницы на 3
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Вопросы на собеседовании на вакансию C#
А нафига, если они уже описаны в стандарте как элементы языка?OtherSide wrote:Подразумевалось, что как раз так будут реализованы потоки для линукс и виндыМальчик-Одуванчик wrote:К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).Prosche wrote:Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Вопросы на собеседовании на вакансию C#
они в любом случае будут в private, а усложнять простые вещи совсем непонятно зачем. Иногда бывает нужно: либо сделать действительно чистым интерфейс класса включая размер объекта + иногда бывает неплохо в runtime подменить реализацию. Но в приведенной задаче это просто не нужно и вредно. Иначе весь MFC инкапсулирующий WinAPI был бы сплошным pimplProsche wrote:Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили?
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).