Что нужно делать, чтобы стать техническим директором?
Из книги Камиль Фурнье «От разработчика до руководителя»:
«Найдите работу, где вам будут передавать практический опыт и вместе с тем дадут возможность получать новые технические навыки.
Постарайтесь найти для совместной работы людей, заставляющих вас двигаться к успеху и поощряющих за достижения, вдохновляющих преодолевать себя.
Поддерживайте прочные отношения с соратниками, начиная от одноклассников и заканчивая членами нынешней команды. Начинающие программисты часто недооценивают будущий рост соратников.
Развивайтесь в смежных областях: хороший техдир должен разбираться в проектном менеджменте, уметь вести техническую документацию и иметь хорошие коммуникативные способности.
Технические директора в большинстве работают в небольших компаниях, часто являясь их соучредителями. Если вы хотите пойти таким путём, найдите компанию, из которой ранее уже уходили сотрудники, чтобы основать что-то своё. Именно в ней вы сможете найти своих будущих соучредителей или возможность быстро попасть в новую компанию»
Из книги Камиль Фурнье «От разработчика до руководителя»:
«Найдите работу, где вам будут передавать практический опыт и вместе с тем дадут возможность получать новые технические навыки.
Постарайтесь найти для совместной работы людей, заставляющих вас двигаться к успеху и поощряющих за достижения, вдохновляющих преодолевать себя.
Поддерживайте прочные отношения с соратниками, начиная от одноклассников и заканчивая членами нынешней команды. Начинающие программисты часто недооценивают будущий рост соратников.
Развивайтесь в смежных областях: хороший техдир должен разбираться в проектном менеджменте, уметь вести техническую документацию и иметь хорошие коммуникативные способности.
Технические директора в большинстве работают в небольших компаниях, часто являясь их соучредителями. Если вы хотите пойти таким путём, найдите компанию, из которой ранее уже уходили сотрудники, чтобы основать что-то своё. Именно в ней вы сможете найти своих будущих соучредителей или возможность быстро попасть в новую компанию»
Почему не стоит использовать компоненты высшего порядка (HOCs) в Реакте и какая им есть альтернатива — https://andrew-r.ru/notes/react-hocs
Если вы устали от постоянного чувства гонки за технологиями и лучшим будущим, возможно вам поможет хороший совет Тима Маринина о важности пустого пространства в жизни — https://marinintim.com/2018/negative-space/
Автоматизация релизов с помощью semantic-release
На работе мне регулярно нужно публиковать NPM-пакет и вести для него список изменений. Раньше я делал это вручную, и поэтому на это уходило ощутимое количество времени: нужно было сформировать список изменений, определить следующую версию, выполнить
Если вы столкнулись (или в будущем столкнётесь) с такой же проблемой, сразу внедряйте semantic-release: он автоматизирует всю рутину и максимально исключает человеческий фактор (например, неправильный выбор следующей версии пакета). semantic-release встраивается в CI, так что для публикации новой версии пакета достаточно просто запушить код в репозиторий.
Что особенно круто — процесс публикации максимально абстрагирован и разбит на шаги, а вся специфичная логика реализуется через плагины. Это позволяет делать публикацию куда угодно, а не только в NPM, да и вообще кастомизировать процесс публикации: например, можно реализовать отправку списка изменений в Slack после публикации.
Единственное, что от вас потребуется — один раз настроить инструмент и затем выполнять соглашения по именованию коммитов, по которым он будет автоматически определять следующую версию пакета и формировать список изменений. Кстати, требования к именованию коммитов — ещё одно косвенное преимущество: история изменений становится чище и читабельнее.
На работе мне регулярно нужно публиковать NPM-пакет и вести для него список изменений. Раньше я делал это вручную, и поэтому на это уходило ощутимое количество времени: нужно было сформировать список изменений, определить следующую версию, выполнить
npm publish
, дождаться прогона всех тестов и самой публикации.Если вы столкнулись (или в будущем столкнётесь) с такой же проблемой, сразу внедряйте semantic-release: он автоматизирует всю рутину и максимально исключает человеческий фактор (например, неправильный выбор следующей версии пакета). semantic-release встраивается в CI, так что для публикации новой версии пакета достаточно просто запушить код в репозиторий.
Что особенно круто — процесс публикации максимально абстрагирован и разбит на шаги, а вся специфичная логика реализуется через плагины. Это позволяет делать публикацию куда угодно, а не только в NPM, да и вообще кастомизировать процесс публикации: например, можно реализовать отправку списка изменений в Slack после публикации.
Единственное, что от вас потребуется — один раз настроить инструмент и затем выполнять соглашения по именованию коммитов, по которым он будет автоматически определять следующую версию пакета и формировать список изменений. Кстати, требования к именованию коммитов — ещё одно косвенное преимущество: история изменений становится чище и читабельнее.
Секрет продуктивности от Bell Labs
Начал осваивать материалы, рекомендуемые на mtdv.io. Первой стала статья How to be a star engineer Роберта Келли, написанная по мотивам его исследования в Bell Labs в середине 80-х годов.
Что отличает продуктивных работников, считающихся «звёздами», от обычных крепких середняков? Наивно кажется, что дело в таланте, высоком IQ или в чём-то подобном. Исследование показало, что их отличают далеко не врождённые трудноприобретаемые качества, а подход к работе. Келли обнаружил девять стратегий вроде инициативности и нетворкинга, отличавших звёзд от обычных работников.
Суть в том, что этим девяти стратегиям можно научиться: по результатам исследования Bell Labs запустили внутреннюю программу повышения продуктивности для сотрудников, где в течение нескольких недель они осваивали каждую из стратегий. Прохождение программы повысило продуктивность участников как по их собственному мнению, так и по мнению их менеджеров и коллег.
Учитывая то, что исследованию уже практически 30 лет, поразительно, что ни о чём подобном не рассказывают в школах или вузах.
Сама статья (ПДФ, ~350 КБ): How to be a star engineer
Больше подробностей об исследовании и его результатах: How Bell Labs Creates Star Performers
Книга по мотивам исследования: How to be a star at work
Выжимка книги (ПДФ, ~60КБ)
Начал осваивать материалы, рекомендуемые на mtdv.io. Первой стала статья How to be a star engineer Роберта Келли, написанная по мотивам его исследования в Bell Labs в середине 80-х годов.
Что отличает продуктивных работников, считающихся «звёздами», от обычных крепких середняков? Наивно кажется, что дело в таланте, высоком IQ или в чём-то подобном. Исследование показало, что их отличают далеко не врождённые трудноприобретаемые качества, а подход к работе. Келли обнаружил девять стратегий вроде инициативности и нетворкинга, отличавших звёзд от обычных работников.
Суть в том, что этим девяти стратегиям можно научиться: по результатам исследования Bell Labs запустили внутреннюю программу повышения продуктивности для сотрудников, где в течение нескольких недель они осваивали каждую из стратегий. Прохождение программы повысило продуктивность участников как по их собственному мнению, так и по мнению их менеджеров и коллег.
Учитывая то, что исследованию уже практически 30 лет, поразительно, что ни о чём подобном не рассказывают в школах или вузах.
Сама статья (ПДФ, ~350 КБ): How to be a star engineer
Больше подробностей об исследовании и его результатах: How Bell Labs Creates Star Performers
Книга по мотивам исследования: How to be a star at work
Выжимка книги (ПДФ, ~60КБ)
Прозрачность, забота о пользователе и просто красота: ребята из Timestripe не поленились сделать понятное и наглядное объяснение принципа работы их механизма шифрования пользовательских данных — https://timestripe.com/encryption/
Почему не нужно стремиться к 100% покрытию кода юнит-тестами
https://andrew-r.ru/notes/unit-tests-coverage
TL;DR: покрытие кода работает хорошо как индикатор проблем. Если оно низкое, вероятно, тестов написано слишком мало. Но использовать покрытие как индикатор качества тестов нельзя: высокого покрытия можно добиться даже без единой проверки.
https://andrew-r.ru/notes/unit-tests-coverage
TL;DR: покрытие кода работает хорошо как индикатор проблем. Если оно низкое, вероятно, тестов написано слишком мало. Но использовать покрытие как индикатор качества тестов нельзя: высокого покрытия можно добиться даже без единой проверки.
Альтернатива DuckDuckGo
Раньше я уже писал, почему стоит перейти с поиска Google на DuckDuckGo. Но многие программисты при переходе на DuckDuckGo замечают, что качество поиска сильно падает и искать ответы на технические вопросы становится сложнее.
Уже несколько месяцев я использую StartPage: приватный поисковик, который рекомендовал даже Эвард Сноуден. Его преимущество перед DuckDuckGo отлично описано на главной странице:
“You can’t beat Google when it comes to online search. So we’re paying them to use their brilliant search results in order to remove all trackers and logs. The result: The world’s best and most private search engine.”
Раньше я уже писал, почему стоит перейти с поиска Google на DuckDuckGo. Но многие программисты при переходе на DuckDuckGo замечают, что качество поиска сильно падает и искать ответы на технические вопросы становится сложнее.
Уже несколько месяцев я использую StartPage: приватный поисковик, который рекомендовал даже Эвард Сноуден. Его преимущество перед DuckDuckGo отлично описано на главной странице:
“You can’t beat Google when it comes to online search. So we’re paying them to use their brilliant search results in order to remove all trackers and logs. The result: The world’s best and most private search engine.”
Принцип: сначала платить себе
Сначала платить себе — универсальный жизненный принцип, подробно описанный Николаем Товеровским. Суть в том, что у каждого из нас есть обязательства перед другими людьми или желание кому-то помочь. Но ни помочь, ни выполнить обязательства не получится, если в первую очередь не позаботиться о себе.
Например, нельзя заниматься благотворительностью, когда у самого ни гроша в кармане. Нельзя стать более ценным специалистом, не выделяя время на самообразование.
Мне этот принцип особенно помогает не уходить с головой в рабочую рутину, учиться и делать сайд-проекты.
Сначала платить себе — универсальный жизненный принцип, подробно описанный Николаем Товеровским. Суть в том, что у каждого из нас есть обязательства перед другими людьми или желание кому-то помочь. Но ни помочь, ни выполнить обязательства не получится, если в первую очередь не позаботиться о себе.
Например, нельзя заниматься благотворительностью, когда у самого ни гроша в кармане. Нельзя стать более ценным специалистом, не выделяя время на самообразование.
Мне этот принцип особенно помогает не уходить с головой в рабочую рутину, учиться и делать сайд-проекты.
Бюро Горбунова
Зачем сначала платить себе?
Как сначала платить себе
Прошлая публикация была о том, зачем платить себе, а в этой я расскажу о двух техниках, которые мне помогают в этом.
На каждую неделю я составляю краткий план, в который входят мои личные задачи — например, по сайд-проектам или учёбе. Этот план фиксирован, в течение недели он не пополняется — это защищает от раздувания, которое приведёт к его невыполнению. Я составляю план в блокноте, который лежит на рабочем столе — он всегда перед глазами, и в моменты прокрастинации заставляет вспомнить о наличии более полезных дел. План хорошо работает и как визуализация прогресса за неделю.
План — половина дела, его ещё нужно выполнять. Очевидный способ — заниматься делами в свободное время после работы. Проблема в том, что после работы мы устаём, и хочется потупить в сериал, а не проходить какой-нибудь сложный курс или делать сайд-проект. Решение — выделять себе утром перед работой время на личные дела и учёбу. Это решение работает, но требует дисциплины и соблюдения режима (нужно рано ложиться и рано вставать). Главное не пытаться резко перестроиться с подъёма в 9 утра на подъём в 5 утра, иначе постигнет разочарование :–)
Прошлая публикация была о том, зачем платить себе, а в этой я расскажу о двух техниках, которые мне помогают в этом.
На каждую неделю я составляю краткий план, в который входят мои личные задачи — например, по сайд-проектам или учёбе. Этот план фиксирован, в течение недели он не пополняется — это защищает от раздувания, которое приведёт к его невыполнению. Я составляю план в блокноте, который лежит на рабочем столе — он всегда перед глазами, и в моменты прокрастинации заставляет вспомнить о наличии более полезных дел. План хорошо работает и как визуализация прогресса за неделю.
План — половина дела, его ещё нужно выполнять. Очевидный способ — заниматься делами в свободное время после работы. Проблема в том, что после работы мы устаём, и хочется потупить в сериал, а не проходить какой-нибудь сложный курс или делать сайд-проект. Решение — выделять себе утром перед работой время на личные дела и учёбу. Это решение работает, но требует дисциплины и соблюдения режима (нужно рано ложиться и рано вставать). Главное не пытаться резко перестроиться с подъёма в 9 утра на подъём в 5 утра, иначе постигнет разочарование :–)
Telegram
Заметки Андрея Романова
Принцип: сначала платить себе
Сначала платить себе — универсальный жизненный принцип, подробно описанный Николаем Товеровским. Суть в том, что у каждого из нас есть обязательства перед другими людьми или желание кому-то помочь. Но ни помочь, ни выполнить…
Сначала платить себе — универсальный жизненный принцип, подробно описанный Николаем Товеровским. Суть в том, что у каждого из нас есть обязательства перед другими людьми или желание кому-то помочь. Но ни помочь, ни выполнить…
О приватных данных
Прочитал на днях расследование от The New York Times о том, как мобильные приложения собирают и продают данные о наших передвижениях. Несмотря на заявления рекламных компаний о деперсонализации данных, журналистам NYT достаточно легко удалось связать записи с реальными людьми.
Вряд ли многие бы согласились каждый день отчитываться перед чужими людьми о своих передвижениях, поисковых запросах, посещённых сайтах и переписке. А ведь регулярное использование смартфона и компьютера немногим от этого отличается (достаточно взглянуть на myactivity.google.com, если вы пользуетесь сервисами Гугла и не меняли стандартные настройки). Ладно смартфоны и компьютеры — впереди умные дома, автомобили и чёрт знает что ещё.
Хоть сейчас данные пользователей и используются достаточно безобидно (например, для таргетированной рекламы), никто не гарантирует, что так будет всегда. Посадки за мемы в приватных альбомах ВК и инициативы австралийского правительства тому подтверждение. Так что нам ещё только предстоит научиться жить в цифровом мире не во вред себе.
Прочитал на днях расследование от The New York Times о том, как мобильные приложения собирают и продают данные о наших передвижениях. Несмотря на заявления рекламных компаний о деперсонализации данных, журналистам NYT достаточно легко удалось связать записи с реальными людьми.
Вряд ли многие бы согласились каждый день отчитываться перед чужими людьми о своих передвижениях, поисковых запросах, посещённых сайтах и переписке. А ведь регулярное использование смартфона и компьютера немногим от этого отличается (достаточно взглянуть на myactivity.google.com, если вы пользуетесь сервисами Гугла и не меняли стандартные настройки). Ладно смартфоны и компьютеры — впереди умные дома, автомобили и чёрт знает что ещё.
Хоть сейчас данные пользователей и используются достаточно безобидно (например, для таргетированной рекламы), никто не гарантирует, что так будет всегда. Посадки за мемы в приватных альбомах ВК и инициативы австралийского правительства тому подтверждение. Так что нам ещё только предстоит научиться жить в цифровом мире не во вред себе.
Пока, 2018: вспоминаю значимые для меня события за прошедший год — https://andrew-r.ru/notes/bye-2018/
Наука сна
Легко читаемый и интересный обзор истории сна и его аспектов, подкреплённый результатами многочисленных исследований — https://andrew-r.ru/books/dreamland/
Легко читаемый и интересный обзор истории сна и его аспектов, подкреплённый результатами многочисленных исследований — https://andrew-r.ru/books/dreamland/
Визуализация длительности жизни
Вдохновился предложенным Тимом Урбаном способом визуализации жизни в виде таблицы и запилил для себя онлайн-версию: https://andrew-r.ru/timeline/
Суть проста: ячейки таблицы — это недели, а каждая строка — год. С помощью такой таблицы можно визуализировать важные периоды, ставить цели (кстати, для целей есть классный сервис Timestripe) или просто закрашивать прошедшие недели и напоминать себе, что у нас не очень-то много времени и его не стоит тратить расточительно.
Вдохновился предложенным Тимом Урбаном способом визуализации жизни в виде таблицы и запилил для себя онлайн-версию: https://andrew-r.ru/timeline/
Суть проста: ячейки таблицы — это недели, а каждая строка — год. С помощью такой таблицы можно визуализировать важные периоды, ставить цели (кстати, для целей есть классный сервис Timestripe) или просто закрашивать прошедшие недели и напоминать себе, что у нас не очень-то много времени и его не стоит тратить расточительно.
Wait But Why
Your Life in Weeks
All the weeks in a human life shown on one chart.
Форматирование дат и времени в браузере
Не используйте сторонние библиотеки для ручного форматирования дат и времени — в разных локалях разные правила их отображения: русские привыкли видеть 11.03.2019, а англичане 3/11/2019. Используйте встроенный в браузер Intl API, который сам определяет локаль пользователя и форматирует дату нужным образом.
Кстати, недавно пал последний рубеж обороны сторонних библиотек — в Intl API появился RelativeTimeFormat, позволяющий формировать из дат фразы вида «5 минут назад».
Не используйте сторонние библиотеки для ручного форматирования дат и времени — в разных локалях разные правила их отображения: русские привыкли видеть 11.03.2019, а англичане 3/11/2019. Используйте встроенный в браузер Intl API, который сам определяет локаль пользователя и форматирует дату нужным образом.
Кстати, недавно пал последний рубеж обороны сторонних библиотек — в Intl API появился RelativeTimeFormat, позволяющий формировать из дат фразы вида «5 минут назад».
Отдельные стрелки на клавиатуре не нужны
Простой и действенный лайфхак от Никиты Прокопова: чтобы не дёргать руку от букв к стрелкам на клавиатуре, можно переназначить функции стрелок на клавиши Caps Lock + I/J/K/L и всегда держать руки по центру клавиатуры.
Спустя год работы в таком режиме я ни за что не вернусь к стандартной раскладке с отдельными стрелками: теперь очевидно, насколько она неудобна.
Попробуйте: https://tonsky.me/blog/cursor-keys/
Простой и действенный лайфхак от Никиты Прокопова: чтобы не дёргать руку от букв к стрелкам на клавиатуре, можно переназначить функции стрелок на клавиши Caps Lock + I/J/K/L и всегда держать руки по центру клавиатуры.
Спустя год работы в таком режиме я ни за что не вернусь к стандартной раскладке с отдельными стрелками: теперь очевидно, насколько она неудобна.
Попробуйте: https://tonsky.me/blog/cursor-keys/
Математика для программистов
Хочу прокачаться в областях математики, которые могут пригодиться в работе и просто разовьют мышление: дискретка, линейная алгебра, теория вероятностей (наверняка я что-то ещё упустил).
Если знаете хорошие материалы для самостоятельного обучения, а ещё лучше — толковых репетиторов или курсы с обратной связью, расскажите мне о них: @andrew_r.
Из самых полезных/интересных ресурсов составлю и опубликую подборку.
Хочу прокачаться в областях математики, которые могут пригодиться в работе и просто разовьют мышление: дискретка, линейная алгебра, теория вероятностей (наверняка я что-то ещё упустил).
Если знаете хорошие материалы для самостоятельного обучения, а ещё лучше — толковых репетиторов или курсы с обратной связью, расскажите мне о них: @andrew_r.
Из самых полезных/интересных ресурсов составлю и опубликую подборку.
Uses This
Обнаружил огромную базу интервью с людьми разных профессий об инструментах, которые они регулярно используют в работе: от железа до софта. Интервью публикуются с 2009 года, есть выпуски с достаточно известными людьми вроде Гейба Ньюэлла или Пола Грэма.
В общем, если вы уже расспросили всех своих знакомых об их рабочем окружении и инструментах, держите новый источник информации — https://usesthis.com/
Обнаружил огромную базу интервью с людьми разных профессий об инструментах, которые они регулярно используют в работе: от железа до софта. Интервью публикуются с 2009 года, есть выпуски с достаточно известными людьми вроде Гейба Ньюэлла или Пола Грэма.
В общем, если вы уже расспросили всех своих знакомых об их рабочем окружении и инструментах, держите новый источник информации — https://usesthis.com/
Learning How to Learn
Учителя мне часто говорили, что школы и ВУЗы нужны, чтобы научить нас учиться. Чтобы понять, что это не так, достаточно вспомнить распространённую среди студентов практику подготовки к экзамену в ночь перед ним.
Курс Learning How to Learn на Coursera восполняет этот пробел нашей системы образования. В нём рассматриваются нюансы работы нашего мозга и техники эффективного обучения, обоснованные научными исследованиями.
Автор курса — Барбара Оакли, она же автор книги «Думай как математик». Содержимое курса и книги практически идентичны (но в курсе есть тесты и дедлайны), так что можно выбрать, что больше по душе, или одновременно проходить курс и читать книгу для закрепления материала.
Учителя мне часто говорили, что школы и ВУЗы нужны, чтобы научить нас учиться. Чтобы понять, что это не так, достаточно вспомнить распространённую среди студентов практику подготовки к экзамену в ночь перед ним.
Курс Learning How to Learn на Coursera восполняет этот пробел нашей системы образования. В нём рассматриваются нюансы работы нашего мозга и техники эффективного обучения, обоснованные научными исследованиями.
Автор курса — Барбара Оакли, она же автор книги «Думай как математик». Содержимое курса и книги практически идентичны (но в курсе есть тесты и дедлайны), так что можно выбрать, что больше по душе, или одновременно проходить курс и читать книгу для закрепления материала.
Coursera
Learning How to Learn: Powerful mental tools to help you master tough subjects
Explore practical techniques for focusing, retaining information, and overcoming learning challenges. Based on insights from neuroscience, this course helps you improve how you learn across subjects. Enroll for free.
Польза художественной литературы
Ребята из Арзамаса опубликовали обзор причин, по которым чтение художественной литературы полезно (специально для сомневающихся вроде меня): https://arzamas.academy/materials/1624
Ребята из Арзамаса опубликовали обзор причин, по которым чтение художественной литературы полезно (специально для сомневающихся вроде меня): https://arzamas.academy/materials/1624
Arzamas
6 доказательств того, что литература полезна в обычной жизни
На примере шести понятий из теории литературы