FEDOR BORSHEV

@pmdaily Нравится 2

Пишу о производстве сложных проектов, управлении продуктами, профессиональном росте программистов.
borshev.com
Личка — @fedor_borshev
Реклама не продаётся, собиратели подборок отправляются в спам.
Гео и язык канала
Россия, Русский
Категория
Технологии


Написать автору
Гео канала
Россия
Язык канала
Русский
Категория
Технологии
Добавлен в индекс
26.12.2017 02:52
реклама
Ищешь платёжеспособную аудиторию?
Покупай рекламу на Wow Sale
TGAlertsBot
Мониторинг упоминаний ключевых слов в каналах и чатах.
TGStat Bot
Бот для получения статистики каналов не выходя из Telegram
9 809
подписчиков
~7.5k
охват 1 публикации
~5.8k
дневной охват
~7
постов / нед.
76.1%
ERR %
30
индекс цитирования
Данные о подписчиках
Пол подписчиков  
М 81.5%
Ж 18.5%
? - 0%
Был в сети
был в сети недавно
97.7%
от 2 до 7 дней назад
1.1%
от 7 до 30 дней назад
0.9%
более 30 дней назад
0.2%
удаленный аккаунт
0%
На основе отчета @crosser_bot от 10 Oct, 17:17
  Канал очищается от неактивных участников с помощью @crosser_bot
Репосты и упоминания канала
66 упоминаний канала
24 упоминаний публикаций
48 репостов
Python Books
Software engineer notes
Пусть будет™
Точки роста
СМИныч
Тёмная сторона
DevPassion
THINGS PROGRAMMERS DO
DevPassion
I hate overtime
start from startup
WebDev
Найс энд Изи
Вам Письмо
Привет, Breadhead
China with trump
запуск завтра
Черный атлас
FrontEnd developer
IT-Луна
I hate overtime
I hate overtime
Пусть будет™
I hate overtime
Тёмная сторона
Программист
запуск завтра
China with trump
запуск завтра
Remote IT (Inflow)
Каналы, которые цитирует @pmdaily
запуск завтра
alexcouncil
Python Books
Анатолий Буров
Startups & Products
toverovskiy
запуск завтра
Oh My Py
Бабаева, к доске!
Kulinkovich is typing...
Digital October
Analysis Paradisis
Digital October
WebDEV
Groks
Java Dev
Java Dev
Java Dev
Тёмная сторона
Тёмная сторона
Артемий Лебедев
Канал Саши Бизикова
Последние публикации
Удалённые
С упоминаниями
Репосты
FEDOR BORSHEV 16 Oct, 10:45
Время — невосполнимый ресурс

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

Если 1 ноября вы запускаете на рынок новый корм для кошек, то к 1 октября у вас полюбому должны быть нарисованы макеты банеров для наружки, а к середине октября запущен сайт, который рассказывает о продукте. Если банеров или сайта не будет, то продукт банально никто не возьмёт с полки — результат вашей работы пропадёт.

Что вы станете делать, если баннеры до сих пор не готовы, а уже 7 октября? Вы будете искать способы закончить раньше. Этих способов не так уж и много — либо пожертвовать проработкой макетов (запустить меньше посылов, сделать макеты проще), либо пожертвовать себестоимостью, наняв, к примеру, пять дополнительных дизайнеров.

Единственное, что вы не сможете сделать, когда опаздываете — это добавить себе ещё неделю, чтобы закончить проект: машину времени пока не изобрели. Пожертвовать деньгами или качеством — можно. Уменьшить проработку — можно. Добавить себе срок — нет.

Время стоит беречь не только в проектах, но и в личной жизни. Всё так же — если уже 20:00, а вы ещё не ходили в спортзал, то вы никак не можете сделать так, чтобы сейчас стало 18:00 — вы можете только не пойти в спортзал. Если вы приехали на работу в метро, а по дороге слушали музыку или изучали новинки в Arcades — вы просто приехали на работу на метро. А эти же 40 минут можно было потратить на чтение книги или спокойно поспать.

Берегите время.
👍 208
💩 18
Читать полностью
FEDOR BORSHEV 15 Oct, 10:45
FEDOR BORSHEV 15 Oct, 10:45
Вопрос: какие меры вы применяете для провинившегося сотрудника?

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

Для себя я давно решил, что вместо семейной терапии и попыток выжать чуть больше из отстающих ребят, я лучше настрою более удобный процесс планирования, или помогу с архитектурой тем, кто впереди. Иначе получается вот так:
Читать полностью
FEDOR BORSHEV 14 Oct, 12:00
#реклама

👨🏼‍🎓 "Mobile QA Engineer" - профессиональный курс от OTUS

Знакомьтесь с программой, проходите тестирование и присоединяйтесь к новой группе: https://otus.pw/U08U/

🎯 Ключевая цель курса — помочь студентам стать профессионалами в направлениях ручного и автоматизированного тестирования мобильных приложений на Android и iOS

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

👉🏻ПРОЙТИ ТЕСТИРОВАНИЕ: https://otus.pw/U08U/

⚠️ Лучших выпускников курса уже ждут на собеседования крупнейшие IT-компании страны
Читать полностью
FEDOR BORSHEV 11 Oct, 10:45
Главный карьерный принцип

Когда-то давно услышал полезный совет: зайдя в новую комнату, всегда ищи самого умного человека, и говори с ним. Если самый умный человек в комнате это ты — ищи другую комнату.

То же самое и в карьере — ищи место, где в твоей работе будут находить недостатки. Если недостатки в своей работе можешь найти только ты — ищи другое место.
👍 431
💩 18
FEDOR BORSHEV 10 Oct, 12:00
#реклама

👨🏼‍🎓"Framework Laravel" - профессиональный курс от OTUS

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

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

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

👉🏻 Чтобы попасть на курс, нужно пройти вступительное тестирование: https://otus.pw/jx2P/

⚠️ Лучших выпускников курса уже ждут на собеседования крупнейшие компании страны и партнеры образовательного проекта OTUS.
Читать полностью
FEDOR BORSHEV 9 Oct, 10:45
Безусловная и непонятная директива

Вот работаете вы над новым интерфейсом, и тут от коллеги прилетает просьба, типа «а давай перенесём эту кнопку наверх». И всё: ни объяснения чем кнопке плохо жилось внизу, ни хода мыслей, ничего не понятно.

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

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

Будьте подробными: рассказывайте о том, почему пришли к тем или иным решениям. Не «давай перенесём кнопку наверх», а «Эта кнопка — ключевой call-to-action на странице, а я боюсь, что новые пользователи сразу её не увидят» Так вы не только уменьшите количество переписки в трекере, но ещё и опытом с коллегами поделитесь.
Читать полностью
FEDOR BORSHEV 8 Oct, 12:00
#реклама

👨🏼‍🎓"Разработчик Python" - хардкорный курс для профессионалов от OTUS

Знакомьтесь с программой, проходите тестирование и присоединяйтесь к новой группе: https://otus.pw/ziry/

🎯 Ключевая цель курса — поднять ваш уровень разработки на Python до уровня middle/senior. Вы не будете изучать в сотый раз одни и те же базовые вещи, а получите знания, которые позволят вам развиваться дальше, делать то, что вы не делали раньше.

📌Особенности курса:
— абсолютное большинство выпускников отмечает высокий уровень задач и сложность курса;
— лишь 30% из всех желающих проходят вступительное тестирование на курс;
— области, в которых вы будете испытывать свои способности, имеют весьма широкий спектр: курс охватывает web, анализ данных и вопросы создания высоконагруженных систем;
— на курсе рассматриваются вторая и третья версии Python;
— в конце курса вы реализуете проект на интересную вам тему.

👉🏻ПРОЙТИ ТЕСТИРОВАНИЕ: https://otus.pw/ziry/

⚠️ Лучших выпускников курса уже ждут на собеседования крупнейшие IT-компании страны и партнеры образовательного проекта OTUS.
Читать полностью
FEDOR BORSHEV 7 Oct, 10:45
Чинить баги по TDD

Один из кейсов, которые я рассмотрю на своём мастер-классе 26 октября — это исправление багов по TDD.

Вот прилетает к нам задача, скажем «Жму на кнопку — не работает». Обычно мы чиним такие баги весьма тупо — поднимаем фронт и бек, придумываем гипотезу, и начинаем дебажить: вносим исправление и жмём на кнопку. Если заработало — отлично, если нет — просто перебираем дальше гипотезу за гипотезой. Иногда мы перебираем гипотезы настолько беспорядочно, что даже не убираем следы предыдущих попыток.

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

Правильный процесс выглядит так: открываем контроллер в API, куда ходит кнопка, а дальше ставим под сомнение каждый нижележащий метод, проговаривая про себя гипотезы, к примеру: «я сомневаюсь, что метод get_users() не возвращает неактивных пользователей». Если сразу не находим теста, который доказывает обратное — пишем свой. Если тест падает — отлично, у вас уже есть тест, и остаётся только написать код. Если написанный тест не падает — git checkout --, и ставим под сомнение следующий метод.

Такой процесс заставляет вас тестировать баги изолированно — вы никогда не натолкнётесь ещё на один баг, который создали во время предыдущих бесплодных попыток. А ещё вы никогда не отправите в прод неработающее говно, потому что у вас нет состояния «кажется всё заработало» — всё или заработало, или нет.

————————

С четверга цена на мастер-класс поднимается на 25%, так что регистрируйтесь сейчас.
Читать полностью
FEDOR BORSHEV 4 Oct, 10:45
Периодически обновлять фреймворк

У нас в ГдеМатериале есть хорошая практика — мы периодически проверяем актуальность зависимостей. Я говорю не о мелких обновлениях и не о фиксах безопасности (они давно автоматизированы), а об обновлении мажорных версий библиотек, скажем Django с 1.11 до 2.0.

Вообще, обновление любого фреймворка — кошмар программиста. Во-первых это сложно из-за проблем с обратной совместимостью. Причём, чем больше проект, тем сложнее.

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

Самое важное в обновлении фреймворка — не копить изменения. Гораздо проще 5 раз обновить джанго на соседнюю версию, чем прыгнуть с 1.8 сразу на 2.2. Маленькие обновления приносят меньше регрессий и в целом проходят легче — согласитесь, ведь всегда же лучше растянуть один пиздец на 5 маленьких пиздецочков. Даже психологически гораздо легче решиться на маленький апгрейд, чем на большой скачок.

В общем тренируйте дисциплину — чтобы не застревать в каменном веке на протухших экскрементах мамонта вместо фреймворка, раз в два месяца обязательно обновляйтесь до самых актуальных версий. То, что вы при этом что-нибудь сломаете — просто примите как данность.
Читать полностью
FEDOR BORSHEV 2 Oct, 10:45
Puppeteer — следующий шаг развития в автоматизации браузеров

Боль браузерного тестирования стара так же, как сами браузеры. Представьте ситуацию: вы написали тест, который открывает браузер, нажимает на кнопку «купить» и проверяет, что товар добавился в корзину. В 5 случаях тест работает нормально, а на шестой раз — падает. И у вас нет никакого способа понять в чем проблема — это у вас приложение в иногда не показывает кнопку «Купить», или просто страница медленно грузится? Только делать скриншот страницы во время ошибки и смотреть. А какое это автоматизированное тестирование, если оно не работает без человека?

Недавно узнал, что человечество сделало громадный шаг в сторону нестыдного браузерного тестирования — Puppeteer. Puppetteer — это обёртка над хромом (да, работает только в одном браузере). При этом хром — headless: не нужна графика и куча библиотек. Контейнер с таким счастьем на базе Alpine Linux весит всего 160Мб.

Прекрасное API, понятная документация, работает хоть на утюге — кажется больше ничего не нужно. Вот к примеру весь код работы с браузером, который используется в микросервисе, который ходит в личный кабинет нашего московского арендодателя и заказывает пропуска посетителям:
Читать полностью
FEDOR BORSHEV 1 Oct, 12:00
#реклама

🔥Открыт набор на новый онлайн-курс «Защита персональных данных в корпоративных системах»

Пройдите вступительный тест и присоединяйтесь к группе. Ждем вас!

👉🏻 ПРОЙТИ ТЕСТИРОВАНИЕ: https://otus.pw/GQX6/

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

За 3 месяца вы научитесь:
📍Классифицировать и правильно ставить задачи о защите персональных данных;
📍Выбирать правильные способы и инструменты (ПО) для решения конкретных задач;
📍Настраивать и администрировать средства защиты информации;
📍Разрабатывать, оформлять и профессионально анализировать документы по защите персональных данных;
И конечно повысите свою ценность и конкурентоспособность как специалиста!

Изучайте программу, сдавайте вступительный тест – и присоединяйтесь к слушателям!
Читать полностью
FEDOR BORSHEV 1 Oct, 10:00
Мастер-класс о TDD: вопросы-ответы и новая дата

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

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

Если вы давно хотели что-то спросить у меня про тестирование — регистрируйтесь.

Кстати, остаётся ещё пара мест на мои живые советы, которые пройдут завтра в 19:00 — там можно будет задать вопрос не дожидаясь 26 октября.
Читать полностью
FEDOR BORSHEV 30 Sep, 10:45
FEDOR BORSHEV 30 Sep, 10:45
Если код не протестирован, значит он не работает. Во всех моих командах написание тестов — это базовое правило гигиены. Как на стройке все ходят в касках, так же и в разработке — все пишут тесты.

26 октября в 14:00 я проведу мастер-класс, где расскажу, как внедрить практику тестирования кода в любой проект — неважно, начинаете ли вы стартап, или накопили уже 200 000 строк кода.

Теории будет совсем немного, в основном будет практика — мы возьмём готовый большой проект на Django и решим на нём бизнесовую задачу при помощи TDD. Python я выбрал потому, что код на нём легко прочитать, а подходы — перенести на любой другой язык. Так что если вы хотите писать тесты на JS, Ruby или Go — тоже приходите, хватит базовых знаний любого языка программирования.

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

Стоимость участия — 1900 рублей.
Читать полностью
FEDOR BORSHEV 28 Sep, 12:00
#реклама

💥Открыт набор на профессиональный курс «Разработчик C#»

Пройдите вступительный тест и присоединяйтесь к группе.
👉🏻ПРОЙТИ ТЕСТИРОВАНИЕ: https://otus.pw/2qPv/

❗️Уникальная авторская программа от эксперта с 10-летним опытом в области программирования на языке С# со множеством интересных, актуальных и практических задач и кейсов.

За 5 месяцев вы:
• Погрузитесь в особенности и устройство языка на базе C# 8.0.
• Научитесь написанию desktop приложений и клиент-серверных приложений.
• Освоите многопоточное и асинхронное выполнение программ.
• Изучите рефлексию и сериализацию.
• Узнаете о применении паттернов проектирования «Банды Четырёх», шаблонах корпоративных приложений Фаулера, принципах SOLID, DRY, YAGNI и многом другом.
• Сможете продуктивно и легко работать по Scrum-методике и поймете эффективность Agile-подходов.

Курс рассчитан на Junior разработчиков C# с опытом промышленной разработки от 1 года, а также разработчиков любого ООП-языка с опытом от 3 лет.

Изучайте программу, сдавайте вступительный тест – и присоединяйтесь к группе!
Читать полностью
FEDOR BORSHEV 27 Sep, 10:45
Качество кода и счастье

Есть тип руководителей, которым я отказываю в консультациях после первой встречи — это люди, которые осознанно игнорируют счастье своих программистов.

Вот, к примеру, качество кодовой базы. По-идее, можно очень долго жить с горами говнокода в продакшене — просто нанимаешь в 2–3 раза больше программистов, игнорируешь высокий churn, пытаясь загасить проблему корпоративами/тимбилдингами/мотивацией, и привычно умножаешь все сроки на 3.

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

Ключевой элемент счастливой команды — качество кодовой базы: архитектура, стандарты кодирования, тесты и автоматизация рутины.

Вчера на сайте бюро вышел первый совет в серии о качестве кода, с детальным рассказом о том, зачем это нужно бизнесу. Особенно совет полезен тем, у кого нет времени (или кому не дают времени) на рефакторинг.
Читать полностью
FEDOR BORSHEV 26 Sep, 12:00
#реклама

☝️10 октября в 20:00 мск OTUS приглашает на бесплатный пробный урок «Математика для Data Science: из junior в senior» в рамках базового и продвинутого курсов.

📌Регистрируйтесь сейчас - напомним в день вебинара:
«Математика для Data Science. Базовый курс»: https://otus.pw/QPjN/
«Математика для Data Science. Продвинутый курс»: https://otus.pw/XKuu/

На вебинаре мы:
- подробно разберем, каким математическим аппаратом должен владеть middle/senior Data Scientist;
- рассмотрим, какие разделы математики нужно подтянуть для работы над рекомендательными системами, решения задачи регрессии, AB-тестирования, CV или NLP и пр.;
- обсудим, нужно ли уметь интегрировать;
- вспомним оптимизацию функции многих переменных, обсудим, где и как она применяется.

Вебинар проведёт Пётр Лукьянченко (преподаватель ВШЭ по высшей математике с опытом более 10 лет, работал в Lamoda на должности Team Lead Analytics). Не упустите возможности задать ему все интересующие вопросы!

🔥Чтобы попасть на курс с welcome скидкой прямо сейчас, пройдите вступительный тест:
«Математика для Data Science. Базовый курс»: https://otus.pw/hfPD/
«Математика для Data Science. Продвинутый курс»: https://otus.pw/VWqN/
Читать полностью
FEDOR BORSHEV 25 Sep, 18:40
VPN без рекламы от Cloudflare, всем и бесплатно

Cloudflare запустили VPN в своём приложении 1.1.1.1. Говорят, что быстрый и не сажает батарею.

Обещают, что анонимность (We don't write user-identifiable log data to disk), и что нашу историю не продадут добрым корпорациям. Это конечно не no-log policy у NordVPN, но вполне достаточно для того, чтобы быть спокойным за свои данные.

Варианта использования два: просто бесплатный и чуть более быстрый WARP-плюс за 130 рублей в месяц.

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

Скачивайте для iOS или Android, если ещё не.
Читать полностью
FEDOR BORSHEV 25 Sep, 10:45
Якорь спокойствия

Когда-то на хабре прочитал статью бывшего курильщика (сам я курил 12 лет) о чувстве из песни группы Кино — «Если есть в кармане пачка сигарет, значит всё не так уж плохо на сегодняшний день».

Автор рассказал, что у него пачка сигарет выступала как якорь, который позволял всегда вернуться в комфортную зону. Руководитель отказался повышать зарплату? Пойду покурю. Не смог убедить коллег в своей точке зрения? Пойду покурю. Дома жена кричит на детей? Пойду на балкон покурю.

Это не так уж и плохо: надо бы только найти менее деструктивный якорь, к примеру что-нибудь из обширного мира потребления. Не могу осилить новую технологию? Ничего, зато у меня айфон новый, и вообще езжу я на БМВ. Всего-то 9 лет платить осталось!

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

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

Посмотрите, к чему вы чаще обращаетесь во внутреннем диалоге, когда вокруг полный пиздец? К якорям спокойствия в настоящем или к большим целям в будущем?
👍 280
💩 30
Читать полностью