Русский
Русский
English
Статистика
Реклама

Учебный процесс в it

Способность учиться хард скиллам тоже софт скилл. Что ещё?

27.11.2020 16:12:57 | Автор: admin
Нужныли soft skills инженеру наэтот счёт больше всего споров ихоливаров. Поэтому мыпозвали СТО инанимающего менеджера портала mos.ru, Романа Ивлиева (спикера ируководителя программного комитета TechLeadConf), поделиться своими мыслями. Приводим часть его ответов навопросы, запись полной версии вебинара в конце статьи.




Софт скиллы ассоциируются сузким количеством навыков. Этонетак


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

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

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

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

Дальше блок сволевыми навыками. Это, например, управление временем, истрессоустойчивость.

Качать все навыки сразу всё равно что учить все языки программирования


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

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

<реклама>

Вебинары проводит g-mate бот cлучшими вакансиями вtech. Регистрируйтесь в @g_jobbot, подходящие вам варианты будут приходить вТелеграм.

</реклама>


Нехватает некоммуникации как таковой Ноибез неё никуда


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

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

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

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

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

Спомощью вопросов можно оценить коммуникацию, аналитику, решение конфликтов, навыки, связанные снаставничеством, воспитанием молодых сотрудников. Управление временем что делать, когда задач больше, чем возможностей? Вобщем, урядовых сотрудников смотрят восновном бытовую сторону. Глубоко копаются вруководителях: там можно беседовать вбольшем объёме. Иорганизаторские навыки, ипринятие решений кстати, очень важный для инженеров скилл. Отего отсутствия многие страдают, икоманды, илюди когда нет внутренней возможности принимать решения ичеловек вынужден постоянно обращаться ккому-то заподтверждением своей правоты.

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

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


Как насобеседованиях смотрят навык принимать решения? Что-то пошло нетак, например, падает сервак. Начальник недоступен. Что будем делать? Допустим, высамый главный идолжны принять решение, перезагружать его, бежать писать письма начальству, что мывсе помрём, ждать 30секунд, чтобы проверить, что непомрём.... Тоесть яобрисовываю понятную, носинтетическую ситуацию, иинтересуюсь, что будем делать дальше. Называют разные варианты.

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

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



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

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

Ясейчас сильно утрирую, ноэто самый верный путь понять, как онповедёт себя втой или иной ситуации. Для этого нужно вспомнить свою последнюю косячную ситуацию ипредложить еёрассмотреть. Слава богу, мывсе одинаковые, илажаем примерно одинаково, уникальная врядли найдётся. Уменя было так, что изтрёх телефонов неответил ниодин, ивитоге янаписал письмо, где говорил, что недозвонился доних ибуду делать вот так. Тогда яуже был взрослый-опытный, был готов получить звездюлей засвоё решение. Живые истории самый крутой способ провести собеседование насофт скиллы. Этому ненадо отдельно учиться, надо аккуратно походу деятельности запоминать жизненные ситуации, возвращаться кним, анализировать. Инаоснове этого анализа тыпроведешь собеседование налюбую должность.

Сначала поковырялся всебе. Потом пытаешься понять, что хочешь


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

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

Обычно хватает внутреннего ощущения: анализируешь всю прошедшую неделю, смотришь, где были сложности. Например:
  • долго торчал насовещании;
  • долго пришлось объяснять коллеге, что что-то пошло нетак;
  • мучился три дня, потом пошел, спросил изапять минут решил проблему;
  • насобеседовании растерялся инесмог задать какой-то вопрос;
  • начальник считает, что ябезрукий черт, нехочет сомной сотрудничать, потому что непонимает, что делаю икак;
  • ничего незапоминаю;
  • вечно нехватает времени: 35задач на20часов работы итак далее.


Инструмент одновременно простой исложный, ипри этом эффективный, только заниматься анализом нужно регулярно.

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

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

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

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

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

Для развития навыков должна быть система ирегулярные тренировки


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

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



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

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

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

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

Публичные выступления


Презентационный навык, ораторское искусство порядок такой: ставить цель хочу выступить наTeamLeadConf, искать тему, искать возможности выступить, идти ктем, кто может сэтим помочь, следить законференциями имитапами. Благо ихмного иуровень очень разный: где-то берут только крутых специалистов, где-то готовы взять инекрутых специалистов, есть открытые микрофоны, можно собрать друзей ивыступить перед ними. Регулярные тренировки: например, выделить время впятницу, в18.00. Тычто-то говоришь, записываешь себя навидео, ипотом смотришь сам насебя иследишь запрогрессом. Надо постоянно пересматривать ролики, искать мусорные слова, говорить сзеркалом ианализировать. Самое главное практика ипочаще выводить себя иззоны комфорта.

Разрешение конфликтов


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

Тайм-менеджмент


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

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

Если понятно, что квалификации достаточно, скорость нормальная, нопокаким-то причинам чувствуешь, что можешь делать больше, хотя неделаешь есть феерическая техника, про которую мне рассказывал втом числе Лёша Катаев @deosdeorum, технический директор изSkyEng.

Когда онпонял, что оказался втакой ситуации, тонеделю записывал, что делал втечение дня. Набольшом сроке это упражнение вымораживает, анакороткой дистанции можно потерпеть иусилием воли фиксировать всё, чем занимаешься. Разговоры, чтение почты, отвлечение настроительство фермы, нафейсбук, чужие чаты спустя неделю видишь список из1500 задач изадаешь вопрос: зачем язанимался тем или этим? Задач поделу 40%, аостальные 60% это таймкиллеры.



Янеимею ввиду, что отработы отвлекаться ненадо ноесли таймкиллеры становятся проблемой, сней надо что-то делать. Если жать накаждый попап, что курица стала матерью цыплят инужно отправлять ихвсоседнюю деревню время будет пропадать. Либо другой пример: пришли насовещание, оно было посвящено чему-то интересному ивместо 15минут проторчал там 1,5часа. Вышел счётким пониманием, что полтора часа продолбал. Таких совещаний, ксожалению, вагон ималенькая тележка, поэтому нужна аналитика: что реально происходит? Тогда истанет понятно, что сэтим делать. Это важно, если чувствуешь проблему начинать еёисследовать. Потому что чаще всего исследование начинается изаканчивается поиском виноватых, чтобы оправдать его или заставить сожалеть, получается, это перекладывание ответственности, анерешение проблемы.

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

Развитие софт скиллов это терпение, труд исистема


Что можно сделать уже сейчас, чтобы наследующей неделе стать круче? Ябы начал стого, что попытался разобраться, чем сейчас некруче. Это нужно, чтобы построить план наобучение. Понимаешь, что проблема стайм-менеджментом зафиксируй этот факт ипоищи инструмент: книжки, курсы. Если вообще непонимаешь, что происходит вжизни, значит надо попробовать понять, что этому мешает, ипочему явообще решил озаботиться прокачкой софт скиллов.

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

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

Все подряд книжки читать ненадо, достаточно одной. Нашел курс наSkillbox/Udemy/Coursera, послушал бесплатные версии, цепанул расшифровки докладов понял, куда копать дальше. УНетологии есть бесплатные курсы пософт скиллам, улекторов-менторов есть бесплатные материалы. Поним можно понять, насколько душа лежит ктому, что рассказывают эти люди. Если откликается можно потратить наэто несколько тысяч рублей, ноне800к заМВА. Может, 10 000 звучит дорого, ново-первых, все курсы умеют принимать оплату врассрочку, аво-вторых: это инвестиции вбудущее. Ксожалению или счастью, это вынужденная мера, мир стал слишком быстрый.

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

Что Роман советует изучить




Полная версия вебинара:



<реклама>

Подписывайтесь нанаш блог: публикуем расшифровки вебинаров сполезными ссылками, истории IT-специалистов игайды порелокации.

</реклама>
Подробнее..

Учиться или только работать как найти баланс

23.11.2020 02:14:32 | Автор: admin

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

Christian Erfurt / Unsplash.comChristian Erfurt / Unsplash.com

Легко пообещать, сложнее сделать

Сегодня образовательные программы как никогда доступны: любой может пройти нужный MOOC, а их общее количество исчисляется десятками тысяч. Но компании, кажется, только входят во вкус c момента кризиса 2008-го они разогнали общемировой объем рынка профессионального образования с 244 до 370 млрд. долларов и продолжают увеличивать инвестиции в прокачку сотрудников. Учеба для бизнеса не только утилитарный инструмент, но и работа на HR-брендинг. Чем активнее компания подкрепляет траектории карьерного развития образовательной базой, тем легче ей привлечь адекватных и квалифицированных специалистов.

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

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

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

Как может выглядеть учебный процесс

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

Mr. Bochelly / Unsplash.comMr. Bochelly / Unsplash.com

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

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

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

Этот формат подразумевает чуть большее вовлечение сотрудников, но его все-таки стоит считать комплементарным итеративному. Если последний направлен на выполнение задач и последовательный прогресс, то первый [трансформирующее обучение] исключительно на прорывное развитие. Он помогает научиться учиться, а не механически выполнять какие-то действия на работе, подчеркивает Джанпьеро Петрильери в колонке для портала Массачусетского технологического института.

Charles Deluvio / Unsplash.comCharles Deluvio / Unsplash.com

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

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

Что можно сделать своими силами

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

В этом есть свои плюсы: если вы, ваш отдел или команда предоставлены сами себе, организовать обучение будет, как минимум, удобнее. Другой вопрос, с чего начать.

Запастись терпением и временем

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

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

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

Начать с чего-то простого

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

Jake Oates / Unsplash.comJake Oates / Unsplash.com

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

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

Попробовать пятничный формат

Он будет трансформационным компонентом в учебном процессе и позволит вам:

  • навести порядок в делах (и на рабочем месте), плюс быть готовым к новым задачам;

  • понимать, что происходит в индустрии (чем занимаются конкуренты и эксперты);

  • заняться долгосрочным планированием развития команды;

  • внести вклад в открытые проекты по своему профилю.

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

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

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

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

!! Не стоит ограничивать разработчиков в пятничных деплоях (изменения могут быть чувствительными, и разбираться с каждым отдельным случаем, когда у всех тихая пятница, просто нет смысла). Даже если вы не занимаетесь IT, сообщите клиентам об особом порядке общения в конце недели. Так, если кто-то будет настойчиво просить созвониться, вам будет проще перенести обсуждение на другой день.

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

Планировать и корректировать

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

Ryland Dean / Unsplash.comRyland Dean / Unsplash.com

В тематическом треде на Hacker News мы нашли следующий пример подобного решения один из разработчиков посчитал нужным не заводить разговор о корпоративном обучении за счет работодателя, а попытался договориться о частичной занятости в 30-32 часа в неделю (все остальное время он отвел на самостоятельную учебу и участие в open source проектах).

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

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

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


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

P.P.S. Если оставлять заявку не хочется, просто напишите нам в личные сообщение и мы свяжем вас со специалистами, которые все объяснят и предоставят максимум информации о системе.


Дополнительное чтение в нашем блоге на Хабре:


Подробнее..

В IT-образовании не работают лекции. Давайте это признаем и начнем учиться правильно

02.12.2020 20:12:10 | Автор: admin
Представьте мир, где внезапно произошли две фантастические вещи родители потеряли возможность влиять на решения своих детей, полностью, абсолютно. Просто физически не могут дать им ни малейшего совета и вызвать чувство вины.

Второе в этом мире отменили армию.

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



Когда я думаю об этом, мне становится обидно. У меня есть пара друзей, которых вышвырнули из университета. Они любят говорить про это так: А знаешь, кто еще бросил вышку? Гейтс и Джобс! Сам я не враг высшему образованию, но мне не хочется с ними спорить.

Я чувствую, что у образования в наши дни большие просто гигантские проблемы. Думаю, лучше всего об этом сказал основатель Valve Гейб Ньюэлл: За несколько месяцев в Microsoft я узнал о разработке программ больше, чем за пару лет в Гарварде. В Гарварде я научился пить пиво, стоя на руках, это полезный навык, но не настолько.

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

Лекции не нужны


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

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

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

Но проблема не в преподавателях и не в информации проблема в самой идее лекций


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

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

В группах с обычными лекциями экзамен не сдавали, в среднем, 34% студентов, а в группах с активным обучением 22%. Средняя оценка студентов из групп активного обучения была выше почти на целый балл.



У меня создается впечатление, что, если вы посмотрите на эти данные, продолжать читать лекции просто неэтично, отозвался об исследовании физик из Гарвардского университета Эрик Мазур. Он выступает против чтения лекций уже 27 лет. Приятно видеть, как из обилия доказательств вырисовывается четкая картина чтение лекций неактуально, старомодно и неэффективно.


Лекции стали чуть ли не главной формой учебы


Заучивание огромных объемов теории давно стало фундаментальным принципом образования. Причем конфликт теории и практики не новый. Об этом спорили еще в Древней Греции, а то и раньше. Тот же Сократ известный спорщик считал, что наставник должен лишь задавать ученику правильные вопросы, на которые тот сам будет искать ответы.

Для меня всегда было большим секретом, почему к нашему времени общепринятым методом обучения стали именно лекции.

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

Но подход Дьюи приводил к странным перегибам. Например, он говорил, что все знания, у которых не может быть практического применения не нужны вообще, а истинно только то, что полезно. Тем не менее, его подход был популярен в Америке и СССР начала прошлого века.

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

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

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


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


Мозгу нужна практика


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

Есть знаменитая история о лондонских таксистах, рассказывала об этом Ася Казанцева. Буквально несколько лет назад для того, чтобы стать настоящим таксистом в Лондоне, нужно было сдать экзамен по ориентации в городе без навигатора то есть знать как минимум две с половиной тысячи улиц, одностороннее движение, дорожные знаки, запреты на остановку, а также уметь выстроить оптимальный маршрут. Ученые сделали [таксистам] томограмму, чтобы посмотреть плотность серого вещества в гиппокампе. Это важная зона мозга, связанная с формированием памяти и пространственным мышлением. Обнаружилось, что если человек не хотел становиться таксистом или хотел, но не стал, то плотность серого вещества в его гиппокампе оставалась прежней. А вот если он хотел стать таксистом, прошел тренинг и действительно овладел новой профессией, то плотность серого вещества увеличилась на треть это очень много.

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

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

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

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

В своем исследовании биофизик Джоел Майкл из медицинского колледжа Чикаго писал: Вероятно, первым, кто указал на разницу между знать, что нечто является правдой, и тем, как что-то сделать, был Гилберт Райл в книге The Concept of Mind. Учить факты это декларативное знание, а учить, как что-то делать, процедурное. Это два абсолютно разных процесса. Если вы хотите научить студентов решать какие-либо проблемы, вам необходимо предоставить им возможность делать это на практике.

И если одновременно включать в обучение разные процессы и задействовать тем самым разные участки мозга тогда-то и начинает расти эффективность обучения.

Например, такое исследование провел Эйдан Хорнер, психолог из университета Йорка. Он взял два одинаковых по длине текста и дал их прочитать группе испытуемых. Затем попросил перечитать первый текст еще раз, а второй постараться записать на бумагу по памяти.

После этого он провел три опроса по обоим текстам спустя разное время через пять минут, через два дня и через неделю. С тестированием, которое прошло через пять минут, все справились хорошо люди одинаково хорошо помнили оба текста. А вот спустя неделю в тестах уже была разница. На вопросы по тексту, который испытуемые просто перечитывали, они дали 40% правильных ответов. По второму тексту, который люди пересказывали, правильных ответов было 58%.

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

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



Мозг должен конструировать знания, а не впитывать


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

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

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

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

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

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

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

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


Обучение это стихийный феномен


Не так давно я узнал историю индийского ученого и просветителя Сугата Митра. Сейчас он занимается созданием Самоорганизованных Учебных Пространств мест, где дети могут учиться почти без преподавателей. Это очень долгая и сложная затея. Она началась с эксперимента, который Митра провел в Нью-Дели в конце 90-х.

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

Затем он провел такой же эксперимент в индийском городе Хайдарабаде. Митра собрал детей, которые говорили по-английски с сильным акцентом, дал им компьютер с программой, которая преобразовывает речь в печатный текст. Он попросил детей надиктовать слова но компьютер, конечно, записывал все неправильно.

Тогда я сказал: Хорошо, я оставлю компьютер здесь на два месяца. Сделайте так, чтобы компьютер вас понимал. Они спросили: Но как? А я сказал, что не знаю, и уехал. Через два месяца, благодаря этой программе, акцент у детей почти полностью пропал и они разговаривали на идеальном английском этот факт задокументирован в журнале Information Technologies & International Development, рассказывает Митра.

С тех пор он проводил подобные эксперименты во многих городах по всему миру. Оставлял группу детей с одним компьютером, давал задание и уезжал. И каждый раз результаты были феноменальными. Например, 12-летние дети из индийской деревни самостоятельно изучили биотехнологии на английском. Они сдали тесты на проходной балл, и результаты эксперимента были опубликованы в British Journal of Educational Technology.

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

Знаете, что произошло? Я думаю, мы только что натолкнулись на самоорганизующуюся систему. Ее структура возникает без явного внешнего вмешательства. Самоорганизующиеся системы всегда непредсказуемы, они начинают делать такое, для чего не были задуманы. Поэтому мы так реагируем, ведь это кажется невозможным. Думаю, могу сейчас выдвинуть такой тезис: образование это самоорганизующаяся система, в которой обучение стихийный феномен.


Нужны задачи вместо лекторов


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

Я пошел на обучение хотел разобраться, как правильно организовывать онлайн-образование. В итоге мы сделали курс, основанный на лекциях. Включили туда немного заданий, около 20, провели 2 потока и поняли, что надо менять подход.

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

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

И вот первый приятный сюрприз правильных и крутых решений, оказывается, намного больше, чем мы могли себе представить. То есть, мы составляем задачу, подбираем к ней идеальный правильный ответ, а на практике оказывается, что правильных ответов два, три, четыре и больше. Люди думают по-разному, находят разные решения это просто невероятно круто!

В итоге, Fevlake был укомплектован спецами. Ребята, которых мы учили, уже работают лидами в нашей компании. За два года эта методология так выстрелила, что нам пришлось открывать еще одну компанию Rebrain, которая занимается чисто подготовкой DevOps-специалистов. Крупнейшие IT-компании, банки и корпорации заказывают у нас разработки подобных программ для себя и отправляют к нам своих специалистов.

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

Обзор книги Do Hoang Tu Operating System from 0 to 1 как новичку сделать свою операционную систему

24.11.2020 10:23:43 | Автор: admin

Около двух лет назад в одном из блогов про IT я натолкнулся на статью, в которой автор вкратце, буквально за 15 минут рассказывал о своем опыте в любимой для многих начинающих программистов идее создания собственной операционной системы. Причем на моей памяти это вторая статья на русском языке, где автор не собирал новый дистрибутив линукс или просто строил планы о том, как создаст новую операционную систему, которой будет суждено изменить мир. По факту автор с нуля на Ассемблере и C написал довольно примитивную операционную систему, не используя ничего кроме компиляторов. В своем материале он ссылался на до тех пор неизвестную мне книгу Operating System from 0 to 1 написанную неким разработчиком по имени Do Hoang Tu.

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

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

Затем в книге даются знания о том, как создать операционную систему для IBM x86 процессоров. При этом читателю достаточно довольно неглубоких знаний в таких языках как С/С++ и Ассемблер. Есть отдельная глава об этих языках и их совместном использовании: we will explore assembly language, and how it connects to C. Есть там и про бинарный код и инструкции Assembly.

Тема тронула меня и вызвала не только интерес, но и энтузиазм, ведь я много лет назад уже собирал Linux from scratch. А также полгода как начал на досуге учиться программировать на С, с которым мне не приходится работать, потому что я специализируюсь на веб-разработке. В процессе чтения я предпринял попытку реализовать часть знаний, полученных из книги, насколько мне позволяли свободное время и опыт в С программировании. И, Oh my Gosh, у меня получилось запустить в виртуальной машине ОС с функциональностью печатной машинки. Да-да, это немногим больше, чем Hello word, но для меня этого с лихвой хватило, чтобы вдохновиться на то, чтобы продолжать изучать эту тему.

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

Автор обзора - Максим Жук, инженер-программист практики Frontend Рексофт.

Подробнее..

Возможно ли обучить хорошего программиста в условиях ВУЗа в России

27.11.2020 20:16:23 | Автор: admin

Привет, Хабр! Я преподаватель программирования, у которого нет педагогического, но есть инженерное образование. Долгое время я сидел в read-only, заимствовал у вас интересные материалы для занятий. Но теперь решил зарегистрироваться и поведать вам о всех изысках IT-образования в типичном ССУЗе-ВУЗе. Надеюсь это будет для вас интересным!

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

Учебный план

Все образовательные организации, не важно государственные или частные, подчиняются стандартам РФ, иначе они лишатся аккредитации.

Вот здесь возникает первая проблема: использование часов обучения на непрофильные предметы

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

  • философия (68 часов);

  • история (68 часов);

  • мировая художественная культура (72 часа);

  • безопасность жизнедеятельности (68 часов);

  • родной язык (108 часов).

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

Технический английский язык

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

Проблема вторая: иностранный язык не включает в себя техническую часть

Я просмотрел все доступные в институте рабочие программы иностранного языка и нигде не увидел задач на перевод документов и спецификаций. Оказавшись один на один с документацией программы на английском языке, студент теряется. Хорошо, если срабатывает Хром с его встроенным переводчиком, а если его нет это катастрофа. Введение лабораторных работ по данному направлению решило бы эту проблему.

Квалифицированные кадры

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

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

Квалифицированные инженеры не идут в образование из-за сравнительно небольшой зарплаты по сравнению с IT-сферой. По статистике преподаватели получают на 40% больше средней зарплаты в городе, но это все еще не дотягивает до зарплат в IT-компаниях. Как я попал в образование и доволен ли я своей работой? Об этом в следующих публикациях.

Практический опыт работы с оборудованием

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

То немногое, что пытаются сделать преподаватели разобрать рабочий компьютер и попросить студентов собрать его правильно. Или же вытащить составляющую, заменить ее нерабочей и поставить задачу найти почему не работает. Обычно это видеокарта, плашка ОЗУ или неподключенный провод.

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

Отсутствие современного подхода

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

Программирование и пайка микроконтроллеров отдельная история. Хоть и стоят они копейки, бюджетному учреждению получить их довольно сложно. Закупка такого оборудования должна проходить централизовано, а само оборудование иметь сертификацию от МинСвязи. А то вдруг там вшит шпионский компонент. Я даже ездил в местное отделение ФСБ, но получил отписку.

Профильные понятия

Множество понятий, привычных разработчикам и обывателям Хабры абсолютно непонятны ни преподавателям, ни студентам моего ВУЗа. После того, как попытаешься объяснить слова стек или паттерн обязательно вызовут попа из ближайшей церкви для освящения всего вокруг. Знания заканчиваются на определениях переменная, функция, компилятор.

Зачем я все это рассказываю

В какой-то степени, мы готовим кадры для вас, обитатели Хабра. Уже завтра выпускник моего ВУЗа может прийти на собеседование в вашу компанию. Мы хотим сделать все возможное, чтобы выпустить конкурентоспособного специалиста. Если вам не сложно, напишите фидбек. Что нам следует улучшить и добавить, чтобы вы, как HR/коллега/руководитель были довольны нашим выпускником.

Подробнее..

Я месяц провел в MIT и понял даже софтверным инженерам не стоит забывать про паяльник

24.11.2020 18:14:36 | Автор: admin


В детстве отец иногда доверял мне свой паяльник. Я занимался нехитрой пайкой, но чаще поглядывал, как руки отца то окунали паяльник в канифоль, то цепляли кусочек припоя. Запах канифоли с тех пор всегда будит во мне воспоминания. Кто бы мог подумать, что я буду так же увлеченно паять, но уже не батиным, а навороченным американским паяльником, и не на кухне в квартире детства, а в Массачусетском Технологическом институте.

Что ты ожидаешь от одного из самых крутых университетов мира? Выматывающие лекции и бесконечные формулы на белесых от мела досках? Конечно. Умудренная семи пядей во лбу профессура со всего мира? Обязательно. Но престижный Massachusetts Institute of Technology знаменит не только этим. MIT ценят за близость к индустрии. Буквально в нескольких кварталах от университетских корпусов в Бостоне расположены офисы техногигантов, таких как Google и Microsoft. Студентов учат не только инженерному делу, но и практическому его применению, а также умению хорошо продать свою идею, или найти человека, который продвинет твою инновацию на рынок.

Знаменитый Гарвард находится в двух станциях метро от MIT. Умники гарвардские выпускники, разбирающиеся в бизнесе, просто приходят к тру инженерам и создают новые компании. Это место генерирует новые стартапы каждый день. И я совсем не удивился, когда услышал очередное задание от преподавателя воркшопа. Каждому из нас надо было во что бы то ни стало получить скидку в местных магазинах. Один парень так старался на кассе в сетевом Best buy, что продавщица черкнула ему свой номерок и имя в чеке.

Что ж, это тоже успех.

Санкт-Петербург, весна 2013 года за моими плечами ИТМО и несколько разрабовских работ.


К тому времени совсем молодой российский Сколтех (Сколковский институт науки и технологий) набирает студентов в магистратуру. Обучение на английском, все в лучших традициях MIT, и более того, Сколтех и создан при поддержке Массачусетского технологического института. На должность ректора Сколтеха приглашен профессор MIT Эдвард Кроули. Программу магистратуры предваряет поездка в США месячный Innovation Workshop. Не раздумывая я подаю документы и принимаюсь готовиться к вступительным испытаниям.

Процесс поступления я запомнил следующим образом: собираешь и отправляешь документы, тебя приглашают в Москву, где проводят трехдневный хакатон и собеседования. Там же сдаешь TOEFL. Все получилось так быстро, что американской визой я занимался уже в Питере. Отпечатки пальцев, несколько вопросов за жизнь, подтверждающие документы от Сколтеха и выписка со счета с кругленькой суммой. Зачисление в магистратуру и одобрение визы я не знаю, чему я больше радовался!

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

Перелет в Бостон


занял порядка 10-12 часов. Нас встретили, посадили в типично американские огромные черные джипы и отвезли в общежитие, где нас ждала пицца. Боже, о чем еще может мечтать человек после долгого перелета?

Для изучения города нам устроили scavenger hunt по Бостону. С помощью подсказок мы искали специальные монеты, которые были раскиданы по улицам. Я думаю, это выглядело забавно: группки русских и не только студентов носятся по бостонским закоулкам, ищут монеты и донимают местных бесконечными вопросами. Но нам было весело! В выходные занятий не было, за несколько уикендов мы успели изучить окрестности, покататься на яхтах, выехать на океан и даже смотаться в Нью-Йорк.

Рядом с MIT и Гарвардом есть магазины, где можно купить футболки, кружки и другие вещи с символикой университетов. И все это не для туристов. Студенты искренне гордятся тем, где они учатся. На футболках то и дело мелькают надписи Nerd pride. Бостонцы знают и уважают людей из MIT. В один из вечеров я пробрался на концерт в Бостоне.

На пути обратно я встретил много людей, которые махали мне и кричали: MIT rules и engineers forever.


После такого тебя просто переполняет мотивация учиться дальше!



В будни каждый день был расписан по часам. Мы начинали в 9 утра и заканчивали ближе к семи вечера. Нередко, чтобы успеть всё, преподаватели продолжали занятия за обедом, на лужайке или в кафе. Однажды мы немного устали и закапризничали. Кто-то бурчал мол либо ужин, либо учеба. Тогда кто-то предложил: Давайте совмещать, но только если будет пюрешка.. Лекции во время еды не нравились, но с пюрешкой так уж и быть были согласны. Все горячо поддержали эту идею. И вы знаете, преподаватель на следующий день выкатил нам тазик с пюрешкой! Ох, уж эти странные русские, черт с вами, ешьте свою mashed potato, рассмеялся он, и продолжил занятие. Мы были в восторге.

И в этом весь дух отношений между студентами и преподавателями. Это история про уважение и страсть. Все вокруг пашут, фигачат, и ты тоже начинаешь ускоряться. Когда приходишь к человеку, который помогает тебе составить твой индивидуальный план обучения в MIT и говоришь: Я хочу вот эти курсы и еще вот эти. Он смотрит на тебя с облегчением и выдает: Наконец-то человек, который знает, чего хочет.

В погружении в процесс помогают и стены. Все аудитории доступны, нет никаких охранников. По всей территории MIT прекрасный бесплатный вай-фай. (Честно, я сначала подумал, что во всей Америке так. Каково было мое огорчение, когда я вышел в Бостон!).

Вот неполный список того, что мы изучали за 3 недели:


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



Помимо занятий с утра до вечера, в свободное время за 3 недели надо было сделать свой собственный проект или продукт. Кто-то разработал автоматизированный полив, наша команда выкатила систему видеонаблюдения для распознавания того, что человек засыпает. Были еще отдельные тимбилдинговые игры по решению какой-то интересной задачи. Например, надо было используя веревки снять крышку с нефтяной скважины. Починить ее и поместить на место. При условии, что приближаться к скважине можно не ближе чем, на 4 метра.

Нас учили как создавать свои собственные стартапы и компании. Да, они были комнатными, но еще не раз мне пригодится этот опыт в карьере, другим ребятам в науке.

Там я снова взял в руки паяльник и увидел вживую всякие роборуки


На одном из занятий Innovation Workshop преподаватель вручил мне паяльник и сказал что-то в духе: Паяй, сынок. Один преподаватель с помощью света передавал звук. Есть проблема с передачей информации со спутников на землю. Провод не бросить, увы. А что если можно пустить луч, огромная штука его примет и все будет работать! Примерно так он объяснил следующие действия: Смотрите, что могу! Он дает что-то типа приемника одному из нас, а сам берет небольшую указку, которая светит еле видимым светом. Наводит на приемник луч и мы слышим музыку Убирает музыка замолкает. Как ты это делаешь, маг?

И так каждый день. То, что я видел вызывало искренний интерес, какое-то детское восхищение и желание во всем этом участвовать. Как будто на меня навели луч и появилась музыка, которой раньше я не замечал. Ну, если не музыка, то второе дыхание.



После той поездки кто-то из ребят углубился в науку и учится на PhD в Англии, кто-то ушел в data science, а кто-то открыл свою компанию и запускает спутники в космос. Я свое вдохновение конвертировал в страсть: я детально изучал все что давали в Сколтехе, а что не давали отбирал и изучал. Лаборатория робототехники в Сколтехе сделана по образу и подобию соответствующей лаборатории в MIT. Я еще много провел в ней времени, получив доступ к квадракоптерам, 3d-принтерам, лазерным резакам и другому крутому оборудованию, которое я раньше не видел.

Все знания, которые я получил имели практическую направленность. И это очень круто. Ты не просто считаешь дифференциальные уравнения, ты потом с их помощью отображаешь снимки МРТ.

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

75 лекций на русском от Y Combinator (из 172)

26.11.2020 20:11:58 | Автор: admin
image


Патрик и Джон Коллинсон, основатели Stripe (в 22 года и в 21 год), с капитализацией $35 млрд.

Y Combinator лучший в мире акселератор для стартапов по количеству единорогов (21), по объему привлеченных инвестиций ($27 млрд) и по капитализации выпускников ($155 млрд). Важно отметить еще то, что среди выпускников YC было несколько основателей моложе 18 лет (и один 20-летний из России).

А ещё Y Combinator выкладывает все свои учебные материалы бесплатно, уже более 10 лет.

Основатели и техдиры миллиардных стартапов Amazon ($1.55 трлн), Facebook ($720 млрд), PayPal ($127 млрд), AirBnb ($40 млрд), Pinterest ($38 млрд), Stripe ($35 млрд), LinkedIn ($26.2 млрд), Slack ($23 млрд), WatsApp ($19 млрд), Doordash ($16 млрд), Twitch ($15 млрд), Netscape ($10 млрд), Sun Microsystems ($7.4 млрд), Zenefits ($4 млрд), Segment ($4 млрд), Box ($2.76 млрд), Quora ($2 млрд), Asana ($1.5 млрд), Zappos ($1.2 млрд), Docker ($1.2 млрд), Pebble, Jawbone, Opsware, Weebly, Yahoo!Mail, Gmail, Mixpanel, Scribd и пр, а так же основатели венчурных фондов Andreessen Horowitz, Cowboy Ventures делятся своим опытом со всем миром. Это контент невероятного качества для тех, кто хочет играть в высшей лиге, на международном уровне.

Сейчас у Y Combinator 172 видео-лекции в плейлистах: 2012, 2013, 2014 NY, 2014 Europe, 2014 SV, How to Start a Startup (2014 Lectures), 2016, 2017, 2018, Startup Investor School 2018, 2019, 2020. Ниже приедены переводы, субтитры и транскрипты 75 из них.

YC Startup Library на русском


В 2020 году YC выложил в публичный доступ все самые важные наработки за 15 лет, опыт работы более чем с 2000 стартапов, рефлексию, интервью, советы, руководства.

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

Все новости систематизации и русификации библиотеки в телеграм и в фейсбуке.

Английский Язык


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

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

Положение дел со стартапами в России


В лекторы Y Combinator берут только основателей стартапов. Многие из которых перевалили за миллиард долларов. Я видел примеры, что в России школьников и студентов учат стартапам какие-то бабушки и дедушки, которые ничего кроме бюджетных денег в руках не держали. Поэтому контент мирового уровня, доступный в один клик, может помочь любопытным умам сформировать адекватную картину мира и принимать решения той же основе, что и создатели стартапов мирового масштаба.

2014 How to Start a Startup (Stanford)


Lecture 1 How to Start a Startup (Sam Altman, Dustin Moskovitz)/ Как начинать стартап


image

Спикеры Сэм Альтман (основатель Loopt) и Дастин Московиц (сооснователь Facebook).



Lecture 2 Team and Execution (Sam Altman) / Команда и Исполнительность (Сэм Альтман)


image

Спикер Сэм Альтман (основатель Loopt).



Lecture 3 Before the Startup (Paul Graham) / Перед стартапом (Пол Грэм)


image

Спикер Пол Грэм (основатель Y Combinator).



Lecture 4 Building Product, Talking to Users, and Growing (Adora Cheung) / Созлание продукта, разговоры с пользователями, рост (Адора Ченг)


image

Спикер Адора Ченг (партнер YC).



Lecture 5 Competition is for Losers (Peter Thiel) / Конкуренция удел неудачников (Питер Тиль)


image

Спикер Питер Тиль (основатель PayPal, первый инвестор Facebook).



Lecture 6 Growth (Alex Schultz) / Рост (Алекс Шульц)


image

Спикер Алекс Шульц (директор по росту в Facebook).


Lecture 7 How to Build Products Users Love (Kevin Hale) / Как создавать продукт, который полюбят пользователи (Кевин Хейл)


image

Спикер Кевин Хейл (основатель WuFoo).



Lecture 8 How to Get Started, Doing Things that Don't Scale, Press /


image

Спикеры Стэнли Танг (основатель Doordash), Волкер Вильямс (основатель Teespring), Джастин Кан (основатель Twitch).



Lecture 9 How to Raise Money (Marc Andreessen, Ron Conway, Parker Conrad) / Как привлекать инвестиции (Марк Андриессен, Рон Конвей, Паркер Конрад)


image

Спикеры Марк Андриессен (создатель Netscape и основатель инвест-фонда Andreessen Horowitz), Рон Конвей (топовый инвестор Долины), Паркер Конрад (основатель Zenefits).



Lecture 10 Culture (Brian Chesky, Alfred Lin) / Культура (Брайан Чески, Альфред Лин)


image

Спикеры Брайан Чески (основатель AirBnb), Альфред Лин (CEO Zappos, партнер Sequoia Capital).



Lecture 11 Hiring and Culture, Part 2 (Patrick and John Collison, Ben Silbermann) / Найм и Культура


image

Спикеры Патрик Коллисон (основатель Stripe) и Джон Коллисон (основатель Stripe), Бен Сильберман (основатель Pinterest).


Lecture 12 Building for the Enterprise (Aaron Levie) / Разработка B2B-продуктов


image

Спикер Аарон Леви (основатель Box).



Lecture 13 How to be a Great Founder (Reid Hoffman) / Как стать великим основателем (Рейд Хоффман)


image

Спикер Рейд Хоффман (основатель LinkedIn).



Lecture 14 How to Operate (Keith Rabois) / Как заниматься операционной деятельностью


image

Спикер Кит Рабуа (член PayPal-мафии, инвестор PayPal, LinkedIn, Slide, Square, Yelp, Xoom, партнер в Founders Fund).



Lecture 15 How to Manage (Ben Horowitz) / Менеджмент (Бен Хоровиц)


image

Спикер Бен Хоровиц (основатель Opsware и основатель инвест-фонда Andreessen Horowitz).



Lecture 16 How to Run a User Interview (Emmett Shear) / Как проводить интервью с пользователями (Эммет Шир)


image

Спикер Эммет Шир (соонователь и CEO Twitch).



Lecture 17 How to Design Hardware Products (Hosain Rahman) / Как разрабатывать Hardware продукты (Хосейн Рахман)


image

Спикер Хосейн Рахман (основатель и CEO Jawbone).



Lecture 18 Legal and Accounting Basics for Startups (Kirsty Nathoo, Carolynn Levy) / Юридические и финансовые вопросы (Кирсти Нату, Кэролайн Леви)


image

Спикеры Кирсти Нату (Partner, CFO at Y Combinator), Кэролайн Леви (Managing Director, Legal and People Ops).



Lecture 19 Sales and Marketing; How to Talk to Investors (Tyler Bosmeny; YC Partners) / Продажи и маркетинг; Переговоры с инвестором (Тайлер Босмени и компания)


image

Спикер Тайлер Босмени (основатель и CEO Clever).



Lecture 20 Later-stage Advice (Sam Altman) / советы стартапам на поздних стадиях (Сэм Альтман)


image

Спикер Сэм Альтман (основатель Loopt).



2017


1. How and Why to Start A Startup (Sam Altman & Dustin Moskovitz) /Как и почему запускать стартап (Сэм Альтман и Дастин Московиц)


image

Спикеры Дастин Московиц (cооснователь Facebook и сооснователь Asana) Сэм Альтман (основатель Loopt).



2. Startup Mechanics (Kirsty Nathoo) / Финансовая механика стартапов


image

Спикер Кирсти Нату (партнер и финансовый директор YC).



3. How to Get Ideas and How to Measure (Stewart Butterfield, founder and CEO of Slack, and Adam D'Angelo, founder and CEO of Quora) / Как генерить идеи и что измерять (Стюарт Баттэрфилд, Адам Ди Анджело)


image

Спикеры Стюарт Баттэрфилд (основатель Slack) и Адам Ди Анджело (основатель Quora).



4. Live Office Hours with Yuri Sagalov and Sam Altman


image

Спикер Юрий Сагалов (основатель AeroFS).



5. How to Build a Product I (Michael Seibel, Steve Huffman, Emmett Shear) / Как создать продукт, часть 1/4


image

Спикеры Майкл Сибель и Эммет Шир (сооснователи Twitch), Стив Хаффман (основатель Reddit).



6. How to Build a Product II (Aaron Levie) / Как создать продукт, часть 2/4 (Аарон Леви)


image

Спикер Аарон Леви (основатель Box).



7. How to Build a Product III (Jason Lemkin, Solomon Hykes, Tracy Young and Harry Zhang) / Как создать замечательный продукт, часть 3/4 (Соломона Хайка, Трэйси Янги Гарри Жанг)


image

Спикеры- Соломон Хайк (основатель Docker), Трэйси Янг (основательница Plangrid) и Гарри Жанг (основатель Lob).



8. How to Build a Product IV (Jan Koum) / Как создать продукт, часть 4/4, (Ян Кум)


image

Спикер Ян Кум (основатель WhatsApp).



9. How to Get Users and Grow (Alex Schultz) / Где брать пользователей (Алекс Шульц)


image

Спикер Алекс Шульц (директор по росту в Facebook).



10. Live Office Hours with Adora Cheung and Avichal Garg/ Консультации стартапов


image

Спикер Avichal Garg (директор по Product Management в Facebook).



11. How to Invent the Future I (Alan Key) / Как изобрести будущее, часть I (Алан Кей)


image

Спикер Алан Кей (ментор Стива Джобса, создатель концепции ООП и ноутбука).


12. How to Invent the Future II(Alan Key) / Как изобрести будущее, часть II (Алан Кей)


image

Спикер Алан Кей (ментор Стива Джобса, создатель концепции ООП и ноутбука)



13. How to Find Product Market Fit (Peter Reinhardt)/ Как найти Product Market Fit (Питер Райнхардт)


image

Спикер Питер Райнхардт (основатель Segment).



14. How to Think About PR (Sharon Pope) / Как стартапу делать пиар (Шерон Поуп)


image

Спикер Шерон Поуп (глава маркетинга в YC Continuity).



15. Diversity + Inclusion at Early Stage Startups / Разнообразие и вовлеченность в стартапах ранней стадии


image



16. How to Build and Manage Teams (Vinod Khosla) / Создание и управление командами (Винод Хосла)


image

Спикер Винод Хосла (сооснователь Sun Microsystems).



17. Live Office Hours with Kevin Hale and Dalton Caldwell / Офисные часы с Далтоном Колдуэллом


image



18. How to Raise Money, and How to Succeed Long-Term(Jess Lee, Aaron Harris) / Как привлекать деньги и преуспеть в долгосрочной перспективе (Аарон Харрис, Джесс Ли)


image

Спикеры Аарон Харрис (главный по Раунду А в YC), Джесс Ли (основательница Polyvore
и партнер в Sequoia Capital)



2018


1. Geoff Ralston And Adora Cheung Introduction To Startup School


image


2. Sam Altman How to Succeed with a Startup / Как стартапу добиться успеха Сэм Альтман


image

Спикеры Сэм Альтман (основатель Loopt).



3. Carolynn Levy And Panel (Jon Levy, Jason Kwon) Startup Legal Mechanics / Юридическая мехника стартапа Кэролин Леви, Джон Леви и Джейсон Квон


image

Спикер Каролайн Леви (Managing Director YC, Legal and People Ops ), Джон Леви и Джейсон Квон (партнеры YC).



4. A Conversation with Paul Graham Moderated by Geoff Ralston / Беседа с Полом Грэм о том, как приходят идеи, как находить основателей и первых сотрудников


image

Спикер Пол Грэм (основатель Y Combinator).



5. David Rusenko How To Find Product Market Fit / Дэвид Русенко, Weebly как найти рыночную нишу


image

Спикер Дэвид Русенко (основатель Weebly).



6. Michael Seibel Building Product / Майкл Сибел Как создать востребованный продукт


image

Спикер Майкл Сибель (основатель Twitch).



7. A Conversation with Ooshma Garg Moderated by Adora Cheung


image



8. Suhail Doshi How to Measure Your Product / Сухаил Доши Как и что измерять в вашем продукте


image

Спикер Сухаил Доши (основатель Mixpanel).


9. Gustaf Alstromer How to Get Users and Grow / Как найти пользователей и развиваться Густав Альстромер


image

Спикер Густав Альстромер (Product Lead on the Growth team Airbnb).



10. A Conversation About Crypto-currencies and ICOs with Andy Bromberg


image



11. Design for Startups by Garry Tan (Part 1) / Дизайн для стартапов. Гэри Тан. I


image

Спикер Гэри Тан (основатель Posterous и Posthaven).



12. Design for Startups by Garry Tan (Part 2) / Дизайн для стартапов. Гэри Тан. Часть Вторая


image

Спикер Гэри Тан (основатель Posterous и Posthaven).



13. PR + Content for Growth by Kat Maalac and Craig Cannon / PR и контент для роста


image

Спикеры Кэт Маньялак (Managing Outreach Officer at YC) и Крэйг Кэнон (директор по маркетингу YC).



14. A Conversation with Aileen Lee / Беседа с Эйлин Ли


image

Спикер Эйлин Ли (основатель Cowboy Ventures).



15. How to Sell by Tyler Bosmeny / Продажи и создание команды по продажам


image

Спикер Тайлер Босмени (основатель и CEO Clever).



16. Building an Engineering Team by Ammon Bartram and Harj Taggar / Создание команды технарей опыт Аммона Бартрама и Хардж Таггара


image

Спикеры Хардж Таггар (основатель TripleByte) и Аммон Бартрам (основатель TripleByte).



17. How to Apply and Succeed at Y Combinator by Dalton Caldwell / Как подать заявку в YC и преуспеть Далтон Калдуэлл


image

Спикер Спикер Далтон Колдуэлл (основатель imeem и App.net).



18. Running Your Company by Patrick Collison / Как рулить стартапом Патрик Коллисон


image

Спикер Патрик Коллисон (основатель Stripe).



19. A Conversation with Elizabeth Iorns Advice for Biotech Founders


image



20. Startup Technology Technical Founder Advice / Советы от технических директоров стартапов


image

Спикеры Lillian Chou (COO, Second Measure), Diana Hu (CTO, Escher Reality), Calvin French-Owen (CTO, Segment) and Ralph Gootee (CTO, PlanGrid).



21. Fundraising Fundamentals By Geoff Ralston / Основы привлечения финансов Джеф Ральстон


image

Спикер Джеф Ральстон (основатель RocketMail, которая позже стала Yahoo! Mail).


22. A Conversation on Hard Tech with Eric Migicovsky


image



23. Understanding SAFEs and Priced Equity Rounds by Kirsty Nathoo


image



24. How to Get Meetings with Investors and Raise Money by Aaron Harris / Как проводить встречи с инвесторами и убеждать их вложить деньги в вас Арон Харрис


image

Спикер Арон Харрис (главный по Раунду А в YC).



25. A Conversation with Elad Gil


image



26. The Path to $100B by Paul Buchheit / Путь к 100 млрд Пол Букхайт


image

Спикер Пол Букхайт (создатель Gmail и основатель FriendFeed).



27. After PMF: People, Customers, Sales by Mathilde Collin


image



28. How to Win by Daniel Gross / Как победить и не умереть на пути к успеху Дэниэл Гросс


image

Спикер Дэниэл Гросс (основатель Сue, бывший Greplin).



29. A Conversation with Werner Vogels (CTO of Amazon)


image

Спикер Вернер Фогельс (техдиректор и вице-президент Amazon).



2019-2020


1. Kevin Hale How to Evaluate Startup Ideas / Как оценивать и выбирать идеи для запуска стартапа Кевин Хейл


image

Спикер Кевин Хейл (партнер Y Combinator, основатель WuFoo).



2. Eric Migicovsky How to Talk to Users / Как разговаривать с пользователями Эрик Мигиковский


image

Спикер Эрик Мигиковский (основатель Pebble).



3. Startup School Q&A Week 1 / Вопросы и ответы


image



4. Adora Cheung How to Set KPIs and Goals / Как ставить цели и KPI Адора Ченг


image

Спикер Адора Ченг (партнер YC).



5. Ilya Volodarsky Analytics for Startups / Аналитика для стартапа Илья Володарский


image

Спикер Илья Володарский (основатель Segment).



6. Michael Seibel How to Plan an MVP / Как правильно спланировать создание MVP Майкл Сибель


image

Спикер Майкл Сибель (основатель Twitch).



7. Anu Hariharan Nine Business Models and the Metrics Investors Want / Девять бизнес-моделей и какие метрики хотят видеть инвесторы Ану Харихаран


image

Спикер Ану Харихаран (YC Continuity Partner).



8. Anu Hariharan and Adora Cheung How Investors Measure Startups Q&A / Вопросы и ответы


image



9. Kat Maalac How to Launch (Again and Again) / Как стартапу быстро запуститься, а потом еще раз и еще раз Кэт Маньялак


image

Спикер Кэт Маньялак (Managing Outreach Officer at YC).



10. Gustaf Alstrmer Growth for Startups / Механика роста и масштабирования стартапа Густав Альстромер


image

Спикер Густав Альстромер (Product Lead on the Growth team Airbnb).



11. Kirsty Nathoo Managing Startup Finances / Как стартапу не попадать в кассовые и другие финансовые разрывы Кирсти Нату


image

Спикер Кирсти Нату (партнер и финансовый директор YC).



12. Tim Brady Building Culture / Как заложить фундамент здоровой и сильной культуры в стартапе Тим Брэди


image

Спикер Тим Брэди (основатель Imagine K12, CEO QuestBridge).



13. Dalton Caldwell All About Pivoting / Что такое пивоты, когда и как их делать и как Далтон Колдуэлл


image

Спикер Далтон Колдуэлл (основатель imeem и App.net).



14. Kevin Hale How to Improve Conversion Rates / Как улучшить показатели конверсии и как это влияет на рост Кевин Хейл


image

Спикер Кевин Хейл (партнер Y Combinator, основатель WuFoo).



15. Kevin Hale Startup Pricing 101 / Как устанавливать цены и как это влияет на рост стартапа Кевин Хейл


image

Спикер Кевин Хейл (партнер Y Combinator, основатель WuFoo).



16. Kevin Hale How to Work Together / Как в стартапе наладить коммуникацию между со-основателями Кевин Хейл


image

Спикер Кевин Хейл (партнер Y Combinator, основатель WuFoo).



17. Adora Cheung How to Prioritize Your Time / Как выставлять интервалы и приоритеты задачам Адора Ченг


image

Спикер Адора Ченг (партнер YC).



18. Kevin Hale How to Pitch Your Startup / Как питчить ваш стартап Кевин Хейл


image

Спикер Кевин Хейл (партнер Y Combinator, основатель WuFoo).



19. Carolynn Levy Modern Startup Funding / Рассказываем о реалиях современного инвестирования Каролайн Леви


image

Спикер Каролайн Леви (Managing Director YC, Legal and People Ops).



20. Jared Friedman Advice for Hard-tech and Biotech Founders / Советы наукоемким и биотех-стартапам Джаред Фридман


image

Спикер Джаред Фридман (основатель Scribd).



21. Ali Rowghani How to Lead / Как стать лидером и вести за собой людей Али Рогани


image

Спикер Али Рогани (финансист Pixar).



22. Kevin Hale and Adora Cheung Startup School 2019 by the Numbers


image



23. Geoff Ralston Parting Advice / Заключительные советы президента Y Combinator Джефа Ральстона


image

Спикер Джеф Ральстон (основатель RocketMail, которая позже стала Yahoo! Mail).



P.S.


Ron Conway Startup Investor School Day 4


image





9 ноября 2020 стартовала бесплатная Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) от лучшего в мире акселератора и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня.

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод Угол наклона важнее, чем точка пересечения с осью Y

26.11.2020 16:14:32 | Автор: admin

A little bit of slope makes up for a lot of Y-intercept

(by John Ousterhout)

Вот вам пища для размышлений на выходные. Угол наклона важнее, чем точка пересечения с осью Y.

[смех]

image

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

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

[смех]

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

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

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

Другой пример заключается в том, что многие люди застревают в колее своей жизни. Они понимают, что работают не на своем месте. У меня не та работа или не тот супруг или что там еще

[смех]

И они боятся уйти и попробовать что-то новое. Часто они беспокоятся, что я действительно буду плохо выглядеть, если уйду

[смех]

Я шучу насчет супруга. Но, серьезно, люди будут бояться попробовать что-то новое, потому что они боятся, что они будут выглядеть плохо или сделают много ошибок новичка. Но, говорю я, просто иди и сосредоточься на учебе.

[смех]

Позвольте мне пока исключить супруга из уравнения.

[смех]

Сфокусируемся на деле.

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

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

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

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

Я часто спрашиваю себя: узнал ли я сегодня что-нибудь новое? Вы, ребята, моложе и знаете, что ваш угол наклона немного больше моего, так что вы можете изучать 2, 3 или 4 новых вещи в день. Но если вы просто думаете о своем угле наклона и не беспокоитесь о том, где вы начинаете, вы окажетесь в каком-нибудь хорошем месте.

Хорошо, подумайте над этим в выходные.

[аплодисменты]
Подробнее..

Участвуем в соревновании по Data Science. Первый опыт

01.12.2020 00:06:56 | Автор: admin
Привет, Хабр!

Давно я не писал никаких статей и, вот думаю, пришло время написать о там, как мне пригодились знания по data science, полученные по ходу обучения небезывестной специализации от Яндекса и МФТИ Машинное обучение и анализ данных. Правда, справедливости ради надо отметить, что знания до конца не получены спецуха не завершена :) Однако, решать простенькие реальные бизнесовые задачи уже можно. Или нужно? На этот вопрос будет ответ, буквально через пару абзацев.

Итак, сегодня в этой статье я расскажу уважаемому читателю о своем первом опыте участия в открытом соревновании. Хотелось бы сразу отметить, что моей целью соревнования было не получение каких-либо призовых мест. Единственное желание было попробовать свои силы в реальном мире :) Да, в добавок так вышло, что тематика соревнования практически никак не пересекалась с материалом из пройденных курсов. Это добавило некоторые сложности, но с этим соревнование стало еще интереснее и ценнее опыт вынесенный оттуда.

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

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

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

Сопоставление названий


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

Задача


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

Для более эффективной обработки информации о потенциальных клиентах, СИБУРу необходимо знать, связаны ли два названия (т.е. принадлежат одной компании или аффилированным компаниям).

В этом случае СИБУР сможет использовать уже известную информацию о самой компании или об аффилированных компаниях, не дублировать обращения в компанию или не тратить время на нерелевантные компании или дочерние компании конкурентов.

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

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

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

Дополнительная информация о задаче


Раскрой меня для получения дополнительной информации
Аффилированными компаниями считаются компании, принадлежащие одному холдингу или группе компаний. Например, все компании из списка: Сибур Нефтехим, ООО Сибур, Sibur Digital, СИБУР ИТ, Sibur international GMBH являются вариациями названий аффилированных компаний, а компания Сибирь International GMBH не является.
Названия компаний могут писаться на разных языках: тренировочная и тестовая выборки содержат названия компаний на русском, английском и китайском языках.
В названиях могут присутствовать сокращения, опечатки и дополнительная информация о компании, например, названия стран и провинций.
Публичная (50%) и приватная (50%) части тестового множества не пересекаются.

Правила использования внешних источников


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

Верифицируемость У организаторов должна быть возможность воспроизвести ваш способ сбора данных за 1 день для выборки в 1 000 000 уникальных компаний.
На практике количество проверяемых компаний намного больше данных в рамках соревнования (миллионы компаний). К тому же, одним и тем же способом сбора данных могут пользоваться сразу несколько участников и в случае строгих лимитов мы не сможем верифицировать решение.

Публичность Источник должен быть заявлен в чате до 24:00 6 декабря 2020 с хэштегом #внешниеданные и одобрен организаторами.

Добросовестность Способ, который вы используете при работе с источником, и происхождение данных не должны нарушать законы РФ и правила, которые установлены оператором источника.
Если, например, автоматический парсинг какого-либо сайта запрещен владельцами сайта, то вы можете пользоваться им только вручную.

Источник должен допускать коммерческое использование.

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

Один участник может заявить не более 10 источников информации.

Использование API поисковых систем, к сожалению, противоречит пункту 2.

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


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

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

Это касается legel entities, стран, городов и т.д. Например, исключение слова Industries из всех названий допустима.

Замена значимых элементов названия компании возможна только на основании внешних данных. Ручная замена не разрешается.

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

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

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

Использование open source


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

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


Данные


train.csv тренировочное множество

test.csv тестовое множество

sample_submission.csv пример решения в правильном формате

Naming baseline.ipynb код базовое решение

baseline_submission.csv базовое решение

Обратите внимание, организаторы конкурса позаботились о подрастающем поколении и выложили базовое решение задачи, которое дает качество по f1 около 0.1. Я первый раз участвую в соревнованиях и первый раз такое вижу :)

Итак, ознакомившись с самой задачей и требованиями по ее решению, перейдем к плану решения.

План решения задачи


Настройка технических инструментов


Загрузим библиотеки
Напишем вспомогательные функции

Предобработка данных


Загрузим данные
Посмотрим на данные и сделаем копии
Переведем все символы из текста в нижний регистр
Удалим названия стран
Удалим знаки и спецсимволы
Удалим цифры
Удалим первый список стоп-слов. Вручную!
Проведем транслитерацию русского текста в латиницу
Запустим автоматическое составление списка топ 50 самых часто встречающихся слов & Drop it smart. Первый ЧИТ

Генерация и анализ фич


Посчитаем дистанцию Левенштейна
Посчитаем нормированную дистанцию Левенштейна
Визуализируем фичи
Сопоставим слова в тексте для каждой пары и сгенерим большую кучу признаков
Сопоставим слова из текста со словами из названий топ 50 холдинговых брендов нефтехимической, строительной отраслей. Получим вторую большую кучу признаков. Второй ЧИТ
Готовим данные для подачи в модель

Настройка и обучение модели


Итоги соревнования


Источники информации



Теперь, когда мы ознакомились с планом проведения исследования, перейдем к его реализации.

Настройка технических инструментов


Загрузка библиотек


Собственно здесь все просто, для начала установим недостающие библиотеки

Установим библиотеку для определения списка стран и последующего их удаления из текста
pip install pycountry


Установим библиотеку для определения дистанции Левенштейна между словами из текста друг сдругом и со словами из различных списков
pip install strsimpy


Установим библиотеку, с помощью которой проведем транслитерацию русского текста в латиницу
pip install cyrtranslit


Подтянем библиотеки
import pandas as pdimport numpy as npimport warningswarnings.filterwarnings('ignore')import pycountryimport refrom tqdm import tqdmtqdm.pandas()from strsimpy.levenshtein import Levenshteinfrom strsimpy.normalized_levenshtein import NormalizedLevenshteinimport matplotlib.pyplot as pltfrom matplotlib.pyplot import figureimport seaborn as snssns.set()sns.set_style("whitegrid")from sklearn.model_selection import train_test_splitfrom sklearn.model_selection import StratifiedKFoldfrom sklearn.model_selection import StratifiedShuffleSplitfrom scipy.sparse import csr_matriximport lightgbm as lgbfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import recall_scorefrom sklearn.metrics import precision_scorefrom sklearn.metrics import roc_auc_scorefrom sklearn.metrics import classification_report, f1_score# import googletrans# from googletrans import Translatorimport cyrtranslit



Напишем вспомогательные функции


Хорошим тоном считается вместо копи паста большого куска кода указывать функцию в одну строчку. Мы так и будем делать, почти всегда.

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

Итак, первая функция переводит текст в нижний регистр
Код
# convert text to lowercasedef lower_str(data,column):    data[column] = data[column].str.lower()


Следующие четыре функции помогают визуализировать пространство исследуемых признаков и их способность разделять объекты по целевым меткам 0 или 1.
Код
# statistic table for analyse float values (it needs to make histogramms and boxplots)def data_statistics(data,analyse,title_print):    data0 = data[data['target']==0][analyse]    data1 = data[data['target']==1][analyse]    data_describe = pd.DataFrame()    data_describe['target_0'] = data0.describe()    data_describe['target_1'] = data1.describe()    data_describe = data_describe.T        if title_print == 'yes':        print ('\033[1m' + 'Дополнительные статистики по признаку',analyse,'\033[m')     elif title_print == 'no':        None        return data_describe# histogramms for float valuesdef hist_fz(data,data_describe,analyse,size):    print ()    print ('\033[1m' + 'Information about',analyse,'\033[m')    print ()        data_0 = data[data['target'] == 0][analyse]    data_1 = data[data['target'] == 1][analyse]        min_data = data_describe['min'].min()    max_data = data_describe['max'].max()        data0_mean = data_describe.loc['target_0']['mean']    data0_median = data_describe.loc['target_0']['50%']    data0_min = data_describe.loc['target_0']['min']    data0_max = data_describe.loc['target_0']['max']    data0_count = data_describe.loc['target_0']['count']            data1_mean = data_describe.loc['target_1']['mean']    data1_median = data_describe.loc['target_1']['50%']     data1_min = data_describe.loc['target_1']['min']    data1_max = data_describe.loc['target_1']['max']    data1_count = data_describe.loc['target_1']['count']            print ('\033[4m' + 'Analyse'+ '\033[m','No duplicates')        figure(figsize=size)    sns.distplot(data_0,color='darkgreen',kde = False)        plt.scatter(data0_mean,0,s=200,marker='o',c='dimgray',label='Mean')    plt.scatter(data0_median,0,s=250,marker='|',c='black',label='Median')    plt.legend(scatterpoints=1,               loc='upper right',               ncol=3,               fontsize=16)    plt.xlim(min_data, max_data)    plt.show()    print ('Quantity:', data0_count,           '         Min:', round(data0_min,2),           '         Max:', round(data0_max,2),           '         Mean:', round(data0_mean,2),           '         Median:', round(data0_median,2))        print ()    print ('\033[4m' + 'Analyse'+ '\033[m','Duplicates')        figure(figsize=size)    sns.distplot(data_1,color='darkred',kde = False)    plt.scatter(data1_mean,0,s=200,marker='o',c='dimgray',label='Mean')    plt.scatter(data1_median,0,s=250,marker='|',c='black',label='Median')    plt.legend(scatterpoints=1,               loc='upper right',               ncol=3,               fontsize=16)    plt.xlim(min_data, max_data)    plt.show()    print ('Quantity:', data_1.count(),           '         Min:', round(data1_min,2),           '         Max:', round(data1_max,2),           '         Mean:', round(data1_mean,2),           '         Median:', round(data1_median,2))# draw boxplotdef boxplot(data,analyse,size):    print ('\033[4m' + 'Analyse'+ '\033[m','All pairs')        data_0 = data[data['target'] == 0][analyse]    data_1 = data[data['target'] == 1][analyse]        figure(figsize=size)    sns.boxplot(x=analyse,y='target',data=data,orient='h',                showmeans=True,                                meanprops={"marker":"o",                           "markerfacecolor":"dimgray",                            "markeredgecolor":"black",                          "markersize":"14"},               palette=['palegreen', 'salmon'])    plt.ylabel('target', size=14)    plt.xlabel(analyse, size=14)    plt.show()# draw graph for analyse two choosing features for predict traget labeldef two_features(data,analyse1,analyse2,size):    fig = plt.subplots(figsize=size)        x0 = data[data['target']==0][analyse1]    y0 = data[data['target']==0][analyse2]    x1 = data[data['target']==1][analyse1]    y1 = data[data['target']==1][analyse2]        plt.scatter(x0,y0,c='green',marker='.')    plt.scatter(x1,y1,c='black',marker='+')    plt.xlabel(analyse1)    plt.ylabel(analyse2)    title = [analyse1,analyse2]    plt.title(title)    plt.show()


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

Иными словами, после формирования вектора прогнозов, нам потребуется сопоставить прогноз с целевыми метками. Результатом такого сопоставления должна получиться таблица сопряжения для каждой пары компаний из обучающей выборки. В таблице сопряжения для каждой пары будет определен результат соответствия прогноза к классу из обучающей выборки. Классификация соответствия принята такой: 'True positive', 'False positive', 'True negative' или 'False negative'. Эти данные очень важны для анализа работы алгоритма и принятия решений по доработке модели и признакового пространства.
Код
def contingency_table(X,features,probability_level,tridx,cvidx,model):    tr_predict_proba = model.predict_proba(X.iloc[tridx][features].values)    cv_predict_proba = model.predict_proba(X.iloc[cvidx][features].values)    tr_predict_target = (tr_predict_proba[:, 1] > probability_level).astype(np.int)    cv_predict_target = (cv_predict_proba[:, 1] > probability_level).astype(np.int)    X_tr = X.iloc[tridx]    X_cv = X.iloc[cvidx]    X_tr['predict_proba'] = tr_predict_proba[:,1]    X_cv['predict_proba'] = cv_predict_proba[:,1]    X_tr['predict_target'] = tr_predict_target    X_cv['predict_target'] = cv_predict_target    # make true positive column    data = pd.DataFrame(X_tr[X_tr['target']==1][X_tr['predict_target']==1]['pair_id'])    data['True_Positive'] = 1    X_tr = X_tr.merge(data,on='pair_id',how='left')    data = pd.DataFrame(X_cv[X_cv['target']==1][X_cv['predict_target']==1]['pair_id'])    data['True_Positive'] = 1    X_cv = X_cv.merge(data,on='pair_id',how='left')    # make false positive column    data = pd.DataFrame(X_tr[X_tr['target']==0][X_tr['predict_target']==1]['pair_id'])    data['False_Positive'] = 1    X_tr = X_tr.merge(data,on='pair_id',how='left')    data = pd.DataFrame(X_cv[X_cv['target']==0][X_cv['predict_target']==1]['pair_id'])    data['False_Positive'] = 1    X_cv = X_cv.merge(data,on='pair_id',how='left')    # make true negative column    data = pd.DataFrame(X_tr[X_tr['target']==0][X_tr['predict_target']==0]['pair_id'])    data['True_Negative'] = 1    X_tr = X_tr.merge(data,on='pair_id',how='left')    data = pd.DataFrame(X_cv[X_cv['target']==0][X_cv['predict_target']==0]['pair_id'])    data['True_Negative'] = 1    X_cv = X_cv.merge(data,on='pair_id',how='left')    # make false negative column    data = pd.DataFrame(X_tr[X_tr['target']==1][X_tr['predict_target']==0]['pair_id'])    data['False_Negative'] = 1    X_tr = X_tr.merge(data,on='pair_id',how='left')    data = pd.DataFrame(X_cv[X_cv['target']==1][X_cv['predict_target']==0]['pair_id'])    data['False_Negative'] = 1    X_cv = X_cv.merge(data,on='pair_id',how='left')        return X_tr,X_cv


Шестая функция предназначена для формирования матрицы сопряжения. Не путайте с таблицей сопряжения. Хотя одно следует из другого. Вы сами все увидете дальше
Код
def matrix_confusion(X):    list_matrix = ['True_Positive','False_Positive','True_Negative','False_Negative']    tr_pos = X[list_matrix].sum().loc['True_Positive']    f_pos = X[list_matrix].sum().loc['False_Positive']    tr_neg = X[list_matrix].sum().loc['True_Negative']    f_neg = X[list_matrix].sum().loc['False_Negative']    matrix_confusion = pd.DataFrame()    matrix_confusion['0_algorythm'] = np.array([tr_neg,f_neg]).T    matrix_confusion['1_algorythm'] = np.array([f_pos,tr_pos]).T    matrix_confusion = matrix_confusion.rename(index={0: '0_target', 1: '1_target'})        return matrix_confusion


Седьмая функция предназначена для визуализации отчета о работе алгоритма, который включает в себя матрицу сопряжения, значения метрик precision, recall, f1
Код
def report_score(tr_matrix_confusion,                 cv_matrix_confusion,                 data,tridx,cvidx,                 X_tr,X_cv):    # print some imporatant information    print ('\033[1m'+'Matrix confusion on train data'+'\033[m')    display(tr_matrix_confusion)    print ()    print(classification_report(data.iloc[tridx]["target"].values, X_tr['predict_target']))    print ('******************************************************')    print ()    print ()    print ('\033[1m'+'Matrix confusion on test(cv) data'+'\033[m')    display(cv_matrix_confusion)    print ()    print(classification_report(data.iloc[cvidx]["target"].values, X_cv['predict_target']))    print ('******************************************************')


С помощью восьмой и девятой функции проведем анализ на полезность признаков для используемой модели из Light GBM с точки зрения значения коэффициента 'Information gain' для каждого исследуемого признака
Код
def table_gain_coef(model,features,start,stop):        data_gain = pd.DataFrame()    data_gain['Features'] = features    data_gain['Gain'] = model.booster_.feature_importance(importance_type='gain')    return data_gain.sort_values('Gain', ascending=False)[start:stop]def gain_hist(df,size,start,stop):    fig, ax = plt.subplots(figsize=(size))    x = (df.sort_values('Gain', ascending=False)['Features'][start:stop])    y = (df.sort_values('Gain', ascending=False)['Gain'][start:stop])    plt.bar(x,y)    plt.xlabel('Features')    plt.ylabel('Gain')    plt.xticks(rotation=90)    plt.show()


Десятая функция нужна для формирования массива количества совпадающих слов для каждой пары компаний.

Эту функцию также можно использовать для формирования массива НЕ совпадающих слов.
Код
def compair_metrics(data):    duplicate_count = []    duplicate_sum = []    for i in range(len(data)):        count=len(data[i])        duplicate_count.append(count)        if count <= 0:            duplicate_sum.append(0)        elif count > 0:            temp_sum = 0            for j in range(len(data[i])):                temp_sum +=len(data[i][j])            duplicate_sum.append(temp_sum)    return duplicate_count,duplicate_sum    


Одинадцатая функция проводит транслитерацию русского текста в латиницу
Код
def transliterate(data):    text_transliterate = []    for i in range(data.shape[0]):        temp_list = list(data[i:i+1])        temp_str = ''.join(temp_list)        result = cyrtranslit.to_latin(temp_str,'ru')        text_transliterate.append(result)Двенадцатая функция нужна для переименования столбцов таблицы после агрегирования данных. Дело в том, что после агрегации данных, названия столбцов, как бы распадаются на два уровня. В итоге, для приведения таблицы к принятому в исследовании формату, используем самописную функцию<spoiler title="Код"><source lang="python">def rename_agg_columns(id_client,data,rename):    columns = [id_client]    for lev_0 in data.columns.levels[0]:        if lev_0 != id_client:            for lev_1 in data.columns.levels[1][:-1]:                columns.append(rename % (lev_0, lev_1))    data.columns = columns    return data


return text_transliterate

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

Что это вообще за таблица, какие в ней метрики и как она формируется? Давайте рассмотрим пошагово формирование таблицы:
Шаг 1. Определим какие данные нам будут нужны. ID пары, финишная обработка текста оба столбца, список названий холдингов (топ 50 компаний нефтехимической и строительной индустрии).
Шаг 2. В столбце 1 в каждой паре от каждого слова замерим дистанцию Левенштейна до каждого слова из списка названий холдингов, а также длину каждого слова и отношение дистанции к длине.
Шаг 3. В случае, если значение отношения окажется меньше или равно 0.4, то от сравниваемого слова из списка названий топ холдингов определим дистанцию до каждого слова из второго столбца соответствующей id пары, а также длину каждого из слов и отношение дистанции к длине.
Шаг 4. В случае, если в очередной раз отношение оказывается меньше или равно 0.4, то все собранные метрики фиксируются.
Шаг 5. По завершению алгоритма будет сформирована таблица, в которой первый столбец ID пары, а последующие столбцы метрики. Данные в таблице необходимо агрегировать по id пары (так как могут быть случаи сильного соответствия слов из одной id пары двум названиям холдингов). При агрегировании данных выбираем минимальные значения.
Шаг 6. Склеиваем полученную таблицу с таблицей исследования.

Важная особенность: расчет занимает продолжительное время из-за написанного на скорую руку кода
Код
def dist_name_to_top_list_view(data,column1,column2,list_top_companies):    id_pair = []    r1 = []    r2 = []    words1 = []    words2 = []    top_words = []    for n in range(0, data.shape[0], 1):        for line1 in data[column1][n:n+1]:            line1 = line1.split()            for word1 in line1:                if len(word1) >=3:                    for top_word in list_top_companies:                        dist1 = levenshtein.distance(word1, top_word)                        ratio = max(dist1/float(len(top_word)),dist1/float(len(word1)))                        if ratio <= 0.4:                            ratio1 = ratio                            break                    if ratio <= 0.4:                        for line2 in data[column2][n:n+1]:                            line2 = line2.split()                            for word2 in line2:                                dist2 = levenshtein.distance(word2, top_word)                                ratio = max(dist2/float(len(top_word)),dist2/float(len(word2)))                                if ratio <= 0.4:                                    ratio2 = ratio                                    id_pair.append(int(data['pair_id'][n:n+1].values))                                    r1.append(ratio1)                                    r2.append(ratio2)                                    break    df = pd.DataFrame()    df['pair_id'] = id_pair    df['levenstein_dist_w1_top_w'] = dist1    df['levenstein_dist_w2_top_w'] = dist2    df['length_w1_top_w'] = len(word1)    df['length_w2_top_w'] = len(word2)    df['length_top_w'] = len(top_word)    df['ratio_dist_w1_to_top_w'] = r1    df['ratio_dist_w2_to_top_w'] = r2    feature = df.groupby(['pair_id']).agg([min]).reset_index()    feature = rename_agg_columns(id_client='pair_id',data=feature,rename='%s_%s')    data = data.merge(feature,on='pair_id',how='left')    display(data)    print ('Words:', word1,word2,top_word)    print ('Levenstein distance:',dist1,dist2)    print ('Length of word:',len(word1),len(word2),len(top_word))    print ('Ratio (distance/length word):',ratio1,ratio2)def dist_name_to_top_list_make(data,column1,column2,list_top_companies):    id_pair = []    r1 = []    r2 = []    dist_w1 = []    dist_w2 = []    length_w1 = []    length_w2 = []    length_top_w = []    for n in range(0, data.shape[0], 1):        for line1 in data[column1][n:n+1]:            line1 = line1.split()            for word1 in line1:                if len(word1) >=3:                    for top_word in list_top_companies:                        dist1 = levenshtein.distance(word1, top_word)                        ratio = max(dist1/float(len(top_word)),dist1/float(len(word1)))                        if ratio <= 0.4:                            ratio1 = ratio                            break                    if ratio <= 0.4:                        for line2 in data[column2][n:n+1]:                            line2 = line2.split()                            for word2 in line2:                                dist2 = levenshtein.distance(word2, top_word)                                ratio = max(dist2/float(len(top_word)),dist2/float(len(word2)))                                if ratio <= 0.4:                                    ratio2 = ratio                                    id_pair.append(int(data['pair_id'][n:n+1].values))                                    r1.append(ratio1)                                    r2.append(ratio2)                                    dist_w1.append(dist1)                                    dist_w2.append(dist2)                                    length_w1.append(float(len(word1)))                                    length_w2.append(float(len(word2)))                                    length_top_w.append(float(len(top_word)))                                    break    df = pd.DataFrame()    df['pair_id'] = id_pair    df['levenstein_dist_w1_top_w'] = dist_w1    df['levenstein_dist_w2_top_w'] = dist_w2    df['length_w1_top_w'] = length_w1    df['length_w2_top_w'] = length_w2    df['length_top_w'] = length_top_w    df['ratio_dist_w1_to_top_w'] = r1    df['ratio_dist_w2_to_top_w'] = r2    feature = df.groupby(['pair_id']).agg([min]).reset_index()    feature = rename_agg_columns(id_client='pair_id',data=feature,rename='%s_%s')    data = data.merge(feature,on='pair_id',how='left')    return data


Предобработка данных


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

Загрузим данные


Здесь все очень просто. Загрузим данные и заменим название столбца с целевой меткой is_duplicate на target. Это делается для удобства использования функций некоторые из них были написаны в рамках более ранних исследований и они используют название столбца с целевой меткой как target.
Код
# DOWNLOAD DATAtext_train = pd.read_csv('train.csv')text_test = pd.read_csv('test.csv')# RENAME DATAtext_train = text_train.rename(columns={"is_duplicate": "target"})


Посмотрим на данные


Данные загрузили. Давайте посмотрим сколько всего объектов и насколько они сбалансированны.
Код
# ANALYSE BALANCE OF DATAtarget_1 = text_train[text_train['target']==1]['target'].count()target_0 = text_train[text_train['target']==0]['target'].count()print ('There are', text_train.shape[0], 'objects')print ('There are', target_1, 'objects with target 1')print ('There are', target_0, 'objects with target 0')print ('Balance is', round(100*target_1/target_0,2),'%')


Таблица 1 Баланс меток


Объектов не мало почти 500 тысяч и они вообще никак не сбалансированы. То есть из почти 500 тысяч объектов, всего менее 4 тысяч имеют целевую метку 1 (менее 1%)

Давайте посмотрим на саму таблицу. Посмотрим на первые пять объектов с разметкой 0 и первые пять объектов с разметкой 1.
Код
display(text_train[text_train['target']==0].head(5))display(text_train[text_train['target']==1].head(5))


Таблица 2 Первые 5 объектов класса 0, таблица 3 Первые 5 объектов класса 1


Сразу напрашиваются некоторые простые шаги: привести текст к одному регистру, убрать всякие стоп-слова, типа 'ltd', удалить страны и заодно названия географических объектов.

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

Сделаем копии


Если честно, то не знаю зачем я это делаю, но почему-то всегда это делаю. Сделаю и в этот раз
Код
baseline_train = text_train.copy()baseline_test = text_test.copy()


Переведем все символы из текста в нижний регистр


Код
# convert text to lowercasecolumns = ['name_1','name_2']for column in columns:    lower_str(baseline_train,column)for column in columns:    lower_str(baseline_test,column)


Удалим названия стран


Надо отметить, что организаторы конкурса большие молодцы! Вместе с заданием они дали ноутбук с очень простым baseline, в котором был предоставлен, в том числе и нижеприведенный код.
Код
# drop any names of countriescountries = [country.name.lower() for country in pycountry.countries]for country in tqdm(countries):    baseline_train.replace(re.compile(country), "", inplace=True)    baseline_test.replace(re.compile(country), "", inplace=True)


Удалим знаки и спецсимволы


Код
# drop punctuation marksbaseline_train.replace(re.compile(r"\s+\(.*\)"), "", inplace=True)baseline_test.replace(re.compile(r"\s+\(.*\)"), "", inplace=True)baseline_train.replace(re.compile(r"[^\w\s]"), "", inplace=True)baseline_test.replace(re.compile(r"[^\w\s]"), "", inplace=True)


Удалим цифры


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

Также обратите внимание, что до этого момента мы проводили преобразование прямо в столбцах, которые нам были даны. Давайте теперь будем создавать новые столбцы для каждой предобработки. Столбцов получится больше, зато если где-то на каком-то этапе предобработки произойдет сбой ничего страшного, делать все с самого начала не нужно, ведь у нас будут столбы с каждого этапа предобработки.
Код, который испортил качество. Нужно деликатнее быть
# # first: make dictionary of frequency every word# list_words = baseline_train['name_1'].to_string(index=False).split() +\#                 baseline_train['name_2'].to_string(index=False).split()# freq_words = {}# for w in list_words:#     freq_words[w] = freq_words.get(w, 0) + 1    # # second: make data frame of frequency words# df_freq = pd.DataFrame.from_dict(freq_words,orient='index').reset_index()# df_freq.columns = ['word','frequency']# df_freq_agg = df_freq.groupby(['word']).agg([sum]).reset_index()# df_freq_agg = rename_agg_columns(id_client='word',data=df_freq_agg,rename='%s_%s')# df_freq_agg = df_freq_agg.sort_values(by=['frequency_sum'], ascending=False)# # third: make drop list of digits# string = df_freq_agg['word'].to_string(index=False)# digits = [int(digit) for digit in string.split() if digit.isdigit()]# digits = set(digits)# digits = list(digits)# # drop the digits# baseline_train['name_1_no_digits'] =\#     baseline_train['name_1'].apply(#     lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))# baseline_train['name_2_no_digits'] =\#     baseline_train['name_2'].apply(#     lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))# baseline_test['name_1_no_digits'] =\#     baseline_test['name_1'].apply(#     lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))# baseline_test['name_2_no_digits'] =\#     baseline_test['name_2'].apply(#     lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))


Удалим первый список стоп-слов. Вручную!


Теперь предлагается определить и удалить стоп-слова из списка слов в названиях компаний.

Список мы составили на основании ручного просмотра обучающей выборки. По логике, такой список нужно составлять автоматически, используя следующие подходы:
во-первых, использовать топ 10 (20,50,100) часто встречающихся слов.
во-вторых, использовать стандартные библиотеки стоп-слов на различных языках. Например, обозначения организационно-правовых форм организаций на различных языках (ООО, ПАО, ЗАО, ltd, gmbh, inc и др.)
в-третьих, имеет смысл составить список географических названий на различных языках

К первому варианту автоматического составления списка топ часто встречающихся слов мы еще вернемся, а пока смотрим на ручную предобработку.
Код
# drop some stop-wordsdrop_list = ["ltd.", "co.", "inc.", "b.v.", "s.c.r.l.", "gmbh", "pvt.",                          'retail','usa','asia','ceska republika','limited','tradig','llc','group',             'international','plc','retail','tire','mills','chemical','korea','brasil',             'holding','vietnam','tyre','venezuela','polska','americas','industrial','taiwan',             'europe','america','north','czech republic','retailers','retails',                        'mexicana','corporation','corp','ltd','co','toronto','nederland','shanghai','gmb','pacific',            'industries','industrias',                        'inc', 'ltda', 'ооо', 'ООО', 'зао', 'ЗАО', 'оао', 'ОАО', 'пао', 'ПАО', 'ceska republika', 'ltda',             'sibur', 'enterprises', 'electronics', 'products', 'distribution', 'logistics', 'development',            'technologies', 'pvt', 'technologies', 'comercio', 'industria', 'trading', 'internacionais',             'bank', 'sports',                        'express','east', 'west', 'south', 'north', 'factory', 'transportes', 'trade', 'banco',            'management', 'engineering', 'investments', 'enterprise', 'city', 'national', 'express', 'tech',             'auto', 'transporte', 'technology', 'and', 'central', 'american',                        'logistica','global','exportacao', 'ceska republika', 'vancouver', 'deutschland',                        'sro','rus','chemicals','private','distributors','tyres','industry','services','italia','beijing',                        'рус','company','the','und']baseline_train['name_1_non_stop_words'] =\    baseline_train['name_1'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_train['name_2_non_stop_words'] =\    baseline_train['name_2'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_test['name_1_non_stop_words'] =\    baseline_test['name_1'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_test['name_2_non_stop_words'] =\    baseline_test['name_2'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))


Давайте выборочно проверим, что наши стоп слова были действительно удалены из текста
Код
baseline_train[baseline_train.name_1_non_stop_words.str.contains("factory")].head(3)


Таблица 4 Выборочная проверка работы кода по удалению стоп-слов

Вроде все работает. Удалены все стоп-слова, которые отделены пробелом. То, что мы и хотели. Двигаемся дальше.

Проведем транслитерацию русского текста в латиницу


Я использую для этого свою самописную функцию и библиотеку cyrtranslit. Вроде работает. Проверял вручную.
Код
# transliteration to latinbaseline_train['name_1_transliterated'] = transliterate(baseline_train['name_1_non_stop_words'])baseline_train['name_2_transliterated'] = transliterate(baseline_train['name_2_non_stop_words'])baseline_test['name_1_transliterated'] = transliterate(baseline_test['name_1_non_stop_words'])baseline_test['name_2_transliterated'] = transliterate(baseline_test['name_2_non_stop_words'])


Давайте посмотрим на пару с id 353150. В ней второй столбец (name_2) имеет слово мишлен, после предобработки слово уже пишется так mishlen (см. столбец name_2_transliterated). Не совсем правильно, но явно лучше.
Код
pair_id = 353150baseline_train[baseline_train['pair_id']==353150]


Таблица 5 Выборочная проверка кода по транслитерации


Запустим автоматическое составление списка топ 50 самых часто встречающихся слов & Drop it smart. Первый ЧИТ


Немного мудреный заголовок. Давайте по порядку разберем, что мы тут будем делать.

Во-первых, мы объединим текст из первого и второго столбца в один массив и посчитаем для каждого уникального слова, количество раз, которое оно встречалось.

Во-вторых, выберем топ 50 таких слов. И казалось бы можно их удалить, но нет. В этих словах могут быть названия холдингов ('total', 'knauf', 'shell',...), а это очень важная информация и ее нельзя потерять, так как далее мы будем ее использовать. Поэтому мы пойдем на читерский (запрещенный) прием. Для начала, на основании внимательного, выборочного изучения обучающей выборки, составим список названий часто встречающихся холдингов. Список будет не полный, иначе это было бы совсем не честно :) Хотя, так как мы не гонимся за призовым местом, то почему бы и нет. Затем мы сравним массив топ 50 часто встречающихся слов со списком названий холдингов и выкинем из списка слова, которые совпадают с названиями холдингов.

Теперь второй список стоп-слов готов. Можно удалять слова из текста.

Но перед тем, хотелось бы вставить небольшую ремарочку касательно читерского списка названий холдингов. То, что мы составили на основании наблюдений список из названий холдингов сильно упростило нам жизнь. Но на самом деле, мы могли составить такой список другим способом. Например, можно взять рейтинги крупнейших компаний в нефтехимической, строительной, автомобильной и других отраслях, объединить их и взять оттуда названия холдингов. Но в целях нашего исследования, мы ограничимся простым подходом. Такой подход запрещен в рамках соревнования! Более того, организаторы соревнований, работы кандидатов на призовые места проверяют на предмет запрещенных приемов. Будьте внимательны!
Код
list_top_companies = ['arlanxeo', 'basf', 'bayer', 'bdp', 'bosch', 'brenntag', 'contitech',                      'daewoo', 'dow', 'dupont', 'evonik', 'exxon', 'exxonmobil', 'freudenberg',                      'goodyear', 'goter', 'henkel', 'hp', 'hyundai', 'isover', 'itochu', 'kia', 'knauf',                      'kraton', 'kumho', 'lusocopla', 'michelin', 'paul bauder', 'pirelli', 'ravago',                      'rehau', 'reliance', 'sabic', 'sanyo', 'shell', 'sherwinwilliams', 'sojitz',                      'soprema', 'steico', 'strabag', 'sumitomo', 'synthomer', 'synthos',                      'total', 'trelleborg', 'trinseo', 'yokohama']# drop top 50 common words (NAME 1 & NAME 2) exept names of top companies# first: make dictionary of frequency every wordlist_words = baseline_train['name_1_transliterated'].to_string(index=False).split() +\                baseline_train['name_2_transliterated'].to_string(index=False).split()freq_words = {}for w in list_words:    freq_words[w] = freq_words.get(w, 0) + 1    # # second: make data framedf_freq = pd.DataFrame.from_dict(freq_words,orient='index').reset_index()df_freq.columns = ['word','frequency']df_freq_agg = df_freq.groupby(['word']).agg([sum]).reset_index()df_freq_agg = rename_agg_columns(id_client='word',data=df_freq_agg,rename='%s_%s')df_freq_agg = df_freq_agg.sort_values(by=['frequency_sum'], ascending=False)drop_list = list(set(df_freq_agg[0:50]['word'].to_string(index=False).split()) - set(list_top_companies))# # check list of top 50 common words# print (drop_list) # drop the top 50 wordsbaseline_train['name_1_finish'] =\    baseline_train['name_1_transliterated'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_train['name_2_finish'] =\    baseline_train['name_2_transliterated'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_test['name_1_finish'] =\    baseline_test['name_1_transliterated'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))baseline_test['name_2_finish'] =\    baseline_test['name_2_transliterated'].apply(    lambda x: ' '.join([word for word in x.split() if word not in (drop_list)]))


На этом мы закончили с предобработкой данных. Начнем генерировать новые фичи и визуально их оценивать на способность разделять объекты на 0 или 1.

Генерация и анализ фич


Посчитаем дистанцию Левенштейна


Воспользуемся библиотекой strsimpy и в каждой паре (после всех предобработок) посчитаем дистанцию Левенштейна от названия компании из первого столбца до названия компании во втором столбце.
Код
# create feature with LEVENSTAIN DISTANCElevenshtein = Levenshtein()column_1 = 'name_1_finish'column_2 = 'name_2_finish'baseline_train["levenstein"] = baseline_train.progress_apply(    lambda r: levenshtein.distance(r[column_1], r[column_2]), axis=1)baseline_test["levenstein"] = baseline_test.progress_apply(    lambda r: levenshtein.distance(r[column_1], r[column_2]), axis=1)


Посчитаем нормализованную дистанцию Левенштейна


Все тоже самое, что и выше, только считать мы будем нормированную дистанцию.
Заголовок спойлера
# create feature with NORMALIZATION LEVENSTAIN DISTANCEnormalized_levenshtein = NormalizedLevenshtein()column_1 = 'name_1_finish'column_2 = 'name_2_finish'baseline_train["norm_levenstein"] = baseline_train.progress_apply(    lambda r: normalized_levenshtein.distance(r[column_1], r[column_2]),axis=1)baseline_test["norm_levenstein"] = baseline_test.progress_apply(    lambda r: normalized_levenshtein.distance(r[column_1], r[column_2]),axis=1)


Посчитали, а теперь визуализируем

Визуализируем фичи


Посмотрим на распределение признака 'levenstein'
Код
data = baseline_trainanalyse = 'levenstein'size = (12,2)dd = data_statistics(data,analyse,title_print='no')hist_fz(data,dd,analyse,size)boxplot(data,analyse,size)


Графики 1 Гистограмма и ящик с усами для оценки значимости признака

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

Посмотрим на распределение признака 'norm_levenstein'
Заголовок спойлера
data = baseline_trainanalyse = 'norm_levenstein'size = (14,2)dd = data_statistics(data,analyse,title_print='no')hist_fz(data,dd,analyse,size)boxplot(data,analyse,size)


Графики 2 Гистограмма и ящик с усами для оценки значимости признака

Уже лучше. А теперь, давайте посмотрим на то, как две вместе взятые фичи будут разделять пространство на объекты 0 и 1.
Код
data = baseline_trainanalyse1 = 'levenstein'analyse2 = 'norm_levenstein'size = (14,6)two_features(data,analyse1,analyse2,size)


График 3 Диаграмма рассеяния

Очень даже неплохая разметка получается. Значит не зря мы столько предобрабатывали данные :)
Всем же понятно, что по горизонтали значения метрики levenstein, а по вертикали значения метрики norm_levenstein, а зелененькие и черненькие точки это объекты 0 и 1. Двигаемся дальше.

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


Ниже мы проведем сравнение слов в названиях компаний. Создадим следующие признаки:
список слов, которые дублируются в столбцах 1 и 2 каждой пары
список слов, которые НЕ дублируются

На основании этих списков слов, создадим признаки, которые мы подадим в обучаемую модель:
количество дублирующихся слов
количество НЕ дублирующихся слов
сумма символов, дублирующихся слов
сумма символов, НЕ дублирующихся слов
средняя длина дублирующихся слов
средняя длина НЕ дублирующихся слов
отношение количества дубликатов к количеству НЕ дубликатов

Код здесь, наверное, не очень дружелюбный, так как опять-таки, написан был на скорую руку. Но он работает, а для быстрого исследования пойдет.
Код
# make some information about duplicates and differences for TRAINcolumn_1 = 'name_1_finish'column_2 = 'name_2_finish'duplicates = []difference = []for i in range(baseline_train.shape[0]):    list1 = list(baseline_train[i:i+1][column_1])    str1 = ''.join(list1).split()    list2 = list(baseline_train[i:i+1][column_2])    str2 = ''.join(list2).split()        duplicates.append(list(set(str1) & set(str2)))    difference.append(list(set(str1).symmetric_difference(set(str2))))    # continue make information about duplicatesduplicate_count,duplicate_sum = compair_metrics(duplicates)dif_count,dif_sum = compair_metrics(difference)# create features have information about duplicates and differences for TRAINbaseline_train['duplicate'] = duplicatesbaseline_train['difference'] = differencebaseline_train['duplicate_count'] = duplicate_countbaseline_train['duplicate_sum'] = duplicate_sumbaseline_train['duplicate_mean'] = baseline_train['duplicate_sum'] / baseline_train['duplicate_count']baseline_train['duplicate_mean'] = baseline_train['duplicate_mean'].fillna(0)baseline_train['dif_count'] = dif_countbaseline_train['dif_sum'] = dif_sumbaseline_train['dif_mean'] = baseline_train['dif_sum'] / baseline_train['dif_count']baseline_train['dif_mean'] = baseline_train['dif_mean'].fillna(0)baseline_train['ratio_duplicate/dif_count'] = baseline_train['duplicate_count'] / baseline_train['dif_count']# make some information about duplicates and differences for TESTcolumn_1 = 'name_1_finish'column_2 = 'name_2_finish'duplicates = []difference = []for i in range(baseline_test.shape[0]):    list1 = list(baseline_test[i:i+1][column_1])    str1 = ''.join(list1).split()    list2 = list(baseline_test[i:i+1][column_2])    str2 = ''.join(list2).split()        duplicates.append(list(set(str1) & set(str2)))    difference.append(list(set(str1).symmetric_difference(set(str2))))    # continue make information about duplicatesduplicate_count,duplicate_sum = compair_metrics(duplicates)dif_count,dif_sum = compair_metrics(difference)# create features have information about duplicates and differences for TESTbaseline_test['duplicate'] = duplicatesbaseline_test['difference'] = differencebaseline_test['duplicate_count'] = duplicate_countbaseline_test['duplicate_sum'] = duplicate_sumbaseline_test['duplicate_mean'] = baseline_test['duplicate_sum'] / baseline_test['duplicate_count']baseline_test['duplicate_mean'] = baseline_test['duplicate_mean'].fillna(0)baseline_test['dif_count'] = dif_countbaseline_test['dif_sum'] = dif_sumbaseline_test['dif_mean'] = baseline_test['dif_sum'] / baseline_test['dif_count']baseline_test['dif_mean'] = baseline_test['dif_mean'].fillna(0)baseline_test['ratio_duplicate/dif_count'] = baseline_test['duplicate_count'] / baseline_test['dif_count']


Визуализируем некоторые признаки.
Код
data = baseline_trainanalyse = 'dif_sum'size = (14,2)dd = data_statistics(data,analyse,title_print='no')hist_fz(data,dd,analyse,size)boxplot(data,analyse,size)


Графики 4 Гистограмма и ящик с усами для оценки значимости признака

Код
data = baseline_trainanalyse1 = 'duplicate_mean'analyse2 = 'dif_mean'size = (14,6)two_features(data,analyse1,analyse2,size)


График 5 Диаграмма рассеяния

Какая никакая, а разметка. Обратим внимание на то, что очень много компаний с целевой меткой 1 имеют ноль дублей в тексте и также очень много компаний, имеющих дубли в названиях в среднем более 12 слов относятся к компаниям с целевой меткой 0.

Давайте взглянем на табличные данные, подготовим запрос по первому случаю: дублей в названии компаний ноль, а компании одинаковые.
Код
baseline_train[    baseline_train['duplicate_mean']==0][    baseline_train['target']==1].drop(        ['duplicate', 'difference',        'name_1_non_stop_words',        'name_2_non_stop_words', 'name_1_transliterated',        'name_2_transliterated'],axis=1)



Очевидно, есть системная ошибка в нашей обработке. Мы не учли, что слова могут писаться не только с ошибками, но и просто слитно или наоборот раздельно там, где этого не требуется. Например, пара 9764. В первом столбце 'bitmat' во втором 'bit mat' и вот уже это не дубль, а компания та одинаковая. Или другой пример, пара 482600 'bridgestoneshenyang' и 'bridgestone'.

Что можно было бы сделать. Первое, что мне пришло в голову сопоставлять не напрямую в лоб, а с помощью метрики Левенштейна. Но и здесь нас подстерегает засада: расстояние между 'bridgestoneshenyang' и 'bridgestone' будет не маленьким. Возможно на помощь придет лемматизация, но опять-таки сходу не ясно как можно лемматизировать названия компаний. Или можно использовать коэффициент Тамимото, но оставим этот момент для более опытных товарищей и двигаемся дальше.

Сопоставим слова из текста со словами из названий топ 50 холдинговых брендов нефтехимической, строительной и других отраслей. Получим вторую большую кучу признаков. Второй ЧИТ


На самом деле здесь целых два нарушения правил участия соревнования:

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

Оба приема запрещены правилами соревнований. Обойти запрет можно. Для этого нужно составить список названий холдингов не вручную на основании выборочного просмотра обучающей выборки, а автоматически из внешних источников. Но тогда, во-первых, список холдингов получится большим и предложенное в работе сопоставление слов займет очень, ну просто очень много времени, а во-вторых, этот список еще нужно составить :) Поэтому для целей простоты исследования проведем проверку насколько улучшиться качество модели с этими признаками. Забегу вперед качество растет просто потрясающе!

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

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

В случае, если отношение дистанции Левенштейна к длине слова менее или равно 0.4, то мы определяем отношение дистанции Левенштейна до выбранного слова из списка топ компаний к каждому слову из второго столбца названия второй компании.

Если и второй коэффициент (отношение дистанции к длине слова из списка топ компаний) оказывается ниже или равен 0.4, то мы фиксируем следующие значения в таблицу:
дистанция Левенштейна от слова из списка 1 компаний до слова в списке топ компаний
дистанция Левенштейна от слова из списка 2 компаний до слова в списке топ компаний
длина слова из списка 1
длина слова из списка 2
длина слова из списка топ компаний
отношение длина слова из списка 1 к дистанции
отношение длина слова из списка 2 к дистанции

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

Хотелось бы еще раз обратить внимание, на то, что предложенный способ генерации фич, достаточно ресурсоемкий и в случае получения списка из внешнего источника потребуется изменение в коде по составлению метрик.
Код
# create information about duplicate name of petrochemical companies from top listlist_top_companies = list_top_companiesdp_train = []for i in list(baseline_train['duplicate']):    dp_train.append(''.join(list(set(i) & set(list_top_companies))))    dp_test = []for i in list(baseline_test['duplicate']):    dp_test.append(''.join(list(set(i) & set(list_top_companies))))    baseline_train['duplicate_name_company'] = dp_trainbaseline_test['duplicate_name_company'] = dp_test# replace name duplicate to numberbaseline_train['duplicate_name_company'] =\    baseline_train['duplicate_name_company'].replace('',0,regex=True)baseline_train.loc[baseline_train['duplicate_name_company'] != 0, 'duplicate_name_company'] = 1baseline_test['duplicate_name_company'] =\    baseline_test['duplicate_name_company'].replace('',0,regex=True)baseline_test.loc[baseline_test['duplicate_name_company'] != 0, 'duplicate_name_company'] = 1# create some important feature about similar words in the data and names of top companies for TRAIN# (levenstein distance, length of word, ratio distance to length)baseline_train = dist_name_to_top_list_make(baseline_train,                      'name_1_finish','name_2_finish',list_top_companies)# create some important feature about similar words in the data and names of top companies for TEST# (levenstein distance, length of word, ratio distance to length)baseline_test = dist_name_to_top_list_make(baseline_test,                      'name_1_finish','name_2_finish',list_top_companies)


Посмотрим на полезность признаков сквозь призму графиков
Код
data = baseline_trainanalyse = 'levenstein_dist_w1_top_w_min'size = (14,2)dd = data_statistics(data,analyse,title_print='no')hist_fz(data,dd,analyse,size)boxplot(data,analyse,size)



Очень хорошо.

Готовим данные для подачи в модель


У нас получилась большая таблица и далеко не все данные для анализа нам нужны. Посмотрим на названия столбцов таблицы.
Код
baseline_train.columns



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

Зафиксируем seed для воспроизводимости результата.
Код
# fix some parametersfeatures = ['levenstein','norm_levenstein',                        'duplicate_count','duplicate_sum','duplicate_mean',            'dif_count','dif_sum','dif_mean','ratio_duplicate/dif_count',                        'duplicate_name_company',                       'levenstein_dist_w1_top_w_min', 'levenstein_dist_w2_top_w_min',       'length_w1_top_w_min', 'length_w2_top_w_min', 'length_top_w_min',       'ratio_dist_w1_to_top_w_min', 'ratio_dist_w2_to_top_w_min'            ]seed = 42


Перед тем, как окончательно обучить модель на всех доступных данных и отправить решение на проверку имеет смысл протестировать модель. Для этого разобьем обучающую выборку на условно обучающую и условно тестовую. Померим на ней качество и если нас оно устраивает, то будем отправлять решение на конкурс.
Код
# provides train/test indices to split data in train/test setssplit = StratifiedShuffleSplit(n_splits=1, train_size=0.8, random_state=seed)tridx, cvidx = list(split.split(baseline_train[features],                                baseline_train["target"]))[0]print ('Split baseline data train',baseline_train.shape[0])print (' - new train data:',tridx.shape[0])print (' - new test data:',cvidx.shape[0])


Настройка и обучение модели


В качестве модели будем использовать решающее дерево из библиотеки Light GBM.

Сильно накручивать параметры не имеет смысла. Смотрим код.
Код
# learning Light GBM Classificierseed = 50params = {'n_estimators': 1,          'objective': 'binary',          'max_depth': 40,          'min_child_samples': 5,          'learning_rate': 1, #           'reg_lambda': 0.75,#           'subsample': 0.75,#           'colsample_bytree': 0.4,#           'min_split_gain': 0.02,#           'min_child_weight': 40,          'random_state': seed}model = lgb.LGBMClassifier(**params)model.fit(baseline_train.iloc[tridx][features].values,          baseline_train.iloc[tridx]["target"].values)


Модель настроили и обучили. Теперь давайте посмотрим на результаты.
Код
# make predict proba and predict targetprobability_level = 0.99X = baseline_traintridx = tridxcvidx = cvidxmodel = modelX_tr, X_cv = contingency_table(X,features,probability_level,tridx,cvidx,model)train_matrix_confusion = matrix_confusion(X_tr)cv_matrix_confusion = matrix_confusion(X_cv)report_score(train_matrix_confusion,             cv_matrix_confusion,             baseline_train,             tridx,cvidx,             X_tr,X_cv)



Обратите внимание на то, что мы в качестве оценки модели используем метрику качества f1. Значит, имеет смысл регулировать уровень вероятности отнесения объекта к классу 1 или 0. Мы выбрали уровень 0.99, то есть при вероятности равной и выше 0.99 объект будет отнесен к классу 1, ниже 0.99 к классу 0. Это важный момент можно существенно поправить скор таким не хитрым простым трюком.

Качество вроде бы не плохое. На условно тестовой выборке алгоритм допустил ошибки при определении 222 объектов класса 0 и на 90 объектах, относящихся к классу 0 ошибся и отнес их к классу 1 (см.Matrix confusion on test(cv) data).

Давайте посмотрим какие признаки были наиболее важными, а какие нет.
Код
start = 0stop = 50size = (12,6)tg = table_gain_coef(model,features,start,stop)gain_hist(tg,size,start,stop)display(tg)




Заметим, что для оценки значимости признаков мы использовали параметр 'gain', а не 'split'. Это важно так как в очень упрощенном варианте первый параметр означает вклад признака в уменьшении энтропии, а второй указывает на то, сколько раз признак использовался для разметки пространства.

На первый взгляд, признак, который мы делали очень долго levenstein_dist_w1_top_w_min оказался совсем не информативным его вклад равен 0. Но это только на первый взгляд. Он просто почти полностью дублируется по смыслу с признаком duplicate_name_company. Если удалить duplicate_name_company и оставить levenstein_dist_w1_top_w_min, то второй признак займет место первого и качество не поменяется. Проверено!

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

Давайте посмотрим на таблицу сопряжения. В первую очередь посмотрим на объекты False Positive, то есть те, которые наш алгоритм определил как одинаковые и отнес их к классу 1, а на самом деле они относятся к классу 0.
Код
X_cv[X_cv['False_Positive']==1][0:50].drop(['name_1_non_stop_words',       'name_2_non_stop_words', 'name_1_transliterated',       'name_2_transliterated', 'duplicate', 'difference',       'levenstein',       'levenstein_dist_w1_top_w_min', 'levenstein_dist_w2_top_w_min',       'length_w1_top_w_min', 'length_w2_top_w_min', 'length_top_w_min',       'ratio_dist_w1_to_top_w_min', 'ratio_dist_w2_to_top_w_min',       'True_Positive','True_Negative','False_Negative'],axis=1)



Да уж. Здесь и человек то сходу не определит 0 или 1. Например, пара 146825 mitsubishi corp и mitsubishi corp l. Глаза говорят что это одно и тоже, а выборка говорит, что разные компании. Кому верить?

Скажем так, что сходу можно было выжать мы выжали. Остальную работу оставим опытным товарищам :)

Давайте загрузим данные на сайт организатора и узнаем оценку качества работы.

Итоги соревнования


Код
model = lgb.LGBMClassifier(**params)model.fit(baseline_train[features].values,          baseline_train["target"].values)sample_sub = pd.read_csv('sample_submission.csv', index_col="pair_id")sample_sub['is_duplicate'] = (model.predict_proba(    baseline_test[features].values)[:, 1] > probability_level).astype(np.int)sample_sub.to_csv('baseline_submission.csv')


Итак, наш скор с учетом запрещенного приема: 0.5999

Без него, качество было где-то между 0.3 и 0.4. Надо перезапускать модель для точности, а мне немного лень :)

Давайте лучше резюмируем полученный опыт.

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

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

В-третьих, всегда, прямо-таки всегда, в задачах классификации, формируйте и таблицу и матрицу сопряжения. По таблице Вы легко найдете на каких объектах ошибается алгоритм. Для начала старайтесь подмечать те ошибки, которые что называются системные, они требуют меньше работы по исправлению, а дают больший результат. Потом уже как разберете системные ошибки, переходите на частные случаи. По матрице ошибок Вы увидите где больше ошибается алгоритм: на классе 0 или 1. Отсюда Вы и будете копать ошибки. Например, я заметил, что мое дерево хорошо определяет классы 1, но допускает много ошибок на классе 0, то есть дерево часто говорит, что этот объект класса 1, тогда как на самом деле он 0. Я предположил, что это может быть связано с уровнем вероятности отнесения объекта к классу 0 или 1. У меня уровень был зафиксирован на 0.9. Увеличение уровня вероятности отнесения объекта к классу 1 до 0.99, сделало отбор объектов класса 1 жестче и вуаля наш скор дал существенный прирост.

Еще раз отмечу, что целью участия в соревновании у меня было не занятие призового места, а получение опыта. Учитывая, что до начала соревнования я понятия не имел как работать с текстами в машинном обучении, а в итоге за несколько дней получилась простая, но все же рабочая модель, то можно сказать цель достигнута. Также и для любого начинающего самурая в мире data science я считаю важно получение опыта, а не приз, вернее опыт это и есть приз. Поэтому не бойтесь участия в соревнованиях, дерзайте, всем бобра!

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

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

Источники информации, вспомогательные материалы



1. Гитхаб с данными и Jupyter Notebook

2.Платформа соревнования SIBUR CHALLENGE 2020

3.Сайт организатора соревнования SIBUR CHALLENGE 2020

4.Хорошая статья на Хабре Основы Natural Language Processing для текста

5.Еще одна хорошая статья на Хабре Нечёткое сравнение строк: пойми меня, если сможешь

6.Публикация из журнала АПНИ

7.Статья о не использованном здесь коэффициенте Танимото Степень схожести строк
Подробнее..

Сынок, запрыгивай в вагон, я закину чемоданы! Экспресс-вход в индустрию когда почти прошел мимо

30.11.2020 22:22:08 | Автор: admin

Когда-то я рассказывал как шел к Java-программированию и прошел мимо. Теперь расскажу почему вернулся, поднял, почистил и пользуюсь. Это не еще один восторженный опус про смену специальности. Скорее логическое продолжение первой статьи с наблюдениями, которые пригодились бы мне из прошлого. Может, пригодятся и тем, кто находится на перепутье сейчас.


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

В предыдущей серии упоминалась такая бодрая цель:


Начинать все сначала решил с планом в голове и достойной целью перед глазами. Рассудил очень просто: хочу собственный дом подальше от города, и чтобы не к старости. То есть, за ближайшие 5 лет надо бы им обзавестись без ипотеки.

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



если вы понимаете о чем я


Пара слов обо мне, если интересно

Сейчас я вполне состоявшийся 35-летний middle Android-разработчик в крупном и вполне хипстерском финтехе. За плечами около 3 лет профильного опыта, работа в 4 компаниях и печальный скепсис к скрамам и аджайлам. И так вышло, что уже через пару лет я проводил технические собеседования, где лишний раз убедился в правильности выводов об устройстве индустрии.


Онлайн-курсы действительно работают, но есть нюанс


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


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


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

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


Нет никакого смысла знать побольше аббревиатур из вакансий


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


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


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


Одно из моих первых "пристрелочных" собеседований было сущим позором я вдруг забыл половину собственного проекта (игра по типу "2048"); начал путать хоткеи IDEA, когда меня попросили исправить тестовый код. Но обиднее всего было ответить лишь на 2 технических вопроса из 10, да и то "жиденько". Это было больно, позорно, но очень наглядно. И чтобы совсем вас добить, скажу что это сразу был собес в компанию с буквой "Я".

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


Джунов не должны нанимать слишком легко


Ажиотаж на профессию привел к тому, что джунов на рынке можно грузить лопатой и нанимать килограммами. Соответственно, конкуренция во все более-менее нормальные компании просто огромна. Помножьте это на отсутствие работы в регионах и популяризацию удаленки. Любой, кто предлагает вам оффер после первого же собеса и без дополнительных проверок/условий скорее всего планирует закрыть джуном какую-то дыру. В лучшем случае, получите часть обещанной ЗП; в худшем будете работать на домашнем ноутбуке, а вместо зарплаты получать "бесценный опыт".


На моей первой работе программистом одним из условий оффера было совмещений обязанностей копирайтера со знанием английского. Это была та самая "страховка", которую работодатель приобрел для минимизации потерь если бы проку из меня не вышло. Однако, никаких текстов от меня ни разу за год работы не потребовали. Видимо, всех все устроило.

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


Частые смены работы это хорошо


Несмотря на популярную в HR-кругах теорию о том, что меняющий работу чаще чем раз в N лет ненадежен и нежелателен, в ИТ индустрии это норма. Более того, средняя продолжительность работы разработчика в организации около 2 лет. Значит, что кто-то работает 4 года, а кто-то 6 месяцев. Пруфы привести не могу это комментарии знакомых HR-специалистов, подтверждающие собственные наблюдения.
У меня трудовая книжка уже с двумя вкладышами, так что будем считать такую позицию моей личной "деформацией". Однако, периодическая смена мест работы даст вам следующие преимущества в период прокачки себя как специалиста:


  • Смена контекста применяемых технологий и методик разработки. Работая 5 лет на одном предприятии, вы никогда не составите свое мнение о том, как лучше работать над задачами, какие паттерны не работают, и где та граница, за которой абстракции в коде превращаются в бессмысленный оверинжиниринг.
  • Работа в одном и том же коллективе не позволит составить собственное мнение о том, какие условия для вас действительно комфортны. Поработав в стартапе из 14 человек, и в огромном банке, я понял что больше не готов сидеть в опен-спейсе на 30 человек со всей России. Слишком разное у людей представление о приемлемом поведении в подобных условиях.
  • Может оказаться, что при всей крутости проекта вас будут каждый день раздражать отсутствие чайника и ресепшена. То есть, всякие простые вопросы вроде "нужна тетрадь" или "нужно отдать ноутбук в ремонт" будут порождать целый квест с вами в главной роли. В то же время, отсутствие кофе-машины легко нивелируется покупкой маленькой ручной Wacaco (не сочтите за рекламу, но уж очень полюбилась эта малышка).

Помню, как впервые увидел код на RxJava. Те жалкие несколько дней тыканий в Rx скудными обрывками императивного подхода до сих пор вспоминаю с улыбкой: цепочка на 20 строк, и в каждой по преобразующему оператору еще и с созданием внешних зависимостей. Надо сказать, что Rx на первом проекте был ну очень заковыристый и всеобъемлющий позже я ничего более мудреного не встречал. Но именно тогда родились теплые чувства к этому фреймворку, которые не отпускают до сих пор. Однако, если бы я продолжал жить тем первым проектом, то еще не скоро узнал бы что это был сложный, заковыристый, но все же сборник примеров как делать не надо.

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


  • Если чувствуйте, что прогресс на работе остановился или серьезно замедлился попробуйте влезть в новый проект. Если нельзя смело меняйте работу.
  • Отработали пол года и видите что за вами не нужно все переделывать, а руководство устраивает ваша работа заводите разговор о пересмотре ЗП. Реальная инфляция на порядки выше 3%, а спрос на более-менее вменяемых разработчиков не снижается.
  • Если новая работа вообще не дает прокачки навыка, и вместо этого вы занимаетесь какой-то ерундой меняйте работу. Это не та специальность, где запись в трудовой ценна сама по себе.

Большинство собеседований одинаковые, а ваше резюме или код никто особо не смотрит


По моим наблюдениям, 8 из 10 собеседующих получили ваше резюме за 10 мин до встречи. И да, им тоже лень всем этим заниматься, поэтому вас встретят списком найденных в сети вопросов по Java\Android\подставь_что_актуально. А значит, эти списки вы можете нагуглить самостоятельно и обстоятельно их разобрать. Это прибавит уверенности на встрече и поможет лучше сыграть свою партию.


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


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

Подробнее..

Сынок, запрыгивай в вагон, я закину чемоданы! Экспресс-вход в индустрию, когда почти прошел мимо

01.12.2020 00:06:56 | Автор: admin

Когда-то я рассказывал как шел к Java-программированию и прошел мимо. Теперь расскажу почему вернулся, поднял, почистил и пользуюсь. Это не еще один восторженный опус про смену специальности. Скорее логическое продолжение первой статьи с наблюдениями, которые пригодились бы мне из прошлого. Может, пригодятся и тем, кто находится на перепутье сейчас.


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

В предыдущей серии упоминалась такая бодрая цель:


Начинать все сначала решил с планом в голове и достойной целью перед глазами. Рассудил очень просто: хочу собственный дом подальше от города, и чтобы не к старости. То есть, за ближайшие 5 лет надо бы им обзавестись без ипотеки.

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



если вы понимаете о чем я


Пара слов обо мне, если интересно

Сейчас я вполне состоявшийся 35-летний middle Android-разработчик в крупном и вполне хипстерском финтехе. За плечами около 3 лет профильного опыта, работа в 4 компаниях и печальный скепсис к скрамам и аджайлам. И так вышло, что уже через пару лет я проводил технические собеседования, где лишний раз убедился в правильности выводов об устройстве индустрии.


Онлайн-курсы действительно работают, но есть нюанс


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


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


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

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


Нет никакого смысла знать побольше аббревиатур из вакансий


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


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


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


Одно из моих первых "пристрелочных" собеседований было сущим позором я вдруг забыл половину собственного проекта (игра по типу "2048"); начал путать хоткеи IDEA, когда меня попросили исправить тестовый код. Но обиднее всего было ответить лишь на 2 технических вопроса из 10, да и то "жиденько". Это было больно, позорно, но очень наглядно. И чтобы совсем вас добить, скажу что это сразу был собес в компанию с буквой "Я".

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


Джунов не должны нанимать слишком легко


Ажиотаж на профессию привел к тому, что джунов на рынке можно грузить лопатой и нанимать килограммами. Соответственно, конкуренция во все более-менее нормальные компании просто огромна. Помножьте это на отсутствие работы в регионах и популяризацию удаленки. Любой, кто предлагает вам оффер после первого же собеса и без дополнительных проверок/условий скорее всего планирует закрыть джуном какую-то дыру. В лучшем случае, получите часть обещанной ЗП; в худшем будете работать на домашнем ноутбуке, а вместо зарплаты получать "бесценный опыт".


На моей первой работе программистом одним из условий оффера было совмещений обязанностей копирайтера со знанием английского. Это была та самая "страховка", которую работодатель приобрел для минимизации потерь если бы проку из меня не вышло. Однако, никаких текстов от меня ни разу за год работы не потребовали. Видимо, всех все устроило.

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


Частые смены работы это хорошо


Несмотря на популярную в HR-кругах теорию о том, что меняющий работу чаще чем раз в N лет ненадежен и нежелателен, в ИТ индустрии это норма. Более того, средняя продолжительность работы разработчика в организации около 2 лет. Значит, что кто-то работает 4 года, а кто-то 6 месяцев. Пруфы привести не могу это комментарии знакомых HR-специалистов, подтверждающие собственные наблюдения.
У меня трудовая книжка уже с двумя вкладышами, так что будем считать такую позицию моей личной "деформацией". Однако, периодическая смена мест работы даст вам следующие преимущества в период прокачки себя как специалиста:


  • Смена контекста применяемых технологий и методик разработки. Работая 5 лет на одном предприятии, вы никогда не составите свое мнение о том, как лучше работать над задачами, какие паттерны не работают, и где та граница, за которой абстракции в коде превращаются в бессмысленный оверинжиниринг.
  • Работа в одном и том же коллективе не позволит составить собственное мнение о том, какие условия для вас действительно комфортны. Поработав в стартапе из 14 человек, и в огромном банке, я понял что больше не готов сидеть в опен-спейсе на 30 человек со всей России. Слишком разное у людей представление о приемлемом поведении в подобных условиях.
  • Может оказаться, что при всей крутости проекта вас будут каждый день раздражать отсутствие чайника и ресепшена. То есть, всякие простые вопросы вроде "нужна тетрадь" или "нужно отдать ноутбук в ремонт" будут порождать целый квест с вами в главной роли. В то же время, отсутствие кофе-машины легко нивелируется покупкой маленькой ручной Wacaco (не сочтите за рекламу, но уж очень полюбилась эта малышка).

Помню, как впервые увидел код на RxJava. Те жалкие несколько дней тыканий в Rx скудными обрывками императивного подхода до сих пор вспоминаю с улыбкой: цепочка на 20 строк, и в каждой по преобразующему оператору еще и с созданием внешних зависимостей. Надо сказать, что Rx на первом проекте был ну очень заковыристый и всеобъемлющий позже я ничего более мудреного не встречал. Но именно тогда родились теплые чувства к этому фреймворку, которые не отпускают до сих пор. Однако, если бы я продолжал жить тем первым проектом, то еще не скоро узнал бы что это был сложный, заковыристый, но все же сборник примеров как делать не надо.

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


  • Если чувствуйте, что прогресс на работе остановился или серьезно замедлился попробуйте влезть в новый проект. Если нельзя смело меняйте работу.
  • Отработали пол года и видите что за вами не нужно все переделывать, а руководство устраивает ваша работа заводите разговор о пересмотре ЗП. Реальная инфляция на порядки выше 3%, а спрос на более-менее вменяемых разработчиков не снижается.
  • Если новая работа вообще не дает прокачки навыка, и вместо этого вы занимаетесь какой-то ерундой меняйте работу. Это не та специальность, где запись в трудовой ценна сама по себе.

Большинство собеседований одинаковые, а ваше резюме или код никто особо не смотрит


По моим наблюдениям, 8 из 10 собеседующих получили ваше резюме за 10 мин до встречи. И да, им тоже лень всем этим заниматься, поэтому вас встретят списком найденных в сети вопросов по Java\Android\подставь_что_актуально. А значит, эти списки вы можете нагуглить самостоятельно и обстоятельно их разобрать. Это прибавит уверенности на встрече и поможет лучше сыграть свою партию.


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


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

Подробнее..

Перевод Y Combinator Как писать холодные письма инвесторам (Майкл Сибель, основатель Twitch)

29.11.2020 14:18:58 | Автор: admin
image

Майкл Сибель сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit.

Основатели меня часто спрашивают, как рассылать электронные письма инвесторам, когда они хотят найти деньги. Я получаю тонны электронных писем от основателей, и я стараюсь отвечать практически на все. Я дам вам несколько советов о том, что стоит и чего не стоит делать, отправляя электронные письма инвесторам.

Первое: пишите их кратко. Если вы мне присылаете огромный текст, который на который у меня уйдет 2-5 минут, мне будет тяжело читать, следуя своему распорядку. Часто я их сохраняю, чтобы прочесть позже, и не совсем ясно, когда я вернусь к письму снова. Если ваше письмо займет у меня 60 секунд или меньше, могу с уверенностью сказать, что я его прочту. Это именно то, что необходимо. Вам не нужно отправлять мне подробный чек, который покажет, на что уйдут инвестиции, нужно лишь рассказать в письме, над чем вы работаете и показать, и понять, что именно сработает, чтобы я захотел ответить.

Вторая важная деталь это то, что в письме должны быть некоторые вещи, которые мне интересно знать: проблема, которую вы пытаетесь решить, какое у вас есть решение, запустили ли вы проект и есть ли у вас какой-либо рост, насколько обширным может быть рынок, есть ли у вас сооснователи и способны ли они написать код, и знаете ли вы что-то о рынке, о вашей проблеме, затрудняетесь ли вы принять то или иное решение, с которым могут не согласиться другие люди. Это то, что я хотел бы больше всего понять. Меня не интересует длинная история того, как у вас возникла идея. Мне не нужны история или рассказ в начале письма. Сначала мне нужны лишь сырые факты. Более того, важно, чтобы вы не использовали жаргон. То, что я постоянно наблюдаю на YC, это разница между подачей клиента и инвестора. Клиент или пользователь знают лексику вашей отрасли, но когда вы общаетесь с инвестором, нельзя быть уверенным. Поэтому говорите на простом языке, на котором вы сможете говорить с любым своим другом, несмотря на то, что имеет он отношение к вашей отрасли или нет.

Следующее: отправляйте письмо с электронного адреса компании. Желательно, чтобы адрес содержал название вашей компании. Вы были бы удивлены, насколько много писем я получаю от адресов странного формата, и я даже не могу назвать имя этого человека. Или письма с информацией, содержащейся в адресе, которую я не мог понять. Странно получать письмо от человека, пишущего о своей компании, но не с электронного адреса компании. Это сбивает с толку. Также многие основатели дают информацию о себе: мол я такой отзывчивый, я такой сверхчеловек и так далее. И если вы не отправляете письмо с вашего настоящего адреса, я не смогу увидеть информацию.

Идем дальше. Это здорово прикрепить презентацию к письму, но это необязательно. Вот, что я вам скажу: существуют крайне общепринятые форматы презентаций, к которым инвесторы в Кремниевой долине привыкли. Пожалуйста, не прикрепляйте презентации, которые не соответствуют формату. Если у вас возникает вопрос, что же это за формат, просто загуглите формат презентаций для инвесторов Airbnb, это даст вам базовое представление о том, как должны выглядеть презентация. Вот, что еще интересно и что я узнал, это то, что у каждой отрасли презентации выглядят совершенно по-разному. Если вы из отрасли финансов или маркетинга, или любой другой, стиль презентации будет совсем не такой, как у стартапов. Просто скопируйте шаблон успешной презентации, не используйте то, к чему вы привыкли в другой отрасли.

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

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

Не пишите длинные письма. Я повторяю это раз за разом, потому что одна из важнейший вещей, которая вам нужна ответ. Для начала вам необходимо наладить обмен письмами. Часто основатели пытаются получить слишком много на этом начальном этапе обмена письмами. Они хотят встречу, телефонный звонок, инвестицию. В действительности же, вам необходим диалог. После того, как мы стали обмениваться письмами, когда я могу задавать вопросы, могу больше узнать о вашем бизнесе, о вас, мы развиваем наше общение. Убедитесь, что ваше электронное письмо не слишком длинное, не содержит жаргон иначе мне будет слишком обременительно отвечать. Я проверяю почту постоянно, каждый день. Смогу ли я увидеть ваше письмо, заинтересует ли оно меня настолько, чтобы я ответил. Все то же самое: скажем, 60-120 секунд то, что вам нужно. Если вы в замешательстве из-за длины письма, прочитайте его самостоятельно и запишите то, как вы читаете очень просто, но это работает.

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

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

Это были несколько советов, как писать электронные письма инвесторам.

Спасибо.



Эссе

How to Email Investors

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

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

Описание ситуации с моей стороны

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

Фреймворк, который вам поможет

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

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

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

Пример

Привет Майкл,

Меня зовут Тим, и я строю Twitch для приготовления пищи. До этого я занимался программированием в продовольственной сети, а мой технический сооснователь друг по колледжу. Мы работаем над нашим MVP и задаемся вопросом, следует ли нам создавать личные сообщения в дополнение к групповому чату или просто групповой чат.

Спасибо, Тим

Распространенные ошибки:

  • Плохая коммуникация на тему того, что вы делаете.
  • Слишком много писанины. Полотна текста приводят к медленным ответам/отсутствию ответов.
  • Тратить много времени, пытаясь получить теплое вступление. Вам лучше просто следовать этим правилам и писать мне напрямую.
  • Тратить время на то, чтобы убедить меня помочь или сделать комплимент. Я уже хочу помочь.
  • Не использовать свой company.com в адресе электронной почты.
  • Просить у меня совета через LinkedIn/Twitter. Я просто попрошу вас написать мне на почту.




Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод Что отличает 10 самых крутых основателей от других (Майкл Сибель, основатель Twitch)

22.11.2020 18:15:46 | Автор: admin
image

Майкл Сибель сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit.

Один из вопросов, которые мне часто задают во время серии мероприятий YC, это что отделяет 10% лучших основателей от всех остальных. Когда я запустил YC, у меня не было достаточно контекста, чтобы ответить. Я был основателем собственной компании, и, конечно, у меня были мои друзья, но этого было недостаточно, чтобы служить в качестве показателя. За последние 13 мероприятий YC я взаимодействовал с более чем 2500 основателей и мне удалось получить более полное представление о том, каким образом выделяются величайшие из них.

Execution


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

Formidability


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

Clear communication


И последнее, чего я долго не мог понять, пока не провел множество собеседований в рамках YC, общение. Раньше я считал, что достаточно лишь хорошо выполнять задачи, без способностей к общению. Но проблема в том, что стартап требует хорошие навыки общения. Общение с пользователями, с потенциальными инвесторами, с сооснователями, с потенциальными сотрудниками. Хороший основатель должен говорить о своем деле и вызывать этим у людей восторг. Ошибка номер один, которую допускают основатели в том, что фактически они не могут объяснить, в чем суть их бизнеса. Лучшие основатели могут в 1-2 предложениях объяснить, в чем конкретно заключается их дело. Они могут объяснить это клиенту, инвестору, их маме, кому угодно и с каким угодно уровнем знаний об их отрасли. Они способны сделать это не запинаясь. Я считаю, что это до смешного важно, потому что для получения рекомендации по инвестициям или с целью убедить кого-либо присоединиться к вашей компании, сперва людям придется понять, чем вы занимаетесь. Вы будете удивлены, узнав насколько много основателей не могут доходчиво объяснить, что они делают, притом начиная уговаривать вас помочь или присоединиться к ним.

Итак, еще раз, три наиболее важны вещи, которые, как я вижу, выделяют 10% лучших основателей из всех остальных: первое способность выполнять; второе вытекающая из первого пункта внушительность, вы будто бы уважаете их больше; третье способность четко объяснить, над чем они работают.

Internal motivation


А сейчас, если бы мне было необходимо добавить четвертый пункт бонусом, возможно, это будет немного странно, но это внутренняя мотивация. Лучшие основатели не слишком расстраиваются, когда все идет не так, они остаются мотивированными. Стартап это игра, в которой вы будете постоянно проигрывать, вы постоянно будете принимать неверные решения, у вас будут правильные гипотезы, которые впоследствии окажутся неправильными. И существуют люди, которые не опускают руки, даже если они сделали 5 неправильных движений подряд. Они остаются увлеченными задачей, увлеченными поиском решения, они продолжают доводить все до конца и движутся вперед. Быть мотивированным перед лицом поражения или неудачи чрезвычайно важная черта, которой должен обладать основатель стартапа.

Таким образом, я сказал три, но я смухлевал: выполнение, значимость, умение общаться, мотивация. Это те вещи, которые выделяют 10% основателей стартапов среди всех остальных. Одна вещь, которую я не упомянул это идея. Обычно очень трудно сказать, есть ли у компании на ранней стадии хорошая идея. Я никогда не использую идеи, что выделять великих основателей среди остальных, потому что я не судья тому, что является хорошей идеей и у меня нет идеального опыта для каждой из проблем. Когда я раздумываю о том, какая хорошая идея или нет, я могу заблудиться в своих же мыслях и притвориться будто бы я знаю больше, чем на самом деле, поэтому старайтесь не зацикливаться на идеях.

Спасибо за внимание.





9 ноября 2020 стартовала бесплатная Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) от лучшего в мире акселератора и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня.

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод От стажера до основателя стартапа в Y Combinator

23.11.2020 20:22:46 | Автор: admin
Джек Форбс основатель Kopa (YC W19) рассказывает о том, как он подрабатывал стажером в HigherMe (YC W15), играл в футбол с другими основателями и партнерами из YC, и почему, несмотря на отказ, все-таки основал компанию и попал в Y Combinator.

image

Вы можете присоединиться к Work at a Startup, чтобы найти новую работу в области программного обеспечения или стажировку в стартапе.

Райан: Джек, спасибо, что нашли время поговорить со мной. Расскажите о вашей довольно интересной истории знакомства с Y Combinator.

Моя альма-матер, Университет Ватерлоо, имеет самую развитую программу сотрудничества в мире. Благодаря ей я получил два классных предложения в рамках условий моей работы [стажировки] от Zazzle и HigherMe. Изначально я принял приглашение от Zazzle, но поддерживал связь с Робом [основателем HigherMe], потому что ребята казались мне отличной командой.

Перенесемся на несколько месяцев вперед, я пошел работать в Zazzle. Чуть позже HigherMe попал в YC, и им все еще нужен был стажер. Мы продолжали общаться и в итоге договорились, что я присоединюсь к команде HigherMe, но сохранив свою первую работу. Вот так и вышло, что сначала я трудился полный день в Zazzle, а по вечерам и в выходные выходил к HigherMe.

Райан: Звучит так как будто ты работал без продыху.

Так и было, но мне безумно нравилось работать с ребятами из HigherMe. По сравнению с Zazzle разница была на лицо начиная с большого офиса с бассейном, тренажерным залом и кафетерием и заканчивая хакерским убежищем парней. Для меня это был ценный опыт: было круто работать с парнями из Canucks, узнавать о жизни стартапа, рубиться в Halo в свободное время, слушать истории о YC и Поле Грэме от знакомых знакомых.

В принципе пребывание в системе YC было для меня чем-то необычным это как присоединиться к футбольной команде YC и познакомиться с основателями Pachyderm & TrackIn. Я помню как к нам однажды пришел Джон [основатель Boosted] и дал опробовать новые прототипы его платы. Было классно.

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

Райан: Поэтому вы взялись за Kopa?

На следующий год после стажировки я начал заниматься Kopa. Это был мой итоговый проект, необходимый для сдачи каждому инженеру университета Ватерлоо. Я был уверен, что хочу уйти в него целиком, поэтому вкладывал деньги и получал тем самым постоянную работу. Мы занимались им вместе с моим сооснователем опять же, по вечерам и в выходные дни. Так продолжалось полтора года. Был момент, когда мы помогли более 1500 стажерам найти жилье, обработав все транзакции целиком (не взимая платы). Мы поняли, что в этом проекте что-то есть, поэтому решились обратиться к YC.

Райан: И как это было?

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

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

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

Райан: Но на тот момент вы все еще не были в YC. Как это изменилось?

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

В конце концов, в тот вечер мы пошли на мероприятие, бизнес-акселератор, чтобы записать подкаст о Kopa. Мы очень сомневались, что получим положительный ответ, а во время записи я не шучу нам позвонили из YC. Буквально через несколько секунд после того, как мы сказали, что скорее всего не пройдем. Мы просто остолбенели, мы были уверены, что нам откажут. (Во время интервью Далтон даже сказал, что: У компании X бизнес-модель гораздо лучше, чем у вас). Мое сердце забилось, оказывается, нас приняли.

image

Райан: Это невероятно. Как вы думаете, пригодился ли вам опыт HigherMe для запуска стартапа?

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

С другой стороны, у меня была работа [в крупных компаниях], где я трудился над проектами более шести месяцев, только для того, чтобы их затем выбросили в мусорное ведро. То есть, эта работа высоко оплачивалась, но не приносила никакого удовольствия или пользы, и зачем тогда себя ею нагружать? И речь не о том, что необходимо переквалифицироваться в благотворительное предприятие, чтобы заниматься значимыми делами.

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

Райан: Что бы вы посоветовали студентам, ищущим свою первую стажировку?

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

За время учебы в UWaterloo я прошел 6 стажировок. Я пробовал управление продуктами в BC Hydro, коммунальной компании Британской Колумбии. Учился работать с разными командами, ориентироваться в крупных организациях и руководить довольно масштабными проектами. В конечном счете я довольно много кодил, независимо от положения мне нравится автоматизировать процессы, и я нашел лучшие способы оставаться продуктивным и эффективным. Опять же, я многому научился и ни о чем не жалею.

Райан: Хорошо, а теперь, когда вы создали собственную компанию и побывали в YC, чем YC был вам полезен?

YC это бизнес-школа для стартапов. Супер-актуальные проблемы, с которыми сталкиваются стартапы как улучшить свою целевую страницу, улучшить SEO, наладить продажи B2B и все другое, с чем мы столкнулись в Kopa. YC открывает двери: инвесторы обращают на нас внимание, а компании более охотно работают/сотрудничают с нами.

YC также стал хорошим источником первых клиентов. Тысячам нынешних и бывших основателей, действительно нужно было помочь своим сотрудникам и стажерам найти жилье. Они дали обратную связь о нашем продукте и помогли нам его доработать. Однажды, мы даже написали Дрю [основателю Dropbox], и за считанные минуты сконтактировались с их руководителем отдела кадров.

А еще всегда присутствует мотивация: круто за обедом в YC послушать рассказы основателей об их опыте и извлеченных уроках. Благодаря YC появилось много друзей, с которыми можно поделиться проблемами и успехами. Это очень важно. Эта то, что держит вас на плаву. Я бы хотел, чтобы все, кто интересуется стартапами, имели возможность получить такие знания и опыт.




9 ноября 2020 стартовала бесплатная Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) от лучшего в мире акселератора и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня.

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод Зачем мне запускать стартап. (Эссе интервью Майкла Сибеля, основателя Twitch)

25.11.2020 14:11:26 | Автор: admin
image

Майкл Сибель сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit.

Зачем мне запускать стартап? (эссе)


Этот вопрос задают себе многие люди.

И часто их размышления строятся вокруг одного или сразу нескольких следующих фактов:

  1. Подавляющее большинство стартапов терпят неудачу.
  2. Талантливому специалисту достаточно легко найти работу с высокой зарплатой.
  3. Крупные компании дают возможность поработать над сложными задачами, которые часто возникают лишь в условиях широкого масштаба.


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

Как я лично понял это про себя.

Старшие классы


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

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

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

К концу школы все мои тяжелые труды окупились. Я выпустился с отличными оценками, прошел множество продвинутых курсов и поступил во все университеты, в которые подал документы, кроме Гарварда (И слава богу вперед, Йель!).

Университет


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

Я не хотел становиться академиком, а мне казалось, что это все, к чему меня готовил Йель. На выпускном курсе из-за плохих оценок меня все-таки отчислили. Примерно через 2 месяца после этого инцидента я вдруг снова почувствовал злость. Я понял, что мой курс, некоторые друзья и даже члены семьи думали, что я никогда не закончу университет. Моя мотивация вернулась ко мне мгновенно.

Я проделал большой путь и получил работу в Пенсильванском университете. Там мне пришлось поработать над вопросами, касающихся правительства и политики, также я помогал младшим преподавателям на курсе конституционного права и посещал заседания Верховного суда (мои друзья смеялись, что Йельский двоечник попал в младший преподавательский состав Пенсильванского университета). Через год я вернулся к учебе в моем университете, получил отличные оценки, завел несколько замечательных друзей (Джастин Кан как раз один из них) и выпустился в 2005 году.

Justin.tv / Twitch.tv


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

На протяжении почти всей истории Justin.tv и Twitch мы думали, что случится провал. В 2007 году нас финансово поддержал YC, но тогда он был мало кому известен, и большинство инвесторов нас игнорировали. После демонстрационного дня, как бы мы не старались, привлечь нам удалось всего лишь $180 тыс. инвестиций бизнес-ангелов. Когда мы только строили наш бизнес, мы не могли заинтересовать самых рейтинговых венчурных капиталистов, не могли нанять лучших инженеров, мы постоянно боролись за выживание. Это были времена, когда видео-стартапы считались ужасными предприятиями, пожирающими кучу денег без шанса на монетизацию.

За 5 лет нам 5 раз почти наступал конец. Однажды, мы получили счет за пропускную способность на сумму гораздо превышающую ту, что имелась у нас на счете, как-то нам потребовался заем от Джастина и Эммета, и был случай, когда на раскрутку оставалось меньше 2-х месяцев, а наши расходы составляли $1 млн ежемесячно. Все эти перипетии были нам нужны, чтобы оставаться жаждущими. Нас нельзя было сломить, мы не собирались отступать, и через 8 лет мы возымели успех.

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

  • Нравится ли мне быть аутсайдером?
  • Готов ли я встречать трудности, которых многие избегают?
  • Раскрываю ли я свой потенциал, беря на себя ответственность за успех и за провал?


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

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

Благодарю Крэйга Кэннона, Адору Ченг, Аарона Харриса, Дэниэла Гросса и Дэниела Гакла за чтение черновиков этого эссе

Интервью



Интервьюер: Итак, Майкл Сибель сегодня у нас в гостях, а говорить мы будем об эссе, которые у вас вышли, я так понимаю, в последние два года?

Майкл Сибель: Да, верно.

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

М: Да.

И: Почему вы написали это эссе?

М: Хм, думаю на то было две причины.

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

И когда я только начинал помогать людям и что-то им советовал, я искренне полагал, что если у тебя есть возможность создать стартап, то нужно его создавать. То есть, если у вас есть деньги, есть время, есть способности, то нужно этим заниматься. Но работая в YC, я быстро понял, что придерживаюсь плохой тактики. А также я понял, что существует три типа людей.

И: Интересно.

М: Есть люди, которые могут заниматься только исключительно предпринимательской деятельностью. То есть, буквально, жизнь внутри большой корпорации, внутри многоуровневой системы не приносит им удовольствия. Это те люди, которые начинают свой путь с малого бизнеса. Но их очень мало и редко когда они знакомы между собой. Думаю они оставляют всего один процент населения.

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

И: Насколько малочисленна?

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

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

И вот что интересно: почти все до этого момента в нашей жизни так и устроено. Начиная с детского сада и вплоть до 12 лет, да даже в колледже присутствует эта система, и люди данного типа похоже хотят продолжать в том же духе.

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

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

И: Да, верно. Вы читали книгу Малый бизнес. От иллюзий к успеху?

М: Нет, не читал.

И: А слышали о ней?

М: Не-а, нет.

И: Я читал эту книгу в колледже. Прошло уже некоторое время с тех пор, но в целом концепция заключается в том, что многие ремесленники, в нашем случае мы можем сказать разработчики, хотят стать предпринимателями ради того, чтобы спокойно заниматься своим делом, и заниматься им так, как они считают нужным. Но они не понимают, что как только они попадают в мир предпринимательства, ровно на этом моменте их занятие ремеслом заканчивается. Думаю, это распространенная история, и понятно почему люди так любят Indie Hackers.

М: Интересная точка зрения, потому что художников и ремесленников нельзя сравнивать с предпринимателем, верно же? И что самое здесь печальное у предпринимателя в определении говорится, что: если вы в чем-то действительно хороши вы перестаете этим заниматься. А если же продолжаете, значит не так уж и хороши.

И: Ну да, это редкость, чтобы основатель стартапа, любящий свое ремесло, мог спокойно делегировать обязанности. Поэтому да, они продолжают самостоятельно трудиться над тем, что им нравится, но в конце концов, все-таки приходят к иному пониманию дела. Что ж, а какие вопросы появились у вас с тех пор, как вы написали это эссе? Какие вопросы вы задаете сами себе, чтобы понять, относитесь ли вы к этим двум процентам людей?

М: Хм я могу лучше ответить себе. Вопросы, которые я задаю:

  • Где мне лучше всего?
  • Где, как мне кажется, я лучше всего выкладываюсь?
  • Когда я на сто процентов мотивирован?


И я думаю, каждый в возрасте от 20 до 25 лет, да и конечно же те, кто старше 30-ти, имеют достаточно жизненного опыта, чтобы понимать, какие ситуации их по-настоящему заряжают и мотивируют. Следующий вопрос, который я задаю себе, и он, собственно, плавно вытекает из предыдущего звучит так:

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


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

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

И: То есть ко всем.

М: Ну да. Когда я начинающим стартаперам давал советы, я был очень предвзят, ведь вроде как работал в YC и хотел, чтобы каждый шел в стартаперы, то есть был в некоторой степени даже корыстен. Многие молодые люди ищут совета, но не видят в нем необъективности. Я часто встречаю таких ребят, они запросто верят сверстникам или компаниям, в которых работают, и не понимают, что те предвзяты.

Вот взять к примеру моего брата. Он сейчас учится в Массачусетском технологическом институте, и на какие престижные должности все там метят на работу в Facebook и в Google. А что этот престиж имеет общего с реальными фактами? Смотря на это, я вспоминаю школьные года, когда все как один хотели стать юристом. Но спроси вы: А ты действительно хочешь заниматься той работой, которой занимается юрист, ответ следовал: Нет, конечно, нет!

И: Ха, ну да, я просто хочу зарплату юриста!

М: Вот если вы хотите заниматься законами, вам нравится обсуждать конституцию, заполнять всякую там документацию, ну может вы и юрист.

И: Скорее просто ролевая модель.

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

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

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

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

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

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

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

И: Да, точно.

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

И: То есть пользуется информационном пробелом?

М: Да.

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

М: Конечно! Для большинства людей это именно та работа, которую им и нужна. Но если вы человека другого типа, не верьте этой агитации.

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

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

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

И: Да, однозначно безопаснее работать там.

М: Определенно безопаснее, но, для меня куда важнее, получать наслаждение от открывающихся перспектив, но кого-то они могут не устраивать.

И: Да, но с другой стороны, мы же говорим о том, что можно просто попробовать и посмотреть на ощущения. Например, в университете есть возможность поучаствовать в куче самых разнообразных проектов.

М: Да, да, и узнать, что и как работает.




9 ноября 2020 стартовала бесплатная Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) от лучшего в мире акселератора и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня.

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод Пользователи, которые наносят вред на начальном этапе стартапа (Майкл Сибель, основатель Twitch)

29.11.2020 04:09:36 | Автор: admin
image

Майкл Сибель сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit.

Интервьюер: В самом начале, многие стартапы принимают каждого пользователя, которого они могут найти. У них есть четкое представление о задаче, и они хотят привлечь к ней как можно больше пользователей. К сожалению, когда вы открываете двери, у вас появляются самые разные люди с самыми разными задачами. Некоторые из них увести ваш проект в сторону, угнать проект, чтобы решить задачу, которую вы не собирались решать. По большому счету, это угонщики, которые вам не нужны. Было ли такое у вас?

Майкл: Думаю, что justin.tv был угнан по определению. Изначально мы создали продукт, позволяющий людям жить в прямом эфире своей жизни, и в течение года его использовали для стриминга контента по всему миру, то есть он совершенно по определению был угнан. И что интересно, я немного боюсь что-то говорить здесь. Я бы не хотел говорить, что эти угонщики не те пользователи, которые вам нужны, потому что, как оказалось, так иногда происходит.

Как оказалось, причина, по которой у нас возникло намерение создать Twitch, заключалась в том, что некоторый процент пользователей-угонщиков были геймерами. И кажется, будто бы сообщество могло быть намного больше, если бы мы ему помогли. И в последствии оно таким и стало. Пользователи используют ваш продукт для самых разных целей. Мне нравится думать об этом, скорее, как о некоем спектре. Есть пользователь, который использует ваш продукт по назначению. Да, это здорово, и мне хорошо от этой мысли. А может быть, там есть какой-то бизнес, может быть, пользователь использует ваш продукт необычным способом, с неким потенциалом.

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

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

У нас в Justin.tv были такие пользователи, которые стримили совершенно ужасные вещи, и это не есть хорошо.

Когда я общаюсь со стартаперами в YC, я вижу, что они не знают, как распознать этих (конструктивных) угонщиков, они просто выгоняют их. Нужно уметь распознать негативных угонщиков и выгнать их. Они наносят вред.

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

Инт: Как бы вы классифицировали тех, кто просто забирает на себя все время поддержки клиентов?

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

Но давайте посмотрим на это с другой стороны. Я придумаю гипотетический пример. Представьте, что я в самом начале развития Airbnb. Кто-то захотел использовать Airbnb для проведения вечеринок с наркотиками, например, нелегальный бар это вечеринка с крэком, и они представляли эти мероприятиях в Airbnb, как мобильные притоны.

Давайте подумаем об этом на секунду. С одной стороны, они платят.

Инт: Платят за большие апартаменты.

М: Платят за красивые места, у них есть деньги. С другой стороны, они, вероятно, разрушают эти апартаменты, делая что-то крайне незаконное, привлекая внимание полиции. Например, они совершают убийства. Это негативные угонщики/перехватчики, это не те люди, которые вам нужны.

Можно быть угонщиком, но и приносить пользу. Но бывает так, что вреда больше, чем пользы. На самом деле это то, что я часто вижу, когда пользователи платят за взлом.

Иногда угонщики это платящие клиенты и это приносит боль. Их неудобно выгнать.

Инт: Особенно в контексте того, что у вас есть некие показатели, которые вы хотите достичь, и вы

М: Да, да, боже мой, это действительно так, это как будто

Инт: ставит на всем крест. Вы красиво с этим справились, сосредоточившись на решении одной проблемы очень хорошо. Вы сделали ставку на то, чтобы сделать небольшое количество людей очень счастливыми. Если вы впускаете абсолютно всех пользователей, в конечном итоге вы сделаете дерьмовую работу, наполовину решив кучу проблем.

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

Тогда совершенно нормально исследовать, экспериментировать и так далее. Но нельзя позволять организаторам нарковечеринок управлять продуктом для Airbnb и его показателями. Предлагать им A/B-тесты.






9 ноября 2020 стартовала бесплатная Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) от лучшего в мире акселератора и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня.

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Перевод Советы по продажам для технических стартапов

01.12.2020 18:05:13 | Автор: admin
Кэрол занимается развитием бизнеса компании Leadfeeder в США. Она обладает суммарно более чем 10 годами опыта в маркетинге, продажах и развитии бизнеса.

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

1. Идентификация и приоритизация легкодоступных лидов


Станьте лидером мнений в вашей области и делитесь знаниями на вопросно-ответных сайтах, таких как Quora, Inbound.org, Stack Exchange. Это быстрый способ продвигаться ваш продукт, так как вы можете просто искать людей, спрашивающие о проблеме, которую вы решаете.

Например, в Leadfeeder мы обнаружили что трафик из Quora конвертируется в пробные подписки в примерно два раза лучше, чем трафик из других источников. Мы также договорились с командой и размещали ссылки на наши ответы в специальном канале Slack, чтобы другие могли проголосовать за наши ответы, чтобы их увидело больше людей.

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

Будьте под рукой когда ваш клиент ищет


92 процента потенциальных клиентов читают отзывы перед решением о покупке. Сфокусируйте ваши усилия для того, чтобы получить эти отзывы на таких веб-сайтах как Siftery, Capterra или G2Crowd. Необязательно чтобы эти отзывы были только от платных пользователей. Вы можете мотивировать вашу бесплатную аудиторию написать отзыв предложив им бесплатные сервисы или продление пробного периода. И иногда, если пользователь действительно доволен вашими услугами, для написания отзыва достаточно просто попросить клиента.

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

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

Используйте чаты на вашем вебсайте и отвечайте как можно быстрее и полнее
Более 40 процентов клиентов предпочитают использовать чат для решения своих вопросов или проблем. И это имеет определенный смысл, никто не хочет тратить время на звонки, а электронная почта в наше время крайне захламлена. Даже если вы не постоянно сидите за компьютером, вы можете настроить получение сообщений на ваш мобильный телефон или попробовать использовать чат-ботов для того, чтобы отвечать на какие-то стандартные вопросы клиентов. В течение нескольких месяцев после того, как мы поставили чат на наш вебсайт, Leadfeeder смог увеличить конверсию пробных подписок на 3,5 процента.

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

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

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

2. Пользуйтесь правильными возможностями


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

Как вы можете составить таргетированный список потенциальных клиентов с которыми имеет смысл связаться
На самом деле, каждая компания обладает определенным списком своих потребностей и желаний, мы назовем этот список TAPE, вам просто нужно прислушаться к этим потребностям. TAPE расшифровывается как Таланты (Talents), Реклама (Advertising), Продукт (Product), и Доходы (Earnings)

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

Реклама: Ищите подсказки в анонсах компании. Запланированы ли какие-то события? Возможно вам стоит поучаствовать? Может быть они активно продвигают партнерскую программу? Тогда возможно им нужно решение для предоставления рекомендаций и получения реферальных вознаграждений. Произошло слияние с другой компанией? Неплохой момент предложить свои услуги, так как им будет необходима унификация инструментов.

Продукт: Отслеживайте изменения в продуктах компании. Запускает ли компания новый продукт или внедряет какие-либо существенные улучшения в текущих продуктах? Возможно им пригодится ваше решения для технической поддержки, так как в таких ситуациях резко растет число подобных запросов.

Доходы: Отслеживайте доходы и прибыль компании, так как увеличение финансирования или хороший отчет о прибылях может служить индикатором роста или экспансии. Это может быть хороший момент для того, чтобы предложить им ваше HR решение.

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

Если у вас нет бюджета:

Шаг 1: Используйте инструменты для мониторинга новостей и социальных сетей, такие как Google Alerts или Hootsuite.

Шаг 2: Ищите релевантных людей в целевых компаниях с помощью поиска на LinkedIn, используя такие параметры как название компании, месторасположение, название позиции и др.

image


В скриншоте выше, я ищу Digital Marketing Managers, которые работают в San Francisco area, с помощью следующего запроса в поисковой строке company:Salesforce, title:Digital Marketing Manager и установив фильтр San Francisco Bay Area справа.

Выберите свой метод коммуникации. Три стандартных метода это:

1. Телефон. Вы можете попробовать пройти привратников корпоративного телефонного номера или использовать платформы, такие как ZoomInfo, чтобы найти номер конкретного человека.

2. LinkedIn. Используется InMail внутри LinkedIn для того, чтобы отправить сообщение

3. Пошлите холодное письмо. Если вы не уверены в правильности email адреса, используется бесплатные инструменты такие как Hunter поиска адресов электронной почты или расширение Google Chrome Rapportive для того, чтобы подтвердить email или получить больше информации о его владельце изнутри вашего Gmail аккаунта.

image


Чтобы воспользоваться Hunter, все что вам нужно ввести сайт компании и инструмент постарается найти в интернете подтвержденный паттерн для email адресов, который используют в этой компании. Например, в примере выше {имя}{фамилия}@salesforce.com

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

Успешная тактика может заключаться во включении персонализированных видео с помощью Viyard GoVideo или в упоминании чего-то к чему человек привязан, например домашнее животное или хобби. Это все показывает насколько важно усилия, которые вы дополнительно потратите на то, что составить ваше сообщение. Обычно вы можете найти персональную информацию о человеке с помощью простого поиска в LinkedIn, Twitter, Facebook или просто с использованием Google.



Ryan O'Hara, Вице-президент по росту и маркетингу в LeadIq, посылает видео себя, играющего на пианино и поющего сообщения свои потенциальным клиентам. Вы знаете, это привело к тому, что у него конвертация холодных сообщений в назначенные встречи 40% процентов.

И иногда, когда вы открываетесь первым, другой человек более склонен открыться. Например, когда я посылаю сообщение в пятницу, я заканчиваю email какими-нибудь своими интересными планами на выходные.

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

Стройте отношения еще перед продажей
Исследования LinkedIn показывают что социальные продажи создают на 45% больше возможностей. Начинайте вступать в осмысленные дискуссии в Twitter и LinkedIn и везде где ваша целевая аудитория проводит время. (даже в ходе каких-то мероприятий бизнес знакомств). К тому же, проработайте ваши социальные профили для того, чтобы презентовать себя как лидера мнений в вашей области, человека открытого для взаимодействий и человека, который может помочь.

Овладейте переговорами о продажах


Как и email правильные переговоры это нечто на грани науки и искусства. Успешное демо или дискуссия о продажах включает в себя 3 элемента:

  • Задавайте правильные вопросы
  • Слушайте больше чем говорите
  • Вызывайте доверие.


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

Задавая правильные вопросы не забывайте, что вы должны слушать больше, чем говорить. На первый взгляд это контринтуитивно, но исследования показывают что вы можете повысить вероятность закрытия сделки на 11 процентов, если будете говорить только 40% времени. Если клиенты говорят подряд около 4 минут (с несколькими прерываниями от вас), это хороший результат. Еще, попробуйте ограничить представление вашей компании 2 минутами, так как продолжительность концентрации внимания ограничена. Вы можете глубже раскрыть детали вашего продукты в ходе дальнейшей дискуссии.

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

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

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

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

На этом я закругляюсь, надеюсь, что смог дать вам какие-то дельные советы. Если у вас есть какие-то вопросы или вы просто хотите пообщаться, напишите мне в твиттер @cluong708 или LinkedIn.

Перевод: Роман Кутанов

Если вы хотите помочь с переводами полезных материалов библиотеки YC пишите в личку, телегу @jethacker или почту alexey.stacenko@gmail.com

Следите за новостями YC Startup Library на русском в телеграм-канале или в фейсбуке.

Полезные материалы


Подробнее..

Инженерное нелюбопытство

27.11.2020 20:16:23 | Автор: admin
Моя бабушка жутко не любила поездки железной дорогой. Паровозы не вызывали у неё доверия, вели себя явно подозрительно и откровенно угрожающе. С большим трудом моему отцу удавалось её посадить в вагон, когда это на самом деле было необходимо. Отец же, за всю свою жизнь исколесив в командировках почти весь союз, провёл в вагонах чистого времени что-то около года или больше, но каждый раз неимоверных душевных усилий стоило ему подниматься на борт самолёта. Я летаю, не замечая в них принципиальных отличий от городской маршрутки и уж точно не переживаю по этому поводу. Рискну предположить, что будь сейчас пассажирский коммерческий космос массово доступен, моим детям или внукам не будет стоить каких-то душевных усилий сгонять на выходные в лунную колонию и обратно, но я сам никогда в жизни не полезу ни во что, что летит за пределы атмосферы Земли. Нормальный, эволюционный ход истории. Потомки должны быть лучше предков, иначе человечество деградирует.

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

(испуганно) у меня пропали панельки!
(устало) нажмите контрол-о
(радостно) ой а теперь у меня панельки мерцают!
(устало) отпустите контрол-о

Я полагаю, что в этой отрасли граница между поколениями пролегает там, где исчезает очевидность технических решений. Например, выбор элемента в ListView делается двумя кликами мышки, а нажатие кнопки одним. Мы привыкли к этому. Это наверняка результат какого-нибудь исследования в области эргономики интерфейсов родом из Microsoft или Apple или может быть даже ещё из PARC. Но попробуйте объяснить своей маме в чём же разница Люди, не то чтобы далёкие, а, скажем так, неблизкие к IT, часто подозревают нас в каких-то магических способностях, когда мы, подойдя к заведомо незнакомой (но очевидно склёпанной на каком-то одноплатнике или микроконтроллере), железке с кнопками и экраном, разбираемся в ней существенно быстрее простых смертных. Но никакой магии здесь нет, конечно просто для нас workflow устройства более очевиден и интерфейс как правило разработан именно так, как придумали бы его мы сами. Поэтому и всё сразу понятно.

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

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

И вот в процессе рутинной работы я в последнее время стал замечать пугающие меня явления. Происходит что-то такое, для чего на ум приходят названия вроде хроническое нелюбопытство. Поясню на примере. Студенты выполняют цикл лабораторных работ на языке по выбору, но как правило это C# или java, редко python. К небольшому формальному отчёту в электронной форме требуется также приложить архив из всех существенных исходников, чтобы я мог запустить и проверить их у себя. Казалось бы, фраза приложите архив исходников не должна ни у кого вызывать непонимание? Когда речь идёт о C# то для пущей понятливости я говорю им приложите архив вашего solution. Тут можно что-то понять не так? Оказывается, ещё как можно.

Помните древний айтишный анекдот доинтернетовских времён про командировочного, которого отправили с дискетой в другой город скопировать какой-то нужный его фирме софт. И который привёз на этой дискете один LNK-файл со ссылкой на этот софт. Вы думаете, такое только в анекдотах бывает? Как бы не так. Сейчас конец семестра, у половины студентов половина лабораторок ещё не сдана, и хотя я в сентябре умолял их не откладывать, чтобы потом не разгребать по 30+ работ со всего потока каждый вечер, они именно это и делают.

И вот, нашёлся один талант, который судя по текстовой части отчёта и скриншотам, сделал очередные три лабораторных работы грамотно и правильно, ничтоже сумняшеся присылает архив, внутри которого да, вы правильно угадали находятся три сиротливых SLN-файла. Я его спрашиваю, мол, уважаемый коллега, а вы вообще знаете, что такое SLN файл и для чего он нужен? А он и отвечает, что там находятся те самые требуемые исходные коды его лабораторок. Когда же я сказал, что исходных кодов там нет, ответ студента был в стиле ну раз вы так говорите, то я всё исправлю. То есть даже тогда, когда преподаватель очевидно зацепился за это конкретное место, у студента не возникло мысли самостоятельно залезть в этот злосчастный файл и лично выяснить, что же с ним не так. Тут становится сначала смешно, а потом не очень, когда таких талантов набралось ещё человека четыре и все, на первый взгляд, умные ребята, задних не пасут, академически не отстают и всё такое.

Значит, проблема хронического нелюбопытства имеет системный характер. Когда мне было лет 10, я создал свой первый в жизни экзешник в Turbo Basic, будучи вне себя от счастья по поводу того, что можно, оказывается, компилировать писать программы, не привязанные к среде разработки, а выполняемые непосредственно. И тут же полез смотреть, что же там внутри. Ещё ничего не понимая из увиденного, я всё же заметил, что там есть сигнатура в начале, какие-то текстовые строки в конце и что сам машинный код выглядит неравномерно. То есть, инженерное любопытство по поводу того, как устроена сложная система под капотом, даже если релевантных знаний около нуля, я считал чем-то естественным для любой человеческой особи. Ну, если не любой вообще, то для любой поступающей в университет на факультет IT по специальности программная инженерия. Ну кто в детстве не пытался разобрать какую-нибудь механическую игрушку и посмотреть, что там внутри?

Так вот, пожалуйста, имеем будущую интеллектуальную и технологическую элиту страны, для которой сама идея заглянуть внутрь произвольного файла и посмотреть, что там и можно ли это как-то понять-трактовать-поправить оказывается, является далеко не очевидной! Даже при том, что SLN-файл текстовый, а не бинарный.

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

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

Что и кому должен продуктовый аналитик? ч.1

29.11.2020 12:04:16 | Автор: admin


Последние несколько месяцев я проходила квест под названием уволиться с позиции маркетингового аналитика в FMCG и получить оффер на позицию продуктового аналитика в IT. Хочу поделиться опытом и систематизировать информацию, собранную за это время из разных источников. А для того, чтобы не быть голословной, рассказывая, о том, какими навыками должен обладать продуктовый аналитик, начну с обзора открытой информации о требованиях к соискателям в вакансиях hh.ru.

Я спарсила открытые данные о вакансиях, размещенных на сайте headhunter.ru на 28/10/2020 по запросу Аналитик и Продуктовый аналитик. Полный ноутбук и ссылки на данные выложены тут.

Перед тем как рассказать о своих выводах, сделаю небольшое отступление о деталях анализа.

Список требований, необходимых для конкретной вакансии, я брала из раздела Ключевые навыки в описании позиции. Не все HR качественно заполняют это поле: кто-то опечатался (Прим: Phyton), кто-то вообще плохо понимает, что происходит ошибся (Прим: Массивы, Медицинское оборудование), кто-то не стал заполнять этот раздел. Однако, судя по тому, что для разных специальностей видны очевидные отличия в требованиях, большинство вакансий заполнены корректно, по крайней мере, критичные навыки упомянуты.

Возможно, для более точного учета навыков, особенно soft skills (Прим: обладаете хорошими коммуникативными навыками для общения с бизнес-, и с техническими командами) стоит выделять требования из полного описания вакансии и разбивать их на смысловые группы.

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

Всего для анализа было доступно 1178 объявлений, более 60% которых приходится на 5 специальностей: аналитик, бизнес аналитик, продуктовый аналитик, маркетолог аналитик и веб аналитик.

Как отличаются навыки, необходимые для каждой специальности?



Видно, что ключевые навыки для каждой специальности свои: для Продуктового аналитика важны технические навыки (SQL, Python), для Маркетингового аналитика чаще упоминают маркетинговый анализ и PowerPoint, а для Веб аналитика GA и Я.Метрику (вот за что я люблю аналитику. за такие инсайты!).

Если продолжить список топ навыков для Продуктового аналитика, окажется, что за техническими скиллами идут аналитические (анализ данных, аналитическое мышление, аналитические исследования) и знание статистики (математическая статистика, статистический анализ, a/b тесты, data mining). Полный список с интерпретацией частот навыков на самой первой картинке с облаком тегов.

В какую специальность легче всего зайти без релевантного опыта?



Легче всего искать работу на junior и intern позиции в области анализа данных по специальностям Маркетолог аналитик и Веб аналитик около 10% вакансий готовы нанять людей без опыта.

А на позицию Продуктового аналитика чаще всего ожидают более опытных людей: более чем в половине вакансий ищут человека с 3-6 годами релевантного опыта.

Как отличается заработная плата по специальностям?


Вакансий с открытой информацией о заработной плате мало всего 63. Тем не менее, невозможно удержаться и не посмотреть распределение. Для адекватного сравнения, рассмотрим медианы зарплат начального уровня (ожидаемый опыт работы от 1го до 3х лет).

Бизнес аналитик в среднем может рассчитывать на 140т, продуктовый аналитик на 100т, а меньше всего готовы платить маркетологу и веб аналитику: 60т. Маркетологи и веб аналитики, срочно учите BPMN или Python, SQL!

Напоследок дам ссылки на занимательные материалы на схожую тему:

  1. Аналитика для хантинга аналитиков обзор вакансий, навыков и зарплат от людей, которые в hr штучках понимают гораздо больше, чем я.
  2. Текст о необходимых навыках на разных грейдах в Яндексе.
  3. Статья о видах аналитиков в IT (читать голосом Дроздова).

Во второй части статьи я поделюсь полезными материалы, лайвхаками, курсами и задачниками, которыми пользовалась, когда наверстывала недостающие hard skills для позиции продуктового аналитика. Stay tuned!
Подробнее..

Навыки команды Как я настраивал матрицу компетенций

27.11.2020 12:11:35 | Автор: admin

Почему в Confluence?


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


Первое, что пришло на ум, это сделать таблицу, где в строчках сотрудники, а в колонках навыки/продукты. Встал вопрос, где вести такую таблицу?
  • Excel сложно организовать совместное редактирование
  • Google Docs не рекомендован к использованию в компании.

Подсказку сделать в Confluence я нашел в докладе Алексея Трошина (ФИНАМ) Знания и компетенции в команде: найти, увидеть, прокачать. Кому больше нравится читать держите конспект доклада от Светланы Новиковой.

Шаг 1. Обычная таблица


В начале я сделал обычную таблицу, где в строчках навыки, в колонках сотрудники. На тот момент в команде было 10 человек и с полсотни навыков, сгруппированных по тринадцати темам.
Начальный список навыков мы c командой придумали во время ретро. Таблица выглядела относительно компактно. И все с удовольствием пошли заполнять. Заполнять необходимо было количеством звездочек. Тут же возник вопрос? А сколько звездочек ставить? Нужны критерии.
Мы для себя выбрали такие (одна пять звезд):
  1. Давно изучал и давно не применял на практике
  2. Прослушал курс/изучал самостоятельно, практики было мало
  3. Практик, регулярно применяю на практике
  4. Эксперт, знаю тонкости, готов делится лайфхаками с коллегами
  5. Гуру, готов выступать на внешних конференциях




После этого все довольно оперативно смогли заполнить информацию по себе.


Итоги после первого шага:


Время: От идеи до первичного заполнения прошел один спринт (две недели).
Выхлоп: Стало понятно, где у нас пробелы в знаниях, кого чему нужно учить. Составили график обучения (заказали курсы в нужном объеме).

Шаг 2. Сводная таблица


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

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


Для примера на картинке выше две группы навыков: Computer languages и Management.

Далее добавил метку (Label) на страницу Шаблон профиля специалиста. Например, skills.


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

Теперь магия сводная таблица по свойствам страниц.


Добавил макрос Вертикальное меню, внутри него макрос Элемент вертикального меню, внутри него макрос Отчет по свойствам страницы.

У элемента вертикального списка задал название. Оно может быть любым и может не совпадать с названием свойства страницы.
А вот с макросом Отчет по свойствам страницы немного сложнее.
Во-первых, надо указать метку ту, что навесили на Шаблон профиля специалиста. Например, skills. Это позволило мне отобрать только нужные страницы.
Во-вторых, стоит ограничить список пространств, в которых будут искаться страницы. Например, текущим.
В-третьих, важно указать Свойство страницы, ведь, как мы помним [из предыдущего], в шаблоне сотрудника у нас много свойств, каждое из которых соответствует одной группе навыков. В данном случае computer language.
Наконец, лучше задать название первой колонке в сводной таблице. Я назвал её Сотрудник


Повторил для следующей группы навыков. Добавил Элемент вертикального меню и внутри него Отчет по свойствам страницы.
Теперь давайте посмотрим, что у меня получилось?


Итоги после второго шага:


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

Шаг 3. Продвинутый шаблон


Предупреждение: Для этого улучшения потребуются права администратора пространства.

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


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


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


Второе tooltip. Этот макрос позволил мне сделать всплывающее описание к навыку и будет полезен для просмотра информации на сводной таблице.


В итоге мой шаблон выглядит вот так:

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

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


В результате появляется кнопка<img

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


Я использую эту возможность для формирования отдельных сводных отчетов по мини-командам. Как вы помните, когда я пришел, нас было десять, на первой итерации изменений уже 15, сейчас нас более двадцати, и мы приняли решение делиться на четыре мини-команды.
В нашем случае это команды:
  • DEV внутренняя автоматизация
  • CI/CD развитие и эксплуатация таких продуктов как Artifactory, Gitlab, Jenkins и т.д.
  • k8s развитие kubernetes
  • TESTZONE автоматизация пересоздания тестовых зон

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

Итоги после третьего шага:


Время: На разработку и тестирование нового шаблона у меня ушло две недели. Основное время на уточнение формулировок критериев для каждого навыка.
Выхлоп: Оценка уровня навыка стала более точной. Есть возможность сравнивать с целевым специалистом и планировать обучение.

ЗАКЛЮЧЕНИЕ


Вот какие задачи решает матрица компетенций у нас:
  • Во-первых, bus factor. Очень не хочется оказаться в ситуации, когда о том, как работает продукт, знает только один человек, и он уходит. Это полезно и для планирования, и для согласования отпусков.
  • В-вторых, нужно планировать платное обучение. Заранее принять и согласовать решение о том, кого, когда и на какие курсы отправить.
  • Во-третьих, самообучение. Есть как внутренние курсы, так и множество открытых ресурсов. Главное определить, какой навык нужно прокачивать и создать на это задачу.
  • И, наконец, мы нашли еще одно применение профиля целевого сотрудника: с его помощью мы решаем вопрос подбора персонала. Можем четко объяснить HR, кого мы ищем.

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

Категории

Последние комментарии

© 2006-2020, personeltest.ru