FEDOR BORSHEV
25.1K subscribers
37 photos
1 video
4 files
678 links
Рассказываю, как руководить программистами

fborshev@pm.me / borshev.com

Реклама не продаётся
Download Telegram
Как вкатить в любой язык программирования без регистрации и СМС

1. Покупаешь хорошую книгу по твоему языку программирования. «Хорошая» означает, что её кто-нибудь кому-нибудь советовал в группах/форумах больше 5 раз. К примеру по питону это Марк Лутц — «Изучаем питон».
2. Изучаешь её всю, от корки до корки, делая все домашние задания.
3. Выбираешь самый популярный фреймворк на своём языке. «Самый популярный» означает «чаще всего упоминается на тематических сайтах». В питоне под веб это Django.
4. Изучаешь всю официальную документацию, от корки до корки. Проходишь официальные обучалки. Гугишь <framework> best practices, изучаешь их.
5. Делаешь свой пет-проект. Блог, сайт, исследование аномалий в поведении соседей, что угодно — зависит от выбранного языка.
6. Ищешь команду с высокой инженерной культурой, которая возьмёт тебя джуниором. Дальше учишься у них.
FEDOR BORSHEV pinned Deleted message
Вопрос: как оценивать задачи с непонятной сложностью или новой технологией?

Не оценивайте весь проект сразу. Возьмите пару дней, чтобы подумать и разобраться в том, что вы будете делать, и оцените самый маленький кусок.

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

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

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

Другие вопросы — #вопрос. Задать свой — fedor@borshev.com
Не только быть, но и казаться

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

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

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

Следите за репутацией — иногда не дела формируют репутацию, а репутация формирует дела.
Почему я не веду базу знаний

Я не питаю иллюзий по поводу базы знаний: трудозатраты, вложенные в накопление информации, ко мне не возвращаются.

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

После этого я отправил весь свой архив знаний в корзину, и ни разу с тех пор не пожалел.

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

Вот, кстати, Всеволод Устинов тоже отказывается от базы знаний.
Вопрос: где найти боевой опыт для начинающего программиста?

Сделайте его себе сами. Просто скопируйте какой-нибудь готовый продукт, к примеру классический hackernews или ленту.ру. Подробнее — посмотрите пост Толи Бурова об этом.

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

Почитайте другие ответы по тегу #вопрос.
Перечитывал канал и задался вопросом — а почему я всё время рассказываю только про хорошее? Если вебинар — то про 100 слайдов, а не про больное горло, 60 недобеганных километров и 3 кг лишнего веса, в которые обошлась подготовка. Если продукт — то про гипотезы-успехи-смузи, а не про фейлы и убыточные направления.

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

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

Ну и чтобы два раза не вставать — расскажите, как относитесь к теме фейлов на канале?

🙏 — давай больше
💩 — нет, хочу как в инстаграме у Ким Кардашьян
Спасибо всем, кто в субботу пришёл на вебинар! На этот раз получилось намного больше интерактива, чем в прошлый. В основном — благодаря вашим глубоким вопросам :-)

Судя по 40 отзывам, которые вы оставили — вам тоже было полезно. Надеюсь, интерактивный формат разовьётся во что-то ещё более интересное.

Ну а если вы не были — покупайте запись. Это столько же пользы, сколько на живом вебинаре, только с возможностью ставить на паузу. Смотрите тизер:
FEDOR BORSHEV pinned «​Спасибо всем, кто в субботу пришёл на вебинар! На этот раз получилось намного больше интерактива, чем в прошлый. В основном — благодаря вашим глубоким вопросам :-) Судя по 40 отзывам, которые вы оставили — вам тоже было полезно. Надеюсь, интерактивный формат…»
Журналы не работают, если их не мониторить

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

Всё потому, что вы сделали журнал, но не настроили мониторинг — не будет же программист после каждого деплоя ходить в датадог и смотреть на графики, правда?

Если хотите, чтобы за метрикой следили — её недостаточно просто снимать. Нужно настроить алёрты, причём такие, которые точно кто-нибудь прочитает.

У нас в ГдеМатериале это отдельный канал в телеграме, на который у всех включены уведомления.
Самый простой способ запустить любой проект

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

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

Если в вашем случае периодические встречи не работают — значит они проходят не в том составе: либо не хватает людей, которые действительно могут что-то сделать, либо вместо рабочей встречи собирается кружок прокрастинаторов. И то, и другое можно решить, просто разбавив состав участников кем-нибудь, кому надо больше других — к примеру самим собой.
hub — расширение для git от гитхаба

hub — это расширение для командного интерфейса git от гитхаба, позволяет удобно работать с сущностями гитхаба прямо из командной строки.

К примеру, чтобы скачать к себе код из ветки коллеги, больше не нужно выискивать ее название в пулл-реквесте — достаточно просто набрать git checkout <путь к пулл-реквесту>. Запилить новый пулл-реквест можно при помощи git pull-request. Полный список фич доступен в man hub.

Если вы пользуетесь консольным клиентом git, но еще не пользуетесь hub — обязательно поставьте себе.
Зачем нужна удобная инфраструктура

Мы все любим вещи, сделанные с любовью: уверен, что каждый из вас предпочтёт Айфон или БМВ условному виндоус-фону с жигулями.

Хорошие вещи притягивают. Приятно достать смартфон, открыть сделанный с не меньшей любовью IA Writer и написать интересную заметку в блог.

А получится ли моя заметка интересной, если телефон будет тормозить, зависать и выглядеть неприятно? Вряд ли.

Вот так же и с инфраструктурой. Станет ли программист заботится о качестве кода, если релиз с его улучшениями нужно ждать две недели? Захочет ли потратить полчаса в свой выходной, чтобы помочь коллеге, если у него GitWeb вместо гитхаба? Вряд ли.
Начинаем через час!

Стрим будет тут — http://amp.gs/iFty

Напоминаю, что сегодня пилим фичу в бекенде, который я использую для курсов на pmdaily.ru. Будет много тестов, ООП и рефакторинга — я покажу обходиться без ContentTypes Framework, а так же как выглядят абстрактные классы и фабрики реальной жизни.
А вот и запиленная фича.

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

Вообще это называется «наборы», и мой сайт этого не умел ещё в 14:00. Сейчас 16:30 — и уже умеет. Хотите с такой же скоростью пилить фичи у себя на работе — покупайте мои курсы: деньги вернутся очень быстро.
Вопрос: как развиваться в кровавом энтерпрайзе с легаси

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

Читайте книги по интересным технологиям. Ходите на митапы/конференции. Пробуйте всё, что услышите.

Заведите пет- (или не-пет-) проект. Если есть друзья, не склонные к прокрастинации — возьмите и их.

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

Этот вопрос мне задали на вебинаре о правилах роста, но я его почему-то пропустил, поэтому отвечаю здесь. Задайте свой на fedor@borshev.com
Заработай карму

Когда пришёл в новую команду — не спеши критиковать. Увидел кусок неэффективного кода или кривой деплой — не торопись их чинить.

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

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

Сначала заработай карму, а потом критикуй.
Голосовые сообщения в @selfmailbot

Есть несколько людей, общаться с которыми в силу разных причин получается только в телеграмме. Чтобы быстро превращать сообщения от них в привычные мне письма, я форвардю сообщения в @selfmailbot — опенсорсного бота для GTD-шников, которого я написал пару лет назад.

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

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

Исходники бота

Кстати, если хотите поучаствовать в моих проектах в обмен на жёсткий код-ревью — присылайте ссылку на гитхаб на fedor@borshev.com. У меня всегда есть интересные задачи, которые помогают прокачаться питонистам и фронтендерам.
Рассказал в блоге о своём сетапе разработчика — ноутбуке, IDE (вернее её отсутствии) и немного о работе стоя.

Канал уходит в отпуск до 6 января. Хотите новенького — загляните в мой инстаграм https://www.instagram.com/fedor_borshev/, я там как раз сейчас рассказываю о поездке в Лондон.