OTUS IT News – Telegram
OTUS IT News
7.2K subscribers
4.32K photos
301 videos
5 files
4.29K links
Экспертный контент по востребованным технологиям 2025 года: от разработки и аналитики до искусственного интеллекта и облачных решений.

Более 170 курсов+

🗓 Расписание бесплатных ОУ: https://otus.pw/24Da/
🦉 Голосуй за канал: https://news.1rj.ru/str/boost/Otusjava
Download Telegram
Вот и закончились Дни Открытых Дверей на курсе «Разработчик Java Enterprise»!

Пришло время определяться: учиться в OTUS или нет. На тот случай, если у вас ещё есть сомнения, что наши курсы способны развить студента в уверенного Middle-разработчика или даже начинающего Senior, предлагаем вам спросить об этом прямо и без лишних смущений. СПРОСИТЬ >>

Сомнений нет? Скорее присоединяйтесь к группе, которая начнёт обучение уже 25 декабря!

Самые популярные сомнения наших студентов, которые после обучения трудоустроились в крупные IT-компании:
Lets go to the Middle Side!

Чем ещё OTUS может удивить вас в 2017-ом? Конечно же, долгожданными подготовительными курсами!

💭 Начнём издалека. Как вы уже успели заметить, чтобы начать обучение в OTUS, сначала необходимо успешно сдать вступительный тест. Да, нам важно, чтобы студенты, которые объединяются потом в группах, обладали похожим стеком знаний.

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

ТАК ВОТ! Вчера мы выпустили первый подготовительный курс для дальнейшего обучения по направлению «Разработчик Python» !

Это 4 интерактивных образовательных модуля, в каждом из которых:
– три видео-урока (продолжительность: по 2 академических часа);
– вебинар с преподавателем, где вы сможете задать вопросы по изученному материалу.

Итого: 12 видео-уроков и 4 вебинара с преподавателем.

Ну что? Вы ждали? Lets go to the Middle Side!

P.S. А ЕЩЁ мы открыли предзаказ на видеозанятия для подготовки к нашему самому популярному курсу «Разработчик Java»! Только до 31 января мы дарим нашим пользователям уникальную возможность приобрести курс по сниженной цене: -30%.

С 11 января начнём двухмесячный марафон видео-занятий и вебинаров, где можно будет задать вопросы преподавателю. Все подробности программы и особенности формата по кнопке ниже:
Активировать: https://otus.pw/vhZp/
🎄 Друзья, в канун Нового Года должны исполняться желания!

Наверняка, многие из вас хотели бы попасть на чудесный курс Виталия Иванова «Разработчик Java Enterprise», первое занятие которого пройдет уже сегодня в 20:00.

🎁 В честь Наступающего Нового года мы приготовили подарок: для всех, кто хочет присоединиться к группе прямо сегодня, мы запустили промокод, который даёт бонус 2 тыс. руб. на оплату первого месяца обучения и 4 тыс. руб. на единовременную оплату всех 5 месяцев программы!

1. Активировуйте промокод – HappyNewJava2EE;
2. Оплатите курс удобным для вас способом;
3. Начните обучение прямо сегодня в 20:00!

💥 ЭТО ЕЩЁ НЕ ВСЁ!

Среди всех, кто успешно прошел тестирование по JavaEE, мы разыграли промокод, дающий возможность попасть на курс за полцены!

В Новый Год должно быть много подарков, поэтому мы разыграли аж 65 таких промокодов!

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

P.S. Победителям промокодов на оплату 50% от стоимости курса желаем успехов и ждём сегодня вечером на занятиях. Мы уже отправили поздравительные письма с промокодами. Если письмо не пришло, напишите @jorian в Telegram.

ВСЕХ НАСТУПАЮЩИМ!
🐍 Чем же занять себя ещё вечером в последний понедельник уходящего года?!

А как насчёт дискретной математики?

Сойдёт? Ведь Дни Открытых Дверей на курсе «Разработчик Full Stack на Python» уже закончились. И все вопросы по обучению уже решены. Ну если есть ещё, прочитайте ответы на страничке ВК.

Да, если ещё не присоединились к ближайшей группе курса, поспешите, первое занятие пройдёт уже 28 декабря!

А сегодня в 20:00 мы приглашаем всех любителей языка Python на онлайн-мастер-класс Саввы Демиденко «Функциональное программирование и работа с данными», чтобы вы могли изучить понятия:
— Замыканий,
— Comprehensions and генераторов,
— Итераторов и менеджеров контекста,
— IDE и её основные возможности на профессиональном уровне полного курса.

Ну что, пошкодим?
🐍 Как работать с сессиями БД в SQLAlchemy, чтобы общение с базой данных было наиболее оптимальным, защищённым от ошибок и лишнего потребления ресурсов?

Тема пригодится для курса «Разработчик Full Stack на Python». Курс начнётся 28 декабря, поэтому поторопитесь!

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

📝 Ну а теперь давайте разберём основные ошибки в SQLAlchemy и способы их избежать!

#deeppythonfs #deeppostpythonfs

Сначала давайте разберёмся с тем, какие в SQLAlchemy есть сущности для работы с сессиями и за что они отвечают. Основных три:
session,
sessionmaker,
scoped_session.

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

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

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

А теперь несколько советов:

– Передавать в каждую функцию сессию – это явно, но не обязательно. Достаточно использовать глобальную scoped_session: это не создаст нового коннекта в БД. Это делает функцию грязной и создаёт неявную зависимость, но и с этим можно бороться: например, сделать такую функцию методом модели или поселить в отдельный модуль, в котором все функции общаются с базой.

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

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

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

Больше теории практики у нас на курсе «Разработчик Full Stack на Python»:
Мы запускаем пятую группу самого популярного курса OTUS «Разработчик Java»!

Первое занятие пройдёт 25 января. Но уже скоро Новый Год, а это значит, до 31 декабря вы можете присоединиться к группе любым выгодным для вас способом: https://otus.pw/GIek/

А сейчас в эфире долгожданный #deeppostjava! Есть 5 минут? Заметка по кнопке ниже:
АКТИВИРОВАТЬ ПРОМОКОД – https://otus.pw/kixr/
🐍 Новогодний подарок всем, кто хочет начать обучение на курсе «Разработчик Full Stack на Python»!

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

🎁 промокод с бонусом 30% на оплату первого месяца обучения и 30% на единовременную оплату всех 5 месяцев программы!

Чтобы активировать промокод, скопируйте

HappyNewFSPython

и вставьте на странице оплаты курса «Разработчик Full Stack на Python»!

👉 Пусть 2018-ый год откроет вам множество возможностей для самореализации! Надеемся, наш подарок поможет вам отбросить все сомнения, и мы увидимся на первом занятии курса уже завтра 28 декабря в 20:00. Решайтесь и до встречи в прямом эфире:
👨‍🚀️ Руководитель разработки – кто это?

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

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

Нет? Пишите в Telegram

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

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

Можно набрать высоко квалифицированных людей, определить правильные стандарты, выбрать передовые методологии разработки, поставки тестирования. Главный вопрос: «А как это заработает?».

🔥 Вернее: «А почему вы решили, что оно возьмёт и заработает?». Для ответа на этот вопрос нужно хорошо понимать всего одну вещь: как "оно" работает.

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

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

Первое занятие пройдёт 23 января!

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

помесячная оплата;
новогодняя рассрочка полной стоимости курса (1/5 часть внесите в декабре, 4/5 полной оплаты - в январе), это позволит вам сэкономить стоимость одного месяца обучения;
полная оплата курса.

С наступающим вас и до встречи в прямых эфирах:
СМОТРЕТЬ ПОЗДРАВЛЕНИЕ: https://otus.pw/56lU/
🎄 Виктория Александрова, преподаватель курса «Digital-маркетолог», поздравляет всех участников OTUS с Новым Годом!

📍 СПРАВКА:
Виктория начинала карьеру медиа-планером по работе с ключевыми клиентами в Яндексе. Несколько лет отвечала за анализ эффективности custom advertising solutions для крупнейших рекламодателей Яндекс.Директа. За это время успела разработать и внедрить в массовое производство ряд аналитических продуктов:
– аудит рекламных кампаний,
– оценка рекламного потенциала,
– post-click,
– post-campaign анализ.

Виктория является автором методов прогнозирования влияния офлайн-активностей на спрос в интернете, методов многофакторного анализа. Также решала задачи продвижения и наращивания ядра аудитории в высоконагруженных проектах Ростелекома. А затем её взяли в Mail.ru Group, где она занималась продуктовым менеджментом и продвижением образовательного проекта.

👉 Где, как не у неё, учится Digital-маркетингу?

Если вам действительно хочется видеть результаты своих действий, а не просто научиться нажимать на кнопки (этому учат другие), присоединяйтесь!

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

Начните 2018-ый год с полноценного погружения в Digital-маркетинг:
«Разработчик JavaScript»: https://otus.pw/cz1R/
🎁 Заказывали JavaScript? Приходите учиться!

Новый курс начнётся 31 января и не рассчитан на новичков: за 4 месяца мы рассмотрим ключевые особенности языка JavaScript, его окружение – браузеры и серверную платформу NodeJS, разберём внутреннее устройство и понятия популярного фреймворка Angular, а также библиотеки для написания web-приложений VueJS и ReactJS.

Интересно?

Присоединяйтесь к группе на условиях новогодней рассрочки: 1/5 часть внесите до 31 декабря, 4/5 полной оплаты - в январе, это позволит вам сэкономить стоимость одного месяца обучения!

💭 А в первом #deepjavanoscript мы решили рассказать о Redux (https://redux.js.org/docs/introduction/): библиотеке, которая реализует модель состояния приложения. Также она позволяет формализовать и однозначно определять взаимодействующие сущности, упрощает поддержку, тестирование и добавление нового кода.

Redux – реализация паттерна Flux, описанного компанией Facebook. Этот паттерн является макро расширением подхода MVC - Model-View-Controller. Его также связывают с подходом CQRS - Command Query Responsibility Segregation, при котором приложения хранят события, из которых собираются состояния.

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

Библиотека использует паттерны функционального программирования: состояние декларируется как неизменяемое (Immutable), а reducers должны быть описаны как чистые (pure) функции. При таком подходе упрощается тестирование и отладка программы.

Redux широко используется в приложениях, созданных с помощью ReactJS, VueJS и Angular. Поэтому умение работать с ней пригодится студентам курса «Разработчик JavaScript»!

Подробности программы по кнопке ниже:
Дарите знания: https://otus.pw/5XaC/
🎄 Всех с Наступающим Новым Годом! Ловите поздравление Дмитрия Шебордаева, преподавателя курса «Разработчик С++»!

📍 СПРАВКА:

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

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

Курс «Разработчик С++» мы планируем запустить весной, а сейчас присоединяемся к поздравлению Дмитрия и хотим пожелать всем студентам профессиональных успехов!

Пускай в 2018-ом году будет много свершений и побед!

Дарите самое ценное – знания: