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

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

Привет!

В четверг, 7 октября, в 19:00 наш руководитель разработки и сооснователь KTS Александр Опрышко проведет открытый вебинар:

«Пишем свой Google, или асинхронный краулер с rate limit’ами на Python»

Зачем это нужно? Такая задача часто встречается на практике, когда нужно реализовать периодическую синхронизацию/обкачку между сервисами. Еще это просто интересно, потому что позволяет опробовать многие возможности asyncio.

Вот некоторые вещи, которые вы узнаете на вебинаре:
— как запускать параллельные корутины
— как пользоваться примитивами синхронизации semaphore и event
— как обкачивать данные с сайтов, не подвергая их чрезмерной нагрузке


Приходите! Будет интересно 💻

Чтобы записаться на вебинар, жмите сюда.
#frontend

Сохранение состояния в React с использованием React.useState

Недавно мы выложили небольшое видео на Youtube-канал. Виталий Черков, фронтендер и преподаватель, наглядно объясняет:

«Одно из важнейших понятий в React — состояние. В видео мы разберем это на примере React-компонента счетчика.

Чтобы хранить состояние, в функциональных компонентах React используется инструмент
React-хуки. В примере мы используем хук React.useState».


Посмотрите и вы: ссылка на видео
#карьера #какучиться

Полезные привычки программиста

Сегодня подобрали несколько небольших советов для оптимизации разработки:

1. Чаще добавляйте комментарии к разделам кода
2. Делайте маленькие коммиты
3. Старайтесь не откладывать на потом
4. Пишите код в одном стиле
5. Пишите тесты
6. Придерживайтесь одного темпа и не делайте все в один заход
7. Не забывайте учиться


Для удобства отображения в ленте канала мы перенесли их подробное описание в телеграф по ссылке.

PS Картинка-схема из превью иллюстрирует устройство коммитов:

Квадраты — это блобы. Они представляют содержимое файла.
Треугольники — это деревья. Они представляют каталоги.
Круги — это коммиты. Снапшоты во времени.
#программирование #frontend

Немного о верстке с display: grid

В 10-минутном видео frontend-разработчик KTS и преподаватель школы Metaclass Надежда Меркулова расскажет про свойство display: grid, как ведут себя элементы с ним и как позиционировать элементы с помощью этой технологии.

Если flexbox работает только в одном измерении с системой осей, grid работает c системой сеток. Элементы с flex нельзя расположить сразу на нескольких осях. Grid позволяет работать с разметкой в двухмерном пространстве и выравнивать содержимое в обоих измерениях.

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

На новом курсе «Асинхронное программирование на Python» каждому студенту будет выделен виртуальный сервер с шаблоном проекта для каждого ДЗ. На нем уже будет установлено все, что необходимо. Останется только дописать код для решения задачи! А писать можно будет в VS Code, который мы интегрировали прямо на нашу платформу.

Демо можно посмотреть на ютубе или попробовать (доступы можно получить на странице курса)

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

Техника «Спрашивайте с намерением»

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

Сначала о том, как неправильно

Если вы бывали на открытых мероприятиях, то, скорее всего, слышали много бесполезных вопросов. Люди задают их «просто так»: чтобы засветиться, показать свою компетентность или просто потому, что любят поговорить. Например, бизнес-тренера могут спросить: «Что вы думаете по поводу акций Tesla?» Это вопрос ни о чем, он бесполезен — ответ на него ничему и никого не научит.

Теперь о том, как правильно

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

Что делать, если спросить хочется, а в голову ничего не приходит

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

Техника «Спрашивайте с намерением» позаимствована из книги «Главное внимание — главным вещам».
#android

Android: Kotlin или Java?

Мобильные разработчики, расскажите, какой язык прокачиваете?

Java

В интернете многие пишут про плюсы Java:
— входит в десятку популярных языков по рейтингам вроде Tiobe
— есть библиотеки, которых нет в Kotlin
— учиться Kotlin тяжело без знания Java
— Java используется для работы на многих кроссплатформенных фреймворках: React Native, Xamarin, Ionic
— работодатели (якобы) требуют от мобильного разработчика знаний обоих этих языков.

Kotlin

Множество положительных отзывов про Kotlin можно прочитать на официальном сайте Android-разработчиков https://developer.android.com/kotlin.

Среди других плюсов у Kotlin есть пара важных вещей, которые не поддерживаются в Java:
корутины — рекомендуемый способ для асинхронной работы в приложениях
jetpack compose — новый декларативный UI-фреймворк в андроиде, который скорее всего станет стандартом в будущем.

Факты

На всякий случай напомним, что в 2019 году Google объявила Kotlin приоритетным языком программирования для разработки Android-приложений.

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

Мы решили писать приложение на Kotlin, и это здорово облегчило нам жизнь в будущем: если в 2017 найти разработчиков на Java было еще сравнительно легко, то после заявления Google это стало гораздо сложнее: большинство новичков начинают сразу с Kotlin.

Мы в KTS тоже остановились на Kotlin, ему же учим студентов.
#карьера #какучиться

О важности и срочности

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

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

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

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

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

I. Важные и срочные. Горящие проблемы и кризисы.

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

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

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

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

А как начать делать это самое малое, которое «ну потоом», мы еще разберем попозже.

Написано по материалам книги «Главное внимание — главным вещам».
#backend

Технологии бэкенда: run_in_executor

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

Полная версия с подробностями лежит по ссылке в телеграфе.

Краткое содержание:

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

Решение таково: запустить IO- или CPU-операцию не в event loop, а в отдельном потоке/процессе.

Механизм асинхронного запуска такого рода в asyncio называется run_in_executor.

Посмотреть отдельно синтаксис asyncio.loop.run_in_executor можно здесь.
#курсы #android

Курс для «Газпрома»

Недавно на базе компании «Ланит»провели курс по Android для обучающихся из «Газпрома».

Разрабатывали бэкенд. По условию заказчика занятия были очень плотные: 2 недели, каждый день по 8 часов. У студентов раньше не было опыта в Андроиде. За две недели они освоили основные темы, позволяющие создавать приложения.

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

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

Поэтому мы все же сделали вывод не вмещать такие объемные курсы в короткий промежуток времени. Хотя ребята остались довольны обучением, и это приятно.
За две недели курса мы изучили 10 тем по графику «1 тема — 1 день»:
1. Введение в Android-разработку на языке Kotlin
2. Базовый Android
3. Фрагменты, сохранение состояния экрана, навигация
4. Работа со списками и работа с изображениями в Android-приложении
5. Многопоточность и корутины
6. Работа с сетью
7. Flow, разрешения, фоновые задачи
8. Хранение данных
9. Архитектура, паттерны. Защита приложения
10. Подготовка к релизу