LINUX.ORG.RU

Вопросы на python-собеседовании

 ,


5

5

Накидайте вопросов, которые вам задавали или вы задаёте при собеседовании на python-программиста.

Вопросы с собеседований нужны чтобы получить представление и готовиться. Хотел бы освоить python (скорее подтянуть, т.к. что-то я уже знаю) и походить по себеседованиями.


Я не совсем тот, кого ты ищешь, но на, поготовься:

Разверни строку ‘pylesos’.

Поменяй местами значения двух переменных.

Выведи все простые числа менее N, N вводится с клавиатуры. Сократи теперь решение до одной строки <80 символов.

Как будешь решать задачу «вывести число прописью»?

Как будешь решать задачу «вывести все спряжения французского глагола, не имеющие с оригинальным глаголом ни единой общей буквы»?

Напиши кеширующий декоратор. Расскажи, что плохо в твоем решении и как это фиксить.

Насколько шаришь в питоне? Если ответил «как бох», то что такое генераторная функция? Как проверяется объект на «коллабельность»? Что такое метакласс и накой он нужен? Как опакечивать расширения, компилирующиеся в нативный код? Как проксировать произвольный доступ к произвольному объекту?

Чтобы были нормальные вопросы, надо очертить предметную область.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

«вывести все спряжения французского глагола, не имеющие с оригинальным глаголом ни единой общей буквы»

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

во-первых, что значит «оригинальный»? во-вторых, всегда казалось, что форму неправильного глалога по определению невозможно синтезировать программно. на то он и irregulier. в-третьих, если во французском языке есть глагол, ни одно из спряжений которого не имеет ни одной буквы, общей с инфинитивом этого глагола, то проще бы этот назвать всё таки назвать.

anonymous
()
Ответ на: комментарий от anonymous

Согласен, фигню сочинил. Имелось в виду «с введенной формой глагола», но и инфинитивная сойдет. Вопрос не о том.

форму неправильного глалога по определению невозможно синтезировать программно.

Вопрос как раз об этом. Я заказчик, такова моя задача, и мне плевать на твои «невозможно». Твои действия?

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

Не то. «Если во французском языке есть спряжения, не имеющие ни одной буквы, общей с инфинитивом этого глагола». Есть.

то проще бы этот назвать всё таки назвать.

М? Типа это уже кто-то подметил и запостил? А мне вот интересно, как эти pieces of trivia найти не вручную, причем побольше.

t184256 ★★★★★
()

Держи с собеседования на сисадмина в известную ИТ компанию в России. Питон сисадмина надо знать на уровне «помнить все методы всех встроенных типов», множества и работа со словарями.
1. Найти дубликаты в массиве. Переписать с циклами. Переделать с линейной сложностью алгоритма.
2. Найти максимальные длины последовательностей одинаковых символов.
3. Даётся массив с именами файлов. Сортировка, если числа в названии, по убыванию, а потом буквы по возрастанию.
4. В файле заменить последовательности пробелов и табуляций одним пробелом - без регулярок.
5. Есть массив состоящий из кортежей положительных целочисленных координат. типа [ (2,5), (1,6), (1,8), ... ]. Нужно определить, существует ли вертикаль, которая делит все точки на плоскости. Сделать линейную сложность алгоритма.
6. Есть 2 массива, состоящие из кортежей - отрезков времени нахождении в сети 2-х пользователей, массивы отсортированы по возрастанию. Нужно найти отрезки времени, когда они в сети были одновременно. Сделать линейную сложность алгоритма.
Все задачи на время по 10-15 минут.

Программистов наверно спрашивают серьёзнее.

bass ★★★★★
()

Накидайте вопросов, которые вам задавали или вы задаёте при собеседовании на python-программиста.

Самые лучшие собеседования, которые мне доводилось проходить и после которых я устраивался в весьма адекватные конторы, в которых работалось легко и непринуждённо, проходили в формате скорее диалога и обсуждения на равных технологий, с которыми доведётся работать на практике. К таким собеседованиям и готовиться не нужно: либо ты в теме и подойдёшь, либо не иди совсем. Бывали случаи, что не тянул на нужную позицию, - но это было всё равно интересно и без напрягов, посидели, потрындели, попили чайку.

С другой же стороны, собеседования, на которых меня просили выполнить какие-то тестовые задания выходящие за рамки «написать на бумажке десять строк» или задавали вопросы на знания типа третьего параметра некоторой функции некоторого класса некоторого фреймворка, которую без справочника и не вспомнишь, или ещё гнали какую-то пургу, или ментально прессовали, или ещё каким-то образом были напряжными, - как правило выливались в такую же работу в таком же коллективе, где зачастую я уходил не отработав и пары недель.

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

и походить по себеседованиями.

Так иди же. Сразу получишь представления о том, что спрашивают, от первых лиц, а не на форуме через сарафанное радио.

beaver
()

Спрашивали про типы данных, где использовать лучше списки, словари, кортежи, множества. Анонимные функции, декораторы, где, как их лучше применить. Ну а дальше были уже вопросы скорее связанные не с питоном, а сферой в которой я буду на нем писать

Andreezy
()
Ответ на: комментарий от beaver

гнали какую-то пургу, или ментально прессовали

Я давно уже научился просто вставать и уходить с таких собеседований.
И не забывай на glassdoor написать отчёт, чтобы другие люди эту конуру стороной обходили.

Goury ★★★★★
()
Ответ на: комментарий от t184256

итак. с подачи испытуемого собеседующий сам понял, что имел ввиду инфинитив.

также не без помощи испытуемого, собеседующий смог таки со второго раза сформулировать вопрос по-русски.

Есть.

лол, да такие есть и что, тоже мне открытие.

aller: je vais; tu vas; il va; ... ils vont;
etre: je suis;
anonymous
()

Накидайте вопросов, которые вам задавали или вы задаёте при собеседовании на python-программиста.

1. Почему вы выбрали Python в качестве языка программирования? Как давно вы на нём пишете?

2. Какие ещё языки вы знаете? На каких писали?

3. Какие особенности Python по сравнению с другими языками?

4. Для каких задач Python подходит, а для каких нет, по вашему мнению?

5 Что вы любите в Python? А что не любите?

Crocodoom ★★★★★
()
Последнее исправление: Crocodoom (всего исправлений: 1)
Ответ на: комментарий от Crocodoom

Это если собеседование на программиста, а не макаку, конечно.

Crocodoom ★★★★★
()
Ответ на: комментарий от t184256

нужно на 100% знать грамматику французских глаголов (причем формализовано, как лингвист, а не как франкофон). тогда можно разработать корректную программу, которая это покажет. (мое знание ограничивается годовым курсами французского когда-то очень давно. не буду претендовать на истину.)

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

это знают только те, кто пишет и продаёт французские конжугаторы. т.е. это сумма
1) программной логики, основанной на формализованной грамматике языка
плюс 2) вручную формируемой БД, которую кстати компания считает активом
плюс 3) рутин синтеза нужный формы.

ты не прав. ты не имеешь права спрашивать такое на собеседовании у программиста. тут можно вежливо заканчивать и уходить от самоуверенного мудака.

anonymous
()
Ответ на: комментарий от Goury

Я давно уже научился просто вставать и уходить с таких собеседований.

Да, вероятно, это самый правильный сценарий развития такого собеседования. Была одна контора с офисом в моей деревне, специализирующаяся на разработке игр. Сначала я резюме им выслал, потом тестовое задание на юнити сделал, потом пришёл на собеседование. И как-то вот разговор зашёл про то, какие я pet-проекты делал. И я рассказал про один из них, про то, что он был на OpenGL 1.1 (давно дело было) и как там рендер был устроен. На что мне собеседующий говрит, мол, так нельзя было делать, оно работать не будет. Я ему на это отвечаю, мол, ну почему же, вот такие-то и такие-то доводы, можете погуглить, а вот на моём ноуте смотрите работает и не только на моём и не только на ноуте, а вот вам ещё исходники - гляньте, говорю. А он ничего смотреть не хочет, рогом упёрся и утверждает, что оно так работать не может и всё. Ну ок, говорю, не может так не может.

beaver
()
Ответ на: комментарий от anonymous

Имелось в виду «с введенной формой глагола», но и инфинитивная сойдет.

собеседующий сам понял, что имел ввиду инфинитив.

и этот человек будет рассуждать о понимании.

лол, да такие есть и что, тоже мне открытие.

я и не претендую на Нобелевку в лингвистике, я спрашиваю у ТС, как найти их на Python.

t184256 ★★★★★
()
Ответ на: комментарий от anonymous

ты не прав. ты не имеешь права спрашивать такое на собеседовании у программиста. тут можно вежливо заканчивать и уходить от самоуверенного мудака.

О, какой отличный фильтр на некомпетентных в программировании зазнаек оказался. Задача решается в десяток строк. Знать французский необязательно, даже вредно. Обидно, твой уровень знаний позволяет ответить на вопрос, мешают только понты.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от Crocodoom

А что не любите?

Вот, лучший вопрос треда.

t184256 ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Я никогда не работал в IT, я просто перечислил несколько задач, которые даю в начале семестра второму курсу физфака.

t184256 ★★★★★
()
Ответ на: комментарий от beaver

Иди ты. Нет, чтобы они это после семестра программирования на C мгновенно выполнили в одну-десять строк и у них загорелись глаза от того, как высокоуровнево и ненапряжно можно программировать.

Знал бы ты, как они ненавидят с того семестра этот ‘pylesos’. Топ-3 первые попытки: '', ‘pylesos’ и ‘sosesos’, также бывает ‘psosely’.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

Я заказчик, такова моя задача, и мне плевать на твои «невозможно». Твои действия?

Я заказчик,

стоп-стоп-стоп. в этом треде мы о собеседовании, например в фирму, насколько я понял.

соответственно на практике в офисе задает такие вопросы никакой не «заказчик», а какой-нибудь тимлид.

когда у человека есть заказчик, зачем ему тогда ты, твой директор, твой хозяин и прочие дармоеды?

заказчики-то у меня есть, и я отлично знаю как решить их задачи корректно и эффективно, знаю как с ними разговаривать. но у нас в треде о другом

anonymous
()
Ответ на: комментарий от t184256

Иди ты. Нет, чтобы они это после семестра программирования на C мгновенно выполнили в одну-десять строк и у них загорелись глаза от того, как высокоуровнево и ненапряжно можно программировать.

Как им в этом (и в реальной жизни) поможет, например, такой навык?

«помнить все методы всех встроенных типов»

beaver
()
Ответ на: комментарий от anonymous

Еще одно трепло свернуло в сторону. Давай сэкономим время. Каков твой полный ответ на мой вопрос?

t184256 ★★★★★
()
Ответ на: комментарий от beaver
  1. Покажи мне сообщение, в котором я сказал, что развиваю этот навык.

  2. Расскажи мне, каким методом ты собрался это делать, и как синтаксический сахар от него можно не показать, преподавая Python?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Покажи мне сообщение, в котором я сказал, что развиваю этот навык.

А, сорян, я тебя спутал с твоим другом по несчастью.

Расскажи мне, каким методом ты собрался это делать, и как синтаксический сахар от него можно не показать, преподавая Python?

Что делать то?

beaver
()
Ответ на: комментарий от beaver

Реальный навык, который я даю им в этом курсе, это не сцать от слова «программирование», а прикинуть адекватное средство для решения задачи, с энтузиазмом натырить из документации нужного кода и двигаться дальше.

t184256 ★★★★★
()
Ответ на: комментарий от beaver

Что делать то?

Научиться читать. Сделать, что написал.

Серьезно, после выполнения этого задания они не должны запомнить ни одного нового метода. Они даже слова такого еще не знают. Они просто должны вспомнить синтаксис slicing и конструкцию [::-1]. И только попробуй мне рассказать, что программисту на Python slicing не нужен.

t184256 ★★★★★
()

Помимо вышесказанного добавлю, что следует вспомнить на всякий случай какие-то стандартные вещи, типа алгоритмов сортировки, неплохо будет погуглить стандартные математические задачки для собеседований и зазубрить побольше базвордов. Неплохо будет разобраться с тем, как и какие объекты можно изменять не выделяя память в самом питоне, либо с костылями через ctypes, если предложат решить задачу на оптимизацию.

Но, вообще, такие собеседования — дурость. Чтобы решить какую-то нетривальну задачу на диске, нужно либо просто точно знать решение заранее, либо иметь железные нервы и очень быстро соображать в стрессовой ситуации.

Ты, главное, не бойся, ходи на интервью, заваливай, получай опыт.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Но, вообще, такие собеседования — дурость.

Плюсую, такое годно только для массовых отборов.

Самое прикольное мое собеседование было таким. Один из собеседующих спросил, насколько я шарю в функциональщине, сориентировался и начал мне рассказывать всякую новую для меня хрень из ФП и его текущие мысли по поводу state-машин на ближайшей доске. Дальше он и его коллега ориентировались по моим вопросам. Сначала это показалось дикостью, а в ретроспективе — довольно разумным. И два последующих за этим интервью были, кстати, еще менее техническими, скорее организационными.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Имелось в виду «с введенной формой глагола», но и инфинитивная сойдет.

собеседующий сам понял, что имел ввиду инфинитив.

и этот человек будет рассуждать о понимании.

На этом вымышленном собеседовании ты пытаешься говорить об области в которой, кажется, ничерта не понимаешь да еще и используешь очень некорректные термины. Ясно и четко сформулировать задачу (или свою мысль?) ты не можешь. И в этой ситуации ты собираешься оценитьва знания другого человека?

anonymous
()
Ответ на: комментарий от anonymous

Анон, я признался, что в формулировке скосячил. Так бывает. Ты тоже хорош, умудрился смысл моего ответа переврать.

Нет. Я не собираюсь оценивать его знания в лингвистике, вообще. Идеально, если их как раз нет. Меня абсолютно устроит встречный вопрос «что такое вообще спряжение». Я собираюсь оценивать его знания в области «как браться за задачу из области, в которой он нихрена не понимает». ИМХО для этого задача выбрана неплохо, только сформулирована изначально не очень.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

О, какой отличный фильтр на некомпетентных в программировании зазнаек оказался. Задача решается в десяток строк.

ты, кажется, обыкновенный самоуверенный быдлокодер с нечеткой виляющей логикой и затуманенным мышлением.

не являющийся лингвистом французского не сможет решить эту задачу.

не сможет сходу даже в части правильных (не неправильных) глаголов. в части НЕправильных глаголов - тем более.

и никаких «10 строк» там нет, ты просто обосрался.

anonymous
()
Ответ на: комментарий от anonymous

Нет, милашка, обосрался ты.

ты, кажется, обыкновенный самоуверенный быдлокодер

Хуже, я даже не кодер.

Ты знаешь о существовании готовых конжугаторов, написанных квалифицированными лингвистами! Как тебе не хватило мозгов, чтобы додуматься, что их можно применять, а?

Кандидату всего-то достаточно было сказать или показать, как он будет гуглить конжугатор, какие требования к нему выкатит, как будет устанавливать, как откроет документацию.

и никаких «10 строк» там нет

Ага, чтобы вызвать pattern3.fr.inflect.lexeme 10 строк не нужно. Нужно быть «лингвистом французского».

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Комментом ниже:

Нет. Я не собираюсь оценивать его знания в лингвистике, вообще.

Чтобы понять это предложение, надо быть лингвистом русского?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ты знаешь о существовании готовых конжугаторов, написанных квалифицированными лингвистами! Как тебе не хватило мозгов, чтобы додуматься, что их можно применять, а?

кошмар какой, ты обосрался втройне. таки я был прав, когда рекомендовал с такого клоунского собеседования уходить.

не хватило мозгов

у меня-то? ахах. ладно. с тобой говорить не о чем, как оказалось. слился ты короче.

anonymous
()
Ответ на: комментарий от anonymous

Есть желающие нанять мозговитого программиста? Он гораздо круче собеседующего, он доказал ему, что решить его задачу невозможно, да так, что тот даже и не понял! Торопитесь, а то он уходит!

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Спасибо. Внес в список.

Что такое метакласс и накой он нужен?

Подскажи пожалуйста практические кейсы, для которых потребются метаклассы. Чтобы проработать такие кейсы.

Разверни строку ‘pylesos’.

Уточняющий вопрос. Если в питоне нет char[], на базе какой структуры от меня ожидается ее разворот?

Еще вопрос. Я не помню средство для разворота из стандартной библиотеки питона. Это будет проблемой?

mxrd2
() автор топика
Ответ на: комментарий от WitcherGeralt

Не, в молоко.

Ты меня хочешь убедить что собеседования и задач не было и я придумал их сам?

bass ★★★★★
()
Ответ на: комментарий от bass

Спасибо.

помнить все методы всех встроенных типов

Как быть если я толком ничего не помню из стандартной библиотеки питона?

Даётся массив с именами файлов. Сортировка ...

Требуется реализовать алгоритм вручную или воспользоваться встроенными стредствами?

mxrd2
() автор топика
Ответ на: комментарий от mxrd2

Подскажи пожалуйста практические кейсы, для которых потребются метаклассы

Реализация ORM. Других кейсов очень мало. Они появляются элегантности ради или извращенства для.

WitcherGeralt ★★
()
Ответ на: комментарий от mxrd2

Как быть если я толком ничего не помню из стандартной библиотеки питона?

Почитай доки, кто тебе мешает? Уж встроенные функции и типы ты точно должен знать.

Требуется реализовать алгоритм вручную или воспользоваться встроенными стредствами?

Сначала будут ждать стандартное решение, а потом могут попросить написать велосипед.

WitcherGeralt ★★
()
Ответ на: комментарий от mxrd2

в данном случае было на встроенных, но могут спросить и реализации вручную

bass ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Почитай доки, кто тебе мешает? Уж встроенные функции и типы ты точно должен знать.

Как я могу помнить встроенные функций? Зачем это нужно?

точно должен

Без этого вполне можно успешно программировать.

mxrd2
() автор топика
Ответ на: комментарий от mxrd2

Подскажи пожалуйста практические кейсы, для которых потребются метаклассы. Чтобы проработать такие кейсы.

Не надо тебе прорабатывать такие кейсы, их крайне мало. Метаклассы нужны для игр с системой типов, модификации абстрактных классов. Самое невинное, наверное — вклинивание в процесс создания объекта до конструктора. 99.9…% проектов на питоне не используют метаклассы и им и не надо.

Уточняющий вопрос. Если в питоне нет char[], на базе какой структуры от меня ожидается ее разворот?

Строки.

Я не помню средство для разворота из стандартной библиотеки питона. Это будет проблемой?

Нет, конечно. Собеседования — не «своя игра», там не ждут энциклопедических знаний. А вот то, что ты не помнишь, что в питоне есть строки — вот это настораживает.

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.