Мне обидно за то, как учат в некоторых заведениях, именуются которые колледжами. Ну, и обидно за контингент.
Вроде бы всё по программе: будущие «программисты» учатся первый курс, как в 10–11 классе, сдают нужные экзамены и поступают с радостью на второй, где начинаются спецпредметы. Знаете, какой у нас был предмет? Разработка на Паскале привычных лёгких задачек, а потом уже в Дельфи. Правда, ни про ООП ни слова не сказали, ни про объекты, ни про что. Старая бабушка-преподаватель на автомате объяснила, где ивенты, обджекты и где форма. «Сюда кидаете, пишете код, и всё работает». Как-то так. Никого такой вариант обучения не порадовал, всем было плевать. Я сдавал лабы, пытался сам разбираться, а меня поголовно все просили решить, ибо не знали ничего: «Никто не учил». Программисты будущие, блин. Потом бросил это дело — не хватило силы воли на самообучение.
Третий курс — главный спецпредмет: системное программирование. «Мы с вами будем учить С++, открывайте тетради и конспектируйте». Весь год писали подробно в тетрадке про
for
,
while
и массивы в тетрадке. Тупое переписывание. Ни одной практической задачи не решали.
Сейчас я перешёл на четвёртый, последний курс. Диплом надо писать, а у нас из группы только два человека реально интересуются кодингом и более-менее разбираются. Вопрос в другом: почему преподаватели настолько безобразно относятся к своему предмету? Ну и что, что это колледж! Есть, конечно, и студенты, которые отвечают: «Почему я пошёл на программиста? Да по приколу (мамка заставила, выбора не было)».
Надо учить, мотивировать студентов, а не давать поблажки и отпускать пораньше с пар после тупого конспектирования. А самим студентам, в свою очередь, надо думать, куда идти учиться и зачем, чтобы в дальнейшем не трепать нервы преподам, которые просят от вас то, что не нужно.
Работаю в компании, которая берет на себя проекты различной направленности. В штате, соответственно, сотрудники многих специализаций, а раздача заданий реализована через внутренний сервис.
Среди менеджеров устоялась традиция делать некий аукцион: вначале описывают проект, люди пишут, кто за сколько какую часть сделает (тимлид может писать за свою группу). Менеджер по итогам обсуждает с заказчиком сроки и цену, а среди подавших заявки отбирает тех, кто больше нравится.
Впрочем, может и сразу назначить проект кому-то. И самостоятельно установить сроки. Бывают такие проекты, которые брать не хочется, но фирма должна сделать — тогда поручают кому-то. Можно сбросить с себя проект, назначенный менеджером, но это «красное» событие, наряду с «просрать дедлайн» и «сделать шару». Впрочем, для сброса есть и достаточные основания — ты уже недавно делал принудиловку, у тебя текущий длинный проект, больничный, депрессия или запой.
Фирма расширяется и среди менеджеров нашелся один любитель вешать принудиловку. Он вначале договаривается с заказчиком. Результаты переговоров для заказчика привлекательны — быстро, дешево и качественно. Для разработчиков приятного мало. Менеджер, как человек, до этого не пасший котов, обычно лажал с оценкой трудоемкости и стоимости проекта. Его предложения никто не хотел брать, поэтому он кидал принудиловку.
Падает такая на меня. Сбрасываю. В поле для причины пишу: «не завершен текущий проект, после завершения текущего проекта не хватит времени до дедлайна». Вешает на меня снова с пояснением: «там работы совсем ничего, ты успеешь». Сбрасываю: «Не успею, надо кидать на команду». Снова вешает: «Оплата на одного специалиста, придется тебе успеть, больше некому». Сбрасываю с жалобой начальству: «Назначение заведомо не подходящего по срокам задания».
К концу дня в причинах назначения-сброса пошли маты. Мой профиль у менеджеров светится красным: «Сбрасывает задания». Его профиль у разрабов тоже как рак: «Высокий процент принудительных назначений». На второй день собрание. Первое за все время моей работы. Будут разбирать наш конфликт.
Поскольку в других местах «клиент всегда прав, а, значит, всегда прав менеджер, говорящий от имени клиента», просматриваю вакансии. Есть неплохие предложения, с некоторыми списался, готовлюсь на собрании показать всем нецензурную вещь из трех букв и уйти с гордо поднятой головой.
Шеф вначале опрашивает разработчиков:
— Вменяемы ли сроки и цена?
— Нет, нет, — хором говорят т. е.
Шеф вызывает менеджера:
— Откуда взялись сроки и цена?
— Они были согласованы с клиентом.
— Согласованы в консультации с разработчиками?
— Да.
— С кем именно?
(тычет в мою сторону): — С ним.
Я готовлю свою нецензурщину. Шеф протягивает менеджеру распечатку внутреннего чата:
— Покажи, где именно согласовано.
Показать, естественно, никто ничего не смог.
На этом, собственно, всё. Работа упала на группу, разница в стоимости проекта оплачена из кармана менеджера. Менеджер, посчитав себя несправедливо обиженным — как это так, разработчик не хочет делать работу за бутерброд — уволился.
Сразу после собрания, увидев мои трясущиеся от волнения руки, шеф сказал:
— Да не парься ты так, это естественный отбор: долботрясы уходят, нормальные остаются.
Несколько лет назад мы высказали в одном форуме идею ведомого детского экрана для планшета. Чтобы ребёнок мог смотреть на нём то, что включат с ведущего планшета родители. А на ведомом экране не должно быть не то что сенсора — вообще никаких органов управления. С ведущего устройства должны осуществляться даже включение, выключение и регулировка громкости.
Шли годы. Наше чадо уже подросло и стало просить «что-нибудь вроде компьютера». «Бамбуки» и «детские планшеты» нам мало нравились: не то. А то, что предложили мы, так никто и не выпустил. Мы поняли: действовать надо самим, и незамедлительно.
На день рождения ребёнок получил от нас коробку. В ней оказались бэушный 15-дюймовый монитор и активный переходник HDMI — VGA. Фактически — мини-компьютер.
Планшет с HDMI-выходом у нас давно лежал в запираемом секретере. Он жрёт намного меньше нетбука и потому включён круглосуточно. Монитор поставили снаружи.
Вот чадо пришло из школы, а родителей дома ещё нет. Он включает монитор и видит заранее заготовленную и запущенную родителями культурную программу. Она интересна и разнообразна: от симфонических концертов до видеоописаний посильных и безопасных для ребёнка физических опытов. Под эту «телепередачу» ему и уроки делать веселей.
А придя с работы, устраиваем ему «прямую трансляцию». На планшете играем в шахматы, современные аналоги The Incredible Machine и так далее, даже Ардуино программируем — теперь на планшетах и это можно. А он с комфортом смотрит на мониторе, который никакими нашими локтями не загорожен, и на пока не выросший ус всё наматывает, что-то в тетрадку записывая, чтоб не забыть.
Мы не гарантируем, что наш метод устроит и вашего ребёнка. Но нашему очень понравился.
На ноутбуке стоит Windows 7 и новая Ubuntu. Каждая работает, никому не мешает. Поскольку винда «родная», а сама ext не признает, то почти все мои файлы лежат в NTFS на любимой всеми букве D:. А что — для «семёрки» это родное, а Ubuntu с ним работает. Поскольку «семёрка» грузится долго, то она лежит себе на C:\ в глубоком сне, не знает, что демоны машину захватили…
И вот в винду я захожу реже и реже, всё больше сижу под линуксом… Только вот TeX настроить ещё не смог, а верстать надо. Сохраняем документ, перегружаемся в «семёрку», открываем диск… Нет документа. Как же так, раз Windows на родной файловой системе не видит файл, значит, там его нет! Быстро гружусь обратно в Ubuntu — документ на месте, лежит, данные целы. Обратно в винду — нет его! Открываю диск с другой системы — лежит, порядок.
С какой-то перезагрузки файл проявился, но что это было — отторжение осквернённого диска? Или не зря я перехожу на тёмную сторону?
Один очень крупный банк недавно опять улучшил ПО устройств самообслуживания. Теперь при попытке оплатить электроэнергию предлагается вводить номер лицевого счета на экранной клавиатуре.
Экранная клавиатура показывается сначала в режиме ввода только букв, для набора цифр нужно нажать кнопку переключения режима. После этого цифры надо набирать на маленьких кнопочках, которые вместе занимают едва ли десятую часть экрана и половина из них срабатывает только при нажатии в правильно угаданный угол кнопки. Если попробовать набирать цифры на более удобной механической клавиатуре под экраном, железка пищит и игнорирует нажатия.
После номера лицевого счета нужно ввести предыдущие показания счетчика, потом текущие, потом отдельно расход и поэтому пользователю в общей сложности четыре раза показывают экранную клавиатуру. Конечно же, в режиме, где сначала нет цифр.
Очень интересно узнать, как они добились такого безусловного успеха.
Индусы, индусы, индусы… Пару часов назад столкнулся с тем, что коренные американцы способны накосячить не хуже индусов.
Вставляем в программу проверку входных бинарных данных (_fpclass) — вдруг нам NaN пришёл (или ещё какой мусор). И неожиданно для себя получаем три жирных бага в совсем других местах: зависание, некорректное отображение данных, движение времени «большими рывками».
Пара часов отладки — и становится понятно, что дело в том, что _fpclass портит режим сопроцессора. И вместо long double у нас сопроцессор считает всё как float.
Открываем сорцы. Ну странно же, когда стандартная подпрограмма из системной библиотеки не восстанавливает регистры оборудования. Гм, она восстанавливает. Угу, восстанавливает. Но с перепутанным порядком параметров в вызове _control87.
Работал в одной фирме человек. Сидел тихонечко, тыкал в свои кнопочки, в монитор пялился. Иногда в Dwarf Fortress играл, не без этого. Позвал его к себе директор и говорит: «У нас сейчас в стране кризис, всем зарплаты урезают, вот и я решил, что ты там ничего не делаешь, поэтому зарплата у тебя станет, как у грузчика Васи».
И уволился тот человек. Просто он за трендами следил и знал, сколько зарабатывает человек, который может в одно целое 1С, веб и C# связать. И единственная причина, по которой не уходил раньше — жалко было своё детище бросать.
А детищем его был монстр, позволяющий заказчикам выбрать на сайте или терминале в любом из отделений фирмы одежду, примерить на неё принты разные и автоматически отправить заказ на выполнение. Ну и в качестве бонуса позволял клиенту на вебкамеру себя сфоткать и принты сразу на фотографию положить, чтобы посмотреть, какой больше подходит.
Но написал он этого монстра давно, потом оставалось только старые баги исправлять да следить, чтобы всё не посыпалось, когда аутсорсеры в 1С чего добавят. Так как программа была создана давно, многие старые сотрудники про это забыли, а новые и не знали.
В общем — пытался человек объяснить директору, что следит за работой системы приёма и пересылки заказов, что сам написал.
— Врёшь ты, — сказал директор. — В 1С всё аутсорсеры делают, а заказы электронной почтой отправляются. Бездельник ты.
Плюнул человек на пол и ушёл. Ничего при этом не сломал, так как в законы кармы верил и грех на душу брать не хотел. Даже слов непечатных ни одного не сказал. Устроился в новом месте на зарплату, трёхкратную прежней, а если с грузчиком Васей сравнивать, то вообще без счёту будет. Устроился, новую почту завёл, старые симки выбросил, наслаждается уважением заслуженным.
Не прошло и месяца, как со старой работы звонок:
— У нас терминалы выбора принтов перестали работать, мы сейчас новому парню трубку дадим, объясни ему, что да как.
Ну и объяснил. Говорит:
— Cтояло у меня в комнате два компьютера. Что вы с ними сделали?
А новый парень отвечает:
— На одном я винду переставил да секретарше отдал, так как на свой ноут она фреш апельсиновый вылила. А второй — на нём я работаю, винду не переставлял, просто старый хлам поудалял к чертям собачьим. А что, не надо было?
— А папку «system backup dont delete» на файловом сервере хоть не вытерли?
— Вытерли, — отвечает новый парень. — Она сильно большая была. Директор сам вытер, чтобы новый винт не покупать. Триста гиг места освободилось!
— Поздравляю, — сказал тогда человек. — Нет у вас теперь заказов через терминалы. И через веб-сайт заказов тоже нету. Ну и веб-интерфейс отосланных в цех заказов тоже нае#нуться должен был.
Мораль сразу ясна — незаметные кажутся заменимыми, но это не всегда так. Ну и бэкапы перед удалением надо в трёх экземплярах делать, это да.
А счастливый конец — позвонил потом человеку директор лично. За старую резервную копию (в закромах нашлась) и доводку её до ума полугодовую зарплату заплатил. Такой вот он, закон кармы — хорошим людям обиды баблом компенсирует.
«Сисадмины! Айтишники!.. Не позорьте эту профессию (да, просто профессию)… свитером, заправленным в джинсы».
Прихожу такой я на работу. В смокинге, туфлях и галстуке-бабочке. При мне ассистенты. Грузчик для залезания под стол за системником. Уборщица — пыль с него вытереть. Механик — винтики открутить, прочистить, термопасту заменить, всё продуть. Профилактику системника сделали. На мне ни пылинки. Костюм не помят. Лак на туфлях не поцарапан.
Витуху под потолком протянуть? Ещё ассистент нужен. Один монтажник, один высотник, ещё и прораб понадобится их координировать. Кабель протянули. Эй, монтажник, хватай кабель, всю грязь собравший, и обжимай «эрджеху»!
Картридж заменить? А из него уже тонер сыплется, перевосстановленный он. Где тут мужик в халате и респираторе? Хватай это безобразие и на пол не тряси!
Железяку в IT дохлую привезли. Механик пусть от грязи её отчистит. Затем её радиомонтажнику, с припоями и флюсами возиться, не барское это дело. Манишки запачкаю.
Видеокамеру заменить? Стойку прикрутить? Системник собрать… Вон там бригада рабочих умельцев.
Сервер обслуживать? Это к ведущему системному администратору. Его епархия — за монитором сидеть и кнопочки давить.
Железная проблема? Это к бригадиру: он грузчиков, монтажников, уборщиц, наладчиков, механиков, электриков, монтёров, высотников, альпинистов, диггеров, археологов, реставраторов выделит.
По-вашему, они все не айтишники? Один эникей и 33 богатыря бригада.
«Если жир на пузе — сбросьте, если слишком худы — наберите вес за счёт нормальной еды, а не пельменей и шаурмы».
А на первом этаже ресторан откроем. Там я трапезничать буду. И никаких аварий в обеденный перерыв, никаких выездов на объекты. Я не скорая и не пожарная.
Мечта, а не работа! Жаль, начальство такие должностные обязанности не оценит. И так халат не выдают. Ни робы, ни спецовки. Даже страховочный трос с карабином и изолирующий противогаз для люков-подвалов. Вытяжка, как в цеху, у паяльного места отсутствует…
Эх, свитер в джинсы — и в забой, по-стахановски. (О! Тулуп ещё надо и унты — в серверной сидеть.)
Токари, снимайте свой засаленный халат! Грузчики, прочь пыльную робу! Уборщицы, долой передник и перчатки! Вводим всем дресс-код. Мужчины — брюки, пиджак, галстук, лакированные туфли. Женщины — блузка, юбка, туфли на каблуках. И в этом одеянии на галеры.
Пользователи — это обезьянки. Они замечательно могут выучить простую последовательность действий: «Нажми на эту кнопочку, потом на эту, теперь проведи здесь курсором. Молодчинка, получи банан!»
Но если в эту последовательность вкралась какая-нибудь мелочь (например, после нажатия второй кнопочки курсор нужно вести в другую сторону), обезьянка сначала пытается выполнить то, что делала всегда, потом повторяет то же самое ещё несколько раз, но уже на нервах, потом начинает в остервенении нажимать, что попало, и тыкать, где придётся, после чего начинает бросаться какашками.
Одна барышня неверно ввела пароль n-дцать раз, учётка заблокировалась. Разблокирую. Опять куча попыток неверного ввода, просьба сбросить пароль. Несколько уточняющих звонков, выяснение, что это на самом деле она виновата, сброс пароля с требованием сменить оный после первого входа, конец разговора. Через полминуты звонок: «Я ввожу, а оно не пускает!» Повторяю ещё раз, что нужно будет ввести новый пароль, и объясняю, как выглядит кнопка «Oк». «У меня ничего такого нет, — говорит. — Сделайте уже что-нибудь, мне нужно работать».
Объясняю, как можно посмотреть имя компьютера, но обезьянка уже ничего не хочет слушать, ей нужно, чтобы всё было прямо сейчас и у неё. Ну хрен с тобой, поднимаюсь на шесть этажей, врываюсь в кабинет, не сгоняя с места эту макаку, ввожу пароль и показываю, куда вводить новый. Смотрит на меня волком на вегетарианской диете. На вопрос, почему не смогла увидеть единственную надпись в центре экрана, брюзгливо поджала губы и выдала: «Вот только не надо грубить и истерить». Ухожу из кабинета молча и быстро: новый пароль она ещё не ввела, вдруг что-то у обезьянки не получится, и она начнёт кидаться какашками?
С праздником, коллеги. И терпения вам с вашим зоопарком.
«Секретка» — штука, знакомая многим водителям. Конечно, применять её вместо сигнализации может лишь очень отчаянный человек, но в дополнение — очень эффективно.
А почему же этот приём неведом владельцам смартфонов? Даже простой геркон последовательно с кнопкой разблокировки обескуражит процентов 70 воришек, а это не так уж мало. Ну вот, один секрет — больше не секрет, но можно других напридумывать сколько угодно.
Если бы не одно «но». Гарантийный аппарат установка «секретки» лишит гарантии, а послегарантийные воришек интересуют в меньшей степени.