Тестовое задание для программиста

DEPRECATED WARNING: этот пост был написан для найма программистов в веб-студию в 2010-2013 годах, а сейчас УСТАРЕЛ по многим причинам. Сейчас в мировом вебе используются новые технологии, и нужно задавать новые вопросы. Однако вы можете извлечь из текста что-то полезное.

Я не даю абстрактных, выдуманных из головы тестовых заданий. Я считаю что это абсурд – на основе быстрого решения какой-то единичной проблемы пытаться сделать выводы о том, насколько человек окажется эффективным сотрудником. Реальную эффективность можно оценить только спустя недели и месяцы реальной работы в команде. Поэтому, когда есть такая возможность, вместо тестовых заданий – я задаю самые различные вопросы, чтобы понять обладает ли кандидат широким кругозором, опытом, развитым ассоциативным и нестандартным мышлением. Я решил опубликовать эту подборку, чтобы кандидаты могли реально оценить свои силы для участия в моих проектах. Continue reading “Тестовое задание для программиста”

Закон сохранения работы

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

Continue reading “Закон сохранения работы”

OpenID на своём домене

В интернете полно инструкций о том, как сделать OpenID на своём домене. Практически все они не работают. Не работает так же и скрипт phpMyID, который советует каждый второй вебмастер. Я расскажу вам о том, как сделать то, что будет работать. Continue reading “OpenID на своём домене”

Rework – бизнес без предрассудков

Очередная прекрасная книга от 37signals – авторов Getting Real, приверженцев GTD, евангелистов Ruby on Rails, гуру в области управления проектами. Книга must read каждому, кто работает в проектах в IT или любой другой сфере. Вот несколько цитат, которые позволят вам почувствовать основные мотивы:

Continue reading “Rework – бизнес без предрассудков”

Управляемый факап, или Как бежать быстрее медведя

– Это бесполезно! Мы не можем бежать быстрее медведя!
– А мне не нужно бежать быстрее медведя. Мне нужно бежать быстрее других туристов.
(Народная мудрость)

В наши дни множество людей, особенно среди молодёжи, каждый день приходя на работу – бьются головой о стенку от царящего в их фирмах перманентного факапа. Кто более инициативен – предлагает взять дело в свои руки, наладить порядок, нанять больше людей для решения скопившейся кучи задач. Кто попроще – тихо плывёт по течению, иногда вздыхая “как же бл..дь всё плохо”. В клинических случаях люди начинают грезить о волшебных Гуглах и Яндексах, где всегда светит солнце, всегда выполняются планы, и сотрудникам всегда поручают только интересные задачи. А на текущем месте работы все подчинённые втихаря костят руководство от менеджеров среднего звена до самых верхов.

В этом посте я расскажу, отчего такой перманентный факап возникает и почему он не всегда является следствием неграмотного управления.

Continue reading “Управляемый факап, или Как бежать быстрее медведя”

Thermaltake Element V – корпус для вашей домашней атомной электростанции

Thermaltake Element V – отличный выбор корпуса для геймерской машины в средне-высоком ценовом классе. Читайте то, о чём не расскажут в официальных обзорах!

Continue reading “Thermaltake Element V – корпус для вашей домашней атомной электростанции”

Больная голова рукам покоя не дает: обновляем Ubuntu старых версий

Не могу терпеть безделье больше одного дня, а ещё и болеть – тем более скучно. Поэтому нотубук в кровать – и вперёд, покорять обновление убунты очень древней версии. А что такого, спросите вы? А то, что в моём случае версия 7.04 уже давно не поддерживается, и не поддерживается даже следующая за ней 7.10. Поэтому все штатные процедуры обновления Линукса падают с фатальными ошибками.
 

Continue reading “Больная голова рукам покоя не дает: обновляем Ubuntu старых версий”

Отличный советский анекдот

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

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

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

— Ты у нас, — говорит, — один из лучших рабочих. Неудобно как-то, что ты среднюю школу до сих пор не закончил. В общем, мы тут посоветовались и решили, что ты пойдешь в восьмой класс вечерней школы.

Как ни отнекивался парень, пришлось пойти учиться. Учитель вызывает его к доске и просит найти объем цилиндра. А он, как назло, забыл школьную формулу! Что делать? Тогда он заслонил доску собой и написал простенький двойной интеграл. Потом перешел к полярным координатам и получил ответ. Только объем у него почему-то получился отрицательным. Тогда он стер свои выкладки, написал интеграл заново и все перерешал. Что за черт, опять объем отрицательный! Тут он совсем растерялся, не знает, что делать. И вдруг слышит, как с задней парты ему один из двоечников шепчет:

— Идиот! Пределы интегрирования поменяй!
 
 

Анатомическая гелевая ручка

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

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

Мы представляем первую в мире анатомическую гелевую ручку, которая изогнута в соответствии с естественной анатомией человеческой руки. Линия изгиба была с точностью вычислена исследователями кафедры высшей математики СПБ ГМТУ и преподавателями РГПУ им.Герцена – законодателями в сфере образования молодёжи.

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

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

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

Программисты с потерянной обратной связью

Зачастую бывает так, что мы садимся осваивать новый программный продукт, и нас начинает мучать странное ощущение "некачественности". Я не говорю о случаях, когда явно что-то не работает – там всё понятно. Я о другом – когда это ощущение рождается где-то на задворках подсознания, и его никак не выразить словами. Когда тебя спрашивают: ну скажи ты конкретно, что тебя не устраивает? А ты и сказать не можешь – мучаешься, пытаясь выразить свою неудовлетворённость словами.

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

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

Весь мир насыщен обратной связью. Прокрутите в голове все события, которые происходят в вашей жизни повседневно, и вспомните определить фидбэк от каждого из них. А теперь представьте, как выглядела бы жизнь, если бы фидбэка не было. Представьте себе девушку, которая не реагирует на ваши ласки. Разберите мышку и извлеките щёлкающий механизм. Попробуйте поработать на сенсорной клавиатуре айпада вслепую. Каждый раз выходя из машины, проверяйте вручную – закрылись ли все дверцы и багажник.
Мир без обратной связи был бы адом. Именно таким адом выглядит программный продукт, который не поставляет достаточное количество обратной связи пользователю. Что происходит прямо сейчас? Я кликнул – и что изменилось? Начался ли фоновый процесс? Или уже закончился? А если он идёт, то почему так долго? А успешно ли он завершился? Ждёт ли от меня система каких-то действий, или это я должен подождать? Можно ли закрывать эту страницу – сохранятся ли данные?

Причины создания таких программных продуктов лежат глубоко в области психологии. Большинство "компьютерных гиков" настолько "продвинуты" в области разработки и программирования именно потому, что у них нарушена коммуникабельность и связь с внешним миром. Они играют в вов и линейку, сидят в социальных сетях и на профессиональных форумах, занимают всё свободное время чтением документации, отрицая реальный мир и создавая вокруг себя воображаемый. Они реализуют себя в жизни в общении с компьютерами, потому что общество их отторгает, а компьютеры бессловесны и принимают их "как есть". Даже само понятие "компьютерной грамотности" становится для них критерием для деления людей на достойных и недостойных. Возможно, в глубине души они уверены, что Ньютон, Галилей, Коперник и Чарльз Дарвин тоже были программистами.

С теми кто просто замкнут по своей природе – ещё можно найти общий язык и помочь человеку осознать, что никакая программа не ценна сама по себе. Ценной её делает полезность для потребителя. Но если человеку впору ставить диагноз "аутизм" или "социопатия" – то в результате становится страшно. Страшно от осознания, что ты сидишь перед экраном и пользуешься продуктом, но тебя как-бы нет. Для автора ты – пустое место, робот с запрограммироваными use-кейсами и встроенным аппаратом для чтения документации. Только так автор может допустить тебя к использованию продукта, но если бы тебя вообще не было – вот это был бы идеал.

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

Материалы для самостоятельного изучения:
Рекомендации компании Apple
Рекомендации по книге Джефа Раскина "Интерфейс"
Не позволяйте знаниям ослепить себя