Привет! Меня зовут Рахим Давлеткалиев. Я работаю над образовательным проектом Хекслет. Смотрите, что я вам принёс:

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

Крутые технологии и крутые продукты

Я подарил маме на новый год новый телефон. Раньше у нее был Айфон, а теперь Андроид. К сожалению, меня не было рядом, когда ей захотелось перенести фотографии со старого телефона на новый. Она написала мне «как перенести фотки?». Я долго думал, а потом понял, что между крутыми технологиями и крутыми продуктами огромная пропасть.

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

Такому человеку тяжело понять сложность операции «перенести фотки с телефона на телефон». Он привык, что с компьютера на компьютер можно просто перенести документы: скопировать на флешку или, например, отправить электронной почтой. Какому человеку в здравом рассудке покажется очевидным, что для этого нужен компьютер, Айтюнс, файловый менеджер монтирования Андроида как диска, какие-то приложения?

Можно сказать, что это проблемы Эппла или Андроида, можно вспомнить, как легко делать бэкап и восстановление внутри экосистемы iOS, или долго рассказывать про все плюсы Google Photos или iCloud. Это все здорово, но на другом уровне абстракции. Речь идет о фотках. Не о файлах, не о системах, не о приложениях и веб-сервисах. Фотки. Для конечного пользователя фотки это фотки, а все остальное — какие-то непонятные и неизбежные усложнения.

Не поймите меня неправильно, современные технологии подобны магии и это охренительно. Но важно помнить, что взаимодействие между людьми и техникой все еще очень примитивно. Легко убедить себя, что будущее наступило, сравнивая современную ОС с каким-нибудь MS-DOS. Но тот факт, что раньше фотки приходилось копировать вручную дискетой, а сейчас фотки можно скопировать автоматически через облако это примерно такой же прогресс, как от лошади к автомобилю. Колоссальное движение вперед, но концептуально — не решение проблемы.

Возможно, стоит избавиться от острой необходимости вообще ехать куда-то. Тогда не нужна ни лошадь, ни автомобиль.

Или нужен телепорт, да.

the dawn of man

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

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

К тому же, дороги сами по себе не являются ценностью, они являются инструментом, как и программирование и компьютерные навыки.

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

P.S. По счастливой случайности у меня нашлись почти все фотки, которые были на старом мамином телефон. И самым простым способом помочь маме удаленно в итоге стало скидывание отдельных фоток с моего компьютера ей в WhatsApp. Вот такое будущее.

Не думайте о будущем

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

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

Вам знакомы внутренние ментальные отговорки «сделаю на следующей неделе» или «через год будет проще». Это называют прокрастинацией и считают, что с ней можно или нужно бороться. Многие гордо заявляют, что увлеченно работают и прокрастинацией не страдают. Так или иначе, фундаментальное свойство, описывающее степень прокрастинации, это сложность управления ментальной машиной времени.

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

Я постоянно ловлю себя на мысли, что планирую сделать что-нибудь приятное в будущем. М-м-м, сегодня вечером меня ждет вкусный ужин. О, а в апреле буду смотреть новый сезон Игры Престолов! Вах, скоро наступит весна, и будет так круто. А наступит лето — куплю новый шоссейный велосипед. Вот заработаю побольше денег — уеду в путешествие по Европе. Как закончу писать эту статью — съем вкусное мороженое. Это, без сомнения, может быть хорошим мотиватором, но я не умею правильно использовать такие мотиваторы, управлять ими. Часто они превращаются в бессмысленные отговорки или в промышленный генератор неудовлетворенности.

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

То же самое нужно делать в отношении прошлого, но об этом в следующий раз.

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

Несколько лет я использовал Things для личных дел. Иногда пробовал альтернативы вроде Todoist, Wunderlist или даже OmniFocus, но в итоге всегда возвращался к Things. Канонический GTD никогда не практиковал, моя система всегда была «по мотивам» GTD. И только недавно осознал главную проблему со всеми перепробованными приложениями и перешел на Трелло.

Главная проблема для меня лично — недостаточная визуализация прогресса. В туду-листах выполненная задача исчезает или как-нибудь прячется. Получается, я всегда смотрю только на то, что мне нужно делать. Сколько бы я ни старался, как бы не работал — в списке будут задачи, которые я еще не выполнил. Мне хочется видеть прогресс, последовательное движение и выполненные задачи.

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

В Трелло очень простая структура: есть доски (борды), в них списки, в списках карточки. У карточки есть заголовок, и к карточке можно прикрепить всякие штуки: картинки, комментарии, файлы, списки, дедлайн, метки, членов команды, стикеры. То есть это не задачи, не туду, не тикеты. Просто доски и списки с карточками. Как их использовать — ваше дело.

Первая доска у меня — Backlog. По аналогии с процессом разработки софта, в бэклог складываются все задачи и идеи. Это то, что в GTD принято называть инбоксом. Бэклог разбит на шесть колонок. В Inbox попадает все подряд. Оттуда разносится по соответствующим колонкам: жизнь, Hexlet, Hexlet-Source (это наш с Кириллом аутсорс), Personal accounting (личные финансы) и Hexlet / someday (задачи и идеи из разряда «когда-нибудь может быть»).

trello personal backlog

В начале каждой недели я выбираю задачи из бэклога и переношу их в доску под названием Sprint. Спринт это одна неделя работы. Это и есть главная доска, решающая проблему визуализации. Все задачи попадают в колонку Ready — они готовы к обработке. Каждое утро я выбираю из нее несколько задач и помещаю в Today. Этим буду заниматься сегодня. Удобно отчитываться перед командой в дэйли-митинге, просто перечисляешь карточки из этой колонки. Начинаю работать, беру карточку и переношу в “Wait / In Progress”. Иногда задачу невозможно завершить, потому что ждешь чего-то или кого-то. Поэтому Wait. А число 3 напоминает, что в этой колонке не должно быть больше трех карточек. Если взялся за три задачи и не завершил ни одну, то нельзя брать четвертую, нужно освободить место.

trello personal sprint

Ну, а потом задача уходит в Done. В течение недели я наблюдаю, как большой список слева последовательно перетекает вправо, и если в понедельник у меня «ух, сколько всего надо сделать!», то в воскресенье у меня «ух, сколько всего я сделал!». И это чудесное чувство.

Потом происходит буддистский ритуал архивации всех карточек из Done.

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

trello personal blog

Еще есть задача для книг. В колонке “Potential reads and themes” собираются потенциально интересные книги или темы (значит еще неизвестно какие книги, но известна тематика) или просто ссылки на какие-нибудь обзоры или блоги, откуда можно набрать новых книг. Из этой колонки выбираются книги в “Up Next”. Теперь нужно найти эти книги где-нибудь. Книги, которые я читаю прямо сейчас разделены на две категории — художественные и не художественные. После прочтения книга может попасть в колонку “Review”. Там в карточке с книгой собираются цитаты или просто мысли, потом эта карточка, возможно, перейдет в доску блога в виде задачи «написать обзор книги». В итоге книга попадает в колонку “Done”, откуда время от времени все книги уходят в архив.

trello personal reading tracking

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

Проблема с оценками в интернете

В последние годы стараюсь минимизировать влияние на себя пользовательских оценок (рейтингов, звездочек, лайков) к приложениям и контенту в интернете. Это сложно. Я автоматически реагирую на рейтинги видеороликов на ютубе, оценки к фильмам на IMDB, звездочки в магазинах приложений. Мне некомфортно покупать книгу без просмотра оценок и отзывов на Goodreads, а товары я сверяю с Амазоном. Это часто бывает полезным, но мне этот механизм не нравится.

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

Практическая проблема состоит в том, что оценки очень часто не являются корректными. Тут несколько случаев:

  1. Оценка без использования. Не посмотрел либо не досмотрел видео или фильм, но поставил оценку.
  2. Оценка не того. Особенно распространено в интернет-магазинах — оценивают не товар, а доставку, упаковку, техподдержку.
  3. Оценка как способ коммуникации. Наверное, видели в магазинах приложений для телефонов: «все ок, но ставлю три звезды, поставлю пять когда добавите розовые кнопки».
  4. Оценка личного восприятия, а не качества. Не согласен со статьей — минус. Но плюсы и минусы задуманы как оценка качества статьи, ее читаемости, интересности, а не как опрос мнений.

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

Фундаментальная проблема же заключается в том, что у людей плохой вкус.

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

Отдельная забавная мысль: было бы круто, если бы оценки ставились автоматически. Купил приложение «планировщик дел», а через месяц смартфон понимает, что благодаря функциям этого приложения пользователь перестал опаздывать на встречи (на основе календаря и геолокации), исчезли постоянные смс-ки с оправданиями и извинениями. Значит, приложение помогло, можно оставить ему автоматическую оценку.

Когда не доверяешь интерфейсам

Неудобный интерфейс это плохо. Но еще хуже это такой интерфейс, которому не доверяешь.

Типичный пример — современные веб-приложения. Я привык открывать ссылки в новом окне с зажатой кнопкой Cmd (в Виндовсе Ctrl). В веб-приложениях ссылка может быть не ссылкой в привычном понимании, а каким-то волшебным элементом интерфейса. И он может среагирует на зажатую кнопку, а может нет. На все воля разработчика.

В Андроиде есть кнопка «назад». Куда она приведет — тоже не всегда известно. Она может закрыть меню в текущем приложении, может вернуться на предыдущий экран, а может вообще закрыть приложение. Самое плохое, что привычное поведение может измениться на уровне приложения после его обновления. В самом приложении может присутствовать своя кнопка «назад», и ее поведение может совпадать с телефонной кнопкой «назад», а может и не совпадать.

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

Кстати, кнопкой K всегда можно поставить видео на паузу, а кнопками J и L перематывать его вперед и назад.

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

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

Бытовые скриншоты

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

Я жалею, что недостаточно фотографировал все квартиры и дома, где жил. Но еще больше жалею, что не делал достаточно скриншотов.

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

Вот как выглядел мой рабочий стол 9 лет назад. Это Red Hat и KDE. Боже, какое все страшное-то. ICQ. Вы помните свой номер? Я помню, он въелся в мозг: 179464832. Помню постоянные проблемы с кодировкой ICQ в Линуксе. От одного скриншота столько воспоминаний и эмоций, ух!

А вот рабочий стол полтора года назад. Большой внешний монитор, миллион чатов в Скайпе. Блин, как мы жили без Слака?! Кирилл что-то объясняет мне. Прикольно вспомнить приложения, которыми пользовался месяцами, иногда годами, а потом по какой-то причине перестал. Сейчас даже не все иконки в трее узнал.

Скриншоты это бытовые фотки нашего времени. Сохранять их очень легко. В Маке Cmd+Shift+3 делает снимок всего экрана, а с Cmd+Shift+4 можно выделить любой кусочек. В Виндовсе есть встроенное приложение Snap Tool вроде. Советую включить автоматическое сохранение скриншотов в Дропбокс или Яндекс.Диск.

Обновление блога

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

  • Последовательно упрощаю все аспекты жизни, в том числе цифровой. Уменьшаю количество сервисов и технологий, храню текст исключительно в текстовых файлах и все такое. Надо будет отдельно написать об этом. Эгея это PHP, свои шаблоны, свой язык разметки. Джекилл это текстовые файлы, маркдаун, статические страницы и отсутствие движка. Мне так намного комфортнее.
  • В том же стремлении захотелось упростить дизайн, сделать его примитивным и легким. Натягивать новую тему для Эгеи — довольно болезненная операция.
  • Решил собрать все в одном месте — блог, статьи, переводы, лекции, путешествия. В старой версии для этого приходилось иметь Эгею для блога и Вордпресс для сайта (для всего остального). С Джекиллом получилось легче: все материалы это посты, не-блоговые материалы удобно вынесены в категории со своими кастомными страницами.

Теперь здесь можно найти все переводы хороших видеороликов (например, лекции Краусса и речи Фейнмана), избранные статьи (там пока не так много), лекции и доклады (самые интересные — про алгоритмы и английский язык, имхо), ну и велопутешествия (пока только по одной стране). А еще все заметки про английский язык теперь доступны на одной странице милым списком.

Я сделал редирект со старого блога на новый, в том числе для RSS, но если вам не лень — будет круче переподписаться на новый фид — https://rakh.im/feed.xml. О новых заметках буду писать в твиттер и фейсбук.

Планирую продолжать писать про английский, но поменьше. Собираюсь писать о жизни, интерфейсах, медитации, книгах, бизнесе, обществе. Хочу вернуть этот клевый терапевтический эффект, связанный с последовательным, адекватным описанием некоторых идей, переживаний, мыслей. Видите, продолжаю жить конструктивным эгоизмом: думаю о блоге в первую очередь как о чем-то, что полезно мне. Ну, вы ведь не обижаетесь?

Ах, да, теперь в блоге нет комментариев. Отдельно напишу почему.

Как компьютеры складывают числа

Мы в Хекслете любим разрабатывать не только прикладные курсы, но и более фундаментальные (например, про алгоритмы или операционные системы). Но мы пока не спускались ниже уровня ОС в иерархии абстракций. А там, внутри, столько всего интересного! Для многих людей, да даже для многих профессиональных программистов остаются загадкой процессы, происходящие внутри микропроцессора, на уровне отдельных транзисторов.

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

Перевод Наталии Басс, озвучка моя.

P.S. В начале видео ошибочно процессором называют северный мост.

How to evaluate personal growth

Note: I don’t differentiate between personal and professional growth in this essay. Professional is considered a subset of personal.

New Year is upon us, and along with resolutions for 2015 many of us try to take a look at 2014 and find some promising changes. Did I become a better entrepreneur? Am I smarter than before? Am I going in the right direction? Do I even know what direction to go?

It can be hard to evaluate personal growth, but it’s very important to get some idea about it regularly. Seeing that you’re getting better is a huge motivation boost.

It’s easier with measurable things, for example, with programming. A year ago I didn’t know Ruby on Rails, today I can build simple things with it. Several months ago I’d spend days setting up the working environment, today I have made automation tools to deal with it in minutes.

Back in the university it was also pretty comfortable: I got marks and I could see if I’m getting better. I could also measure the time needed to complete assignments. Working for someone is another position where you have delegated some part of the evaluation to a trusted party: your boss, your team or your clients. Getting a bonus or a raise or just a positive comment gives you some idea. Since January 2014 I’m working on my startup. There are of course measurable things there too: sales, clients, feedback. Just like in school or at work they measure the outcome, and you can get some idea of what it took to get there. But being an entrepreneur (god, I still feel so sketchy saying that), it’s a bit different.

Working as a software developer for some company, you have some tasks, some context and some defined goals. There is a relatively small set of skills you use and assess. Mainly, programming, communication, learning, teaching. So, if you meet all the deadlines, keep your team and clients happy and learn and adopt new things — seems like those skills are getting stronger. In other words, you are able to connect the outcome with your actions and skills.

The difference you’d feel as an entrepreneur in a startup is that the number of skills and actions is larger. Not that entrepreneurs are better than developers! Au contraire, they are worse: they don’t have a chance to focus on a single thing for long periods of time, they have to deal with lots of things, using different skills, but still have the same number of hours in a day as everyone else.

As a result, when your startup, say, gets more sales, you can’t always clearly see the path from actions and skills to this outcome. Yes, you can see the feature your team completed to get there, but that’s not deep enough.

It gets worse: sometimes the path isn’t there at all. Maybe, you had nothing to do with this increase in sales. Or maybe “nothing” is exactly what you did: sales increased because you didn’t do what you wanted, didn’t get in the way.

Startups are about learning, but measuring learning is hard. How your actions and skills affect the overall business is a topic for another discussion, let’s get back to personal growth. So, it’s the end of the year, there’s definitely been some progress over the months, but did I become better? It is very possible that I didn’t grow at all — my team did, my co-founder did, but not me.

Maybe, one way to tackle this is to imagine you-from-the-past dealing with today’s issues. But that’s impossible, unfortunately. That person is gone, you’ll never have access to your past, unless they invent a time machine. But even if they do, and you go there and ask you-in-the-past “what would you do in this situation?”, and get an answer (along with “what the hell, who are you?!”), what next? How to determine if your present answer is better and if it shows your superiority? But fear not, there is a way to evaluate personal growth! It’s called… embarrassment.

About 12 months ago I was convinced I have to spend weeks writing a huge project description and business plan, then hire 5 best developers and designers I can find, work for several months and release this awesome, successful and fantastic product everybody would love. If you’re into startups you know this is a bad bad idea. I know it now, and I feel embarrassed about considering that a year ago. Did I become better in thinking about startups? I’m pretty sure I did.

The best way to preserve this embarrassment material is to keep a diary. Write about your ideas, actions and thoughts every day, and review them in the future. Of course, if you’re embarrassed by everything you do in the past — that’s a bad sign. But if you have nothing — that’s even worse. So, hopefully, a year from now I will feel embarrassed about some of my current ideas and actions. The hard part is to accept the idea that you’re never perfect, you’re never the best. The idea is not to be the best, it is to be better.

Запуск Hexlet.io

Мы с Кириллом наконец готовы показать вам новую версию образовательного проекта Хекслет. Хекслет это платформа, где программисты создают и продают короткие практические уроки.

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

Пишите по любым вопросам на [email protected]

Как учить английский всю жизнь

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

Ссылки из последней части доклада:

  • Italki – изучение языка по скайпу
  • Ororo – фильмы и сериалы с английскими субтитрами и переводом по наведению.
  • Хаматата – онлайн-плеер для просмотра фильмов на английском языке с переводом субтитров по клику
  • ДуоЛинго – изучение языков.
  • Urban Dictionary – словарь сленга

P.S. В очередной раз спасибо Андрею за запись!

Почему не нужно делать стартап в онлайн-образовании

На УльКемпе выступил с докладом про онлайн-образование и Хекслет. Как и на прошлом выступлении в Омске, почему-то решил сформулировать тему на основе отрицания. Ну, видимо фишка такая.

Новая версия Хекслета, о которой идет речь в докладе, уже доступна по адресу hexlet.io.

P.S. Спасибо Андрею за запись!

Мечты об одержимости

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

Я был уверен, что стану одержимым видео-играми как только у меня появится игровая приставка. Родители купили мне Денди (точнее Сюбор), но вместо реальной одержимости я стал одержим самой идеей одержимости. Я не прошел ни одной игры, да и вообще играл редко, но усердно заполнял тетради чит-кодами, картами уровней, схемами прохождения. Часами изучал ассортимент картриджей во всех магазинах города, составляя таблицы сравнения: так я выбирал что же купить. Пожалуй, я был одержим чем-то – инфраструктурой, окружением этих игр. Но не самими играми. Я симулировал одержимость играми.

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

Эти люди реально болели чем-то всей душой, а я тыкался во все подряд: футбол, программирование, писательство, музыка, фэнтези, коллекционирование марок, выжигание по дереву, интернет…

Я не могу быть одержимым. И мне понадобилось 20 с лишним лет, чтобы понять, что мне на самом деле очень повезло.

Практические мини-курсы

Мы с Кириллом Мокевниным запустили экспериментальный проект: практические мини-курсы с узкой тематикой. Мы назвали такие курсы “тенгами”, от английского textbook + engineering. Эти мини-курсы рассчитаны на новичков.

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

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

Третий шаг – интерактивное упражнение для закрепления знаний в реальном мире. Эти упражнения выполняются прямо в браузере.

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

Первый “тенг” посвящен протоколу HTTP. Он сделан для тех, кто хочет понять, как работает HTTP и почему он работает именно так. Практическая часть – это написание собственного парсера http на любом языке программирования.

Видео из теоретической части мы распространяем бесплатно, вот оно:

В остальном тенги платные, мы начали с $1.9 или 68 рублей, это чашка кофе (или кипяточек в Москве). 100% возврат денег без вопросов если вам что-то не понравится.

P.S. Результаты этого эксперимента сильно повлияют на развитие Хекслета. Жду ваших комментариев. Спасибо!

UPD: Этот прототип превратился в новую версию Хекслета спустя несколько месяцев.

Стрелять нужно в собаку

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

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

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

Если на вас нападает собака, которую на поводке держит хозяин, то стрелять нужно сначала в собаку.