Category: it

Category was added automatically. Read all entries about "it".

ЖЖ-археология

(1)- Но ссылку на Буча, содержащего не меньше «философии», но про которого никто не сомневается, что он адекватно пишет про информатику, вы тоже направили в мусорное ведро.

(2)- Я лучше почитаю современных авторов, пишуших на актуальные темы. А увесистый томик "ни о чем" я лучше заранее отправлю в ниасиленное. Я лучше художественную книжку почитаю вместо. Латынину, вон. Адекватности - никакому Бучу не снилось. Правильно кто-то из Лебедевцев писал, что для обучения дизайна надо читать Му-Му. Для обучения программированию - вон лучше Латынину...

(3)- На мой взгляд, Вы очень во многом правы. К сожалению, Вы несколько неправы в житейском смысле: смысл Ваших высказываний относительно Буча и прочих коммерческих философов от программизма сводится примерно к следующему утверждению: "лучше сразу заниматься мастурбацией, чем Бучем - по крайней мере меньше вреда и позора". Вы и в самом деле полагаете, что Ваш оппонент это утверждение примет на ура? Он, между прочим, Буча-то прочитал - а это очень большой труд, без шуток - и что же, это все было напрасно?!

Прекрасное с RSDN

Интервьюирование в IT существует столько же, сколько и программирование, однако шаблоны собеседований до сих пор не созданы. Не пора ли, друзья мои, нам замахнуться на паттерны, понимаете ли, нашего интервьюирования? Для начала напишем «Здравствуй, мир!»:

ЗдГавствуйте! – До свидания!

Получилось! Теперь попробуем изобразить реальный паттерн технического собеседования программиста в России. Мы не будем копировать западные образцы, но обратимся к корням, и поэтому интервьюировать будут 3 человека одновременно. Получилась тройка, разумеется, не гоголевская, а сталинская. Назовём этот паттерн МВК, по составу участников:

М (мудель) – технический специалист, дорос до этого положения из-за того, что за много лет так и не смог никуда сбежать из этой конторы. Он лучше всех разбирается в отложениях кода. Средних лет, разведён, тощ, язвенник и всем недоволен.

В (вьюноша) – студент, подрабатывает ради первой строчки в трудовой книжке. Он вроде бы обучается у старших товарищей проводить собеседования, однако бесценен по той причине, что ещё помнит все канонические алгоритмы сортировки и типы данных. Прыщав.

К (контролёр) – его официальная должность – руководитель проекта, но истинное призвание – быть кондуктором в общественном транспорте, поэтому он с таким удовольствием объявляет остановки (milestones), проверяет билетики (tickets) и обожает узнавать о причинах их несвоевременной оплаты (stand-up meetings). До 30 лет, от 100 килограммов.

Далее по тексту для обозначения участников собеседования будут использоваться буквы «М», «В», «К», а также «С» – соискатель.

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

К. В своём резюме вы не указали возраст…

С. 45.

К. Полных?

С. Исполнится через месяц.

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

К. Как у вас с английским? Поговорили с Мозесом?

С. С каким Мозесом?

К (звонит по сотовому кадровичке). Кандидат разговаривал с Мойшей? А почему? У того опять проблемы со Скайпом? А наша учительница проверяла английский? И что написала? Ага, вижу: «Хиз инглиш ис велл».

К (соискателю). Вашим английским довольны, перейдём к технической части. Начнём с основ (читает с монитора). Чем интерфейс отличается от Олег Газманов попал в автокатастрофу абстрактного класса? Объясните это так, чтобы было понятно (поднимает глаза и начинает импровизировать) любой дуре, даже нашей эйч-арше.

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

К (записывает). «Употребил слово бюзгальтер».

М (записывает). «Разбирается в тонкостях».

В (записывает). «Тема сисек не раскрыта».

К. Вы знакомы с «большим Пи»?

М (перебивает). Вы знакомы с «большой О»?

С. Да, и с малой, и с большой.

М. Га?

С. Не «га», а «омега». А малая «О» – омикрон. Я по образованию переводчик-синхронист с древнегреческого.

К. А что же не работаете по специальности?

Неловкая пауза.

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

К. А я – дельты.

В. А я – ню.

М. Хорошо, какие виды сортировки вы знаете?

С. По возрастанию и убыванию.

М. Кхм, я имел в виду другое: допустим, у вас есть в памяти массив с миллиардом значений, а стандартная сортировка работает медленно, как вы бы исправили ситуацию?

С. А зачем хранить в массиве миллиард значений?

М. Ну, это неважно. Это для примера, у нас и миллион тормозит.

С. Ммм… Добавить оперативной памяти?

М. Невозможно!

С. Уменьшить «О»?

М. Интересная мысль…Но мы ждём от вас другого ответа, сдаётесь?

Соискатель кивает головой.

К. Нужно применить многопоточность!

Мудель под столом толкает Контролёра.

К. Нужно применить кеширование!

М (тактично). Но лучше всего применить логарифмическую сортировку.

С. А логарифм с каким основанием?

М. Э-э, с двоичным, разумеется.

В. Это не имеет значения!

С. Разве?

М. Если мы перегрузили хеш-фунцию, какую ещё нужно переопределить?

С. Я такими вещами не занимаюсь.

Интервьюеры ставят минус.

С. Да, я слышал, что некоторые перед увольнением переопределяют плюс на минус...

Интервьюеры меняют минус на плюс.

М. Вот вам бумага и ручка, разверните односвязный список без выделения дополнительной памяти. Время!

Соискатель стучит пером и вскоре возвращает лист.

М. Неплохо – 44 секунды, вы в десятке лучших. Но есть одна серьёзная проблема – у вас открывающая скобка находится на новой строке…

С. Так это потому что на C#, вы же ищете дотнетчика?.

М. Да, всё правильно, у нас был образец только на Джаве.

К (Муделю). Так вот почему отдел кадров завернул столько кандидатов! (Соискателю) не возражаете, если мы возьмём ваш ответ? Спасибо.

М. Далее, вы указали в резюме JavaScript. А работали ли вы с фреймворком H1N1.JS? Нет? Тогда для чего нужны… (умоляюще смотрит на Вьюношу).

В (шепчет). Прототипы, замыкания…

М. Для чего нужны прототипы замыкания?

С. Я не знаю, не пользовался.

Ответ воспринимается положительно.

М. Ничего страшного, теперь по базам данных.

К. Для чего нужны индексы?

С. Для ускорения поиска и сортировки.

К (заглядывая в монитор). Верно только наполовину.

М. Напишите запрос, который удаляет записи-дубликаты.

С (задумывается). Я до таких сложных вещей не доходил, просто писал запросы на проверку уже существующих данных и, при их наличии, не добавлял новых записей.

К. Как сделать так, чтобы в коде было меньше ошибок?

С (с воодушевлением). Модуляризация, инкапсуляция, переиспользование…

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

С. Так уж и ни одной?

К. Да, просто все силы уходят на написание тестов, до самого кода руки не доходят. Хорошо, на какую минимальную зарплату вы рассчитываете? Что? Максимальную? У нас платят только минимальную… ну, я имел в виду, что, судя по вашим ответам, вы и на джуниора не тянете, но если вы пройдёте испытательный срок, то можно будет обсудить повышение… у нас регулярно происходит пересмотр зарплаты. Нет, для старшего – для нашей команды – у вас всё-таки знаний маловато. Ну пожалуйста, чтобы не оставалось сомнений, ещё вопрос, на логику: почему крышки люков делают круглой формы?

Соискатель в растерянности, начинает шептать молитву, возводит очи горе и видит прямо над собой квадратную крышку люка вентиляции. У интервьюируемого отваливается челюсть, и его рот приобретает форму кирпича. Вьюноша поднимает глаза и, заметив квадратный люк, от неожиданности издаёт громкий неприличный звук. До зарплаты ещё 4 дня, приходится питаться просрочкой, поэтому вонь получается страшнейшая. В это время взгляд Муделя также достигает потолка и он, как член команды, присоединяется к порче воздуха. Язва желудка и микроволновые полуфабрикаты обогащают купаж кишечных газов. Контролёр, будучи прирождённым руководителем, не может остаться в стороне от любой инициативы снизу, он столуется в российских кафе и ресторанах, где подают перекомпилированные объедки, и его вклад в деятельность команды вносит новые ноты. И только Соискатель не участвует в этой канонаде – он с утра ничего не ел. Пока туча газов втягивается в квадратный люк, Контролёр успевает записать:

«Не продемонстрировал командный дух».

Мудель добавляет:

«Отсутствуют навыки в облачных технологиях».

Вьюноша:

«Не мужык».

Между тем отравляющие газы проникли по вентиляции в помещение сверху, где располагается строительная контора, откуда начинают доноситься крики: «Суки! Педоразы!» и раздаваться удары в пол образцами пластиковых окон, клееного бруса и винтовых свай. Злополучная квадратная крышка отваливается, засыпая дореволюционной побелкой присутствующих. Они выползают в коридор и тут же делают селфи для размещения в своих блогах с личным видением интервью и подписью: «И тут выхожу я, весь в белом».

Занавес.

P.S. Я понимаю, что в мой шаблон неидеален, например, сверху может располагаться не строительная контора, а, скажем, отдел кадров этой же фирмы, где следующему кандидату как раз рассказывают о рабочей атмосфере в коллективе. Что ж, в конце концов, нельзя же всё время слепо следовать шаблонам.

источник: http://rsdn.org/forum/job/6610258

О машинном обучении - Ломоносовский квадрат

Оригинал взят у alamar в Ломоносовский квадрат
Originally posted by alh__ at Ломоносовский квадрат
Игорь проспал на 5 минут, что было, в общем, вполне приемлемо. Слегка умывшись он взял в руки смартфон, чтобы принять сменное задание. Прочитав задание Игорь расстроился. Ему выпал «Ломоносовский квадрат». Эту работу никто не любил, сегодня не повезло ему. Позавтракав он отметился «на работе», вышел из дома и встал на углу. Через 2,5 минуты, за 1,5 минуты до истечения норматива пришла развозка. Развозкой рулил Мустафа, давний знакомый Игоря.

Если бы Игоря ждал обычный рейс, его бы подвезли на терминал или в гараж, но «квадрат» начинался прямо на шоссе. Еще через 20 минут Игорь был на месте, на обочине шоссе, где прямо перед машиной развозки остановился трейлер с контейнером.  Из него вылез еще один общий знакомый, усталый и злой после смены. Обменявшись с ним рукопожатием, Игорь залез в кабину, принял смену, заглянув в считыватель сетчатки. Навигатор пискнул и показал ему маршрут. Маршрут Игорь знал и так. Это было кольцо по четырем шоссе с заездом в Ломоносов. Четыре правых поворота, два светофора. 50 километров по кругу. Тот самый «Ломоносовский квадрат». На маршруте не было остановок, контейнер на прицепе был пуст. Среди сотен ежедневных маршрутов этот был совершенно бессмысленным. Водителей сменяли прямо по ходу. Приблизительно раз в месяц машина снималась с маршрута и уходила в нормальный рейс. Но квадрат пустовал недолго и через пару дней на него вставала очередная машина. Всегда одна, всегда с пустым контейнером на прицепе.

Никто не знал, почему оптимизатор, рассчитывающий маршруты, требовал выполнять этот вечный «рейс». Пробовали машину снимать с «квадрата» вручную. Общая эффективность перевозок упала на 0,75%. Машину вернули и в работу оптимизатора больше не вмешивались. Хотя бы потому, что его внедрение сразу повысило эффективность на 18%, а потом удалось отжать еще 3%.

Разработчики оптимизатора пытались разобраться в проблеме больше года, но так и не смогли.

Впереди у Игоря было 8 часов езды. Он включил радио и последовал указаниям навигатора. Через час ему надо будет заехать на заправку, еще через три на обед, а всего до конца смены оставалось еще примерно 7,5 кругов.