Как разработчику думать наперед
Перейти к содержимому

Как разработчику думать наперед

  • автор:

«Если бы я был учителем, я бы учил всегда думать наперёд»

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

— А хотелось бы, чтобы были?

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

— Как называется твоя должность?

— Директор по проектам.

— Как объяснить шестилетнему ребёнку, чем ты занимаешься?

— Приходит дядя, который говорит: я хочу написать игру «Змейка на компьютере». Я эту задачу бью, придумываю, как её сделать алгоритмически, если надо, объясняю дополнительно разработчикам, как её сделать, вместе с ними делаю, принимаю и показываю этому дяде.

— Какой самый сложный вызов был в последнее время?

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

— Какова динамика твоих доходов за этот год?

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

— А когда ты зарабатывал 30 тысяч рублей?

— Это было очень давно, в 2003.

— Когда планируешь зарабатывать миллион рублей?

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

— Помнишь, кем ты хотел стать в детстве?

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

— Каким будет мир через 20 лет?

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

— Где твоё место в мире через 20 лет?

— Я не очень люблю такие планы строить. Не знаю, не думал об этом.

— Три человека, которые оказали влияние на тебя?

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

— Чем ты продолжишься в своих учениках?

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

— Что может произойти такого кардинального в компании через год, что даст скачок?

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

Если говорить именно про техническое образование, то оно точно будет расти, потому что формат текущих университетов… Я сам закончил обычное стартовое высшее образование, в Московском университете, и оно, наверное, важно, но по сути я не помню, наверное, процентов 80 из того, что давалось, потому что это не используется в жизни. Оно нужно для общего развития, но точно ты не используешь его ежедневно, в профессиях. Я так же могу для расширения собственных границ и знаний просто читать книжки, которые мне нравятся, если возникает какой-то вопрос. Но не так, чтобы учиться этому и тратить 5 лет жизни, когда можно за год–два выучиться какой-то профессии и начать работать. Когда ты растёшь в этой профессии, изучая рядом что-то, т. е. ты и себя обеспечиваешь, и рост свой обеспечиваешь, наверное, в таком ключе технические компании интересны. Я не говорю, что не надо ходить получать высшее образование, для людей это, наверное, ещё один шанс, как и технические компании. Не все могут пойти на высшее образование, потянуть все знания, у кого-то в жизни ситуация, когда надо работать, что-то изучать рядом, хочет жизнь поменять свою, чувствует, что когда-то ему было интересно. Мы же не говорим чисто про программирование, говорим про разные сферы жизни.

У меня был программист, который когда-то был продавцом. Он учился сам, по книжкам, а сейчас люди учатся на курсах. Это точно факт, мы знаем это на основе своих клиентов. Он был продавцом, прочитал одну книжку по программированию, вторую, начал в одной компании работать, расти и расти. Когда он пришёл ко мне, ему одному можно было смело давать целый проект, зная, он его сделает, он был первоклассный программист. Сейчас он работает на фрилансе, мы с ним поддерживаем связь, он по-моему где-то в Бразилии сейчас живет, но каждый год он перемещается, свободно, вольготно себя чувствует. А сначала он в магазине на кассе работал, потом онлайн продажами занимался — резко поменял человек свою жизнь. Это не означает, что если ты не умеешь программировать, ты и не научишься. В нашем мире нужно уметь обращаться с техникой. У меня сейчас старшей дочке 10, младшей 3. Младшая в 3 умеет гораздо больше, чем старшая в 3, чем старшая в 5, т. е. она с техникой уже обращается на ты. Уметь обращаться с техникой для современности точно надо.

У вас тоже получится

Разработчик — первая программа обучения для осознанного выбора специальности и карьерной траектории в сфере информационных технологий от GeekBrains при участии Skillbox.

Получите востребованную профессию и актуальные знания в цифровых технологиях.

Думать наперед: молодые ученые снизят количество «заторов» на дорогах и в образовании

Студенты и аспиранты кафедры высокопроизводительных вычислений стали победителями Всероссийского конкурса прорывных проектов в области информационных технологий «IT-прорыв». Обучающиеся Университета ИТМО разработали приложение, которое позволит сократить количество пробок на дорогах из-за ДТП, а также систему для индивидуализации учебных курсов.

Думать наперед: молодые ученые снизят количество «заторов» на дорогах и в образовании. Источник: vsluh.ru

Конкурс «IT-прорыв» проводился уже в пятый раз. Организаторами выступили Университет ИТМО и ОАО «Росэлектроника» при поддержке бизнес-инкубатора вуза и стартап-акселератора SUMIT. Цель конкурса — объединить усилия и знания представителей разных областей науки и техники по созданию и внедрению инновационных IT-разработок. Участники могут подавать заявки по шести номинациям: IT в радиоэлектронике; IT-безопасность; IT в медицине; IT в образовании; IT в энергетике; телеком идея — лучшее мобильное приложение; а также гран-при за лучший проект в рамках импортозамещения. Победители конкурса получают материальную поддержку для дальнейшего развития своих проектов. Общий призовой фонд соревнований составляет два миллиона рублей. Кроме того, конкурс является отличным дополнением в портфолио для молодых ученых и разработчиков, которое в дальнейшем поможет в борьбе за другие престижные гранты от различных фондов. В этом году обучающиеся Университета ИТМО заняли первые места сразу в трех номинациях. Мы расскажем о двух из победивших команд. Победители конкурса IT-прорыв ДТП не будет помехой движению на дорогах Ежедневно в Санкт-Петербурге, как и в любом другом крупном городе, происходят сотни дорожно-транспортных происшествий. Сотрудники дорожно-патрульных служб выезжают на места происшествий в порядке поступления звонков от участников ДТП. При этом диспетчерам, которые принимают звонки и распределяют патрули, сложно каждый раз учитывать огромное количество факторов и принимать наиболее эффективные и быстрые решения. Дорожные аварии будут по-разному влиять на дорожную обстановку в зависимости от того, когда они произошли и где. К примеру, ДТП, занимающее три полосы на Московском проспекте в 18:30, может вызвать затор на дороге, при этом ДТП на одной полосе Новоизмайловского проспекта в 18:20 не окажет существенного влияния на дорожную ситуацию. Хотя оба ДТП произошли в одном районе примерно в одно время, целесообразнее сначала выехать на то ДТП, которое сильнее влияет на порядок движения. Команда проекта «Мобильный диспетчер ДПС» создала систему, которая будет учитывать эти факторы, ранжировать ДТП по степени приоритетности и в соответствии с этим формировать маршруты патрулей. Для ранжирования транспортных аварий сервер будет собирать информацию о текущем трафике на дорогах, времени поступления заявок, степени перекрытия дороги в результате ДТП, координатах аварии, количестве свободных патрульных машин и их местоположении. Степень «тяжести» происшествия для транспортной обстановки будет определяться методами машинного обучения и кластеризации. Таким образом, удастся экономить время сотрудников ДПС и оптимизировать разрешение дорожных проблем. Источник: социальные сети

«Мы запрашивали у официальных представителей дорожно-патрульных служб информацию о том, каким образом диспетчеризация патрулей происходит сейчас. Сотрудники оборудованы мобильными устройствами для оперативного оформления документов об аварии, в этом же устройстве хранятся данные о страховке, водительских удостоверениях участников ДТП. В рамках нашего проекта мы создаем отдельный модуль для этой существующей системы, который будет реализован в качестве мобильного приложения», — прокомментировала Ольга Козырева, студентка кафедры высокопроизводительных вычислений. Также в создании проекта участвовал студент Университета ВолГТУ Юрий Чечеткин. Ребята стали победителями в номинации «Телеком идея — лучшее мобильное приложение».

Проект, в котором используются аналогичные методики оценивания дорожной ситуации, реализует в своей работе для Северо-Западного федерального медицинского исследовательского центра имени В. А. Алмазова выпускник магистратуры, будущий аспирант кафедры ВПВ Иван Деревицкий. Он разрабатывает систему для оптимизации маршрутов движения карет «скорой помощи». О необходимости такого решения на лекции для студентов Университета ИТМО рассказывал заведующий лабораторией острого коронарного синдрома Центра им. В. А. Алмазова Алексей Яковлев. По словам разработчика системы, сейчас проект находится на исследовательской стадии, в ходе которой важно собрать и проанализировать все необходимые данные по времени движения «скорой», по пробкам, по степени тяжести больных, к которым выезжают медики, и другую информацию. После этого будет создан прототип программы, которая станет автоматизированным помощником при принятии врачом оперативных решений. Университет ИТМО. Ольга Козырева Образовательные курсы под заказ Победители конкурса «IT-прорыв» в номинации «IT в образовании», аспиранты Университета ИТМО Мария Карпова и Вадим Шмелев разработали систему индивидуализации учебных программ «Твой курс», которая соответствует основным современным трендам в образовании. Сегодня этих трендов два: это массовость и индивидуализация, уверен эксперт проекта, доцент кафедры ВПВ Алексей Духанов. Первый подразумевает все возрастающую популярность дополнительного обучения в виде коротких курсов, а второй — составление индивидуальных учебных модулей, которые учитывают начальные знания обучающегося, его предпочтения по ритму и методике получения новых знаний и другие параметры. Система формирует курсы в виде последовательностей учебных объектов в зависимости от начальных компетенций студента и тех, которые он хочет получить после окончания обучения. Описание каждого учебного объекта включает в себя как технические параметры (язык, время прохождения, инструментарий), так и описание компетенций, требуемых на «входе» и получаемых на «выходе». Для прохождения каждого учебного объекта требуется определенный набор «входных» компетенций. Обучаемому предлагается пройти сначала те объекты, которые соответствует его начальным знаниям. За ними следуют учебные объекты, которые требуют на «входе» навыки, полученные в результате освоения предыдущих объектов. Генетический алгоритм анализирует, насколько предметы в одном курсе связаны между собой и подходят для последовательного изучения, и в результате выбирает наилучший набор учебных объектов. При этом их отбор и упорядочивание осуществляется на основе компетенций, выраженных с помощью таксономии Блума. Университет ИТМО. Мария Карпова и Вадим ШмелевТаксономия Блума подразумевает постепенное освоение человеком новых уровней владения тем или иным знанием, этих уровней выделяют шесть: помнить, понимать, применять, анализировать, оценивать, создавать. Также в данной таксономии выделяются следующие виды знаний: фактов (фактические — factual), концепций (концептуальные — conceptual), процедур (процедурные — procedural) и метакогнитивные знания (metacognitive). Кроме того, сами знания имеют связи и зависимости между собой на основе выбранной онтологии предметной области, которые влияют на порядок их изучения. Таким образом, алгоритм позволяет находить и оценивать качество (степень) связи между объектами, компетенции которых не совпадают один в один. Это особенно актуально, поскольку зачастую приходится иметь дело с разношерстными учебными объектами, созданными различными людьми с разными целями, отметила Мария Карпова.

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

Молодые ученые Университета ИТМО разработали систему индивидуализации учебных курсов

При этом в системе «Твой курс» разработаны также методики оценивания полученных пользователем знаний. Таким образом, приложение существенно упрощает работу преподавателя и одновременно повышает качество образования, особенно если обучение ведется в группе студентов с разным уровнем подготовки и разными образовательными привычками. Сейчас команда проекта занимается сбором данных по учебным дисциплинам и программам магистратуры кафедры ВПВ, чтобы автоматизировать формирование образовательных траекторий и в Университете ИТМО.

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

Университет ИТМО. Студенты и аспиранту кафедры ВПВ

Выиграть «IT-прорыв» ребятам помогли навыки, которые они получили в рамках школы «Технологии высокопроизводительных вычислений и компьютерного моделирования», которая состоялась в апреле 2016 года. Студенты и аспиранты учились подавать заявки на конкурс РФФИ, но полученный опыт реализовали в ходе «IT-прорыва». Они намерены и далее продолжать участвовать в различных конкурсах, в том числе проводимых в целях реализации Национальной технологической инициативы, и нацелены на воплощение своих проектов.

Как разработчику думать наперед

Rubber ducking – сокращение от rubber duck debugging. Концепция возникла из рассказа в котором программист построчно описал работу программного кода резиновому утенку. Хотя сначала все кажется довольно странным, разумное объяснение этому есть. Объяснение своего кода другому человеку или неживому объекту позволяет вам решить проблему и найти то место, в котором вы застряли. Вам приходится мыслить нестандартно. В конце концов, вы придете к той точке в коде, в которой вы ошиблись.

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

Модель 2: Круг компетенций (Circle of Competence)

���� Не только мозговой штурм: 10 ментальных моделей в помощь программисту

Круг компетенций заключается в том, чтобы отличить то «что вы знаете» от того «что вы не знаете».

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

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

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

Модель 3: Обратная связь (PDCA)

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

Обычно это происходит в цикле «планируй-делай-проверяй-действуй» ( plan-do-check-act – PDCA). Данный цикл – это повторяющийся процесс улучшения продуктов и сервисов.

Состоит он из четырех шагов:

  1. Планируй (Plan) : определяем, что нужно сделать, составляем план.
  2. Делай (Do) : выполняем в соответствии с планом.
  3. Проверяй (Check) : анализируем выполнение плана и оцениваем его эффективность.
  4. Действуй (Act) : претворяем план в жизнь.

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

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

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Модель 4: Ментальная карта

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

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

���� Не только мозговой штурм: 10 ментальных моделей в помощь программисту

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

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

Модель 5: График-холм

���� Не только мозговой штурм: 10 ментальных моделей в помощь программисту

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

Первая фаза – склон вверх – «Во всем разобраться». На этом этапе у вас имеется общее понимание проекта, но вам все еще нужно выяснить некоторые моменты или закончить общую стратегию.

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

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

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

Модель 6: Закон Паркинсона

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

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

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

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

Модель 7: 5 Почему

���� Не только мозговой штурм: 10 ментальных моделей в помощь программисту

«5 почему» – это ментальная модель, в которой необходимо пять раз задать один и тот же вопрос «Почему?».

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

Вот пример, который может быть применим к разработчикам:

  1. Почему пользователь не смогут войти в календарь в нашем приложении? В недавнем обновлении была ошибка.
  2. Что привело к ошибке в последнем обновлении? Команда не смогла протестировать все функции.
  3. Почему команда не смогла протестировать все функции? Новые тестировщики в команде не смогли протестировать все должным образом.
  4. Почему новые тестировщики не справились с задачей? Им не предоставили нужных ресурсов и не провели нормальное обучение.
  5. Почему им не предоставили ресурсы и не провели обучение? Большинство новых тестировщиков работают удаленно. Команда, которая ответственна за их обучение, еще не разработала план адаптации для полностью удаленных сотрудников.

Модель 8: Инверсия

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

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

Как правило, первый вопрос, который придет вам в голову: « Что мне сделать, чтобы больше людей пользовалось моим приложением даже после окончания бесплатного периода?».

Вместо того, чтобы думать наперед, взгляните назад и спросите себя – «Какими функциями больше всего пользуются во время пробного периода? Как можно улучшить впечатления пользователя за период бесплатного пользования?».

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

Модель 9: принцип бритвы Оккама

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

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

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

Модель 10: Бережливый стартап

���� Не только мозговой штурм: 10 ментальных моделей в помощь программисту

Бережливый стартап включает в себя цикл обратной связи Build – Measure – Learn («Создай – Оцени – Научись»). Многие стартапы начинаются с великолепной идеи, но для реализации задуманного могут уйти недели или месяцы.

Принципы бережливого стартапа решают эту проблему разработкой минимального жизнеспособного продукта (MVP – Minimal Viable Product), который могут протестировать заказчики или клиенты.

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

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

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

Выбирайте правильную ментальную модель

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

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

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

Материалы по теме

  • �� 8 лайфхаков для повышения продуктивности
  • ✔️ Проектируем канбан-доску за 5 простых шагов
  • ������‍�� 97 советов по продуктивности для программистов и ТОП-6 самых важных

Источники

TypeScript научитесь всему, что нужно знать Middle

За 2 недели вы освоите совместимый с JavaScript язык, который требуется на большинстве крупных проектах

Добавите заветную строчку TypeScript в резюме
Поймете, почему TypeScript так важен для больших команд
Получите 2 недели обучения в группе с сопровождением
Улучшите типизацию и качество своего кода
Вместо отлова ошибок сможете делать быструю проверку кода
Основательно освоите язык на уровне Мидл

Курс подойдет, если вы

Начинающий разработчик со знанием JavaScript

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

Frontend или backend-разработчик, который хочет внедрять TypeScript

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

Знакомы с TypeScript, но хотите углубиться

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

9 из 10 компаний указывают в требованиях TypeScript

TypeScript — это надстройка над языком JavaScript. Позволяет избежать большинство проблем JS, делая код предсказуемым, расширяемым и более безопасным.

9 из 10 компаний указывают в требованиях TypeScript

TypeScript — это надстройка над языком JavaScript. Позволяет избежать большинство проблем JS, делая код предсказуемым, расширяемым и более безопасным.

по данным hh.ru за 2022г

JavaScript и многое другое

TypeScript добавляет в JavaScript дополнительный синтаксис для обеспечения более тесной интеграции с вашим редактором.

Выявляйте ошибки на ранней стадии в вашем редакторе.

Результат, которому можно доверять

Код TypeScript преобразуется в JavaScript, который запускается везде, где запускается JavaScript: в браузере, на Node.js или Deno и в ваших приложениях.

Безопасность в масштабе

TypeScript понимает JavaScript и использует вывод типов, чтобы предоставить вам отличные инструменты без дополнительного кода.

Изучите язык, без которого не обходится ни один крупный проект.

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

Записаться на курс

Что вы получите на курсе?

53 урока в HD

Теория

Практика

Закрытый чат

Служба заботы

Комфортное обучение

Вы увидите свой прогресс

Сейчас:
не знаете почему TypeScript так популярен у разработчиков? Что такое система типов и почему она так важна в крупных проектах?

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

Программа курса

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

  • Добро пожаловать в модуль TypeScript
  • Демонстрация функционала TypeScript
  • Настройка VS Code
  • Установка TypeScript

Научитесь типизировать данные с примитивными типами, а также объекты, массивы, кортежи, функции. Познакомитесь с типом Enum, поймете разницу между void и undefined.

  • Работа с числами
  • String, boolean, function
  • Объекты
  • Массивы
  • Кортежи (Tuples)
  • Enum
  • Symbol & BigInt
  • void vs undefined
  • Типизация функций

Работа с типами

Научитесь использовать объединение, литеральные типы, интерфейсы, а также «защитников типа». Познакомитесь с типом unknown и поймете его отличие от any, узнаете о типе never.

  • Объединенные типы (Union Types)
  • Literal Types
  • Interfaces
  • unknown
  • never
  • Type Guard

Научитесь управлять поведением компилятора TypeScript с помощью конфигурационного файла tsconfig.json (например, выбор файлов для компиляции, версия ECMAScript, в которую будет скомпилирован TypeScript-код, система модулей, строгий режим и многое другое).

  • Введение
  • Базовые настройки (files, include, exclude, extends)
  • Language and Environment
  • modules
  • jscheck
  • emit
  • strict

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

  • Синтаксис классов
  • Методы
  • Getters & Setters
  • Наследование
  • Модификаторы свойств
  • Static & Readonly
  • Упрощенный конструктор
  • Implements
  • Абстрактные классы

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

  • Зачем нужны generic
  • Функции с generic
  • Более строгие generic
  • Применение keyof
  • Работа с классами

Узнаете о множестве полезных утилитарных типов, позволяющих упрощать определения типов, создавать новые типы на основе существующих, выполнять операции над типами.

  • typeof & keyof
  • Partial, Required, Readonly
  • Pick & Omit
  • Extract & Exclude
  • ReturnType & Parametrs

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

  • Введение
  • Паттерн: декоратор
  • Практический пример. Декоратор с параметрами
  • Декоратор свойств
  • Декоратор методов

Еще про TypeScript

Научитесь использовать пространства имен, использовать TypeScript со сторонними библиотеками, добавлять TypeScript в Node.js-проект.

  • Что такое namespace
  • Сторонние библиотеки
  • Настройка NodeJS

Остались вопросы?

Наш отдел заботы готов ответить на любой вопрос

Задать вопрос Написать

Владилен Минин

  • Senior Frontend разработчик
  • Более 8 лет опыта
  • Тимлид для команд разработки более 10 человек
  • Более 6 лет обучает JavaScript
  • Опыт коммерческой разработки более 7 лет
  • 40 000 тысяч студентов онлайн
  • Автор YouTube канала более чем с 281 000 подписчиками

TypeScript – это стандарт разработки

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

Важная галочка в резюме

Всего за 2 недели обучения

Куратор уровня middle

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

Индивидуальный темп

Обучайтесь в своем темпе, когда удобно

Коммьюнити

Знакомитесь и помогаете другу другу, обучаетесь вместе

Важная галочка в резюме

Всего за 2 недели обучения

Куратор уровня middle

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

Преимущество курса #1

Начните обучение сейчас! Начните сейчас

TypeScript

  • Исчерпывающая теоретическая информация
  • Закрепление знаний на практике и разборах на реальных задачах
  • 2 недели кураторской поддержки в чате
  • Тесты и практические задания
  • Доступ к курсу открывается сразу после оплаты

Покупая курс TypeScript, вы получите диагностику стоимостью 2 790 ₽ в подарок

Куратор уровня Middle проверит ваши навыки и составит индивидуальный план для достижения целей в разработке

Часто задаваемые вопросы

Что нужно знать для старта?

JavaScript и иметь грейд Джуниор или Мидл

Получу ли я сертификат?

Каждый выпускник курса «TypeScript» получает сертификат от Result. Вы сможете прикрепить его в свое резюме и показывать работодателям.

Что такое монеты и как их заработать?

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

Сколько длится курс?

Обучение длится ровно 14 дней. За это время вы проходите все основные темы Typescript и отрабатываете на практике полученные знания

Как проходит обучение?

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

Сколько времени нужно будет уделять учебе?

Разным людям необходимо разное количество времени. На курсе «TypeScript» у вас будет уходить не более часа в день на просмотр уроков и выполнение заданий. Если окажется, что вам нужно больше времени, это не значит, что у вас не получится. Это значит ровно то, что нужно заниматься чуть больше, чтобы освоить материал.

На какое время доступен курс и чат?

Доступ к курсу год, кураторская поддержка — 2 недели

Гарантия возврата средств

Вернем деньги, если вам не понравится курс в первые 3 дня

Могу ли я оплатить бонусными монетами?

Да, вы можете оплатить бонусными монетами не более 20% стоимости курса

Остались вопросы?

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

Вы можете получить бесплатную консультацию: отдел заботы ответит на любые вопросы.
Получить консультацию

Почему мы этим занимаемся

Доказываем, что попасть в IT реально.

В основе курса — актуальные данные. Обучаем на практике и без воды.

Даем реальные задачи, над которыми работают
в IT-компаниях прямо сейчас.

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

Информация

Направления

Подпишитесь

  • ИП Минин В. И.;
  • ИНН 781714316555;
  • ОГРНИП 317784700113455

Любое использование материалов с данного сайта допускается не иначе как с письменного разрешения его правообладателя — 781714316555 ИНН/ОГРНИП номер от 317784700113455. Использование материала с сайта и нарушение авторских и смежных прав правообладателя наказывается в соответствии со ст. 146 УК РФ. Вся информация, предоставленная на сайте, ни при каких условиях не является публичной офертой, определяемой положениями ст. 437 (2) ГК РФ.

Мы используем cookie. Продолжая использовать сайт, Вы даете свое согласие на использование cookie для хранения данных. Подробнее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *