June 24, 2020

Речь Миши

Все силы нужно направлять на развитие личного капитала:

  • Личностного
  • Профессионального
  • Активов (продукты, связи)

Развитие означает не простое накопление, а в том числе и замену, оптимизацию, продажу/обмен...

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

Профессиональный капитал -это знания, навыки, освоенные инструменты, теории, наборы сниппетов, освоенные кодовые базы для быстрого применения в разрабатываемых продуктах, освоенные подходы (OOP, FP, FRP, DDD...). Всё это складывается из двух составляющих:

  • Количества решённых задач
  • Глубины проработки задач

Вся практическая деятельность раскладывается по проектам. Ни какой более глубокой структуры тут не нужно. Любая внешняя деятельность (типа образования) должна быть интегрирована в практическую деятельность. Если для проекта требуется более глубокое понимание теории автоматов изучаем теорию автоматов, формулируем всё в небольшие статейки и складываем. Часть себе на жёсткий диск, часть в облако (делимся друг с другом), часть публикуем для масс (в целях пиара). Если ты знаешь уже теорию автоматов, то ты пытаешься найти практические задачи, которые ею хорошо решаются.

Вместо статьи можно написать сниппет, скрипт автоматизации, расширение IDE, всё это пишется внутри какого-то проекта исходя из его потребностей или потребности повышения эффективности в решении типовых задач. Так же происходит освоение подходов (ООП, ФП...), архитектурных решений и т.п. Всё когда-то делаем впервые, за тем закрепляем и пишем скрипты, конфигурации Ansible, сниппеты, бутсртапы для быстрого старта новых проектов, статьейки...

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

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

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

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

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

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

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

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

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

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

На основе одной кодовой базы можно быстро формировать различные типовые (и не очень) продукты. В отличие от свободно распространяемых библиотек кодовые базы конечных продуктов содержат больше законченных/комплексных/конкретных решения.

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

Особо часто применяемые кусочки из кодовых баз полезно формировать в сниппеты. Часть запихивать прямо в редактор, часть складывать в том же ГитЛабе.

Вместе со специализацией наработка кодовых баз даёт большой прирост производительности.

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

Работа над собственными продуктами, наработка прототипов продуктов ведётся исключительно в свободное время. Успешность этих продуктов не гарантирована, а соответственно это представляет риск, но и возможность сверхприбыли. Свободное время (гарантированно обеспеченное финансово) даёт возможность делать вложения в своё будущее без риска подрыва текущего благосостояния (над которым нужно работать в первую очередь).

Другим моментом в разработке собственных продуктов является минимизация паразитных потерь на планировании и командном взаимодействии.

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

У основателя проекта всегда есть видение, которого нет у коллег. И объяснять видение бессмысленно. Нужно просто писать код. Ни что так не возбуждает коллег, как работающий код. Его уже интересно обсуждать. Уже кому-то хочется что-то туда докодить. Тогда им можно выдавать задачи, которые не успеваешь, или не можешь (в силу компетенций) решить лучше их.

Не нужно ожидать быстрого коммерческого успеха такого продукта. Коммерческий успех был бы только если бы были компетенции в выводе его на рынок. Этим должны заниматься другие люди, которые так же, как ты на кодирование, тратят на маркетинг/менеджмент 120% своего времени.

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

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

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

Для обеспечения максимальной стоимости необходимо:

  • Иметь другой доход, что бы мариновать покупателя
  • Иметь несколько покупателей
  • Продать сразу нескольким (если без оформления прав, или ВайтЛейбл, то без проблем вообще, можно не скрывать это всё равно купят)

Доработка собственных продуктов должна быть построена как простая клиентская разработка. Должна быть кратковременной, конкретной, оплачиваемой. Идти на оклад в стартап, успешность которого под вопросом глупо. Ты будешь тратить 100% времени, терять потенциальных клиентов, терять возможность разработать ещё несколько продуктов/прототипов и получать ЗП, а через полгода этот проект загнётся. Доработку в клиентском формате в любой момент можно передать коллегам и наращивая связи заниматься наиболее выгодными предложениями и своими идеями.

Не каждый продукт будет продаваться. По этому их должно быть много. Их нужно мутить параллельно, примерно на одних технологиях, с одинаковыми подходами. Перекидывая решения из одного в другой. Некоторые будут трешовые, другие никогда не будут завершены (может даже большая часть), но наиболее перспективные нужно стараться добивать и продавать.

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

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

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

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

Короче... Пишите код :)

Пойдёт так?)

Я не понял куда опубликовать можно

Тем более, что не хочу публиковать особо для всех.