🎄 Друзья, в канун Нового Года должны исполняться желания!
Наверняка, многие из вас хотели бы попасть на чудесный курс Виталия Иванова «Разработчик Java Enterprise», первое занятие которого пройдет уже сегодня в 20:00.
🎁 В честь Наступающего Нового года мы приготовили подарок: для всех, кто хочет присоединиться к группе прямо сегодня, мы запустили промокод, который даёт бонус 2 тыс. руб. на оплату первого месяца обучения и 4 тыс. руб. на единовременную оплату всех 5 месяцев программы!
1. Активировуйте промокод – HappyNewJava2EE;
2. Оплатите курс удобным для вас способом;
3. Начните обучение прямо сегодня в 20:00!
💥 ЭТО ЕЩЁ НЕ ВСЁ!
Среди всех, кто успешно прошел тестирование по JavaEE, мы разыграли промокод, дающий возможность попасть на курс за полцены!
В Новый Год должно быть много подарков, поэтому мы разыграли аж 65 таких промокодов!
Механику розыгрыша и список победителей можно посмотреть в нашем видео с поздравлениями от Виталия Иванова, преподавателя курса.
P.S. Победителям промокодов на оплату 50% от стоимости курса желаем успехов и ждём сегодня вечером на занятиях. Мы уже отправили поздравительные письма с промокодами. Если письмо не пришло, напишите @jorian в Telegram.
ВСЕХ НАСТУПАЮЩИМ!
Наверняка, многие из вас хотели бы попасть на чудесный курс Виталия Иванова «Разработчик 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 и её основные возможности на профессиональном уровне полного курса.
Ну что, пошкодим?
А как насчёт дискретной математики?
Сойдёт? Ведь Дни Открытых Дверей на курсе «Разработчик Full Stack на Python» уже закончились. И все вопросы по обучению уже решены. Ну если есть ещё, прочитайте ответы на страничке ВК.
Да, если ещё не присоединились к ближайшей группе курса, поспешите, первое занятие пройдёт уже 28 декабря!
А сегодня в 20:00 мы приглашаем всех любителей языка Python на онлайн-мастер-класс Саввы Демиденко «Функциональное программирование и работа с данными», чтобы вы могли изучить понятия:
— Замыканий,
— Comprehensions and генераторов,
— Итераторов и менеджеров контекста,
— IDE и её основные возможности на профессиональном уровне полного курса.
Ну что, пошкодим?
🐍 Как работать с сессиями БД в SQLAlchemy, чтобы общение с базой данных было наиболее оптимальным, защищённым от ошибок и лишнего потребления ресурсов?
Тема пригодится для курса «Разработчик Full Stack на Python». Курс начнётся 28 декабря, поэтому поторопитесь!
Кстати, вчера был открытый урок на тему «Функциональное программирование и работа с данными». Если не смогли присутствовать онлайн, смотрите запись!
📝 Ну а теперь давайте разберём основные ошибки в SQLAlchemy и способы их избежать!
#deeppythonfs #deeppostpythonfs
Сначала давайте разберёмся с тем, какие в SQLAlchemy есть сущности для работы с сессиями и за что они отвечают. Основных три:
–
–
–
Наконец,
А теперь несколько советов:
– Передавать в каждую функцию сессию – это явно, но не обязательно. Достаточно использовать глобальную
– Подход выше не стоит использовать для атомарных функций, который будут использоваться в качестве частей более сложных, но атомарных операций: он усложняет управление транзакциями.
– При написании кода стоит хорошо понимать, где транзакция должна начинаться и где заканчиваться, избегать подвисших транзакций и делать код, говорящий об этом, как можно более явным.
– После написания тестирования уделите время тестированию взаимодействия с БД: запустите код с большим количеством данных, посмотрите на то, насколько нагружена БД, не создаётся ли лишних соединений, удаляет ли скрипт за собой все транзакции и пр. Если этого не сделать, велика вероятность, что рано или поздно БД упадёт, а это как правило очень плохо.
Больше теории практики у нас на курсе «Разработчик Full Stack на Python»:
Тема пригодится для курса «Разработчик 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 минут? Заметка по кнопке ниже:
Первое занятие пройдёт 25 января. Но уже скоро Новый Год, а это значит, до 31 декабря вы можете присоединиться к группе любым выгодным для вас способом: https://otus.pw/GIek/
А сейчас в эфире долгожданный #deeppostjava! Есть 5 минут? Заметка по кнопке ниже:
🐍 Новогодний подарок всем, кто хочет начать обучение на курсе «Разработчик Full Stack на Python»!
Нам правда очень хочется, чтобы у вас многое получилось в 2018-ом году. И от всего сердца хотим вам сделать подарок, который станет приятным бонусом для начала вашего пути к уровню Middle:
🎁 промокод с бонусом 30% на оплату первого месяца обучения и 30% на единовременную оплату всех 5 месяцев программы!
Чтобы активировать промокод, скопируйте
HappyNewFSPython
и вставьте на странице оплаты курса «Разработчик Full Stack на Python»!
👉 Пусть 2018-ый год откроет вам множество возможностей для самореализации! Надеемся, наш подарок поможет вам отбросить все сомнения, и мы увидимся на первом занятии курса уже завтра 28 декабря в 20:00. Решайтесь и до встречи в прямом эфире:
Нам правда очень хочется, чтобы у вас многое получилось в 2018-ом году. И от всего сердца хотим вам сделать подарок, который станет приятным бонусом для начала вашего пути к уровню Middle:
🎁 промокод с бонусом 30% на оплату первого месяца обучения и 30% на единовременную оплату всех 5 месяцев программы!
Чтобы активировать промокод, скопируйте
HappyNewFSPython
и вставьте на странице оплаты курса «Разработчик Full Stack на Python»!
👉 Пусть 2018-ый год откроет вам множество возможностей для самореализации! Надеемся, наш подарок поможет вам отбросить все сомнения, и мы увидимся на первом занятии курса уже завтра 28 декабря в 20:00. Решайтесь и до встречи в прямом эфире:
OTUS: Разработчик full-stack на Python
Профессиональные онлайн курсы для разработчиков
👨🚀️ Руководитель разработки – кто это?
Любой разработчик знает, что результат выполнения программы далеко не всегда предсказуем на 100%. При выполнении программы невысокой алгоритмической сложности, использующей проверенные публичные библиотеки, на локальной рабочей станции, вероятность успеха одна.
В случае реализации сложной логики в рамках удалённого и менее контролируемого окружения, вероятность другая. А если добавить к этому исполнение на кластере и нестабильность внешних данных, то ситуация станет ещё менее предсказуемой. Это очевидно...
Нет? Пишите в Telegram
🙈 А если представить, что каждое взаимодействие руководителя с сотрудником (в нашем случае разработчиком) – это попытка запустить программу в рамках "удалённого окружения"? Процесс написания программы формализован слабо. Настройки окружения неизвестны. Непонятно, как ими управлять и что вообще в итоге получится: чужая душа потёмки.
А когда дело доходит до "кластера"? Все люди разные, да и коммуникации между людьми не сравнимы даже с самыми замысловатыми сетевыми схемами. Стоит ли удивляться тому, что результат человеческой деятельности, которой безусловно является и разработка, – вещь нестабильная и слабо предсказуемая? Поэтому повышение стабильности и предсказуемости является основным вызовом и одной из главных задач руководителя. В том числе и руководителя разработки.
Можно набрать высоко квалифицированных людей, определить правильные стандарты, выбрать передовые методологии разработки, поставки тестирования. Главный вопрос: «А как это заработает?».
🔥 Вернее: «А почему вы решили, что оно возьмёт и заработает?». Для ответа на этот вопрос нужно хорошо понимать всего одну вещь: как "оно" работает.
Поэтому цель курса – детально рассмотреть процесс разработки в качестве примера человеческой деятельности. Выявить основные причины, по которым "что-то идёт не так": не выполняются задачи, дают сбой методологии, не работают стандарты. Мы научим находить точки повышения эффективности действующих процессов и эффективно запускать новые.
В результате вы сможете грамотно предотвращать типовые «угрозы» разных этапов разработки и правильно использовать методы борьбы с ними.
Первое занятие пройдёт 23 января!
Но уже скоро Новый Год, а это значит, до 31 декабря вы уже можете присоединиться к группе любым выгодным для вас способом:
– помесячная оплата;
– новогодняя рассрочка полной стоимости курса (1/5 часть внесите в декабре, 4/5 полной оплаты - в январе), это позволит вам сэкономить стоимость одного месяца обучения;
– полная оплата курса.
С наступающим вас и до встречи в прямых эфирах:
Любой разработчик знает, что результат выполнения программы далеко не всегда предсказуем на 100%. При выполнении программы невысокой алгоритмической сложности, использующей проверенные публичные библиотеки, на локальной рабочей станции, вероятность успеха одна.
В случае реализации сложной логики в рамках удалённого и менее контролируемого окружения, вероятность другая. А если добавить к этому исполнение на кластере и нестабильность внешних данных, то ситуация станет ещё менее предсказуемой. Это очевидно...
Нет? Пишите в Telegram
🙈 А если представить, что каждое взаимодействие руководителя с сотрудником (в нашем случае разработчиком) – это попытка запустить программу в рамках "удалённого окружения"? Процесс написания программы формализован слабо. Настройки окружения неизвестны. Непонятно, как ими управлять и что вообще в итоге получится: чужая душа потёмки.
А когда дело доходит до "кластера"? Все люди разные, да и коммуникации между людьми не сравнимы даже с самыми замысловатыми сетевыми схемами. Стоит ли удивляться тому, что результат человеческой деятельности, которой безусловно является и разработка, – вещь нестабильная и слабо предсказуемая? Поэтому повышение стабильности и предсказуемости является основным вызовом и одной из главных задач руководителя. В том числе и руководителя разработки.
Можно набрать высоко квалифицированных людей, определить правильные стандарты, выбрать передовые методологии разработки, поставки тестирования. Главный вопрос: «А как это заработает?».
🔥 Вернее: «А почему вы решили, что оно возьмёт и заработает?». Для ответа на этот вопрос нужно хорошо понимать всего одну вещь: как "оно" работает.
Поэтому цель курса – детально рассмотреть процесс разработки в качестве примера человеческой деятельности. Выявить основные причины, по которым "что-то идёт не так": не выполняются задачи, дают сбой методологии, не работают стандарты. Мы научим находить точки повышения эффективности действующих процессов и эффективно запускать новые.
В результате вы сможете грамотно предотвращать типовые «угрозы» разных этапов разработки и правильно использовать методы борьбы с ними.
Первое занятие пройдёт 23 января!
Но уже скоро Новый Год, а это значит, до 31 декабря вы уже можете присоединиться к группе любым выгодным для вас способом:
– помесячная оплата;
– новогодняя рассрочка полной стоимости курса (1/5 часть внесите в декабре, 4/5 полной оплаты - в январе), это позволит вам сэкономить стоимость одного месяца обучения;
– полная оплата курса.
С наступающим вас и до встречи в прямых эфирах:
🎄 Виктория Александрова, преподаватель курса «Digital-маркетолог», поздравляет всех участников OTUS с Новым Годом!
📍 СПРАВКА:
Виктория начинала карьеру медиа-планером по работе с ключевыми клиентами в Яндексе. Несколько лет отвечала за анализ эффективности custom advertising solutions для крупнейших рекламодателей Яндекс.Директа. За это время успела разработать и внедрить в массовое производство ряд аналитических продуктов:
– аудит рекламных кампаний,
– оценка рекламного потенциала,
– post-click,
– post-campaign анализ.
Виктория является автором методов прогнозирования влияния офлайн-активностей на спрос в интернете, методов многофакторного анализа. Также решала задачи продвижения и наращивания ядра аудитории в высоконагруженных проектах Ростелекома. А затем её взяли в Mail.ru Group, где она занималась продуктовым менеджментом и продвижением образовательного проекта.
👉 Где, как не у неё, учится Digital-маркетингу?
Если вам действительно хочется видеть результаты своих действий, а не просто научиться нажимать на кнопки (этому учат другие), присоединяйтесь!
Новая группа начнёт обучение 29 января, и уже сейчас можно присоединиться к ней любым выгодным для вас способом!
Начните 2018-ый год с полноценного погружения в Digital-маркетинг:
📍 СПРАВКА:
Виктория начинала карьеру медиа-планером по работе с ключевыми клиентами в Яндексе. Несколько лет отвечала за анализ эффективности custom advertising solutions для крупнейших рекламодателей Яндекс.Директа. За это время успела разработать и внедрить в массовое производство ряд аналитических продуктов:
– аудит рекламных кампаний,
– оценка рекламного потенциала,
– post-click,
– post-campaign анализ.
Виктория является автором методов прогнозирования влияния офлайн-активностей на спрос в интернете, методов многофакторного анализа. Также решала задачи продвижения и наращивания ядра аудитории в высоконагруженных проектах Ростелекома. А затем её взяли в Mail.ru Group, где она занималась продуктовым менеджментом и продвижением образовательного проекта.
👉 Где, как не у неё, учится Digital-маркетингу?
Если вам действительно хочется видеть результаты своих действий, а не просто научиться нажимать на кнопки (этому учат другие), присоединяйтесь!
Новая группа начнёт обучение 29 января, и уже сейчас можно присоединиться к ней любым выгодным для вас способом!
Начните 2018-ый год с полноценного погружения в Digital-маркетинг:
🎁 Заказывали 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»!
Подробности программы по кнопке ниже:
Новый курс начнётся 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»!
Подробности программы по кнопке ниже:
🎄 Всех с Наступающим Новым Годом! Ловите поздравление Дмитрия Шебордаева, преподавателя курса «Разработчик С++»!
📍 СПРАВКА:
Дмитрий учился в Московском государственном университете экономики статистики и информатики по специальности «Прикладная математика». Начал карьеру рядовым разработчиком в компании, автоматизирующей процессы розничной торговли.
Не прекращая активной деятельности в разработке, прошёл путь до руководителя. И последние несколько лет работает в области информационного поиска в Rambler&Co на позиции руководителя отдела разработки технологий. Вот уже 20 лет остаётся верен своей профессии и читает образовательные курсы по специальности.
Курс «Разработчик С++» мы планируем запустить весной, а сейчас присоединяемся к поздравлению Дмитрия и хотим пожелать всем студентам профессиональных успехов!
Пускай в 2018-ом году будет много свершений и побед!
Дарите самое ценное – знания:
📍 СПРАВКА:
Дмитрий учился в Московском государственном университете экономики статистики и информатики по специальности «Прикладная математика». Начал карьеру рядовым разработчиком в компании, автоматизирующей процессы розничной торговли.
Не прекращая активной деятельности в разработке, прошёл путь до руководителя. И последние несколько лет работает в области информационного поиска в Rambler&Co на позиции руководителя отдела разработки технологий. Вот уже 20 лет остаётся верен своей профессии и читает образовательные курсы по специальности.
Курс «Разработчик С++» мы планируем запустить весной, а сейчас присоединяемся к поздравлению Дмитрия и хотим пожелать всем студентам профессиональных успехов!
Пускай в 2018-ом году будет много свершений и побед!
Дарите самое ценное – знания:
👨💼️ Собрали 5 типичных ошибок начинающих руководителей!
Чтобы научиться их избегать, запишитесь на курс «Руководитель разработки»
#deepdevhead
«Всегда честно признавай свои ошибки, это притупит бдительность начальства и позволит тебе натворить новые» Марк Твен
Читать далее:
Чтобы научиться их избегать, запишитесь на курс «Руководитель разработки»
#deepdevhead
«Всегда честно признавай свои ошибки, это притупит бдительность начальства и позволит тебе натворить новые» Марк Твен
Читать далее: