Category: работа

me

Вопросы на собеседованиях

Я вот понять одного не могу: чего добиваются интервьюеры на собеседованиях, когда задают вопрос из серии "реализуйте B/B+ дерево"?
В финском языке есть такое слово "myötähäpeä" - чувство стыда за другого человека. Вот когда я слышу на собеседовании подобное, мне, цЫничному гопнику, становится стыдно до состояния "пойти и удавиться шнурками кед".

Мне.

Становится стыдно.

Да, я сам вахуе.

Дорогие сениоры, техдиректоры и прочие системные архитекторы! Задавая подобные вопросы на собеседовании вы демонстрируете дремучесть студента 1-го курса института при зашкаливающей самооценке, рядом с которой Дейкстра, Керниган и Ричи - дети, едва изучившие BASIC. Сколько при этом котиков убивает господь, я судить не берусь, но думаю, что не меньше 9000 за раз.

Просто запомните, если не готовы сами повторить эксперимент: работоспособное B/B+ дерево начинается от 4000 строк кода. До этого момента это не дерево, а школьное поделие, ценность которого околонулевая с любой точки зрения. Дерево, которое поддерживает транзакции, требует по крайней мере 8000 строк кода (данные - про реализацию на С; но написанное актуально и для Java/C++). Добавление в дерево репликации, lock-free доступа обходится примерно в 3-5 тысяч строк для каждого изменения. Представьте себе, да: это - действительно сложный алгоритм. В любом случае это не тема ни для рисования алгоритма на собеседовании, ни даже для домашнего задания на несколько дней.

Если вы не верите написанному, велкам смотреть исходники SQLite, InnoDB и BerkeleyDB.

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

ФБ-копия поста - тут: https://www.facebook.com/sloneus/posts/476966385788196
me

О культуре собеседования

Одного понять не могу: вот приходит человек на собеседование, в вакансии указано, что обязательно требуется знание C++ STL, в резюме у него написано, что уверенное знание, опыт, бла-бла-бла.

Человек не отвечает на вопрос как объявить std::map с ключом из std::string и значением int. Понятно, что дальнейший разговор невозможен, и мы прощаемся.

Человеку >40 лет. Как можно дожить до седых волос и не усвоить что врать - нехорошо? Ну вот пришел ты на собеседование, написав в резюме разные неизвестные тебе аббревиатуры, зачем ты это сделал? Какой смысл врать, если первый же вопрос будет по теме и ты сольешься? Зачем терять время, ехать куда-то, отрывать собеседующего от работы, краснеть перед ним, зачем всё это? На улице, считай, последняя неделя лета, тепло, солнце светит, девушки в легкомысленных платьицах гуляют, мороженое-пиво-соки, а тут такой мрак.

Вы же поймите, мы не менеджера-болтуна с языком в полметра ищем, у нас же принцип "сперва научись и добейся", а не "сперва наври с три короба". Печаль и тлен все это. Тлен и печаль.
me

К вопросу о прилегшей «Стрелке-СТ»

Регулярно слышу возмущение коллег по поводу глупости и убогости ошибок в государственных и полугосударственных проектах:
- Как так можно! Это ведь так просто, ошибки лежат на поверхности; мы бы за пять минут все cпроектировали и написали как надо!

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

Айти - слишком молодая отрасль и понятных для непрофессионала-заказчика измеримых критериев качества выполнения работ нет. Ну, работает кое-как - и хорошо. Если еще и дешево - то вообще прекрасно. Есть очень, очень много конторок, эксплуатирующих эту проблему.

Типичная контора выглядит так:
Заработная плата складывается из чёрного нала, зарплаты и премии. У программиста с доходом на руки в 100 тысяч, зарплата составляет от 5 до 20 тысяч рублей. Еще от 15 до 40 тысяч оформляют в виде премии. Остальное дают в конверте. Причем очень часто выплаты задерживают или недоплачивают премиальную часть - что делать, не наработал. Кроме того, экономии ради арендуются самые дешевые офисы в максимально логистически неудобных и экологически проблемных местах.

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

Как пример, который я видел лично. В некой конторе надо было искать в нехилом таком текстовом потоке данных логин, удовлетворяющий условию ([a-zA-Z][a-zA-Z0-9_.-]+[a-zA-Z0-9]). Написать подобный регексп разработчик был не в состоянии, и проблему решили каким-то звериным способом типа дополнительной проверки найденного логина еще двумя регекспами. То есть, человек, много и долго занимающийся разработкой обрабатывающего потоки текстов софта не имел должного представления о регулярных выражениях и вообще ничего не знал о потоковых парзерах и контекстно-свободных грамматиках. Понимаете?

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

Поэтому в следующий раз когда услышите про очередной полугосударственный айтифакап, просто вспомните, что проектитровал эту систему человек который не попал к вам по причине профнепригодности даже на должность джуниора. Вот и всё.
me

Employer-культ.

http://plumqqz.livejournal.com/291143.html

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

Исключительно из своего опыта: оба два соискателя на вакансию программиста C++, из Гугла(один - из русского офиса, второй - из Ирландии), не смогли асилить написать на C под Linux за 3 дня простейший HTTP/1.0 сервер, зато рассказывали, что читали Кнута и знают кучу алгоритмов.

Я вот, Кнута не читал, и смысла читать не вижу. В РамПочте __вообще__нет__ ни единого сложного алгоритма, потому как __сложные__ алгоритмы почему-то не работают на петабайтных объемах. O(n) рулит. Найдите мне сложный алгоритм, который делает максимум линейный проход по данным.

Via plumqqz.