LINUX.ORG.RU
ФорумTalks

Собеседования - Что вам не нравится в X?

 , ,


0

4

cast beastie, навеяно www.linux.org.ru/forum/talks/14177326?lastmod=1524826225110#comment-14177375

Про вашу методику собеседования из того удаленного треда. У меня немного подгорает от этой темы.

Я вот не могу ответить на вопрос «что вам не нравится?» ни про Python, ни про Go, которые знаю вроде бы довольно хорошо. Зато вот про Rust, C++ и кучу других языков, знания по которым у меня весьма поверхностны - легко. Если тебе не нравится инструмент - нафига учиться с ним работать? Языков десятки, возьми тот который нравится.

Вообще люди, которые такое на собеседованиях спрашивают, обычно странные. Мне как-то один чувак привел в пример что ожидал услышать что в python'е нельзя raw-строки заканчивать слешом. *****, да я с этим столкнулся в универе 10 лет назад, забил и дальше пошел, не вижу смысла останавливаться в своем развитии из за такой мелочи. Может он ещё хотел услышать что мне не нравится GIL? Потом он же ещё про git vs mercurial хотел похоливарить, прочитав одноименную статью с хабра. Ну да фиг с ним. В Go правда куча грабель и неочевидных вещей, моя любимая - что в самой популярной софтине написанной на Go, невозможно в рамках Go runtime корректно реализовать её основную фичу. Но там просто так на листочке фиг распишешь чтобы интервьюер смог в это вкурить, и вообще он сидит и смотрит на тебя такими глазами как будто хочет за generic'и потереть.

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

★★★★★

Ответ на: комментарий от Harald

Подойди к вопросу не так буквально, перефразируя:

Что вы можете рассказать о недостатках и особенностях вашего самого любимого на свете языка программирования? Какие проблемы вам встречались и как вы их решали?

Всё это не отменяет того, что собеседуют тебя на этот язык и что это твой самый любимый язык на свете.

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

отсеивает фанбоев и провоцирует дискуссию на совсем другом уровне

Кстати, да. Он отлично выделяет фанбоев rust'а, например. И дискуссия сваливается известно куда :).

ei-grad ★★★★★
() автор топика
Ответ на: комментарий от ei-grad

Мне тоже он понравился, я думал сначала на него и ответить =D

Kronick
()

которые знаю вроде бы довольно хорошо

Nyet

aedeph_ ★★
()

Я вот не могу ответить на вопрос «что вам не нравится?» ни про Python, ни про Go, которые знаю вроде бы довольно хорошо. Зато вот про Rust, C++ и кучу других языков, знания по которым у меня весьма поверхностны - легко.

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

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

Вот есть проект ansible. Могу отлично вывалить на него кучу говна, тикетов и своих непринятых патчей. Но если бы это был язык программирования, я бы десять раз подумал прежде чем идти собеседоваться туда где его используют. А проблемы «ой я словил nil dereference, пошел на stackoverflow, там говорят что решается это так-то, говно этот язык, вы правы, о великий собеседующий!» - уровень junior.

ei-grad ★★★★★
() автор топика
Ответ на: комментарий от beastie

Недостатки бывают в знаниях спецификации языка у пишущего.

Вот к примеру, когда-то я думал, что вот такое определение символов int a, b, c = 0; инициализирует все три переменные значением 0, а не только с. И некоторую порцию баттхёрта мне это в своё время доставило. Но теперь всё кажется логичным, что инициализируется только c, считать это недостатком глупо, а те, кто так считают - неосиляторы, невнимательно читавшие учебники и текст стандарта, если вообще читавшие.

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

Btw, это был пожалуй лучший ответ который можно дать на такой вопрос. Не так тонко, как fizzbuzz с использованием нейронки, но сравнимо.

ei-grad ★★★★★
() автор топика
Ответ на: комментарий от beastie

Постановка вопроса «что не нравится» бестолковая просто. Сразу получается переход на личности. Может мне не нравится что пробелов восемь, а не четыре, но это не тема для обсуждения и ничего тебе не даст.

Вопрос «приведи пример каких-нибудь граблей, на которые недавно пришлось наступить» - гораздо лучше. Грабли и наступание на них - это объективный факт, а не потому что у меня сейчас настроение плохое или что-то там не по нраву.

alpha ★★★★★
()

git vs mercurial

Они настолько похожи, что холиварить толком не о чем. По сути, отличаются только методы хранения изменений и то, что разрешено/запрещено делать по умолчанию. Ну ещё в hg есть сквозная нумерация (которая всё равно поедет после rebase) и «статусы» у коммититов - но это всё не то, из-за чего можно было бы страдать.

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

Лучше уж холиварить о git vs svn.

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

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

Я говорю о том же самом.

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

а ещё этот твой mercurial не умеет бит исполняемости хранить для файлов, или умеет, но через жопу

Опять врешь %)

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

ещё в hg есть сквозная нумерация (которая всё равно поедет после rebase) и «статусы» у коммититов - но это всё не то, из-за чего можно было бы страдать.

Если никогда этим не пользовался - конечно.

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

Спуф, тебе точно нужен Лишп. Интерактивен по самое не балуйся. И ржать никто не будет, как сейчас, над твоим откровением.

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

Нету. Если где-то когда-то наступал на грабли, то от незнания, теперь не наступаю, язык не при чём

+100500 C прекрасен

quester ★★
()

Я вот не могу ответить на вопрос «что вам не нравится?»
Если тебе не нравится инструмент - нафига учиться с ним работать?

Идеальных вещей в природе не бывает. Если тебе в чём-то нравится всё, то ты или что-то идеализируешь, или просто не знаешь альтернатив. Что показательно :) Любой адекватный человек должен уметь назвать плюсы и минусы используемого им инструмента. Иначе он плохой пользователь инструмента.

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

git vs mercurial

Они настолько похожи, что холиварить толком не о чем.

Они настолько непохожи, что Mercurial'ом я начал пользоваться даже не изучив никакой документации и за 10+ лет работы с ним никогда не имел каких-то проблем и затыков.

А Git, не смотря на опыт в те же 10+ лет и 100+ репозиториев на GitHub'e, у меня до сих пор вызывает проблемы непонимания и приступы гугления у большинства действий за пределами pull/commit/push. И с ним чего только не случалось, и потеря изменений, и кривые пуши и т.п.

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

Постановка вопроса «что не нравится» бестолковая просто. Сразу получается переход на личности. Может мне не нравится что пробелов восемь, а не четыре, но это не тема для обсуждения и ничего тебе не даст.

Поэтому и спрашивают не о недостатке языка, а о том, что тебе не нравится. Вопрос грамотно построен. Вот если спросят про недостатки, то придётся указывать контекст и личность оценивающего. А «что не нравится» — уже сужение в сторону твоих личных субъективных оценок.

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

Про косяки явы, на которой я работаю много лет, могу рассказывать часами

А уж что я могу рассказать про PHP :D



Я писал в своей практике десятках на двух языков. И я не знаю ни одного из них, который был бы без недостатков. Даже у языков, от которых фанател/фанатею, типа Форта :D

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

Можно пользоваться, я ж не сказал, что плохо, что это есть. К тому же в hg по умолчанию 1) плагин rebase отключён; 2) rebase запрещён на сервере для коммититов со статусом public. Опять же - всё это ни хорошо и ни плохо - это дополнительные возможности, из-за которых можно предпочесть один из инструментов. А разнообразие - это хорошо.

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

Он не мой, а общий. И здесь подробнее - ты о потере битаив windows?

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

Можно пользоваться, я ж не сказал, что плохо, что это есть.

Я тоже не говорил о «хорошо» или «плохо». Я отвечал на твое «не страдать» - не страдать от отсутствия changeset evolution можно только тогда, когда ей и не пользовался. Mercurial и Git построены на общей идее, но говорить «настолько похожи» можно только тогда, когда всерьез не освоена как минимум одна из систем (при этом можно ей годами пользоваться).

tailgunner ★★★★★
()

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

Ну так и есть же. Синтаксис там не на русском языке и расскажи насколько в Рапире это лучше было реализовано.

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

А «что не нравится» — уже сужение в сторону твоих личных субъективных оценок.

Я не обсуждаю при работе что мне нравится, а что нет. Это просто не тот уровень общения. Сидя в баре после митапа я могу ругать дженкинс сколь угодно плохими словами, но при обсуждении профессиональных тем этому не место.

Поэтому вопрос «что бы вы выбрали для такой-то задачи» или «какие проблемы у вас возникали при использовании X и как вы их решали» - нормальный.

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

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

В любом языке есть проблемы и ты, если их используешь постоянно, должен знать.

По-моему, если какой-то язык используешь много и постоянно, то все его проблемы начинаешь воспринимать как фичи. Да, в js есть некоторая чехарда с типами. Ну, так это вы просто их не знаете! Просто надо изучить все особенности типов в js.

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

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

А документация да, я сколько ни читал о результате команды «git checkout --» (без имени ветки), пока не понял что произойдёт, но что-то её пробовать не хочется. В любом случае, я перед крупными изменениями делаю бэкап.

Ну вот, холиварить развязал какой-то :(. Меня устраивает, что оба поддерживают rebase и создание/слияние веток. Больше мне от них пока не нужно.

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

А Git, не смотря на опыт в те же 10+ лет и 100+ репозиториев на GitHub'e, у меня до сих пор вызывает проблемы непонимания и приступы гугления у большинства действий за пределами pull/commit/push. И с ним чего только не случалось, и потеря изменений, и кривые пуши и т.п.

Просто это не твое. Попробуй CVS ну или, на крайняк, SVN. Не нужны тебе эти DVCS.

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

А вопрос «что вам не нравится» - это моё личное дело, которое никак не должно влиять на оценку моих профессиональных навыков

Только в том случае, если ты робот. Или никогда не принимаешь решений за пределами узкой, навсегда определенной области.

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

- Назовите минусы молотка
- Если молотком ударить по пальцу, будет больно
- Слишком просто, об этом говорят все, кому не лень и особенно те, кто молотком не пользуется
- Если защемить дверью яйца и ударить по ним молотком, будет больно
- Отлично, вы приняты!

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

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

Из всего этого в git я не знаю есть ли возможность вернуться к давно затёртым изменениям. К только что затёртому изменению можно (если знаешь его sha-сумму).

А так они оба няшки.

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

Идеальных вещей в природе не бывает. Если тебе в чём-то нравится всё, то ты или что-то идеализируешь, или просто не знаешь альтернатив.

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

Полярность «нравится всё / что-то не нравится»... есть вещи, отношение к которым нейтрально, их при желании можно отнести как к положительным, так и к отрицательным.

Идеал и наличие альтернатив к «нравится / не нравится» не относятся. Да и наличие альтернативы может не требоваться, даже если инструмент справляется с задачей «не идеально». Если интервьюеру важно чтобы кандидат мог что-то сравнивать с альтернативами - лучше спрашивать про сравнение с альтернативами.

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

Наоборот. Все эти люди могут быть адекватны:

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

2. Человек имеет некоторый опыт работы с инструментом - он правда может найти какие-то проблемы при использовании инструмента, но как правило, эти проблемы будут вызваны недостатком опыта у самого человека.

3. Человек имеет большой опыт работы с инструментом - он может найти дефекты инструмента, обратиться к производителю и тот их может исправить. Если в инструменте обнаруживаются явные неустранимые недостатки, которые мешают работе - он меняет его на альтернативу и начинает с пункта 1.

4. Человек прошел предыдущий этап, дефекты исправлены, человек работает, а не ворчит что у инструмента есть какие-то недостатки.

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

А если он не будет без него страдать, то зачем он нужен?

Вообще я согласен что git менее user-friendly чем mercurial, но для меня это недостаток только в том плане, что часть команды иногда пушит коммиты содержащие строчки «<<<<<<<< HEAD», а другая часть приносит мержи из 10 веток без ребейза... Правду ли люди говорят что mercurial спасает от подобного рака головного мозга?

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

Я не обсуждаю при работе что мне нравится, а что нет

А это не работа. Это собеседование. Оценка твоих знаний и предпочтений. Нормальному работодателю это актуально.

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

Вот из их описания непонятно, что там есть отличного, кроме пункта 2. А из того, что когда-то искал - нигде толком не описывается.

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

Просто это не твое

Конечно. Я всегда об этом и говорю :) Mercurial — моё, а Git — нет.

Попробуй CVS ну или, на крайняк, SVN

10-15 лет назад ими пользовался. Но сейчас на дворе 2018 год.

Не нужны тебе эти DVCS

Открою тебе страшную тайну: Mercurial — DVCS :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ei-grad

В природе есть куча красивых вещей

Красивых — да. Идеальных — нет :)

Полярность «нравится всё / что-то не нравится»... есть вещи, отношение к которым нейтрально, их при желании можно отнести как к положительным, так и к отрицательным.

Конечно. Что не отменяет и наличие недостатков.

Иначе он плохой пользователь инструмента

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

Человек, взявший инструмент в первый раз и есть плохой, неквалифицированный пользователь.

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

В этом случае он может назвать недостатки неверно. Но — назовёт.

И оба последних случая как раз показывают, почему подобный вопрос актуален при приёме на работу.

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

И в этом случае он всё равно может указать на недостатки.

Человек прошел предыдущий этап, дефекты исправлены, человек работает, а не ворчит что у инструмента есть какие-то недостатки.

А вопрос не про ворчание, а про знание недостатков. Программных продуктов без недостатков не бывает. Если не согласен — назови хоть один пример :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ei-grad

Вообще я согласен что git менее user-friendly чем mercurial, но для меня это недостаток только в том плане, что часть команды иногда пушит коммиты содержащие строчки «<<<<<<<< HEAD», а другая часть приносит мержи из 10 веток без ребейза... Правду ли люди говорят что mercurial спасает от подобного рака головного мозга?

Мержи иногда бывают термоядерные (я недавно сводил две ветки, независимо развивавшиеся года три — какое-то спагетти :)), но при наличии конфликтов при автомерже закоммитить до ручной отметки о разрешении конфликтов не получится.

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