Metaclass by KTS
907 subscribers
132 photos
2 videos
256 links
Курсы для разработчиков, менеджеров и аналитиков от компании KTS

Ссылка на чат школы — https://t.iss.one/kts_dev
Download Telegram
Привет!

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

В 2018 году мы запустили первый поток. Школа быстро растет: в феврале мы получили 200 заявок на обучение, а в июле уже 600.


Зачем учиться у нас?

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

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


Почитать про наши курсы и преподавателей: https://metaclass.kts.studio

Прочитать подробное интервью с одним из наших студентов:
https://habr.com/ru/company/kts/blog/572862/
#faq #backend

F.A.Q. по курсу «Начинающий Backend-разработчик»

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

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


Вопрос #1: Почему у меня не запускаются тесты из Pycharm?
Ответ: По умолчанию Pycharm использует unitests. Чтобы использовать pytest в качестве дефолтного раннера тестов надо зайти в Preferences -> Tools -> Python Integrated Tools и в разделе testing выбрать pytest.
После этого у вас должны появится такие зеленые стрелочки рядом с тест-кейсом, как на картинке внизу поста.

Вопрос #2: Как надо делать поллер?
Ответ: Для реализации логики поллера предусмотрен отдельный класс Poller. В нем необходимо реализовать следующие функции:
poll - пока Poller не остановлен вызывает метод poll из VkApi accessor и, если пришли новые события, то отправляет их в bot_manager.handle_updates
start - запускает метод poll с помощью asyncio.create_task и сохраняет эту задачу к себе.
stop - gracefully завершает Poller, то есть ждет пока завершится после poll, а не просто удаляет задачу.

Вопрос #3: Как реализовать VkApi Accessor?
Ответ: Accessor находится в отдельном классе. Необходимо реализовать следующие методы:
_get_long_poll_server - запросить сервер для Long Polling и сохранить его параметры в стейте accsessor'а.
poll - отправить long poll запрос и вернуть список Update.
send_message - отправить сообщение в VkApi
connect - инстанцировать ClientSession и вызвать _get_long_poll_server
disconnect - gracefully закрыть ClientSession.

Вопрос #4: Что делает BotManager?
Ответ: BotManager отвечает за логику по обработке сообщений. Он принимает в себя список сообщений и решает что делать с каждым из ним. Здесь позже будет реализована логика игры. Сейчас достаточно, чтобы он просто вызывал метод vk_api.send_message с непустым сообщением при каждом новом сообщении, то есть отправлял фиксированное сообщение на каждое новое сообщение пользователя.

Вопрос #5: У меня не проходят тесты на создание тем/вопросов или тест на список вопросов возвращает больше вопросов чем нужно, что делать?
Ответ: Состояние сервера поддерживается всю тест-сессию. Это значит, что каждый тест запускается на том же сервере, не запуская его заново, соответственно база данных тоже не сбрасывается. Для того чтобы запускать каждый новый тест на чистой базе используется фикстура clear_db. Она вызывается перед запуском каждого теста и очищает базу данных. Так как невозможно предугать как каждый студент сделает структуру своей базы, то был объявлен и частично реализован метод у базы данных clear. Вам нужно дописать его под себя.

Вопрос #6: Какие события от ВКонтакте надо обрабатывать?
Ответ: В данной домашней работы надо обрабатывать события только с типом message_new.

Вопрос #7: Я начал делать проект до того, как были внесены правки касательно версии VK API, что делать?
Ответ: Необходимо заменить свои файлы app/store/vk_api/dataclasses.py и tests/bot/test_bot_manager.py на этот и этот соответственно.
#школа #android

Запускаем бесплатный курс по android-разработке! 🤖


Старт 13 сентября. Длительность 4 недели.

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

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

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


Программа и запись доступны по ссылке: https://cutt.ly/bWz9sJD

Почитать о нашей школе можно на Хабре: https://habr.com/ru/company/kts/blog/572862/

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

Всех ждем и желаем успехов!
#какучиться

Как учиться, чтобы был результат?

В этом посте рассмотрим, как меняется процесс обучения на разных этапах.

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

— Эмоциональное начало
— Сухая дисциплина
— Мрачное сопротивление
— Долгожданный результат


Подробнее о том, как проходят стадии и что на них делать — в телеграфе:
https://telegra.ph/4-stadii-obucheniya-08-31
А вам хорошо дается учеба?
#какучиться

Цели и собственная энергия — то, что не даст бросить занятия. Сегодня поговорим про первое.

Зачем нужно ставить цель обучения?

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

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

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

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


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


А вы проходите сейчас какие-то курсы? И если да, то зачем?
#frontend #backend #diploma

Сегодня отвечаем на вопросы про дипломный проект и домашние задания.


1. Как выглядит дипломная работа на курсах KTS для разработчиков?

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

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

На фронтенде в качестве диплома студент пишет приложение с отображением репозиториев в Github. На бэкенде по частям собирают бота.


2. Как часто появляется новое ДЗ?

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

На картинке под этим постом — 1-й модуль курса «Начинающий frontend-разработчик».


3. Сколько времени нужно на домашние задания?

Конечно, многое зависит от опыта.

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

Поэтому рассчитывайте минимум на 2 дня плотной работы. В среднем, скорее всего, нужно 3-4 дня по 4-6 часов. Но на первое ДЗ сразу выделите максимум времени, чтобы успеть. После вы сможете планировать время точнее.

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


4. Как проходит защита и как к ней подготовиться?

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

Если ваше дз не приняли, следующие мы уже не принимаем — но вы по-прежнему можете читать и смотреть все материалы.


5. Нужно ли повторять все материалы перед защитой?

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

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


6. Если у вас остались вопросы про ДЗ и диплом, задавайте в комментариях 👇
На картинке — 1-й модуль курса «Начинающий frontend-разработчик».

А какие наши курсы интересны вам?
Всем привет!

Сегодня стартует наш курс «Начинающий Android-разработчик», ура! 🎉

Если вы еще не вступили в чат по курсу, то скорее присоединяйтесь:

https://t.iss.one/joinchat/gPASBCLsr4I3NWFi
#какучиться

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

Цели и собственная энергия — то, что не даст бросить занятия. Сегодня поговорим про второе.

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

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

Ошибившись несколько раз в оценке сил, можно сильно разочароваться в себе и вообще все бросить. Именно этого делать нельзя. Как гласит пословица, «не страшно двигаться медленно, страшно — остановиться». Ошибаться — нормально, просто продолжайте, пусть и медленно.

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

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


Совет #1. На все неизвестные пункты рассчитывайте время с запасом. Что касается дз в школе Metaclass — перечитайте предыдущий пост.
Совет #2. Будьте к себе терпеливы и не торопитесь. Когда погрузитесь в новую тему, сможете планировать уроки более точно.


А вы хорошо планируете время и силы?
#frontend

Замыкания и каррирование в JavaScript

На нашем Youtube-канале новое видео: фронтенд-разработчик и преподаватель школы Metaclass Надежда Меркулова расскажет про замыкания и каррирование в JavaScript:
https://youtu.be/DsIvWbpGEBw

Смотрите, сохраняйте себе в закладки и приходите к нам учиться 🎓
#задачи

Достаточно ли вы умны, чтобы работать в Google?

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

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

Мы говорим не только про Google. Например, недавно мы писали об этом же на основном канале.

Вопрос от Google с вариантами ответов ниже, а пояснение правильного ответа выложим завтра в это же время.
У вас есть аналоговые часы с секундной стрелкой. Сколько раз в день все три стрелки часов накладываются друг на друга?
Anonymous Quiz
14%
Никогда
18%
2
12%
11
7%
22
2%
6
39%
24
2%
4
5%
48
Всем привет!

Мы подготовили отдельный курс по важной теме — Асинхронное программирование на Python для начинающих.

Курс состоит из 7 модулей с видео, заданиями с автопроверкой, а также онлайн-разборами ДЗ и менторской поддержкой.

В среду, 22 сентября, в 19:00 пройдет вебинар, где мы подробнее расскажем про курс, ответим на ваши вопросы, а также разыграем одно бесплатное место на курсе (продвинутый трек).

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

Всех ждем!
Как вам курс «Асинхронное программирование»?
Anonymous Poll
14%
Покупаю
48%
Интересно! Посмотрю вебинар
38%
Сейчас мне не актуально
#какучиться

В чем важность общения и обратной связи

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

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

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

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

Дважды в год мы в Metaclass KTS проводим бесплатные школы, по итогам которых набираем себе стажеров. Часто на курсе по бэкенду мы сталкиваемся с отсутствием знаний у студентов на тему асинхронного программирования на Python. 

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

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

Сегодня, 22 сентября в 19:00 мы проведем бесплатный вебинар, где немного расскажем про курс, ответим на вопросы, а также разыграем одно бесплатное место на курсе на продвинутом треке-тарифе.

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

Приходите на вебинар и записывайтесь на курс!


PS Для тех, кто интересуется темой, у нас есть две статьи для начинающих:
1. Первые шаги в aiohttp
2. Первые шаги в aiohttp, часть 2: Подключаем базу данных к приложению
#программирование #python #ruby

Что такое GIL?

Глобальная блокировка интерпретатора, global interpreter lock или GIL — механизм, который использует интерпретируемые языки программирования для синхронизации потоков.

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

В лекции по ссылке руководитель бэкенд-разработки KTS и преподаватель школы Метакласс Александр Опрышко раскрывает эту тему подробнее:
https://www.youtube.com/watch?v=iOEz7Eyh25M
#какучиться

Зачем нужен ментор и где его искать

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

Кто это вообще?
Чему учит ментор?
Зачем ментору я?
Где искать ментора?
Как быть, если совсем не получается найти ментора?


А у вас как дела с этим вопросом?