Вопросы на собеседовании на вакансию C#

User avatar
Kirpidonych
Уже с Приветом
Posts: 4593
Joined: 31 Aug 2009 12:05
Location: Москва - Горновидовка - Пало Альтово - Озерки - Портланд\Сиэттл

Re: Вопросы на собеседовании на вакансию C#

Post by Kirpidonych »

OtherSide wrote:Буквально вчера был на собесдовании на вакансию программиста .NET
Контора самая обычная. Делают сайты на заказ, штат человек 20. з.п. предлагают до 100 тыс рублей

Вопросы следующие:
:shock: запил
Обмен мнениями происходит в теплой и дружеской обстановке.
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

У меня действительно ощущение, что все решают личные симпатии. Вот вчера было собеседование. Традиционные задачки на ошибки в С++ коде сходу порешал. Одному интервьюеру понравился. По разговору было видно что уже готов меня взять. А второму чем-то не понравился. Стал спрашивать "Вот надо реализовать оберточный класс над потоком, как вы будете это делать". Я ответил х.з. зависит от целей. Чем не устраивает функции ОС. Потом вопрос "А где именно создается поток?" Тоже не понял что от меня хотят. Внутри процесса. В общем оказалось, что от меня требовалось знание паттерна pimpl. По победоносному виду понял что не прошел.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

OtherSide wrote:У меня действительно ощущение, что все решают личные симпатии. Вот вчера было собеседование. Традиционные задачки на ошибки в С++ коде сходу порешал. Одному интервьюеру понравился. По разговору было видно что уже готов меня взять. А второму чем-то не понравился. Стал спрашивать "Вот надо реализовать оберточный класс над потоком, как вы будете это делать". Я ответил х.з. зависит от целей. Чем не устраивает функции ОС. Потом вопрос "А где именно создается поток?" Тоже не понял что от меня хотят. Внутри процесса. В общем оказалось, что от меня требовалось знание паттерна pimpl. По победоносному виду понял что не прошел.
Про поток вы зря так, от задач зависеть обертка не должна, типа должна быть более менее универсальна, но не до паранои.
Потом вопрос "А где именно создается поток?" - Вам бы прочитать книгу про внутреннее устройство винды, чтобы таких умников с такими вопросами на место ставить.
В общем оказалось, что от меня требовалось знание паттерна pimpl.
а вы не спросили в какое место он свой pimpl хочет воткнуть? (если речь все еще об обертке над потоком)
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Alexandr wrote:есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
Сложно сказать. Мне кажется работодателей наоборот, смущает слишком широкий и разноплановый опыт. Идеальный кандидат - который последние 5-7 лет работал на идентичном проекте и особо не дергался.
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Вопросы на собеседовании на вакансию C#

Post by Prosche »

Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Prosche wrote:Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Alexandr wrote: Про поток вы зря так, от задач зависеть обертка не должна, типа должна быть более менее универсальна, но не до паранои.
Потом вопрос "А где именно создается поток?" - Вам бы прочитать книгу про внутреннее устройство винды, чтобы таких умников с такими вопросами на место ставить.
Смысл писать обертки над уже существующим API? Там же все есть нафига обертки. Ну я ответил что в обертке должны быть методы инициализации, запуска, паузы, остановки. Про устройство винды читал лет 10 назад. Чем отличается процесс от потока знаю. Про защищенную память тоже.
Я уже описывал проблему. Если бы на всех собеседованиях спрашивали одно и тоже, а так на одном спросят про внутренности MSSQL, другом- юнити3д, третьем про объекты ядра линукс.
Вы говорите, нужна специализация. Ок. Но если затачиваться под один конкретный набор - ну скажем C++/TCPIP/Linux/Qt/bash/phyton - можно потратить скажем месяц на зубрежку - но таких ваканский на открытом рынке 5 штук. И так по каждой области. Вакансий очень мало, но требования знаний очень глубокие - т.е. что бы занимался конкретно этой задачей последние 3-5 лет
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

Prosche wrote:Где создается поток? Имхо в рамках процесса это хороший ответ. А вот с пимплом я не постиг если чесно, какая связь? Без него поток типа не заврапить?
ну я бы рассказал как он в ядре создается и бла-бла-бла... С pimpl вообще непонятно куда он его сувать собрался
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

OtherSide wrote:
Alexandr wrote:есть еще один нюанс: если в целом ваше резюме не впечатлило достижениями, потом это очень сложно перебить на собеседовании, даже, если пригласили.
Сложно сказать. Мне кажется работодателей наоборот, смущает слишком широкий и разноплановый опыт. Идеальный кандидат - который последние 5-7 лет работал на идентичном проекте и особо не дергался.
имхо, разноплановый опыт реально интересен только тогда, когда там есть знания и глубокие. Знать кучу всего поверхностно - это сейчас никому не интересно. Поэтому, если и демонстрировать широкий опыт, то только если там есть реально глубокие знания.

+ опять же, кризис наверное, раз работодатели носы позадирали
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Вопросы на собеседовании на вакансию C#

Post by Prosche »

OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Вопросы на собеседовании на вакансию C#

Post by Prosche »

мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros :%) , SQL... сразу идут в топку.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Вопросы на собеседовании на вакансию C#

Post by Мальчик-Одуванчик »

Prosche wrote:
OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.
К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Мальчик-Одуванчик wrote:
Prosche wrote:
OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.
К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
assazello
Уже с Приветом
Posts: 1218
Joined: 06 Mar 2015 00:18
Location: San Jose, CA

Re: Вопросы на собеседовании на вакансию C#

Post by assazello »

Только сейчас понял, что потоки - это threads, а не streams. :)
А как по русски будут streams?
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Вопросы на собеседовании на вакансию C#

Post by mynameiszb »

Prosche wrote:Excel мacros
А я эти макросы не знаю. Все, провал в образовании... :cry:
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

OtherSide wrote: Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили? :lol:
Не, ну точно: I had a problem, so I decided to use Java to solve it. Now I have a ProblemFactory. :D
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

Prosche wrote:мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros :%) , SQL... сразу идут в топку.
у меня как раз такое резюме :D
страницы на 3 :)
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Alexandr wrote:
OtherSide wrote: Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили? :lol:
Не, ну точно: I had a problem, so I decided to use Java to solve it. Now I have a ProblemFactory. :D
Х.з. На мой ответ что я такой код просто перекрою дефайнами начал ехидно улыбаться
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

OtherSide wrote: Х.з. На мой ответ что я такой код просто перекрою дефайнами начал ехидно улыбаться
И это абсолютно верный ответ. Надо было его припечатать :) Работу бы все равно не получили, но "пусть знают наших" (с) :D
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Вопросы на собеседовании на вакансию C#

Post by Prosche »

Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили? :lol:
Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

Re: Вопросы на собеседовании на вакансию C#

Post by OtherSide »

Prosche wrote:
Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили? :lol:
Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).
Как вы собрались без дефайнов писать мультиплатформенный код - хз
Oleg Co
Уже с Приветом
Posts: 7909
Joined: 19 May 2008 22:10
Location: BY->DEU->SFBA

Re: Вопросы на собеседовании на вакансию C#

Post by Oleg Co »

Alexandr wrote:
Prosche wrote:мы сейчас ищем людей на C++ и резюме на 5 страниц (коих подавляющее большинство), где описан опыт по C++, PHP, Java, JavaScript, Perl, Excel мacros :%) , SQL... сразу идут в топку.
у меня как раз такое резюме :D
страницы на 3 :)
А как-же правило - 2стр. максимум?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Вопросы на собеседовании на вакансию C#

Post by Мальчик-Одуванчик »

OtherSide wrote:
Мальчик-Одуванчик wrote:
Prosche wrote:
OtherSide wrote: Я думаю что аффтор просто хотел потроллить меня на знание паттерна pimpl и просто не смог нормально придумать сам вопрос. Думаю что они имел в виду что реализация обертки должна быть платформенно независимой и реализоваться через pimpl
Тогда imho горазду умнее было бы спросить, какой паттерн применить, если надо спрятать имплементацию или иметь возможность менять ее в рантайме, не меняя API, т.е. прозрачно для того, кто использует объект.
К потокам pimpl вообще никаким боком. Вы правильно заметили, что он часто используется для инкапсуляции части кода, зависиомой от внешних условий (операционная система, железо, тип ввода-вывода).
Хотя pimpl, если не ошибаюсь, это идиома языка, а наиболее соответстующий ей паттерн называется мост.
Подразумевалось, что как раз так будут реализованы потоки для линукс и винды
А нафига, если они уже описаны в стандарте как элементы языка?
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Вопросы на собеседовании на вакансию C#

Post by Alexandr »

Prosche wrote:
Alexandr wrote: ну и на кой там pimpl упало? Они потоки под Linux и Windows в runtime переключать решили? :lol:
Тут как раз идея связана со второй фишкой пимпла: скрыть имплементацию. Для винды вам нужно хранить в классе, какой нибудь WINDOWS_THREAD_T handle, а для никсов int handle, и пимпл дает возможность это дело в имплементации скрыть, а декларация чистенькая и для обоих имплементаций одинаковая.
Дефайны, кстати, аццкое зло. И должны применяться в плюсах, только если иначе никак. (например, если вы решите countof через sizeof заимплементить).
они в любом случае будут в private, а усложнять простые вещи совсем непонятно зачем. Иногда бывает нужно: либо сделать действительно чистым интерфейс класса включая размер объекта + иногда бывает неплохо в runtime подменить реализацию. Но в приведенной задаче это просто не нужно и вредно. Иначе весь MFC инкапсулирующий WinAPI был бы сплошным pimpl

Return to “Работа и Карьера в IT”