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

Обучение онлайн

Доступное американское высшее образование

08.11.2020 08:21:01 | Автор: admin

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

После регистрации предлагают предоставить документы об образовании и/или, если обрзование поулчено не на английском языке, то предоставить документы о знании английского на достаточном уровне. Имеются виду различные языковые тесты. Я проигноривал этот шаг и меня автоматом ззачислили на курс английского (English Composition 1). Подумалось, что для получения любого диплома этот курс в списке обязательных, так же этот курс автоматически обязателен тем, кто не предоставил никаких документов о знании английского. Логика очень простая, в первом 9 недельном забеге у тебя есть только этот курс. И ты либо проходишь его набрав минимум 73 балла, либо не проходишь и можешь попробовать еще раз.

Баллы считаются очень просто. До 75 баллов можно набрать выполняя еженедельные задания, и до 25 баллов можно набрать на финальном экзамене. Но есть нюанс, если на финальном экзамене набрать меньше 12.5 баллов, то курс не засчитывается. Так же курс будет считаться проваленным, если после финального экзамена общая сумма баллов будет меньше 73. Курс можно будет взять повторно. В фильнальной части ваш "дневник" будет выглядеть как то так, я замазал рецензии на свои работы. Там немного лично.

Spoiler

Особенно интересным мне показался формат обучения. Каждый курс разбит на 9 недель. 8 учебных недель и девятая неделя это неделя финального экзамена. Учебная неделя начинается в четверг. Все задания на учебную неделю должны быть сданы не позднее полуночи в среду по времени Калифорнии. Для тех кто путается, на сайте всегда тикают часы и есть календарик с напоминаниями. English composition 1 курс, где вас будут учить писать академические эссе. То есть эссе, в которых вы будете не только высказывать свою точку зрения или предположения, но и подкреплять их цитатами или перефразированными мыслями из чужих работ и учиться делать это правильно, указывая источник. Каждую неделю вы будете читать какие-то истории из классики. Кстати, одним из авторов, предлагаемых к прочтению, будет Антон Павлович Чехов. Так же в списке будут Джек Лондон, Харуки Мураками, Нилл Гейман и многие другие. По результатам прочитаного вам нужно будет написать на форуме несколько предложений, иногда пару абзацев. Каждую неделю на форуме будет стартовый топик, где будет расписано что именно от вас ожидается. Так же ожидается, что вы оцените и откоментируете посты минимум троих ваших одногрупников.

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

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

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

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

Также вам предоставят доступ к научной библиотеке и прочим справочным и учебным материалам.

Финальный экзамен по данном курсу проходит под наблюдением. В Северной Америке можно пойти в ближайщую бибилотеку и там библиотекарь может выступить проктором. Не уверен, что это работает в других странах. В моем случае я пользовался услугами proctoru. Стоило это около 18 долларов. Я немного подготовился и просто создал на компьютере нового юзера для сдачи экзамена. Потому что нужно будет скачать специальное расширение для браузера, которое по сути отдаст ваш компьютер под удаленый контроль наблюдателя. Он заблокирует все приложения кроме собственно одной странички браузера, где вы будете сдавать ваш тест. Также вам нужно будет продемонстрировать, что у вас нет подсказок и в комнате нет посторонних. Так как у меня камера встроена в монитор, мне пришлось снимать на мобильный всю комнату и потом демонстрировать видео в камеру на мониторе. Так же вам понадобится удостоверение личности с вашим фото, где можно будет прочитать ваше имя и фамилию. Удостоверение должно быть действующее. На финальный экзамен дается 80 минут. На сдачу финального экзамена отводится 4 дня, вы можете назначить любое удобное вам время в интервале этих 4 дней. И нет, вам не придется сдавать экзамен по времени Калифорнии, вы в буквальном смысле можете выбрать любое удобное лично вам время. То же самое относится и к самой учебе. Вы можете выполнять задания в любое удобное для вас время, но рекомендуется выполнять задания раньше, чем позже и не откладывать все на последний день. Потому что никакие оправдания не принимаются. Оценку за финальный экзамен вы узнаете только в конце 9 недели.

Перейдем к самому интересному.

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

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

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

Ссылка на чатик в телеге, если кто захочет обучаться коллективно.

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

Подробнее..

Мои рассуждения на тему Как учиться программировать на JavaScript

15.02.2021 22:09:28 | Автор: admin

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


Немного о себе

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

Рассуждения о сути программирования

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

Чаще всего я вижу следующую картину: с одной стороны все говорят о том, что программистом стать - это очень сложная задача, требующая кучи времени и из огромного количества желающих выходят всего лишь чуть ли не единицы программистов, а с другой стороны дикий дефицит и все кричат "нам не хватает программистов!". И здесь же еще один парадокс: мало кто вообще понимает по каким критериям оценивать программистов (что это вообще программист). Я думаю, что проблема тут в том, что до сих пор не выработана система правильной постановки задач. В какой проект не посмотри - нужен какой-то фантастический персонаж, который умеет все, что надо. Но такого не бывает. Сейчас даже в рамках одного только JavaScript столько технологий наплодилось, столько подходов, что в какой проект не окунись, гарантированно найдешь то, с чем не сталкивался. И вот и получается, что какой-нибудь матерый спец с 10-летним стажем может еще себе позволить подключиться к проекту, из расчета, что знает точно многое, а чего не знает - доучит. А что делать тем, кто еще и пары лет опыта не имеет? Скажу точно: для таких - почти безнадега.

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

И как мне видится, тут есть два пути:

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

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

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

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

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

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

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

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

Итак, какой же стек я предлагаю выбрать?

Git

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

TypeScript

TypeScript - это не полноценный самостоятельный язык, а, по сути, надстройка над JavaScript, которая вводит типизацию в этот нетипизированный язык.

В чем смысл?

Вообще, я всегда был за то, чтобы учить выбранный язык в чистом виде, и только после этого переходить к каким-то готовым решениям (библиотекам и т.п.). Но в случае с TypeScript у меня мнение поменялось. Дело в том, что если мы говорим об обучении с упором на то, чтобы как можно быстрее влиться в коммерческую разработку, надо понимать, что априори мы рассчитываем на командную работу. Обучаясь в этом направлении, вы очень нескоро еще сможете взять целый проект в свои руки. Вместо этого вы будете работать с другими специалистами, совместно выполняя задачи. Но даже если вы сами будете тянуть какой-то проект, современный JS устроен так, что своего кода пишется минимум, а бОльшая часть проекта - это сторонние компоненты. Так вот, работая с большим количеством сторонних компонентов, у вас будет постоянная головная боль: Какие сущности в этих компонентах есть? С какими параметрами их можно вызвать (сколько параметров, какие типы)? Что в результате их выполнения ожидать? Вот если писать на чистом JS, вам постоянно надо будет держать это все в голове, все это знать, или постоянно сидеть в сторонней документации (которой может еще и не быть).

В случае же работы с TypeScript, вы как будто работаете не один, как будто кто-то сидит в вашей IDE и постоянно помогает вам в написании кода, следя за тем что и как вы пишете. И если вы что-то пишете не то, TS вам подсказывает, типа "Здесь ожидается логическая переменная, а ты строку пытаешься скормить" или "здесь условие никогда не выполнится, потому что ты пытаешься жестко сравнить число со строкой, а они никогда друг другу не равны" и т.п. То есть здесь смысл в том, что вы учитесь не тому "что делать", а тому "как делать". И это на самом деле сильно проще. Вам коллега ставит задачу "Забери по АПИ курсы валют и скорми массив числовых значений мне в компонент", и это уже довольно четкая задача, потому что вам уже определено условие: "дай массив чисел". Вы можете здесь ошибиться логически, к примеру, взяв не те числа не из того АПИ. Но вы не сможете скормить не массив, или массив не чисел. То есть решив, как вам кажется, задачу, получив результат и попытавшись отдать решение коллеге, уже IDE вам частично проверит результат, до того, как вы потревожите коллегу.

С typescript легко можно играться в playground. Вот пример.

Мой вердикт: если вы хотите в JavaScript, то изучайте сразу TypeScript. Вот прям сразу. И тогда вы сэкономите много своего времени, а более качественный код вы начнете давать довольно скоро.

React

Про React очень много написано и наверняка все слышали. Так же наверняка слышали и про другие библиотеки типа Vue, Svelte и т.п. Не хочу разводить холивар, но буду советовать выбирать именно React. Поймите правильно: я советую то, с чем сам работаю и что хорошо знаю. Так повелось, что я пишу на Реакт и знаю, что его хватает на большинство задач. А раз тема топика - на чем сосредоточиться по минимуму, чтобы в скором времени выйти на работу, говорить про все мы тут просто не можем.

Styled-Components

Само собой веб-интерфейсы - это JS+HTML+CSS. На чистом CSS уже давно никто не пишет, чаще используют препроцессоры типа SASS, LESS и т.п. Но я советую все же не изучать эти технологии, а сразу изучать styled-components. По моему опыту эта технология гораздо лучше подходит для использования в TS+React -проектах, так как получается более качественно типизацию проработать и гораздо проще работать с вложениями, оперируя не только классическими селекторами, но используя вместо селектором сами компоненты. Это позволяет более четко контролировать целостность проекта.

GraphQL

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

Next.JS

Не все проекты обязательно крупные и пишутся с нуля (хотя сейчас с нуля вообще уже мало что пишется, даже в очень крупных компаниях). Есть спросы и на простые сайта. А простые сайты должны не только просто работать, но и должны хорошо индексироваться поисковиками (то есть обязательно поддерживать качественную работу в режиме SSR (Server-Side-Rendering)), иметь высокие очки производительности (то есть конечные скрипты должны собираться с учетом лучших практик) и т.п. Поверьте, пытаться реализовать все это самостоятельно - очень серьезная задача, требующая огромного опыта и трудозатрат. Вместо этого советую взять Next.JS.

Next.JS - довольно популярный и уже довольно взрослый веб-фреймворк на JS+React плюс все остальное необходимое (включая перечисленные выше технологии). Есть много примеров реализации с применением различных технологий (включая GraphQL, Prisma, Nexus, Styled-Components и т.п.). На нем нельзя просто так сделать вообще все, но он вполне годится под 90%+ современных проектов. К тому же у него отличная документация и активное сообщество (даже в телеге есть очень активное русскоязычное сообщество, которое легко гуглится).

То есть если его взять, можно буквально в считанные дни сделать средненький сайт. А если у вас проект сильно сложнее, то все равно Next.JS наверняка пригодится, потому что он умеет не только в роутинг обычных HTML-страниц, но и можно выстраивать всевозможные API, при чем не только GraphQL. В общем, это такой мощный швейцарский нож с zero-configuration.

Резюме

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

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

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

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

Подробнее..

Подписка на JetBrains Academy готовимся к запуску и отвечаем на вопросы

24.06.2020 18:08:11 | Автор: admin

Привет, Хабр!


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


Почему платформа становится платной?


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


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



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


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


Планируется ли годовая подписка?


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


Будут ли скидки для тех, у кого есть платная лицензия на продукты JetBrains? Планируете ли вы включить в подписку лицензии на инструменты JetBrains?


JetBrains Academy это самостоятельный продукт со своей аудиторией и собственным планом подписки. Однако JetBrains Academy предназначена как для начинающих, так и для опытных разработчиков, а также интегрируется с инструментами JetBrains, поэтому мы рассматриваем возможность выпуска комплектов лицензий, объединяющих в себе JetBrains Academy и наши платные IDE. Сейчас для изучения Java и Python в JetBrains Academy можно бесплатно пользоваться IntelliJ IDEA Edu и PyCharm Edu.


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


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


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


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


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


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


Сколько времени занимает прохождение курса?


В среднем курс по Java занимает 128 часов, Python 70 часов. Так что если вы планируете заниматься по 4 часа в неделю, вам потребуется примерно 7 месяцев для прохождения курса по Java и около 4 месяцев для освоения Python. Эти оценки основаны на средней скорости прохождения курсов: имейте в виду, что опытные разработчики быстро проходят базовые разделы. Если вы только начинаете программировать, вам может потребоваться больше времени. Мы работаем над тем, чтобы более точно оценивать время прохождения курсов людьми с разным уровнем подготовки.


Обучение в JetBrains Academy поможет мне устроиться на работу?


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


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


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


Планируете ли вы вернуть код-ревью?


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


Вы проводили опрос для потенциальных менторов. Какие планы в этом направлении?


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


Когда ждать курсов по Android, Data Science и Frontend-разработке? Планируете ли вы расширять список языков?


Сейчас мы сосредоточены на качестве треков по Java, Python и Kotlin. За время EAP мы получили много отзывов, и нам есть что улучшать. Мы продолжим выпускать новые бета-треки, но сейчас они не являются приоритетной задачей. Мы открыты для ваших идей о том, какие языки программирования и технологии нам стоит поддержать.


В JetBrains Academy планируется использование контента, создаваемого сообществом? Было бы здорово, если бы участники сообщества могли сами создавать учебные материалы и получать за это вознаграждение.


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




Если вы не нашли ответа на свой вопрос, задайте его в комментариях или напишите нам в Twitter или на Reddit.


Материалы JetBrains Academy, включая теоретические разделы и описания проектов, сейчас доступны только на английском языке.


Ваша команда JetBrains Academy

Подробнее..

Три образовательных сервиса, которые помогут на практике научиться работать в IT на уровне PRO

25.10.2020 16:08:20 | Автор: admin

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

А вот тренажерам для администраторов и DevOps, Data Science и по работе с инструментарием типа Docker, Kubernetes, TensorFlow и Linux удивиться можно. Особенно, если они с хорошей методологической траекторией

О таких мы сегодня и поговорим.

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

Что еще сейчас может удивить?

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

Что еще?

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

KataCoda

https://www.katacoda.com

Их купил в свое время О'Рейли- лучший издатель книг по программированию.

Чтобы объяснить почему такой прелести вы еще не встречали, давайте окунемся на секунду в историю и реальность.

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

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

О'рейли сломали систему.

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

выбор разных треков в Катакодавыбор разных треков в Катакода

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

Слева - методологическое описание, справа - терминалСлева - методологическое описание, справа - терминал

В одном окне методологически ШИКАРНО описано, что нажимать и к чему это приведет.

В ассортименте много интересных курсов, все бесплатные, на некоторые даже не нужно регистрироваться: и CI/CD, и Infrastracture-as-a-Code, и облака с их Serverless.

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

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

HyperSkill

https://hyperskill.org/projects

Мне очень понравился новый интересный сервис от JetBrains, созданный совместно со Stepik.

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

Во-первых, тут есть Kotlin. Тот самый, что JetBrains придумали. А курсов по нему почти считайте, что и нет. А тут есть.

Во-вторых, очень хорошо выстроена траектория обучения.

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

Что значит хорошо выстроенная траектория и мини-уроки?

Вам не надо полностью проходить все, что вам ЗАДАЛ какой-то преподаватель исключительно в том порядке, что он для вас разработал и отразил в своей программе.

Вы выбираете уроки в рамках темы и делаете мини-проекты. Например, начали ООП . Тут вам мини-урок по полиморфизму, а потом вам стало скучно и вы перешли на тему "Алгоритмы" на урок, допустим, "Графы". И т.д.

Пример трека в Hyperskill, выделены миниуроки Пример трека в Hyperskill, выделены миниуроки

Суть в том, чтобы обучение было веселым.

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

Solvery

https://solvery.io/

Во времена моего студенчества, репетиторов мы воспринимали, как роскошь, которая необходима школьникам, которые готовятся к ЕГЭ.

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

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

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

Мой муж специалист по Matlab, к нему периодически стучатся ребята из инженерки и аналитики данных, чтобы он их проконсультировал по инструменту. Зачем им курс? У них задача и ограниченное время. Аналогичное придумал сервис Solvery, где вы можете под свою задачу найти консультанта и вместе с ним ее решить.

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

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

Подробнее..

Курс Flutter от Surf успеть за технологиями будущего

29.10.2020 16:15:50 | Автор: admin
Нет времени ждать, пока все поймут, что за Flutter будущее, и начнут где-то учиться. Надеяться, что кто-то сделает крутые курсы, и после них мы сможем находить разработчиков не наш путь. Поэтому мы в Surf решили взять процесс в свои руки и сделать курс по Flutter.




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

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

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

В статье мы подробно рассказываем про курс, а вот краткая выжимка:
  • Flutter это полезно и открывает двери в новую технологию.
  • Основы можно изучить за 4 месяца или быстрее. Курс состоит из 9 блоков, 59 уроков и мастер-классов по сложным темам. Для 48 уроков мы записали качественные лекции примерно по часу каждая.
  • Мы сделали акцент на практике, потому что мы разработчики и знаем, что нужно, чтобы быстро изучить новую платформу.

Почему Flutter


Flutter всего два года, а на него не боятся переходить крупные компании. Мы в Surf уже сделали большие проекты. Например, приложения для Росбанка, сети аптек Ригла и KFC. Flutter активно развивает создатель Google и процесс не замедлила даже пандемия коронавируса. Количество вакансий на бирже фрилансеров Upwork тоже растт: спрос удвоился за полгода. На HeadHunter спрос почти утроился по сравнению с прошлым годом, но кажется, что вакансий пока мало: они часто скрыты среди предложений для нативщиков вроде ищем разработчика для iOS/Android с опытом работы на Flutter.

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

Какие знания пригодятся для прохождения курса


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

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

В ходе курса мы будем пользоваться инструментами, которые входят в привычный набор любого современного разработчика. Большое подспорье умение работать в IDE на базе IntelliJ IDEA или VS Code, системе контроля версий Git. Не помешает и понимание принципов написания чистого кода, SOLID.

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

Кто преподаватели


Наши преподаватели практики, а не теоретики. Это люди, которые работают в Surf и каждый день разрабатывают приложения на Flutter. Они сами учились с нуля и знают подводные камни и сложности, с которыми можно столкнуться. Мы вложили в курс весь практический опыт Surf, а также свои боли и проблемы, которые мы уже преодолели. Помогать осваивать Flutter будут:

Евгений Сатуров тимлид разработчиков в Surf и технический евангелист Flutter. Основатель и ведущий подкаста Flutter Dev Podcast.

Артм Зайцев руководитель Flutter-отдела в Surf. Ведт подкаст вместе с Евгением Сатуровым.

Михаил Зотьев ведущий Flutter-разработчик в Surf. Пишет статьи и делится наработками с сообществом Flutter.


Бэкстейдж со съемок видеоуроков: в кадре Михаил Зотьев, за кадром Артём Зайцев

Как, зачем и откуда ребята пришли во Flutter, они рассказали на вебинаре Flutter vs технология, на которой пишете вы: за чем будущее?

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


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


Темы уроков из блока про язык Dart

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

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


Вариант домашнего задания

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

Сколько времени занимает учба


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

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

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

Что на выходе


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

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

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

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

Сейчас курс доступен по спецпредложению. Узнать цену, прочитать подробности и записаться можно на нашем сайте. А посмотреть тизер к курсам на Youtube.
Подробнее..

Что вам даст учеба у практиков, или почему наш курс по Flutter это про реальные проекты и навыки для работы

19.02.2021 18:05:42 | Автор: admin

Вот уже третий год мы разрабатываем на Flutter. Сделали на нём кроссплатформенные приложения для Росбанка, сети аптек Ригла, ресторанов KFC, в разработке ещё много проектов. Буквально на наших глазах Flutter из нишевой технологии стал мощным игроком, который теснит не только React Native, но и нативную разработку.

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

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

Команда flutter в Surf собрала серьёзную базу знаний:

  • опыт реальных проектов;

  • наши статьи о Flutter, его особенностях и проектах на нем;

  • методология обучения стажёров;

  • open source библиотеки и наработки, которые мы выкладываем в публичном репозитории на Github.

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

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


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

Подробно о курсе можно почитать в статье.


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

И за это, ребята, большое вам спасибо!

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

Но давайте обо всем по порядку.

Можно ли изучить новую технологию самому, или почему практика важна?

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

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

И зачем тогда Егору платный курс? Тут все давно сказано за нас. Вспомним правило 10 000 часов, которое сформулировал психолог Андерс Эриксон чтобы добиться высокого уровня мастерства в своём деле, нужно посвятить практике не менее 10 000 часов. А ещё есть модель 70:20:10 Чарльза Дженнингса, в которой говорится о 70% практики, 20% - работы с наставником и 10% теории, которые необходимы для успешного освоения материала.

Документация и бесплатные курсы дадут Егору те самые 10%. Но одной теории мало для освоения технологии. Рынку нужны опытные разработчики, а не теоретики. И тут перед Егором встает резонный вопрос, как и где получить этот опыт. Отработать на практике под руководством ментора один из наиболее продуктивных вариантов. Именно такой формат мы предлагаем в своем курсе по Flutter.

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

Вот что пишут студенты первого потока:

Основная ценность курса взаимодействие с наставниками. Тут дело не в сухой информации, которая и так есть в прекрасной документации flutter.

Этот курс отличная возможность глубоко разобраться в теме и понять, как устроена профессиональная разработка на flutter.

Домашние задания сдаются пулл-реквестами. Проверяют их по-взрослому от соответствия макету в figma до стиля кода. Смотрят код внимательно, замечают разные сомнительные архитектурные решения, проблемы с производительностью, подсказывают, как сделать лучше. Причем проверяют разные специалисты из команды surf.

Кирилл

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

Влас

Программа и для джуна, и для тимлида а так бывает?

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

  • начинающие разработчики;

  • тимлиды;

  • senior-разработчики крупных команд;

  • архитектор Frontend-разработки крупного банка.

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

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

Решить эту проблему нам помогли 2 механизма. Первый индивидуальный выбор уровня нагрузки. Студент может проходить курс с любой скоростью, делать объём, который ему комфортно по уровню знаний или ориентируясь на уровень занятости на работе.

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

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

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

В итоге, больше половины тем мы переработали. И теперь их список выглядит так:

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

  • Тестирование Flutter приложений (unit-тестирование, автотесты)

  • Взаимодействие с нативным приложением

  • Обзор возможностей Flutter Web (чем отличается от нативных приложений, JS/HTML под капотом, безопасность веб-приложений, какие есть возможности и производительность, как работать с поисковой оптимизацией и индексацией, как подготовить к использованию в e-commerce)

  • Основы языка Kotlin

  • Основы языка Swift

  • Обзор возможностей Navigator 2.0

  • Обзор возможностей Flutter Desktop

  • Взаимодействие с платформой (Advanced)

  • DevTools Profiling (Advanced)

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

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

Главный вопрос

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

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

Наполните портфолио

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

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

Вы создадите мобильное приложение со списком интересных мест и достопримечательностей для путешествий по миру. Кейс максимально близок к реальным условиям работы в коммерческом проекте. Приложение состоит из 8 экранов. Всё по-взрослому описание требований от заказчика, дизайн-макет в Figma, серверная документация в Swagger.

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

Разработку приложения вы ведёте в собственном репозитории. По мере продвижения по курсу проводите итерационный рефакторинг кода. Преподаватель делает ревью кода, контролирует, как вы используете EffectiveDart и best practice.

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

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

Виктор

Второе направление карьерные консультации

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

Лучшие студенты курса могут пойти на оплачиваемую стажировку в Surf. При е успешном прохождении вы сможете стать частью Surf Flutter team.

На языке цифр

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

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


Завершим отзывом студентки:

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

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

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

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

Курс для тех, кто не ленится и не опускает руки, когда что-то не получается. А опытные наставники поправят и направят в нужном направлении.

Татьяна


5 марта стартует новый поток курса по Flutter от команды Surf. Если хотите присоединиться и освоить разработку на Flutter на практике.

Регистрируйтесь на сайте

Подробнее..

Кейс Автоматизация добавления учебных курсов на иностранных языках для Workfusion Automation Academy

14.05.2021 18:17:37 | Автор: admin

Automation Academy это онлайн-платформа с курсами по автоматизации, запущенная компанией WorkFusion, Inc. Материалы курсов предназначены для инженеров автоматизации, машинного обучения и дата-аналитиков и тех, кто хочет ими стать. Сейчас у Automation Academy 30+ курсов, 1000+ часов учебных материалов и больше 35 тысяч учеников.

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

Проект

  • обучающая онлайн-платформа на базе LMS Moodle,

  • контент курсов хранится в базе данных,

  • исходный язык английский,

  • целевые языки испанский и японский,

  • платформа, используемая для перевода, Crowdin,

  • объём проекта на исходном языке на январь 2020 без учёта скрытых строк: больше 1,1 млн знаков,

  • объём переведённого контента с апреля 2019 по январь 2020: больше 9 млн знаков.

Проблема 1: лаг между этапами новый курс готов,перевод курса готов и переведённый курс доступен ученикам

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

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

Проблема 2: практическое неудобство добавления локализованного контента вручную

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

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

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

Решение

Мы в Alconost разработали коннектор для Moodle, который позволяет выгружать контент на исходном языке из клиентской системы в Crowdin и загружать переведённый контент обратно.

Контент, выгружаемый через плагин, преобразуется в HTML (исходный контент содержит HTML-разметку, которую нужно сохранить в локализациях) и отправляется в платформу управления переводами Crowdin. Когда переводы готовы, коннектор принимает от Crowdin локализованный контент в HTML, конвертирует его обратно в формат, понятный плагину, и передаёт его посредством REST API.

Результат

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

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

Как применить у себя

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

Посмотрите видео о том, как это работает.

Подробнее о плагине здесь.

Подробнее..

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

22.05.2021 18:12:52 | Автор: admin

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

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


Проблема 1. Нет времени

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

Нет времени самая частая причина, по которой взрослые студенты всё реже заходят на курс и постепенно его забрасывают, рассказывает лид проведения Product Live SkillFactory Регина Сметанкина.

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

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

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

Наши координаторы связываются со студентами, помогают наладить расписание. Мы говорим им, что, если выделять время только по выходным, это будет не так продуктивно, чем заниматься каждый день по 1,52 часа, но зато обучение будет стабильно продолжаться. У нас есть расписание курса, но если кто-то не успевает за ним (по разным причинам), мы готовы помочь решить сложности. Главное чтобы студенту было комфортно, продолжает Регина. Расписание курса можно рассматривать как путеводитель по тому, в каком порядке проходить модули. Если человек сильно отстал и не хочет идти один, мы можем также перевести его на другой поток, который начал обучение чуть позже.

В нашем блоге рассказали историю Виктора, который был продакт-менеджером, но решил уйти в Data Science (и это в 40 лет!) и сейчас работает на позиции Middle Data Scientist.

Проблема 2. Усталость/выгорание

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

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

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

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

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

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

Проблема 3. Слишком сложно / завышенные ожидания

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

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

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

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

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

Как мы транслируем в школе: не нужно оставаться один на один с проблемой, продолжает Регина Сметанкина. Всегда готовы помочь наши менторы, это их работа. Часто помогают однокурсники. И уж точно не нужно бояться задавать вопросы. Студенты часто думают: Ой, у меня такой глупый вопрос, все умные, а мой вопрос дурацкий, я опозорюсь. Не бывает глупых вопросов. К тому же в Slack всегда можно посмотреть ответы на вопросы, которые уже задавали. И ещё: не нужно опускать руки, когда кажется, что не получается. Поделись проблемой с координатором он готов выслушать, дать совет.

Проблема 4. Разочарование в выборе

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

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

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

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

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

Проблема 5. Не нужно

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

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

Проблема 6. Кончились деньги

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

Как вернуться к обучению

Чаще всего сложности возникают на начальной стадии обучения, рассказывает PO of Student's Learning Experience Алексей Головенкин. Это примерно 12 месяца со дня старта курса.

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

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

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

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

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

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

Резюмируем

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

  2. Если вам сегодня сложно, то, когда вы через месяц вернётесь к этому же материалу, окажется, что это очень просто. Вспомните, как вы учились складывать однозначные числа. Было сложно? Да! Но потом это стало просто. И вам уже не нужны пальцы, чтобы сложить 3 и 2. Здесь точно так же.

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

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

  5. Помните, что обучение это работа. У вас есть материал, есть поддержка преподавателей, но 50 % вашего успеха в ваших руках! Внесите учёбу в расписание. Это поможет вам планировать своё время и не выгорать.

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

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

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

Другие профессии и курсы
Подробнее..

Изучение data science c нуля этапы и вехи

22.01.2021 02:23:24 | Автор: admin

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

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

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

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

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

Этап 1. Базовые инструменты анализа данных: SQL, Excel

  • SQL, основы (20ч). Самостоятельное знание SQL может пригодится для выполнения кучи других задачи. И оно, в любом случае, необходимо для большой (большей?) части вакансий на позицию аналитика, дата сайентиста и, тем более, machine learning engineer.

  • Основы Excel (10ч): фильтры и сортировка данных, формулы, vlookup, pivot tables, базовая работа с графиками. Коллеги, партнеры или руководство будут присылать входящие данные в excel, и вам нужно будет уметь их быстро понять и изучить. Нередко и результаты анализа сделанного на Питоне удобнее подготовить и предоставить в Excel.

  • Базовый английский (20-200ч, зависит от предыдущего уровня), на уровне самостоятельного чтения технической документации и спец.литературы. Например, вам совершенно необходимо уметь читать официальную документацию pandas/scikit, и также многие хорошие материалы по Python доступны только на английском.

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

Этап 2. Основы Python и Pandas

  • Основы Python (80ч). Без знания Питона невозможно использовать львиную часть инструментов машинного обучения. Другие языки менее эффективны в этой сфере и непопулярны.

  • pandas (20 ч) - основа основ в работе с данными в Питоне. На первых порах достаточно хотя бы самых базовых знаний: индексирование, выбор данных по условиям, группировка данных, и соединение разных датафреймов

  • Также научиться основам работы с разными API и парсингом данных (requests, beatiful soup)

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

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

Этап 3. Базовые понятия и классические алгоритмы машинного обучения

(Этот этап может занять 200-400 ч в зависимости от того, насколько хорошо изначально вы владеете математикой)

Базовые понятия машинного обучения:

  • Кросс-валидация

  • Overfitting

  • Регуляризация

  • Data leakage

  • Экстраполяции (понимание возможности в контексте разных алгоритмов)

Базовые алгоритмы, которые достаточно знать на уровне главных принципов:

  • Прогнозирование и классификация:

    • Линейная регрессия

    • Дерево решений

    • Логистическая регрессия

    • Random forest

    • Градиентный бустинг

    • kNN

  • Кластерзиация: k-means

  • Работа с временными рядами: экспоненциальное сглаживание

  • Понижение размерности: PCA

Базовые приёмы подготовки данных: dummy переменные, one-hot encoding, tf-idf

Математика:

  • умение считать вероятности: основы комбинаторики, вероятности независимых событий и условные вероятности (формула Байеса).

  • Понимать смысл фразы: "correlation does not imply causation", чтобы верно трактовать результаты моделей.

  • Мат.методы, необходимые для полного понимания, как работают ключевые модели машинного обучения: Градиентный спуск. Максимальное правдоподобие (max likelihood), понимание зачем на практике используются логарифмы (log-likelihood). Понимание как строиться целевая функция логистической регрессии (зачем log в log-odds), понимание сути логистической функции (часто называемой "сигмоид"). С одной стороны, нет жесткой необходимости всё это понять на данном этапе, т.к все алгоритмы можно использовать как черные ящики, зная только основные принципы. Но понимание математики поможет глубже понять разные модели и придать уверенности в их использовании. Позднее, для уровня senior, эти знания являются уже обязательным:

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

Этап 4. Набор базовых навыков решения задач

Цель данного этапа - получение навыков применения всех ранее изученных методов машинного обучения с помощью scikit-learn, pandas (numpy).

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

Тут же следует инвестировать время в изучение разных приёмов и трюков feature engineering

По завершению данного этапа есть шанс устроиться на позицию junior data scientist. ЗП будет низкая. Но главное будет продолжать учиться. До достижения уровня senior возможность учиться у коллег ценнее, чем текущая зарплата.

Знакомство с основами нейронных сетей

На данном этапе может быть полезно знание основ нейронных сетей, CNN, RNN/LSTM слоев, vector embeddings. Но не обязательно уметь тренировать их самому, на данном этапе. Пока это важно для "общего развития" и чтобы вы не хотели применять нейронные сети там, где без можно обойтись, и, наоборот, понимали где они могут быть полезны и когда имеет смысл или обращаться к коллеге уже их знающему, или браться за глубокое изучение и практику.

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

Рекомендую ограничить это объемом в 20-40ч, необходимым только для общего понимания концепций.

Этап 5. Дополнительные технические навыки, необходимые в работе

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

  • Conda, понимание проблем зависимостей версий библиотек, и как conda это может решить

  • основы bash

  • Python standard library, если не освоили ранее (необходимый минимум itertools, collections, contextlib), умение эффективно разбивать код на функции и модули, классы; умение применять context managers.

  • Основы git, также очень полезно умение работать с IDE: pycharm/vs code. Их использование облегчит работу с git, заменив графическим интерфейсом работу с командной строкой

  • Библиотеки визуализации (matplotlib+seaborn, plotnine, plotly), если не освоили их раньше.

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

В принципе, на этом уровне знаний можно работать годами, практикуясь в применении разных из уже изученных моделей, библиотек и инструментов, осваивая вспомогательные методы (feature engineering), нюансы, и способы решения похожих же задач, с помощью разных библиотек (xgboost, cat-boost). Постепенно будет уровень рост ЗП. Но это не уровень Senior специалиста.

Изучаем по необходимости, этапы 2-5

Визуализация данных

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

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

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

  • plotnine - позволяет создавать очень креативные графики. Супер-мощный инструмент, позволяющий в несколько строчек кода создать самые нетривиальные графики. В сравнении - seaborn не имеет подобной гибкости, а в matplotlib замучаешься разбираться чтобы сделать такой же график, если он не совсем примитивный. Однако, поначалу, plotnine требует определенного времени на освоение. Если бы не существовал plotly - это был бы самый мощный инструмент.

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

До начала применения в реальной практике, на обучение можно себя ограничить в 10-20ч на одну библиотеку.

Если вам нет нужды сначала применять питон для подготовки данных, или вы хотите создать визуальные дэшборды которыми смогут пользоваться другие люди - посмотрите в сторону PowerBI и Tableau, это крайне мощные и популярные инструменты визуализации данных. Изучить каждый из этих инструментов на минимальном рабочем уровне можно, примерно, за 60ч. Знание связки SQL+Excel+PowerBI/Tableau откроет вам позиции аналитиков и "BI-специалистов" c окладами в Москве от 100 тыс., коммуникабельные специалисты с хорошими знаниями этих инструментов находят позиции с ЗП от 150 тыс. Подобные вакансии в основном встречаются в корпорациях и системных интеграторах.

Средства работы с данными

Можно учить на разных этапах, в зависимости от задач, с которыми столкнётесь

  • Основы regular expressions, aka RegExp (10ч). Знания regexp необходимо для продвинутой фильтрации данных в разных инструментах для работы с данными.

  • PySpark (40ч на изучение основ, 100-200ч на достижение хорошего рабочего навыка) . Он необходим когда у вас данных очень много, и приходиться обрабатывать их сразу на целой группе серверов (кластере). Это уже Big data. Не имеет смысл разбираться с ним заранее, т.к. знания являются не фундаментальными и легко забываются. Эффективнее осваивать когда планируете начать использовать (или перед тем как подать резюме на позицию, требующую данных знаний).

    Внутри Spark устроен сильно не так, как обычные базы данных, но с точки зрения использования он оказывается сильно похожим, т.к. поддерживает почти стандартный SQL синтаксис или, как альтернативу, API отдалённо похожий на pandas. Определенные концептуальные отличия присутствуют, но больших сложностей в освоении это не вызывает. В последнее время продвигают библиотеку Koalas, которая будет использовать команды совсем как у pandas для работы с spark-кластером, но пока не советую делать это основным подходом по работе с Spark.

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

Этап 6

Углубление и развитие технических навыков

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

  • Python на хорошем уровне: декораторы, уверенное знание классов и наследования, изучение базовых классов, dunderscore __методы__ .

  • Уверенное пользование bash, понимание основ linux

  • Полезно изучить основы docker

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

Другие области машинного обучения

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

Нейронные сети

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

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

Другие статьи о самообразовании

Вводная статья о том, как понять, стоит ли вам вообще идти в data science и как сделать первые шаги

Принципы эффективного самообучения

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

Готов стать ментором

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

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

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

self.development.mentor в домене gmail.com, Олег

Подробнее..

Про курсы, марафоны и ожидании

25.02.2021 08:12:25 | Автор: admin

Я тут решил поделиться своими выводами относительно курсов обучения онлайн.

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

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

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

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

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


Плюсы бесплатных

  • Бесплатность. Тут все понятно.

  • Доступность. Тоже понятно. Без регистрации и смс.

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

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

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

Минусы бесплатных

  • Актуальность. Информация актуальна на момент ее публикации. Так как большинство курсов выкладывают на ЮТ, то переснимать видео, в котором будет актуальная информация никто не будет. Ну я такого не нашел. Смотреть курсы 3 летней давности и больше нет никакого смысла. Даже сегодня смотреть курсы 2020 года где все завязано на Bootstrap 4 уже не актуально. Да и вообще, смотреть курс, где рассказывают о технологии, которая не использует современные тренды, не вижу смысла. Если только для общего развития.

  • Поддержка. В 99% отсутствует от слова "совсем". Максимум на что можно рассчитывать - ответ на комментарии.

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

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

  • Последовательность. Уроки идут так как решит автор. В принципе, в платных так же. Часто встречаются моменты, когда автор скачет от темы к теме. Я находил много курсов, которые начали "За здравие", а закончили "За упокой". А еще бывает так, что по каким-то причинам курс или забрасывают или автор начинает вести новый. Начинал про верстку, а потом резко перешел на PHP.

  • Ресурсы. Уроки могут проходить на разных ресурсах. Иногда автор создает сайт, на котором выкладываются уроки. Видео к урокам находится на ЮТ в 99% случаев, а может вообще на специфических ресурсах (что бы не скачали). Получается, что комментарии могут быть везде. А в них есть ответы на вопросы. В итоге - не знаю где задать вопрос.

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

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


Плюсы платных

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

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

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

  • Последовательность. Курс - законченный продукт с определенным последовательным объемом информации.

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

  • Самостоятельные работы с возможностью разбора и получения обратной связи.

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

  • Возврат денег. В тех курсах, которые мне не подошли мне всегда возвращали все деньги.

  • В хороших платных курсах доступ к материалам остается навсегда и бесплатно.

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

  • Домашние задания с проверками и разборами ошибок.

Минусы платных

  • Не бесплатно.


Марафоны.

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

Чем плохи марафоны?

Во первых - временем прохождения. Я живу в Иркутской области. Все марафоны, что мне попадались, идут по московскому времени. Я проходил свой с 23.00 до 2-3 часов ночи, а утром на работу. И так 2 недели.

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

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

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

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

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

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


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

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

Учись быть самостоятельными!

Напиши про свой опыт обучения. Может там где я увидел минусы ты увидел плюсы и наоборот? А может я что-то упустил? Будет интересно почитать.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru