В сегодняшнем выпуске нашей рубрики Алексей Катаев рассказывает о том, как он научился читать по 17 книг в месяц, не тратя на это кучу времени, и рекомендует пять полезных произведений из разряда «нетленки», показавшихся ему наиболее полезными. А в конце — традиционная, но маленькая подборка ссылок из нашего рабочего Слака.
Находим время на чтение
Слово deusdeorum:
Хочу поделиться, как я для себя решил проблему с чтением книг (disclaimer: речь про нон-фикшн и книжки без примеров кода). Проблема у всех одна: читать круто, книжек много, а времени — нет. После работы сил читать нет, а в выходные хочется отдыхать. Возможно, вам поможет мой способ.
За 2017 год я прочитал 3 книги, все 3 — в самолетах (там не работает slack). А потом Харитон Матвеев (один из основателей Skyeng) сказал мне: «чтобы понять базовые идеи, нужно прочитать 300 книг». 300?! Я даже в свой список «когда-нибудь прочитать» внес только пару десятков к этому времени.
Недавно я начал в обед каждый день делать часовые прогулки. И тут осенило: попробую преодолеть неприязнь к аудиокнигам и во время ходьбы слушать книги (вдвойне эффективно!). Затем я совместил это с сервисом smartreading — и начал чередовать полные версии с краткими аудиоизложениями (всегда слушаю краткую перед полной, если такая есть).
За июнь я прочитал 17 книг: 15 smart и 2 полных, за июль — пока 13.
Теперь все советы кратко:
• прогулки отмечаю в календаре на неделю вперед, как встречи (невозможно занять эти слоты);
• книги качаю на неделю вперед, заранее скидываю на телефон;
• веду бэклог всех рекомендованных книг + туда же всякие статьи типа «топ-10 книг для тимлида»;
• после прочтения пишу очень краткое ревью в 5 пунктов (основные идеи + чем полезна);
• каждой книге ставлю оценку + пометку, нужно ли читать полную версию;
• пользуюсь не стандартным плеером, а Smart AudioBook Player (удобно отматывать на 10/60 сек назад, если затупил);
• если книга скучная или не очень полезная — снимаю наушники и удаляю книгу;
• не читайте книги из топа smartreading, это треш.
До сих пор не решил для себя проблему, что делать с книгами, которых нет в аудио. Нужен какой-то флоу, когда и как их читать. Есть идея попробовать Speech Synthesis.
5 книг для тимлидов и не только
1. Everything is Negotiable
на русском
Крутая книга по ведению переговоров. Множество практических советов, которые помогут не только сторговаться в магазине, но и, например, договариваться о сроках выполнения задачи с заказчиком. Через пару дней после прочтения воспользовался приемом из книги и сэкономил $300 в сервисе cloudinary.
2. Emotional Intelligence 2.0
на русском
Не секрет, что для тимлида важно не только быть крутым техническим специалистом, но и круто управлять людьми и командой. Книга — хороший обзор всех составляющих эмоционального интеллекта с конкретными советами, как их улучшать.
3. Never Eat Alone
на русском
Раньше я приходил на конференции / митапы, чтобы послушать доклады и почерпнуть полезные идеи. Для меня было непонятно, как знакомиться с другими людьми, зачем это и пр. Не скажу, что именно эта книга изменила мою жизнь. Но, если вы хотите двигаться в этом направлении, она будет хорошим шагом вперед.
4. Lying (Sam Harris)
на русском
А вот эту книгу советую прочитать всем, не только менеджерам или тимлидам. Суперкоротко: всегда говорить правду долгосрочно выгоднее, чем «иногда врать». Заставьте прочитать всю команду, может, тогда будет проще вместе работать.
5. Getting Things Done
на русском
Это MUST READ для всех менеджеров, но и разработчикам будет полезна. Я тысячу раз про нее слышал, и какие-то идеи тоже. Но советую читать целиком и в полной версии. Сэкономит вам месяцы «усовершенствования» своей собственной системы задач / беклогов / приоритизации, особенно если вы только начинаете (страдать от сотен задач в списке todo).
Немного полезных статей
Хороший обзор полезных мелких фишек Typescript
Любопытно про Record, который, по сути, заменяет запись вида `smth: { [ key: string ]: ISmth }` на более читаемое `Record<string, ISmth>`. Также привычные Partial и Required и более интересные Pick и Omit, позволяющие быстро составить тип из части полей другого интерфейса.
«Мы изучили некоторые популярные типы TypeScript с примерами реального кода. Мы использовали демо-проект, но все эти типы работают как минимум в одном известном мне полноценном приложении.
Однако, надо добавить кое-что по поводу статических типов. Часто, изучая новую технологию или сталкиваясь со сложной задачей при разработке, вы начинаете решать техническую проблему и можете забыть об общей цели. Статические типы — не цель вашей работы, это всего лишь инструмент. Если они становятся центром всего проекта, значит, у вас что-то пошло не так».
Работа с нормализацией данных в Akita и Angular
Для любителей альтернативных стейт менеджементов — работа в недавно релизнутой Akita. Если кто не в курсе, что это, то в принципе там по коду всё понятно (хранение данных в Entity с потоками), а общее описание тут.
«В фильме может быть много актеров, и у него может быть много жанров. Посмотрев на такой ответ от сервера, мы можем увидеть его недостатки:
• Дублирующиеся объекты (актеры или жанры) увеличат потребление памяти и нагрузку на сервер.
• Обновления сложны и могут стать ужасными очень быстро (из-за природы nested spreads). Например, если мы хотим обновить имя актера, нам придется пройтись по каждому movie.actors, проверить его наличие и обновить. (то же касается удаления)
По этим причинам, рекомендуемый нами подход к управлению nested данными в Akita состоит в обращении с этими данными как с базой и сохранении их в нормализованном виде».
Измерение производительности с моделью RAIL
(базовые вещи) Описание подхода к оптимизации/контролю производительности фронта. Как обычно, основной фокус на анимациях и быстрой загрузке для медленных мобилок с индийским интернетом, но в целом гайд даёт корректное общее направление, какие параметры замерять. В конце — ссылки на тулзы/гайды по использованию девтулз хрома для дебага перфоманса страницы.
«Пользователи по-разному оценивают задержки производительности, в зависимости от состояния сети и типа железа. Например, время загрузки в 1000 мс может считаться приемлемым на мощном десктопе через быстрый WiFi, поэтому пользователи привыкают к нему. Но для мобильных устройствах в медленных 3G-сетях более реалистичной видится цель в 5000 мс, поэтому пользователи таких устройств в целом терпеливее».
RabbitMQ против Kafka: два разных подхода к обмену сообщениями
Перевод отличной статьи про шины данных, очереди и Rabbit с Kafka, замечательный разбор по функционалу. Жаль, что в оригинале автор не дописал 5-ю часть про fault tolerance и HA.
Ну и традиционное — мы всегда ищем крутых разработчиков!
Автор: Ontaelio