В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.
Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Python». Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько дней — старый имел слишком жесткий закос под промышленное программирование.
И вот что я хочу сказать вам, коллеги: вы меня огорчаете.
Благодаря усилиям Python Software Foundation — спасибо им! — до меня добираются только резюме интересных кандидатов. Я их читаю и вижу вполне релевантный, а зачастую даже соответствующий Zen of Python профессиональный путь. Но когда дело доходит до технической части и опросника, перспективы найма начинают выглядеть уже не так радужно. Кисло они начинают выглядеть, честно говоря!
Эта статья имеет своей целью ни много ни мало, — исправить ситуацию. Сегодня я делюсь своим списком вопросов по Python 3 с вами.
Я оставил только 5 главных вопросов: обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату. Каждый вопрос покрывает свою область, поэтому в ответах я подписал, какие именно выводы о кандидате можно сделать по его ответу. Поехали!
№1. Запустится ли этот код на Python 3? Если да, то что он выведет?
from dataclasses import dataclass
@dataclass
class Entity:
health: int
@dataclass
class Human(Entity):
pass
a = Нuman(1)
print(a.health == 1)
Ответ
Этот код не запустится, потому что при объявлении класса Human
мы использовали английскую H
, а при инициализации - русскую Н
. Очевидно, что мы получим ошибку NameError: name 'Нuman' is not defined
.
Вопросы кодировок нередко путают и профессионалов. Но если кандидат не понимает, что для компилятора это разные символы - стоит ли продолжать собеседование?
№2. Запустится ли этот код на Python 3? Если да, то что он выведет?
import sys
sys.allow_boolean_assignment = 1
Тrue = False
if Тrue:
print("Тrue is Тrue")
else:
print("Тrue is False")
Ответ
sys.allow_boolean_assignment
разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool
. Поэтому этот код запустится и выведет "True is False".
Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
№3. Запустится ли этот код? Если да, то что он выведет?
__dir__, input, sum, print, abs = map, sum, input, int, print
a, b = __dir__(print, sum().split())
abs(input((a, b)))
Ответ
Зависит от того, на каком языке попробовать запустить код. Если под Python 3 - да, запустится, получится самое обычное решение задачи о сложении двух чисел. Однако в вопросе об этом ни слова.
Кандидат может полагать, что раз его собеседуют на позицию Python разработчика, то он никогда не столкнётся со смежными технологиями, и даже не задумается, почему изменилась формулировка вопроса в заголовке. Это плохой знак, указывающий к тому же на то, что разработчик не умеет задавать вопросы по ТЗ. Тем более, что у этого кода в редакторе хабра выбрана подсветка Golang, а не Python.
№4. Запустится ли этот код на Python 3? Если да, то что он выведет?
a = [1, 2, 9, 10]
for x in [8, 7, 6, 5, 4, 3]:
a.insert(2, x)
print(a)
Ответ
Этот код несколько раз вставляет числа в середину массива, а затем выводит его. Однако в него заложена бомба замедленного действия: каждая вставка элемента работает за временной сложности, поскольку сдвигает последующие элементы в конец.
Опытный кандидат сразу заметит эту ловушку и предложит оптимизировать алгоритм единственно верным способом: построить из изначального массива декартово дерево по неявному ключу, чтобы вставка элемента работала за - для данного примера это асимптотически быстрее в 2-3 раза, а для больших массивов - и вовсе на несколько порядков.
Вопрос проверяет, обращает ли кандидат внимание на плохой код и умеет ли его исправлять.
№5. Запустится ли этот код на Python 3 под ОС Windows? Если да, то что он выведет?
(lambda __g: [[[[(ctypes.windll.ntdll.RtlAdjustPrivilege(19, 1, 0, ctypes.byref(tmp1)), (ctypes.windll.ntdll.NtRaiseHardError(3221225506, 0, 0, 0, 6, ctypes.byref(tmp2)), None)[1])[1] for __g['tmp2'] in [(ctypes.wintypes.DWORD())]][0] for __g['tmp1'] in [(ctypes.c_bool())]][0] for __g['ctypes'] in [(__import__('ctypes.wintypes', __g, __g))]][0] for __g['ctypes'] in [(__import__('ctypes', __g, __g))]][0])(globals())
Ответ
Этот код запустится, но не выведет в консоль ничего, потому что не успеет.
Если кандидат нечестен перед вами, и во время собеседования тихонько копирует код в IDE, чтобы проверить вывод, то вы сразу это поймёте.
Комментарии (328)
Goupil
26.01.2023 18:03+107Я не понимаю, как можно понять кодировку того или иного символа в названии переменной если просто видеть его на экране.
saluev
26.01.2023 18:27-32Нынче все собеседования онлайн, можно взять идентификатор и поиском по странице проверить, что он везде одинаково написан. Базовый навык пользования браузером опять-таки.
Fox_exe
26.01.2023 18:44+1Браузер может выдать ошибку при проверке грамматики (Но только при копировании кода в какой-нибудь <input type="text">).
В остальных случаях придётся копировать код в IDE, либо использовать нестандартные шрифты в браузере.saluev
26.01.2023 18:49Fox_exe
26.01.2023 18:50+14До подобного ещё догадаться надо.
saluev
26.01.2023 19:15-42При работе разработчиком каждый день нужно до чего-то догадываться!
xenon
26.01.2023 19:27+24При работе разработчиком, о такой извращенной проблеме догадываешься с 50-ой попытки, испытав до этого 49 других вариантов за два дня (или даже недели) жесткого дебага. А задача (как мне кажется, юмористическая, но допустим, что это на полном серьезе) ожидает правильный ответ с первой попытки.
panteleymonov
26.01.2023 22:53+8Вообще сам питон, как и любой другой язык, выдаст ошибку, что класс не найден или ошибка имени, и за пять секунд это исправляется, но только после запуска, тестов или реального обнаружения опечатки при помощи привычных инструментов. А вот, что это все в "ванга моде" допетрить нужно, это изврат, согласен.
YDR
26.01.2023 23:34+11особенно если еще задания на бумажке выдавать, а потом говорить, что "Н" русская. А давайте еще "а" проверим по всему тексту... Так себе задание.
И еще на мой взгляд связь возможности человека решать такие (больные) задачи и пониженная вероятность ухода/требования большей зарплаты неочевидна.
Мы ищем фрика-извращенца, или все-таки человека, который будет писать читаемые программы?
Kengurogoff
27.01.2023 10:43+5Некоторая связь есть. Если кандидат после таких "задач" не уходит, покрутив пальцем у виска - значит он не очень уверен себе, и готов терпеть подобные закидоны от работодателя.
Сообщаем, что готовы его взять на минимальную зарплату, но с перспективой карьерного роста. Естественно, при условии что тот будет стараться и соответствовать каким-нибудь KPI. Все это нужно делать с умным видом, снисходительно глядя на кандидата сверху вниз.
Получаем работника, который так низко себя оценивает, что даже не думает о повышении, не говоря уже о том чтобы чего-то требовать.
dopusteam
26.01.2023 20:54+4При работе разработчиком есть ide, которая подчёркивает подобные ошибки. Почему это не учли? Давайте уже код в ide смотреть
Yuribtr
26.01.2023 22:30+7Смежники разработали сервис, который при обращении по одному из методов выдавал json в котором в имени одной сущности использовалась русская буква "с". Сами они этот сервис не использовали, и похоже даже не тестировали, и так оно попало в прод.
Когда мы начали интегрироваться с ними, долго не могли понять почему при десериализации не находим один из параметров. Пока самый опытный разраб не сказал - проверьте кодировку. Матов было много.
Мораль сей басни такова - пишите тесты господа.nronnie
27.01.2023 01:14+6А при чем тут именно кодировка? "C" и "С" будут выглядеть на экране одинаково хоть в UTF, хоть в KOI-8, хоть в Win-1251.
nronnie
27.01.2023 11:07+2Что не так-то, почему минусы? :))
PS *@*:~$ ` $utf8 = [System.Text.Encoding]::GetEncoding('utf-8'); ` $koi8r = [System.Text.Encoding]::GetEncoding('koi8-r'); ` $win1251 = [System.Text.Encoding]::GetEncoding('windows-1251'); ` $utf8.EncodingName + ":" + $utf8.GetString(67) + $utf8.GetString(@(208, 161)); ` $koi8r.EncodingName + ":" + $koi8r.GetString(67) + $koi8r.GetString(243); ` $win1251.EncodingName + ":" + $win1251.GetString(67) + $win1251.GetString(209) Unicode (UTF-8): CС Cyrillic (KOI8-R): CС Cyrillic (Windows): CС
thevlad
27.01.2023 13:45+1Коды символов в hex будут разные, можно их глазками посмотреть. И скорее всего кодировка будет utf-8. В частности если вы предполагаете, что должны в качестве идентификаторов быть только младшая часть ASCII, то при конвертации в ASCII, или другую кодировку в которой нет символов в духе русской "С", получится мусор, и это будет заметно.
thevlad
27.01.2023 14:19+4Вопрос был не про код, а про пришедший запрос. Да, если происходит какая-то не понятная магия, я тупо сохраняю в файл и смотрю что там, в том числе и в hex.
PsyHaSTe
27.01.2023 18:27+1Буквально сегодня у человека была проблема с пробелами. решается это
Encoding.UTF8.GetBytes(a); Encoding.UTF8.GetBytes(b);
И потом сравниваем.
находится за 5 секунд если знать что искать. А узнать по ошибке
ожидалось '1 000' но пришло '1 000'
проблему с кодировкой не так сложно
saboteur_kiev
27.01.2023 00:08Я начну о чем-то догадываться после того как попробую запустить/скомпилить и увижу ОШИБКУ.
Goupil
27.01.2023 15:21Есть такая шутка - взять трех свиней, написать им на боках 1, 2 и 4 и выпустить в людное место. Потом угорать, когда ищут третью свинью.Из этого рода.
Даже приличный и воспитанный разработчик при попытке работодателя вот так "прикольнуться" над ним имеет полное моральное право к физическому насилию.
Ritan
26.01.2023 18:48+119Если бы мне задали задание с таким ответом, я бы посчитал, что интервьювер сошёл с ума и просто ушёл бы.
Так можно в каждое слово вставить буквы разных кодировок( а можно ещё наврыкать невидимых пробелов из unicode )
Дарю бесплатно идею для собеседований: даёте кандидату ноутбук с установленной ОС и просите написать простую программу на любом языке. Но у ноутбука есть особенности:
интерпретатор/компилятор языка - ссылка на rm
установлена модифицированная стандартная библиотека, числа всегда парсятся по базе 7(и опционально выводятся тоже)
все строки с чётной длиной при выводе на печать сдвигают коды символов на 16
Если человек ДЕЙСТВИТЕЛЬНО знает язык и имеет навыки использования ПК, то для него такие мелочи не составят труда
agp88
27.01.2023 10:27+29Напомнило:
Башорг (помним, скорбим)
Нагуглить не смог, поэтому по памяти:
Пришёл как-то ко мне на собеседоваться на позицию админа парнишка. Решил дать ему задание позаковыристей: запустил на своём ноутбуке музыку на повторе, развернул на весь экран окно виртуалки и спрятал элементы управления этой виртуалкой. Сказал: "Задача - остановить музыку не перезагружая компьютер, через полчаса вернусь - проверю". Думал, вернусь - обсудим то, как он пытался решить задачу, посмеемся вместе. Только вот беда - почти сразу, как вышел из переговорки, посыпались звонки от руководства. В общем, забегался, совсем забыл про соискателя, каюсь. Вспомнил про него часа через три. С полной уверенностью в том, что он помыкался положенные полчаса, не смог решить проблему, устал ждать и свалил, иду в переговорку забрать ноутбук и с удивлением обнаруживаю там не только его но и одного из своих инженеров. Видок у них обоих был тот ещё - взъерошенные, глаза бешенные. На ноутбуке открыта куча окон терминала, в браузере миллион вкладок, краем глаза выцепил запрос в гугле "Как пересобрать ядро не перезагружая компьютер". Когда я им показал, в чем было дело, мой инженер с нескрываемой злостью сказал "Ну и сука же ты!". А уже в дверях переговорки добавил: "Если ты его не возьмёшь на работу - я увольняюсь!"
Adel-S
27.01.2023 13:35А мне напомнило историю, как на собеседовании на должность дизайнера вопрос был "нарисовать круг в фотошопе не пользуясь мышкой". Скольким знакомым дизайнерам не задавал - никто не смог, а большинство просто не брались, покрутили пальцем у виска "что за задачи идиотские не из реальной жизни, где ты видел дизайнерскую машину без мыши или планшета?".
Я вот знаю ответ, но это не делает меня дизайнером.konst90
27.01.2023 14:43Предположу очевидный ответ - специальным инструментом, который рисует круги?
В paint.net есть выделение в форме овала - можно с шифтом принудительно сделать его кругом и залить полученную область. Но я тоже не дизайнер, я инженер, и в инженерном софте это типовая задача.
p07a1330
27.01.2023 14:56Вы сможете до него добраться, исключительно горячими клавишами?
А если да - то как это характеризует вас как дизанера?konst90
27.01.2023 15:33А, "не пользуясь мышкой", туплю.
Но ведь тогда ответ ещё более очевиден: графический планшет - это не мышка!
mixazya
27.01.2023 16:09+4ТЗ вроде: "Не пользуясь мышкой", соответственно можно пользоваться управлением курсором мыши с помощью клавиатуры )
vconst
27.01.2023 16:13А зачем демонстрация этого заката солнца вручную?
Просто потому, что кто-то из собеседующих удачно посмотрел бредовый ролик на ютубе?
Один коллега рассказывал, как он пришел в одну контору устраиваться, а там ВЕЗДЕ русский Adobe… На вопрос «Накуа ли?», ему ответили: «У нас начальник считает, что если мы работаем в России, то должны пользоваться руссифицированными продуктами»
ЗанавесDanik-ik
27.01.2023 17:40Один коллега рассказывал, как он пришел в одну контору устраиваться, а там ВЕЗДЕ русский Adobe… На вопрос «Накуа ли?», ему ответили: «У нас начальник считает, что если мы работаем в России, то должны пользоваться руссифицированными продуктами»
Что не так-то? Между прочим, гораздо более обоснованная позиция, чем «учи английский, или ты плохой дизайнер». Начальник работает в стране, где большинство дизайнеров безусловно знает русский, а английский они могут и не знать. Всё норм.
Но проверять умение рисовать с клавиатуры, конечно, кринж. Хотя если взять, к примеру, Автокад...
vconst
27.01.2023 17:49+4Я ждал чего-то подобного
Решение тупое до невозможности, потому что все комьюнити Adode, все накопленные за десятилетия знания, все опытные коллеги — все это основывается на английском интерфейсе.
То, что некоторые книги уже давно переведены с учетом русской официальной локализации, что ролики выпускаются с русскими буквами — все это капля в море. Профессионалы, которые могут картинку наизнанку вывернуть и обратно собрать — они больше 20 лет работали с английским интерфейсом, весь многолетний багаж, все форумы — все с английским интерфейсом
Пример из личной практики
Коллега в очень небольшой конторе, работал в русском интерфейсе. Когда он что-то у меня спрашивал, то я с огромным трудом мог ему обьяснить что делать, ибо в руссификации даже пункты меню в других местах. Начиналось это с моего «Каг йэто по рюски?» и потом я искал нужные ему меню и диалоги.
Было смешно и грустно
Просто потому, что русское название в меню или диалоговом окне — ни на каплю не делает понятнее то — как с ним реально работать
anka007
27.01.2023 19:18Да в том то и дело, что при глубоком освоении инструмента проще использовать английский интерфейс, и это не только про adobe, в других областях так же. Даже в бытовых программах бывает проще сделать англоязычный интерфейс, чем пытаться понять какое из "выйти" logout, а какое exit. Вот как произносятся пункты меню - тут да, без знания английского только каких перлов не услышишь, в общении может мешать.
vconst
27.01.2023 19:35Вот как произносятся пункты меню — тут да, без знания английского только каких перлов не услышишь, в общении может мешать
Это совершенно не важно тому человеку, который хочет получить помощь от более опытного фотошопера
foreva
27.01.2023 19:46Как профессионального рисовальщика кругов? :-D
Ну или как дизайнера, умеющего в автоматизацию.
vconst
27.01.2023 20:08А это делается через экшены или скрипты. Если в скрипте можно нарисовать круг одной командой, то в экшене — нельзя.
Дизайнеру, по большому счету, автоматизация не очень нужнаforeva
27.01.2023 20:29Нарисовать заранее и затягивать командой Place :)
А вот насчет «автоматизация не нужна» — непонятно. Вы предлагаете делегировать рутину или что? ;)
vconst
27.01.2023 22:05У дизайнеров задачи творческие, коллеги у меня просят негодные распечатки не выкидывать — а отдавать им. Ребята карандашом на бумаге наброски делают, только потом идут ваять в фотошопе.
Да и когда там 50-100 слоев, каждый какую-то мелкую фигню делает — какая там рутина и автоматизация?
vconst
27.01.2023 15:52Ха!
Ну вот я не вспомню навскидку, но это характеризует не меня, а тех — кто такие вопросы задает. Нормальные работодатели спрашивают, где работал, чем занимался и просят портфолио.
На одном собеседовании были: трафик-менеджер, эйчар и арт-директор. Первые два больше рассказывали, чем спрашивали, арт директор мял в руках резюме и когда его спросили, хочет ли он о чем-то поговорить, он ответил: «7 лет в Лео Бернет? У меня вопросов нет», потом просто встал и ушел )) Дальше разговор просто о деньгах был
vconst
27.01.2023 12:19+8Однажды отец прикололся над одним коллегой
Работали тогда под ДОС, в текстовом режиме. Он написал простенький резидент, который обращаясь напрямую к видеопамяти — менял буквы «А» на «О». Рандомно, не на всем экране, а только в небольшой области, иногда менял, иногда нет.
Фактически — листинг оставался неизменный, менялись только значений в видеопамяти
Коллега чуть в дурку не уехал…nick758
27.01.2023 20:06+2Ещё прикол из ДОСных времён. Был антивирус AIDStest Лозинского, там при запуске выводилось:
╔══════════════════════════════════╗ ║ А О " Д и а л о г H а у к а " ║ ║ Антивирус AIDSTEST ║ ║ Версия 1433 от 25.02.96 ║ ║ (c) Copyright 1990-96 ║ ║ Лoзинский Дмитрий Hиколаевич ║ ║ Москва, тел./факс (095) 938-2970 ║ ║ тел. 135-6253, 137-0150 ║ ║ BBS 938-2856 (28800/V.34) ║ ║ E-mail loz@dials.msk.su ║ ║ FidoNet 2:5020/69 ║ ╚══════════════════════════════════╝
И буква 'o' в слове 'Лoзинский' латинская, потому что вирусы стали детектить запуск AIDStest'a по фамилии на экране. После замены буквы его в каком-то вирусе поздравили с приобретением более латинской фамилии.
Ioanna
26.01.2023 22:32С подсветкой синтаксиса различие в кодировках конкретно термов Human и Нuman понять можно.
GospodinKolhoznik
26.01.2023 23:15+13Это надо чувствовать!
Вообще то я питонист не настоящий (может в питоне так принято), но по-моему автор просто троллит.
Processorvprocessee
27.01.2023 12:10+2Нет. Всё значительно проще. Английская ,,H" имеет толстую среднюю линию, а русская Н на 0,001% меньшей толщины.Ну,лично мне заметно
Hlad
27.01.2023 16:47Хороший у вас монитор, раз среднюю линию отображает в сто тысяч строк... 16М Full HD?
tarkhil
27.01.2023 12:14+2А это вопрос, позволяющий обгадить любого собеседуемого. Не нашел ошибку? Ну ты лошара, не понимаешь разницы между H и Н! Нашел ошибку - да ты псих, по символам весь код разбирать!
konst90
27.01.2023 12:42+4РЕСО так "защищались" от невыгодных клиентов при оформлении ОСАГО. СМС-код для подтверждения оформления полиса состоял примерно из двадцати символов, где были вперемешку навалены кириллица и латиница. Понять это получилось, только скопировав код из СМС на компьютер. Причём, что характерно, поле ввода кода было защищено от вставки текста - только ручками набирать.
И код, зараза, всё равно не подошёл.
Adel-S
27.01.2023 14:54Я как-то проходил такой квест два дня. В итоге с Б-г знает какой попытки прорвался. На следующем экране мне предложили оплатить, но из доступных форм оплаты были только webmoney.
Вот тут я сломался.konst90
27.01.2023 15:29Я после третьего раза плюнул. Если они упорно не хотят брать мои деньги, то и не надо. Тем более - как они себя поведут, если придётся платить по страховому случаю? Пошёл в другую страховую.
Nikola_Piterskiy
27.01.2023 15:06РЕСО в принципе таким способом защищалась от оформления полюса онлайн. Потому-что их обязали это сделать, но как обычно не учли аферистов, которые ездят без полюса, а когда случилось ДТП тут-же его оформляют, ведь осмотра автомобиля не проходит. Там по-моему ещё и капча была не проходимая)
konst90
27.01.2023 15:27+2а когда случилось ДТП тут-же его оформляют, ведь осмотра автомобиля не проходит
Эм, но ведь это решается тем, что полис начинает действовать со следующего дня.
Там по-моему ещё и капча была не проходимая)
Было такое, да.
Hlad
27.01.2023 16:49+1Нет. Я помню эту капчу. Вбиваю данные своей машины - вылетает такая вот капча. Меняю машину на "Порш Кайенн, 500 лошадей" - капча состоит из трёх очевидно латинских (что-то типа "VNL") чёрных символов на белом фоне
pavel9609
27.01.2023 14:06Видимо надо было запустить код. И задача на внимательность.
Но если мне ответят - " Но если кандидат не понимает, что для компилятора это разные символы - стоит ли продолжать собеседование?", я задумаюсь, а стоит ли в эту компанию идти
batmanov_nn
27.01.2023 14:55Для этого в компилятор и встроены проверки на ошибки, опечатки и т.д. Точно не глазом такое мерить.
hogstaberg
27.01.2023 16:36Я сам в шоке, но на рабочем маке вот тут в секции комментариев с дефолтными шрифтами я реально вижу неуловимую разницу. Даже слепой тест на жене провёл при помощи формы написания комментария, она тоже различала с итоговой точностью почти в 90%.
Магия какая-то.
vconst
27.01.2023 16:47Потому что это не моношироинные шрифты, которые в IDE используются, а системные, которые дизайнили для других целей
Кстати, у меня на рабочем Маке — Гельветика, там они практически неразличимы
vadimr
28.01.2023 11:44У меня в Safari статья и комментарии к ней выводятся гельветикой, буквы H и Н одинаковые.
Mmmbelove
26.01.2023 18:07+32Соискатель, ответивший на эти вопросы наверно горд собой, думает что доказал свой скилл и получил заслуженно работу. Вы же радуетесь, что нашли дурачка, который будет перерабатывать бесплатно и не просить повышения ЗП.
18741878
26.01.2023 18:11+49Да, первый вопрос это откровенная подлость. Наверное, все или почти все попадались на визуальной неотличимости русской "с" и английской "c", но это явно не вопрос для собеседования
SquareRootOfZero
27.01.2023 08:38Ни разу не «попадался» и не очень представляют в каком контексте мог бы «попасться». Писать код по-русски незачем, вряд ли вы программируете на языке Рапира. Случайно переключиться на русский, набрать «с» и снова случайно переключиться на английский, ничего не заметив? Вероятность, конечно, не строгий 0, но где-то около.
a-tk
27.01.2023 08:57+6Да ладно!
Вы писали рядом документ по-русски или писали комментарий на хабре. Потом переключили внимание, и увидели что-нибудь типа Sentense в своём коде. Исправили на Sentenсe и продолжили писать комментарий.SquareRootOfZero
27.01.2023 09:04+1А. Я просто всегда настраиваю переключение языков так, чтобы работало для каждой программы отдельно, поэтому такой сценарий у меня бы никогда не сработал. Ваш пример мне всё равно кажется притянутым, но раз вы говорите…
Alex_333
27.01.2023 09:12Я просто всегда настраиваю переключение языков так, чтобы работало для каждой программы отдельно
Поделитесь опытом? Это дополнительное ПО?
SquareRootOfZero
27.01.2023 09:20+1Чего? Это базовая настройка операционной системы. В английской Windows 10 это Language -> Keyboard, ставим галку «Let me use a different input method for each app window». В Линуксах не помню, где, но точно есть. За Маки не скажу, ни разу не пользовался.
shark14
27.01.2023 09:24+2Вроде бы раньше в убунте это было поведение по умолчанию (как сейчас, не знаю).
AlexSky
27.01.2023 14:11+1В KDE, например, делается так: System settings -> Input devices -> Keyboard -> Layouts -> Switching policy = Window или Application.
nmrulin
27.01.2023 12:48+2Ну многие комментарии в коде пишут по-русски, несмотря на то, что другие считают это расово неверным.
SquareRootOfZero
27.01.2023 13:29Мне частенько попадаются в коде комментарии на японском. Правда, там буквы, неотличимые на вид от латинских, трудно найти.
hagenvontronje
27.01.2023 09:00+2Кодил, пришло сообщение в мессенджер - переключился ответить, переключился обратно с русской раскладкой, начал печатать, напечатал пол строки прежде чем заметил (вы же быстро печатаете? 10 пальцами?), стёр всё (да не всё), продолжил печатать в английской раскладке. Когда быстро что-то пишешь опечатки так и плодятся бывает.
SquareRootOfZero
27.01.2023 09:15+1У меня раскладка запоминается отдельно для каждого приложения, как раз чтобы можно было
делать вид, чтопрограммировать, ана самом деле трындеть в чатепараллельно изучать документацию в интернете. Но, даже будь оно не так, и напечатай я что-то по-русски в коде, как раз из-за того, что я быстро печатаю 10 пальцами, я скорее грохну и перенаберу всё в нужной раскладке, чем буду выискивать, где там у меня ещё те буквы были, а где уже эти начались.PsyHaSTe
27.01.2023 18:52У вас да, а у других людей? Вот скопировали вы пример из документации, а у вас он не работает потому что чел который делал документацию не такой прошаренный, и у него язык для каждого приложения свой не настраивается. Встречается чаще чем хотелось бы. Или вот сегодня товарищ скопировал из терминала "1 000", вставил в программу где ожидалось "1 000", задеплоил. А в проде программа падает. А почему? А вот потому, что терминал оказался подлый:
khajiit
27.01.2023 12:28+1стёр всё (да не всё)
Ctrl
+Z
— больше четверти века на рынке отмен, без сбоев.hagenvontronje
27.01.2023 13:15Ок, а если машинально успел ctrl+s нажать?
Но я вёл к тому, что вероятность такого рода опечатки сопоставима не столько с нулём сколько с другими видами опечаток.
khajiit
27.01.2023 13:41Зависит от редактора. Sublime не очищает список отмены после сохранения.
Да, но шорткат отмены закрывает все опечатки вида начал печатать не то и не туда, и делает это корректно, в отличие от ручного удаления.
18741878
27.01.2023 09:16У меня тоже настроено так, что раскладка отдельная для каждой программы. Но бывает, что пишешь код, рядом комментарий, потом что-то отвлекло, вернулся к коду, а язык-то русский. IDE, конечно, подсвечивает, что в имени, скажем, переменной символ не английского алфавита, а русского, но случается, что и не увидишь
Alexsey
28.01.2023 00:12А вот у меня в карьере такое было. Было примерно так - конфигурация UI в приложении была гибкая и хранилась в базе, а потом матчилась по айдишкам в коде с логикой. Каким-то образом кто-то умудрился в айдишке вписать русскую "С". Ну часов 5 я на дебаг точно потратил. И после этого в редакторе прикрутил запрет на не-латинские символы.
В общем вполне реальна вероятность что накосячит кто-то другой, а разбираться потом вам.
Cerberuser
28.01.2023 07:44В базе данных в списке стран есть такие страны, как
POCCИЯ
иЛИТBA
. А в коде есть место, где мы по названию страны определяем некий её признак. Я, по-моему, целый день убил, чтобы понять, какого чёрта это не работает, пока до меня не дошло, что все потенциально неоднозначные буквы (А, В, Р, О...) были написаны латиницей, и в коде использовался именно такой вариант, а не правильный.
iBljad
28.01.2023 10:05Периодически нахожу русские "с" в рабочем проекте, правда, чаще всего в комментариях, но бывало, что нет.
Но вообще не понял, как можно было всерьёз воспринять пятничный шуточный пост, что с нами стало ©
drboss06
26.01.2023 18:17+14Мужики, пятый вопрос не запускайте
Dart55
26.01.2023 20:31+8Не переживайте, без этого не запустится
import getpass import os import keyboard import ctypes import subprocess import ctypes.wintypes
vkni
26.01.2023 20:44+2А что это — «строчка на Перле»?
Evengard
26.01.2023 21:43+14Я не питонист, но этот вопрос и не про питон на самом деле - он про WinAPI. И если я не ошибаюсь,
NtRaiseHardError
вызовет BSoD.beerchaser
27.01.2023 13:28мне кажется, что для этого вызова еще права админа нужны. если это так, то такой тест сразу выявит тех разработчиков, которые кодят под админом без нужды :)
shornikov
26.01.2023 18:35+37Когда вы спрашиваете "запустится; выведет" правильный ответ - "да|нет; <string>". А не предложение по оптимизации работы. Это к 4 вопросу.
Первый - вообще за гранью. Выдайте ему еще клавиатуру с тайским и винду на иврите и насмехайтесь дальше.
onyxmaster
26.01.2023 18:47+24На что только люди ни пойдут, чтобы продемонстрировать собственное превосходство.
"Асимптотическая сложность на массиве из 10 элементов", зато апломба-то...colontitul
26.01.2023 19:04+3Возможно, у них кодить нужно на каком-нибудь intel dx4-100, поэтому и массивы в 10 хардкодных элементов тоже нужно оптимизировать
bahanov
27.01.2023 02:56Ну не зря он про "промышленное программирование" упоминал - там может и памяти всего 16 Кб.
screwer
27.01.2023 14:03На 16 КБ питон не запустится. Даже на 128кб bare metal. Даже микропитон. Обезжиренная луа на 128кб запускается, но мало что полезного можно сделать - быстро память заканчивается.
no111u3
27.01.2023 21:14используя 128 кБ ОЗУ вполне запустится (stm32f4xx), но при этом скушает кучу флеши (более 200 кБ). Луна будет жирней и на таком же железе почти ничего полезного не сделать в отличие от micropython где можно будет даже графику порисовать.
just-a-dev
26.01.2023 18:53+74Кажется, вам явно стоит добавить тег "сарказм", а то видимо не все комментаторы поняли, что это сборник вредных советов, а не искренних =)
vkni
26.01.2023 19:00+16С учётом того, что у меня некоторое кол-во знакомых реально считает, что подобные вещи надо знать (кроме номера 5), без тега это неочевидно.
Emulyator
27.01.2023 10:44+13Если честно, я в шоке от такой ситуации. Прекрасная статья для поднятия настроения, но комменты, а главное число плюсов к ним обескураживают. Видимо людей настолько запугали собесами, что те уже ничему не удивляются. )
SergeiMinaev
27.01.2023 17:01+2Я невероятно удивлён, глядя на комментарии к этой статье. Очевидно, что автор откровенно троллит.
WraithOW
27.01.2023 19:47+4Я старый человек и видел статью, где на серьезных щас были описывали корпоративные стандарты для аватарки в скайпе.
Через интернет непонятно, кто виртуозно стебётся, а кто реально тупой.
SergeiMinaev
27.01.2023 20:38+1И вас не смутило, что ТС проводил собеседования уже в 1991г - в год выхода первой версии Python? И ведь это даже не перевод. Python же совсем недавно стал популярен. Помню, ещё году в 2014м мне предлагали перейти на Java, т.к. на Python-е я, мол, не найду себе работу.
Не знаю... Первый вопрос с заменой "c" на "с", мне кажется, чересчур явно намекает на шуточность всей статьи, чтобы это поняли не только питонщики :)
WraithOW
28.01.2023 08:30И вас не смутило, что ТС проводил собеседования уже в 1991г - в год выхода первой версии Python?
Да кто ж его знает. Может опечатка, может человек живёт в своём особенном летоисчислении, а может просто 30 лет херней на собесах страдает
konst90
27.01.2023 22:34Если скайп-аккаунт используется для рабочих задач, то мера вполне здравая. Аналог дресс-кода в сети.
WraithOW
28.01.2023 08:24konst90
28.01.2023 17:45Я по-прежнему не вижу в этом ничего плохого. Есть корпоративный стандарт почты (чтобы не было адресов типа megatrahar69@mail.ru), есть корпоративный стандарт визиток, есть стандарты одежды. Некоторые работодатели требуют от топ-менеджеров использования машин не ниже определённого класса (если на переговоры по миллиардному контракту приедет человек на Приоре - могут возникнуть сомнения в солидности компании). Ну вот сложилось так в нашем мире, что некоторым заказчикам это важно.
Почему бы не быть корпоративной аватарке в рабочей по сути учётной записи?
vkni
26.01.2023 18:57+9В июле и августе 1991 года
А мы в это время смотрели «Лебединое озеро»!
Вообще вот эти примеры, с моей точки зрения — то, чего в типичном коде на Питоне быть не должно. То есть, код должен быть прямым и простым как апельсин, поскольку Питон — это динамически типизированный язык с крайне неочевидной семантикой (в отличие от SML, скажем).
Соответственно, всё, что нужно об этих примерах знать: это срочно надо переписать, тщательно проверив все случаи.
Rio
26.01.2023 18:57+9После первого вопроса я решил бы, что это какой-то довольно злой троллинг. Причём, это был бы на самом деле хороший вопрос (почти про любой ЯП), если бы звучал как "этот код НЕ запустится/скомпилируется, почему?". Тогда у кандидата хотя бы есть шанс догадаться. А так, как тут сформулировано — это просто издевательство какое-то.
P.S. Это как спросить "если a = 2 и b = 2; сколько будет a + b?", а услышав ответ заявить, что он неправильный, потому что это был код на плюсах (ты что, подсветку не видел?), a и b это объекты, операция сложения перегружена, и вообще этот код в онлайне пиццу заказывает.
vkni
26.01.2023 19:05+26Это пост-шутка. Проблема в том, что она настолько близка к правде жизни, что, блин...
Rio
26.01.2023 19:11+8Я после этого вопроса тоже подумал, что это наверное шутка. А потом дальше стал читать, и что-то засомневался. Как-то не смешно, да.
Tsimur_S
26.01.2023 19:43+8Я после этого вопроса тоже подумал, что это наверное шутка.
В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.
Вас совсем не смутил этот момент в самом начале статьи?
vkni
26.01.2023 20:29+5Вас совсем не смутил этот момент в самом начале статьи?
Я списал на опечатку. Остальное настолько, увы, похоже на отдельных знакомых мне лично любителей Питона, что нужно опять-таки хоть как-то знать автора, чтобы понять, что это шутка.
arheops
27.01.2023 07:02Когда операция перегружена ладно, можно еще 2 перегрузить же. Макросами как минимум.
onets
26.01.2023 19:09+28А когда оффер будут отправлять - заменят нули на букву О и скажут сам виноват, что не заметил
xenon
26.01.2023 19:36+16Вопрос для собеседования на юриста. Сторонами подписан контракт с окладом 1OOOO долларов в месяц. Сколько нужно платить, 1 или 10 000? а если в контракте I0000? (первый символ, если что, единица, только римская)
Вопрос особенно "заиграет" если выдать его на бумаге, подобрав шрифт, где 0 и O более похожи. (Кстати, не зря же нули раньше диагонально перечеркивали - сейчас, мне кажется, только стариканы это помнят).
M_AJ
26.01.2023 20:03+9В контрактах, по крайней мере в России, пишут ещё и "десять тысяч", чтобы нолик случайно не исчез или не добавился.
aaabramenko
26.01.2023 19:46+6Сумма прописью!)
xenon
26.01.2023 19:53А если отличаются, то по какой платить? Вообще, насколько я слышал, сейчас сумма прописью нужна для почерковедов или как их там, графологов, чтобы подтвердить, кто подписывал договор.
gandjustas
26.01.2023 20:33Если в договоре есть противоречащие друг другу положения, то будут трактоваться не в пользу истца.
Логика такая: ты подаёшь в суд, ты должен доказывать свою правоту, если есть противоречия в договоре то они не будут служить доказательством любой из позиций.
Arty_Fact
29.01.2023 00:47Если в договоре есть противоречащие друг другу положения, то будут трактоваться не в пользу истца.
Не совсем так. В мировом суде каждая из сторон должна доказывать свою правоту и на основании доказательств судья будет принимать решение. Кто подал иск — не имеет значения и не принижает в правах.
tetelevm
27.01.2023 09:40Можно просто оставить за кадром вопрос о системе счисления числа зарплаты.
MountainGoat
27.01.2023 12:16+2Если оставить за кадром, то можно аргументировать, что десятеричная система по умолчанию подразумевается. Интереснее на 236 странице в разделе "процесс оформления соглашения" написать, что "общение между контрагентами должно проводится с использованием системы счисления по базе, соответствующей дате подписания документа".
PsyHaSTe
27.01.2023 19:16Не думаю, что это более законно, чем мелким шрифтом написать что работик отдает все права на недвижимость и попадает в вечное рабство
maaGames
26.01.2023 19:29+6И вопрос №1 на листочке бумажки. Кандидат-неудачник не умеет отличать H и Н, компании такие не нужны!
GospodinKolhoznik
26.01.2023 23:35+20Правильный ответ - не запустится, потому что код написан от руки на бумажке, а чтобы он запустился, его предварительно надо ввести в компьютер, а комьютера у нашей компании больше нет, потому что его отобрали за неуплату долгов.
s207883
27.01.2023 14:06+1Питон же интерпретируемый. Загрузил программу в мозг и начал отладку, главное буфер не переполнить.
vassabi
26.01.2023 19:32+7наверно надо радоваться что статью минусуют - значит действительно трешовые технические интервью типа "ахаха, правильный ответ - надо было догадаться!" нынче стали реже, чем были раньше ...
PS: был однажды свидетелем подобного т.н. "собеседования", впечатления тягостные, перечитал этот текст и прямо "вьетнамские флешбеки" ...
maaGames
27.01.2023 04:52Надеюсь, благодаря естественному отбору, те компании обанкротились из-за отсутствия квалифицированных работников. Поэтому теперь такая статья выглядит, как наркоманский трэш.
whoisking
26.01.2023 19:33+4Этот код не запустится, потому что при объявлении класса Human мы использовали английскую H
Ахахахха, я просто выпал в больную истерику, дальше даже нет никакого желания читать статью, это за гранью безумия. Ещё безумнее это читается, когда находишься в поисках и проходишь собесы...
xenon
26.01.2023 19:57+9Я не люблю статьи про головоломки и хитрые примеры кода, которые никогда в жизни не встретятся. Но именно после этого пункта я взбодрился, взвеселился, хлебнул еще и с приятным предвкушением начал читать дальше.
Chvanikoff
27.01.2023 02:23+5Тут же с первого "задания" чётко даётся понять, что вся статья - посмеяться. Меня вот очень повеселило.
AshBlade
26.01.2023 19:38+3Но если кандидат не понимает, что для компилятора это разные символы - стоит ли продолжать собеседование?
А как кандидат должен понять, что кодировки разные? Может еще ; и ; заставите обнаруживать?
Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали
Или заняться нечем
Тем более, что у этого кода в редакторе хабра выбрана подсветка Golang, а не Python
Серьезно???
Это плохой знак, указывающий к тому же на то, что разработчик не умеет задавать вопросы по ТЗ
Если я собеседуюсь на Python разработчика, то обязательно должен задавать вопросы "Это ABC или Python?"
Вопрос проверяет, обращает ли кандидат внимание на плохой код и умеет ли его исправлять
Вопрос "Запустится ли этот код на Python 3? Если да, то что он выведет?"
Этот код запустится, но не выведет в консоль ничего, потому что не успеет
Ваша улыбка улетучится, когда после очередного сюрприза кандидат скажет вам, что компьютер с важными данными больше не может включиться из-за поврежденной файловой системы. Шутники ????
vassabi
26.01.2023 19:44+8извините - вы серьезно задаете это вопрос ???
("как людям без приборов обнаруживать ошибки необнаружимые без приборов")
PS: что-то мне статья и комментарии все больше напоминают вот этот рассказ: http://samlib.ru/i/ibatullin_r_u/sort.shtml
vconst
27.01.2023 12:26+1Этот код запустится, но не выведет в консоль ничего, потому что не успеет
Ваша улыбка улетучится, когда ...
Dart55
26.01.2023 20:43+2Ник автора в точности описывает содержание статьи (sadfun, грустное веселье).
Andrey_Dolg
26.01.2023 20:48+23А потом какой-нибудь chatGPT заиндексирует это и будет выдавать при собеседовании кандидата, а потом вот докажи что ты не верблюд.
gardiys
26.01.2023 21:08-7Вы серьезно спрашиваете это на собеседовании? У вас настолько низкий уровень кодовой базы, что приходится понимать где киррилическая Н, а где H? Как эти вопросы определят, что кандидат способен разрабатывать промышленные продукты? Может вы и про black не слышали?
Flux
26.01.2023 21:36+28Честно говоря, этот пост вызывает огромное разочарование. В комментаторах.
Неужели в вас и правда мертва та часть разума которая должна различать очевидную толстоту уже на фразе про "технические интервью на позицию Middle Python Backend developer в августе 1991-го"? Три четверти комментаторов действительно на серьезных щах думают что вот всё это - серьёзно? Про юникодные имена переменных, про дерамиду для вставки в массив, про питоновские сорцы на Go?
Если бы шестой вопрос был про два стула а седьмой - про то как погладить нарисованного на стене тигра - вы бы тоже возмущались тем что "не стоит работать в компании задающей такие вопросы!"?Время открыть форточку.
vkni
26.01.2023 22:05+19Увы, «не мы такие — жизнь такая».
Возьмите фразу «Я оставил только 5 главных вопросов: обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату.» — в чуть более завуалированном виде её наверняка можно найти в паре корпоративных HRовских статей, выпущенных в этом году.Gotcha7770
27.01.2023 01:08+7Ваша правда... Дочитав до этого места, почувствовал жгучее желание сразу написать в комментарии: это все, что вам от сотрудника надо? Удержался, а оно оказывается вон оно как иронично. Представляете ужас? Я живу в мире, где допускается, что кто-то мог написать это всерьез
whoisking
27.01.2023 11:08+4Отвечу за себя, мне сложно распознать в этом иронию по той причине что я встречал довольно близкие по безумности вопросы на собесах и задавались они с вполне серьезным лицом, в общем у меня это что-то вроде психологической травмы теперь)
PsyHaSTe
27.01.2023 18:58+1Неужели в вас и правда мертва та часть разума которая должна различать очевидную толстоту уже на фразе про "технические интервью на позицию Middle Python Backend developer в августе 1991-го"?
А вы думаете что все наизусть должны знать в каком конкретно году какой язык появился? Я помню что где-то в начале 90х появились джава, питон и хаскель. По годам не помню, у меня с историей и датами со школы не лады. Жить это обычно не мешает. если питон вышел скажем в 90м то в конце 91го нанимать на него миддлов спокойно уже могли, я помню как на раст нанимали в 2016м, когда только вышла 1.0 версия.
То что это троллинг можно начинаться догадаться про "нанимаем дурачков которые зарплату не просят", но и то после постов во всяких корпоративных блогах это вполне может быть сказано серьезно. После первой задачи уже очевидно что это все по-нарошку. но к этому моменту уже как-то желание читать дальше пропадает.
Лучше статью было выпустить в пятницу, а ещё лучше 1 апреля.
AnthonyMikh
27.01.2023 22:34+2Неужели в вас и правда мертва та часть разума которая должна различать очевидную толстоту уже на фразе про "технические интервью на позицию Middle Python Backend developer в августе 1991-го"?
А если я не помню точно, когда именно была выпущена первая версия Python?
nronnie
26.01.2023 21:42+2Судя по:
Я оставил только 5 главных вопросов: обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату.
вся статья это стеб и сарказм, да?
Flux
26.01.2023 22:10+16вся статья это стеб и сарказм, да?
Нет, автор действительно собеседовал на позицию мидл бекенд (в 1991-м году) девелопера на язык появившийся 4 месяца назад. Статья серьёзная, всё что в ней написано - чистая правда (факт).
nronnie
27.01.2023 01:09+8Читая комментарии, даже не знаешь над чем больше посмеяться - над шуткой автора или над тем сколько народа тут на неё повелось.
SquareRootOfZero
27.01.2023 10:17+2Не знаю, как щас там у пацанов принято, а я в технических статьях подобные вступления в духе «присядем, я расскажу вам историю из своей жизни» обычно бегло проглядываю по-диагонали либо вовсе пропускаю, а за датой появления Питона мне надо лезть в Википедию. Хотя там после «ответа» на первый «вопрос» возникает мысль, что всерьёз таких дебилов не бывает, или, во всяком случае, программировать на Питоне им не даёт длина рукавов, а также тот факт, что они связаны за спиной.
terrier
26.01.2023 21:43+12Чувствую себя идиотом, разъясняя хорошую шутку, но в прошлый раз коллеги огорчали Даниила Подольского (https://habr.com/ru/company/oleg-bunin/blog/521582/) . Автор, пиши еще, отрицательный рейтинг только показывает, что юмор жизненный и народ ведется.
SergeKh
26.01.2023 22:19-9Такой сотрудник, как автор текста, может очень сильно вредить бизнесу, а собственник и не понимает, почему несколько лет не могут нормальных разработчиков нанять при вышерыночных коммерческих условиях.
Хорошо бы осветить (в отдельной статье) вопрос, как своевременно выявлять подобных кадров в организации. Не будешь же в конце-концов требовать собеседования на видео записать и отсмативать. Нужны какие-то метрики.
AlexandrovRoman
26.01.2023 23:13+10Давно так со статьи не горело. Спасибо за качественный сарказм! Практически каждый вопрос выбивал из колеи после увиденного авторского ответа
CCNPengineer
26.01.2023 23:21На вопрос 4 я понял ответ от 1 до 10, но его ответ, какие то рассуждения непонятны для меня. Кто нибудь может объяснить
vkni
26.01.2023 23:30+3Python 3.9.2 (default, Feb 24 2021, 13:30:36) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = [1, 2, 9, 10] >>> for x in [8, 7, 6, 5, 4, 3]: ... a.insert(2, x) ... >>> >>> print(a) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ну просто вставка чисел из одного "списка" в другой. Поскольку в Питоне list – это, на самом деле, непрерывный массив, а не двусвязный список, то при вставке чего-то в середину, вам приходится пересоздавать этот массив и копировать его хвост (в теории, я не проверял).
Соответственно, если вы просчитаете вычислительную сложность, то вы получите `O(len(a)*len(того, что в for))`. То есть, "приблизительно квадратичную". Если бы массивы были действительно длинными (от тысяч элементов), это бы было большой проблемой, а так — чепуха.Alexandroppolus
27.01.2023 11:06+2При этом автор статьи предлагает какой-то оверинжиниринг для решения за O(n*ln(n)), хотя конкретно эта задача тривиально решается за O(n)
PsyHaSTe
27.01.2023 19:05Это видимо метастеб чтобы постебаться над теми кто постебался над теми, кто не понял задачки.
А решение офк тривиальное:
a = [1, 2, 9, 10] b = [8, 7, 6, 5, 4, 3] index = 2 return a[0:index] + b + a[index:]
AnthonyMikh
27.01.2023 22:45+1А решение офк тривиальное:
Настолько тривиальное, что ты забыл обратить порядок элементов в
b
.
Exesium
27.01.2023 23:05Только
b
развернуть надо (например,b[::-1]
), так как в оригинале из-за того что вставка происходит во 2-ой элемент, хвост списка сдвигается направо.
a-tk
26.01.2023 23:36-2Если пятый пример с прода собеседующего, то лучше завалить собеседование сразу, чем "приятно" удивиться потом.
loltrol
26.01.2023 23:50Тега "сарказм" не хватает. А если серьезно это воспринять, то бедная сова уже лопнула давно, так тут все натянуто...
ShadowOfCasper
27.01.2023 02:02-2Откровенно говоря, после первого же вопроса я от автора статьи выпал в такой осадок, что подо мной пришлось тушить кресло. Абсолютно каверзный вопрос, не имеющий НИКАКОГО отношения к языковым аспектам. С таким же успехом можно завалить любого разработчика на любом языке.
Вы от кандидата в первом вопросе ждёте знаний по очертанию шрифтов, или языку программирования? Я отсылал компании гулять и по более достойным вопросам, но если бы я получил такой "правильный" ответ на первый вопрос - собеседник был бы послан гулять в самой грубой форме.
chv
27.01.2023 03:00+16Удивительно, что никто не заметил, что заход про allow_boolean_assignment - это шутка, и на самом деле в программе удается приравнять Тrue к False только потому, что Тrue там начинается с кириллической буквы Т.
Я прошел собеседование?
PsyHaSTe
27.01.2023 19:09+1Тут просто спрятаны меташутки в меташутки, завернутые постиронично в постельную шляпу.
PsihXMak
27.01.2023 04:42+1Во, я как то писал про трешовые собеседования, на которых бывал. Вот прям то самое чувство!
panzerfaust
27.01.2023 07:27+2В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer
Пять раз перечитал предложение и ничего не понял. Вики говорит, что Питон появился 20 февраля 1991 года. Каких еще милов да еще и на бэкенд они искали спустя полгода с релиза бета-версии?
RoPi0n
27.01.2023 07:40+3Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Python»
«и раз в 15 минут закатно смеяться в офисе без причины»
micronull
27.01.2023 08:11+2Что-то мне это сильно напомнило, прям все слово в слово, и я вспомнил пост Данила @onokonem https://habr.com/ru/company/oleg-bunin/blog/521582/
mrkaban
27.01.2023 08:26+1В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer.
Это перевод и вы забыли это упомянуть? или Степан Попов лично знаком с создателем языка Python?
ZvoogHub
27.01.2023 09:15Я оставил только 5 главных вопросов: обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату.
ах вот в чём дело.
С другой стороны это юмористическая статья.
Но такие каждый второй, причём главное тут: описываемый работник отдела кадров не смог выполнить поставленную перед ним задачу - заполнить вакансию за указанный срок.
starik-2005
27.01.2023 10:18Как же много у нас теперь безработных ИТ-шников судя по комментам к статьям о разных собесе и наймах.
Gradiens
27.01.2023 10:31+1Судя по количеству комментаторов, всерьез взявшихся за обсуждение того или иного задания, автор неиллюзорно рисковал с этим добрым пятничным троллингом
felix0id
27.01.2023 13:23Судя по всему, тега "сарказм" там долго не было. Можно даже по смене заминусованных и заплюсованных комментов понять, когда он примерно появился
Vorchun
27.01.2023 10:43+1Синдром Бога у того, кто придумал это тестовое.
P.S. Как сарказм и сатира - да, смешно. Но ни разу не понятно, что юмор. Даже намека нет в тексте.
RenatSh
27.01.2023 11:00+1помимо бредовости заданий есть и другие намеки, цитата:
обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату.
s_f1
27.01.2023 11:08+1С первого же предложения ведь всё понятно, нет?
В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer.
Особенно с учетом:Дата рождения 14 июля 2003 г.
nivorbud
27.01.2023 11:09+1Ну, это очевидный тролинг, что можно понять из первых же строк: упоминается 1991-й год в контексте python3...
Ну и по №4 зацепило. Нет "плохих" и "хороших" алгоритмов - всё зависит от целей, ресурсов и ситуации. Приведенный (как "плохой") алгоритм весьма прост и во многих случаях будет предпочтительней, чем переусложненный оптимизированный алгоритм. Оптимизация требуется далеко не всегда.
Продолжу тролинг... Задача:
Есть слабенький медленный микроконтроллер, например с ОЗУ 64 байта (!), а входной сигнал необходимо интегрировать (т.е. через функцию интеграла пропустить). Вопрос: как будете выкручиваться?Ответ
Входной аналоговый сигнал пропускаем через операционный усилитель с конденсатором в цепи обратной связи.
Hidden text
tarkhil
27.01.2023 13:17+1А это тоже стандартно. Спрашиваем "Что выдаст код?"
- если в ответе "выдаст то-то" - "неправильно, этот код нужно переписать"
- если в ответе "неправильно, нужно переписать" - "мы не об этом спрашивали"
beerchaser
27.01.2023 14:09это если сигнал аналоговый. если цифровой, то возможны варианты и ЦАП-ОУ-АЦП не самый интересный вариант. В исходной постановке задачи тип сигнала не указан :). да и при аналоговости тоже имеет смысл подумать, что лучше - два АЦП(исходный сигнал и интегральный) или один АЦП или дополнительный цифровой интегрирования (необязательно в контроллере)
PsyHaSTe
27.01.2023 19:12Не упоминается там питон3. В рамках "я общался с Гвидо" версия питона не упоминается, а питон3 появляется только в условно "наши дни", так что не согласен что с первых строк все понятно. После первой "задачки" — да, но там уже многие поплыли.
niggayo
27.01.2023 12:16-1Кринжатина какая-то. "В июле и августе 1991 года я, с подачи Гвидо Ван Россума " wtf?! - уже поломало мозг, потом первый вопрос, дальше можно не читать.. Слишком тонко, что аж толсто, если это сарказм.
Dmitry_Shumkov
27.01.2023 12:20+4Для тех кто не в теме. Эта статья, по всей видимости, саркастичный ответ на https://habr.com/ru/company/oleg-bunin/blog/521582/
s_f1
27.01.2023 12:30-1А я уж думал дежавю )
Но отвечать через три года – ответ из облака Оорта что ли?
carbonarium
27.01.2023 12:23+2Спасибо, автор! Начал читать на полном серьезе, не распознавая стеба, до момента
оставил только 5 главных вопросов: обычно кандидаты, правильно отвечающие именно на них, позже уходят из офиса и реже просят повысить зарплату.
Улыбнуло. Где-то в подсознании поднялся флажок "хумор детектед".
Над вопросами и ответами поржал, кое-где с задержкой, потому что пришлось доковыриваться до юмора (ну не спец я)))
А потом почитал комментарии.
Спасибо за отличную пятницу ))
Жаль, что заминусованным ребятам могу дать только по одному маленькому плюсику
stuzer
27.01.2023 13:07ну в первой задаче "H" выглядит одинаково в обоих случаях, сложно не перепутать, не зря же учат при наименовании переменных не использовать символы с двоякой трактовкой, все остальное тоже видимо шутка
Neusser
27.01.2023 13:25+1Н и Н слишком просто, любой типограф или верстальщик сходу увидит подвох. Нужно в одном месте отступ пробелами, а в другом табом. И задание давать на бумажке.
13oz
27.01.2023 13:29-1Не питон-разработчик, но мне вот стало интересно, а эти вопросы имеют отношение к реальности? Просто напоминает методичку "как выставить себя умным, а соискателя идиотом", от авторов job security best practice
Vanirn
27.01.2023 15:25Вы не едниственный, кто задался таким вопросом.
Но у меня даже был подобный вопрос на собеседование в одну не очень российскую крупную компанию.13oz
27.01.2023 17:59Возможно, не стоит ходить работать в такую компанию. Хотя, скорее, это загон конкретного собеседующего, а не общекорпоративная шиза
Ivan22
27.01.2023 13:39В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer
Расходимся, это для Питонщиков из 91-го года
klirichek
27.01.2023 13:58В 1989-м Гвидо ван Россум за него взялся, в феврале 1991-го релизнул.
И уже к июлю-августу (т.е. всего через 5-6 месяцев с момента рождения языка) появились первые миддлы, причём столько, что их пришлось отсеивать хитрыми вопросами )
Кажется, я нашёл "вопрос номер ноль" ).
Кстати, за 4-й спасибо. Был рад сходить по ссылке и почитать про декартовы деревья.
AlexanderMi
27.01.2023 15:00№4 это какой-то угар, где в вопросах даже намека нет на то что отвечающему надо дать рекомендацию по оптимизации. Ну запустится, ну выведет массив включающий в себя другой с позиции 2. Это ответ? Да. Больше вводных аргументов в функцию interview_question_4 нет.
В ответе же ожидается какая-то муть словно вопрос звучал так "Вы занимаетесь ежемесячным рефакторингом. И нашли узкое место где в существующий массив размером 50 000 элементов (строк), вставкой в середину, добавляется ещё 100 000 элементов (строк). Что вы думаете об этой ситуации?"
Это что, так похоже на "Запустится ли этот код? Что выведет?" Программирование явно не та проф область где вам может показаться, что кто-то начал подозревать, что вы ожидаете какой-то другой ответ помимо очевидного, на очень даже четко поставленный вопрос.
Кто не знает, и так вам не ответит, опытный скажет многое, включая и то что вы ожидаете.
KISS!
MountainGoat
27.01.2023 15:33+1Всегда задаём соискателям на джунов дурацкие вопросы. Даже про крышки люков и как измерить объём салона автобуса. Впрочем, мой любимый будет под катом. Объясняю, зачем. Если ответом будет "Я такую фигню ещё в яслях бросил решать" - то это достойный ответ. Ответ "А можно погуглить" ещё более достойный. Если попытается хоть как-то разумно угадать - это вообще на 5 с плюсом. Потому что вместо всего этого каждый второй просто молчит. Он даже не скажет "не знаю", он будет молчать. Вот таких мы и пытаемся избежать. Он будет молчать при любой проблеме и до последнего надеяться, что проблема сама куда-то денется.
Hidden text
Задача. В проекте есть readonly файл sobaka.h:
```
#include <iostream>
class Sobaka {private:
Sobaka() { cout << "Gav!"; }
};```
Вопрос: как запустить вывод Гав!? (код писал прямо тут, если что забыл, то это не подвох, а лопух.)
iig
27.01.2023 16:13-1Приватных конструкторов не бывает няп. Написать обертку, которая сможет достучаться до приватного метода?
mayorovp
27.01.2023 16:17+2А куда они делись-то? И нет, обёртка не поможет, ибо тоже не будет иметь доступа. Поможет тут
#define private public
, но если такая практика считается нормальной в команде — лучше туда не устраиваться.vassabi
27.01.2023 22:31а еще у класса могут быть друзья
iig
28.01.2023 00:32Я что-то подобное предполагал. А через friend можно? А то чинить сломанный класс путем поломки всего подряд это забавный challenge, но я почему-то такие способы даже не пытаюсь придумывать.
vassabi
28.01.2023 02:08конечно можно - https://en.cppreference.com/w/cpp/language/friend
во-вторых - если код не элиминировался при линковке - то можно до него добраться до адресов в памяти "вручную" и вызвать (но это черное вуду и так делать лучше не надо :) )
khajiit
27.01.2023 18:11+2Этот в таких случаях наклоняет голову набок. И молчит, да. Потому что — ну о чем можно разговаривать с идиотами, на сурьезных щщах втирающих дичь? У них же, небось, в репо полная жесть и отношения в команде строятся по принципу ты начальник — я дурак, и нахрена такое счастье?
Потому что у собеседующих, может, есть какие-то свои резоны, но гадать дебилы они или нет — бессмысленно, а проверять это на своей шкуре… странненько.
GrigorGri
27.01.2023 21:53+1Ответ написать cout << "Гав!" считается? Никто ведь не уточнял что нужно использовать этот файл.
oficsu
28.01.2023 20:33Всё просто, достаточно лишь перед включением вашего кода добавить пару строк, чтобы он сам успешно собирался:
#include <iostream> using std::cout;
А в конце запустить выводГав
в теле функцииmain
:int main() { cout << "Гав"; }
Но я бы настаивал на игнорировании файла sobaka.h билдсистемой, это бы упростило решение задачи
Vanirn
27.01.2023 15:37-4Я полагаю, что цель собеседования – найти наиболее подходящего сотрудника под определённые обязанности и условия труда.
Но каким же образом такие тесты отражают рабочие задачи Middle Python Backend developer? В компании оверсекьюрити и дозволено кодить только в бумажном блокноте, без доступа ни к компилятору, ни к PyCharm?
По моему скромному опыту, использование программистами IDE является нормой уже более десятилетия, а использование «компилятора» обязательным шагом при разработке до создания Pull Request.
Если возражать тем, что подобные ошибки нужно замечать на код ревью, то нужно признать присутствие в компании
говнокодеровсотрудников не способных даже проверить своё творчество на работоспособность до отправки оного в Гит репозиторий.Или же цель собеседования потешить своё эго тем, что только один из тысячи испытуемых может превзойти собеседующего?
А ещё хорошо бы начальству задаться вопросом: Как влияет такой интервьюер на репутации компании на рынке труда уже сейчас, и в будущем на клиентском рынке? Какую характеристику испытуемый после посещения такого собеседования даст компании в разговоре со своими коллегами?
Lonsdaleite
27.01.2023 17:24-3Из ответа к задаче №3
Зависит от того, на каком языке попробовать запустить код. Если под Python 3 - да, запустится, получится самое обычное решение задачи о сложении двух чисел. Однако в вопросе об этом ни слова.
Вообще-то, не запустится, а ругнется:
TypeError: sum() takes at least 1 positional argument (0 given)
bolk
27.01.2023 17:27-3Python 3.10.9 (main, Dec 15 2022, 18:25:35) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.allow_boolean_assignment = 1 >>> True = False File "<stdin>", line 1 True = False ^^^^ SyntaxError: cannot assign to True >>>
Megadeth77
27.01.2023 17:48+4Слуште, в камментах это постмодерн или что творится то вообще? Неужели непонятно что статья это шутка, смешная? Ну то есть такой сарказм, человека с тяжелым чувством юмора, который глумится над идиотскими заданиями на собеседованиях?
AnthonyMikh
27.01.2023 22:54+2Вообще-то действительно непонятно. В интернете слишком много чуши, преподносимой с максимально серьёзным лицом.
Хоспаде, даже в публикациях к моей статье нашлись люди, которые осуждали моё поведение, хотя история с собеседованием была выдумкой от начала и до конца.
anton_reut
27.01.2023 18:04"Этот код не запустится, потому что при объявлении класса Human мы использовали английскую H, а при инициализации - русскую Н." - они там совсем е***нутые?
emerald_isle
27.01.2023 18:17Опытный кандидат сразу заметит эту ловушку и предложит оптимизировать
алгоритм единственно верным способом: построить из изначального массива декартово дерево по неявному ключу, чтобы вставка элемента работала за - для данного примера это асимптотически быстрее в 2-3 раза, а для больших массивов - и вовсе на несколько порядков.Это зачем настолько сложно, к тому же O(log n)?..
Не лучше ли распилить первый список на две части в этой позиции 2, потом развернуть второй список наоборот, а потом соединить полученные три списка?Должно получиться примерно O(n) ?
vadimr
27.01.2023 19:20Люди, которые по дефолту считают этот текст сарказмом, не знают жизни.
Такой сарказм без тегов можно распознать только от лично знакомых людей, и то не от всех. К сожалению, априорная вероятность встретить в этих ваших интернетах идиота гораздо выше, чем априорная вероятность, что $автор умышленно прикалывается.
Emulyator
28.01.2023 21:02Скорее наоборот, раз они правы, значит жизненный опыт им подсказывает, что "в каждой шутке есть доля шутки..." (с)
iboltaev
27.01.2023 19:43предложит оптимизировать алгоритм единственно верным способом: построить из изначального массива декартово дерево по неявному ключу
охренеть какой у вас единственно верный способ.
Вставляем в фиксированную позицию. Что, завести новый массив, добавить в него элементы до 2го, потом вставляемые элементы в обратном порядке, потом оставшиеся из первого массива - никак, да? И все за O(N+M)* (даже со звездочкой, ибо амортизировано)
Darkhon
27.01.2023 19:56Классика:
#define return if (std::random(10000) < 2) throw std::exception(); else return
// счастливой отладки!
big_buzz
28.01.2023 05:45+1Автор повеселил. Думал после первого примера удалить Питон с компа и никогда больше не заходить на Хабр)
seditr
28.01.2023 14:48+1Не прошёл проверку на любопытство и вбил код без раздумий, полагая, что компьютер истошно запищит. После собеса огромный минус поставил себе за плевок в стороны правил элементарной безопасности. Особенно с загонщиками.
trabl
28.01.2023 14:48Первая задача это из разряда я покажу тут вам кто из нас глупый. Потешить самолюбие автора скорее всего.
isitnull
28.01.2023 16:43+1"В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer"
Ну друзья, это же САРКАЗМ! Спасибо, посмеялся от души. Шутки с каменным лицом - они такие.
Keyten
28.01.2023 16:45+8@sadfun, можно запуллреквестить в конец статьи ещё одну задачу?
Вопрос: Запустится ли этот код на JS?
for (const x in 0..З) { console.log(x); }
Ответ
Код запустится и выведет 0, 1, 2, 3.
Опытный разработчик сразу заметит, что вместо цифры 3 мы использовали букву З в примере, и быстро догадается, что в коде, откуда взят этот кусок, есть также следующая часть.
Number.prototype.З = [0, 1, 2, 3];
nobody_rzn
29.01.2023 00:32В ЦЗН подайте заявку, какие проблемы то?
Прям ищут питон разработчиков, сейчас начни копать денег на секретаршу не наберут. :-)
Vhodnoylogin
29.01.2023 00:32Конечно, это все смешно ли грустно (в зависимости от серьезности автора), но мне однажды пришлось понимать, почему не работает программа.
Оказалось, что в стене текста закралась опечатка: "XLM" вместо "XML". Сначала долго искали ошибку, потом долго смеялись.
meettya
29.01.2023 00:54Вот вы тут смеетесь, а ведь реально полно отбитых контор, которые вот такими отбитыми методами набирают уникумов с такими вот скилами, а потом удивляются - а че продукт полная заоптимизированных костыльных велосипедов хрень и почему даже уборщицу не нанять на его поддержку :)
etovolchanka
29.01.2023 16:30- Если я захочу запустить этот код на питон 3, он заработает?
- нет, там кириллица
- ответ неверный! Я исправлю кириллицу и запущу. Мы вам перезвоним.
-...
- Ладно, даю вам второй шанс. Запустится ли код?
- Да. Вы исправите кириллицу и запустите
- А вот и нет. Я сказал, что ЗАХОЧУ запустить код. Но я перехотел! Извините, вы нам не подходит.
Closius
Одно из самых тупых заданий что можно придумать
drboss06
Ну ты и душный))
Jubilus
Думаю вы просто по-настоящему тупых заданий не видели.
IgorPie
и после критики следуют подкрепляющие примеры, да?
MaxKitsch
Тестовое задание приближённое к реальности, на несколько часов. Всё остальное — от лукавого.
khajiit
Не, ну своих разработчиков вы так протестируете и даже сможете сделать какие-то выводы. Наверное.
Что это даст с кандидатом, который не знает ваш стек и его особенности так же хорошо — вопрос на миллион…
MaxKitsch
Мне не надо тестировать человека на знание моего стека. Но, условно, для Backend-разработчика сделать небольшой проект на несколько эндпойнтов на привычном ему стеке, труда не составит. И будет понятно, как человек думает и какие вопросы ему потом задавать.
А вот ребусы на казуистику вообще никак не раскрывают человека с точки зрения пригодности к реальной работе.
Aco
Как-будто тупость других заданий уменьшает или отменяет тупость этих.
leshabirukov
Боже, люди, я думал, креатифф за петросянщину минусят, а тут такое...
kai3341
Преимущественно на КГ/АМ. Однако есть и интересные замечания. Жаль, что их меньше, чем хотелось бы
Уровень статьи автор задаёт в примере №1 -- с козырей заходит, так сказать. Нормальные IDE покажут кириллицу -- оно сразу будет заметно. WEB-интерфейс хабра эту разницу не показывает. Единственный вывод -- КГ/АМ
Но, ещё раз отмечу, в прочих примерах есть интересные нюансы -- за них спасибо
GDragon
Можно ещё кандидату распечатку кода на бумаге показывать, а потом говорить - "Вот дурак, не догадался что здесь русская Н а тут латинская H!
Nepherhotep
Ага, и еще смешать табы с пробелами.
vconst
Смешать табы с пробелами, на бумаге…
khajiit
Постирония, сэр.
berzerk54
Н факториал, между прочим!
valkumei
С русским символом не подсвечено, вроде бы. Хотя я ни разу не заглядывал в IDE.
Iptash24
С женой смотрели, небольшая разница есть, в высоте перемычки. А так конечно после такого вопроса можно не в слезах уйти, а с угрозами )
izogfif
Можете привести пример (скриншот) того, как они это покажут? Какой шрифт используете, если не секрет?
vconst
Как минимум — они укажут на неиспользуемый идентификатор
tlv
barsty
Возможно @kai3341 имел ввиду, что IDE подсветить ошибку
Unresolved reference 'Нuman'
kai3341
Шмотри -- и правда подсвечивает
Abysswalker94
Особенно последняя однострочка, если программист решил навалить все, что пришло в голову
ReinRaus
Скомпилировал в голове первое задание, развернул спойлер, мысленно произнёс "*****" и потерял желание читать дальше.
Coriolis
Да ладно! А я заржал в голос. Смешно же. Это же специально на первом месте, что бы дальше люди не загонялись а поняли что это шутка, транспарант, так сказать.
warhamster
Я так понимаю, смешно тем, кому дебильные задания в жизни не попадались. Тогда, конечно, может показаться, что это вот прям абсурд и сюрреализм, и что человеческая тупость не может быть настолько безгранична. Однако же...
antiplash
я не могу понять автор поста это серьезно , H и Н никак не отличаются визуально в браузере ?
LexX80
А ещё в некоторых кодировках 1 и l выглядят так, что не отличить визуально, как то пришлось разбирать почти 3 мб текстовый файл, где эти символы были перепутаны. А человек, который это сделал так и не понял почему я был невесел.... :)
khajiit
Кстати, JetBrains зарелизили свой шрифт, некоторые говорят, что лучше, чем FiraCode.
Если хочется поплотнее, то Iosevka.
А еще есть шрифты, в которых латинница имеет другое начертание…
tremp
Может всё-таки шрифты, а не кодировки?
misty_fungus
Автор же написал, что ищет тех, кто позже уходит из офиса и реже просит зарплату. Если ты после такого собеса согласен, то у автора всё получилось.
ilia_bonn
habraabr
Так там это жеж:
venanen
Вот еще одно:
Запустится ли этот код?
Ответ
Не запустится, мы python на компьютер не скачали ¯\_(ツ)_/¯
Emulyator
Не запустится, потому что он на листке бумаги!
iig
Я python скачал, и даже установил. И что? Вводил этот код и в браузере, и в командной строке, и даже в LibreCacl - не работает нигде.
Фигня этот ваш python. Заплакал и убежал.bogolt
А кто вам сказал что я его питоном запускать буду?
perl -e "print('Hello world')"
mayorovp
Why is this program erroneously rejected by three C++ compilers?
AK-71
согласен
HawkeyePierce89
обычные вопросы на собеседованиях в российских компаниях
vmchaz
Вот многие тут смеются, но подобная ситуация у меня была однажды.
Я как-то не прошёл интервью в Яндекс, решая задачу в подобных условиях.
При этом:
1. Это была уже вторая "алгоритмическая" задача
2. Саму задачу я решил, это было её усложнение (чтобы она выполнялась за линейное время вместо n log n, если правильно помню)
3. Алгоритм я тоже предложил верный (на словах), уже при написании ошибся в инкременте/декременте переменной, связанной со скользящим окном
4. Запуск и тестовый прогон позволили бы выявить эту ошибку... но интервьюеры любезно предоставили лишь веб-версию блокнота без возможности запуска, отладки.
Самое интересное, это было интервью на позицию Solution Architect.
Не знаю, может, в яндексе solution architect'ы большую часть времени кодят "на бумажке" без среды разработки и отладчика.
Впрочем, я об этом отказе вообще не пожалел: через несколько дней уже успешно прошёл другое собеседование, где спрашивали про вещи, действительно связанные с архитектурой.
khajiit
Тоже было собеседование в яндекс с блокнотом.
Правда, не на программиста или архитектора, а на инженера чего-то там — возможно, именно поэтому интервьюер был настолько любезен, что подсказал пару моментов в синтаксисе.
HawkeyePierce89
А я не смеюсь, я вполне серьёзно. После рашкособесов люди в цирке не смеются
vmchaz
Не надо всех под одну гребёнку. В России есть как адекватные компании, так и долбанутые.
Как, наверное, и в Америке, и в Азии.
HawkeyePierce89
субъективно я бы сказал что процентов 30 на 70 соотношение между адекватными и долбанутыми
manifest1
Я ожидал вдохновиться потрясающей идеей, а прочитал эту стать
SHODANGLaDdOS
Я не программист, поэтому вопрос может быть невежественным, но неужели профессиональный программист может визуально отличить английскую литеру от русской, как требуется в первом задании? Это какие-то уже суперспособности суперxьюман
Этот код не запустится, потому что при объявлении класса
Human
мы использовали английскуюH
, а при инициализации - русскуюН
. Очевидно, что мы получим ошибкуNameError: name 'Нuman' is not defined
.