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
и к настройке вашего приложения.

#deeppostjava
Java EE в естественной среде обитания.
С каждым днем мы получаем все больше заявок на обучение от людей с начальным уровнем знаний и вынуждено отказываем в обучении, так, как проект OTUS направлен на стремительное увеличение профессионального опыта для тех, кто уже состоялся, как профессионал. Сегодня, как и вчера, мы не набираем группы Junior Java Enterprise. Курс «Разработчик Java Enterprise» — это бесценный обмен опытом с профессионалами высокого уровня для профессионалов высокого уровня в естественной среде обитания. Эти уникальные знания и опыт от преподавательского состава нашего проекта вы получаете «из первых рук». Вы полностью погружаетесь в атмосферу сильных профессионалов, вы развиваетесь в стремительном темпе в полностью адаптированной среде. Мы не просим вас тратить самый драгоценный ресурс «ваше время» на пустые разговоры или скучные лекции. Курс «Разработчик Java Enterprise» носит уникальный характер и достоин вашего внимания. Подробности программы обучения https://goo.gl/bqRo2T
Мы разделяем любовь Виталия Чибрикова (автора курса «Разработчик Java») к Java, поэтому грядущий набор на курс будет в OTUS уже 4-тым. Группа #1 уже закончила обучение и радует нас приятными отзывами о курсе и карьерными успехами на новых местах работы. Группа #2 недавно тоже закончила обучение и находится в активной фазе трудоустройства. Желаем ребятам успехов!
Опыт выпущенных групп позволил нам максимально доработать программу под потребности рынка, сместить акценты в сторону того, что действительно важно студентам и работодателям.
Ряды Java-преподавателей пополнили опытные разработчики и сертифицированные преподаватели Дмитрий Архангельский и Олег Климаков. При этом мы сохранили дружескую атмосферу на занятиях, где есть место серьезным вопросам и подробным ответам, монологам преподавателя и интерактивам для студентов. Мы продолжаем давать студентам не всегда простые домашние задания (но ведь тяжело в учении, легко в бою, да?), чтобы максимально эффективно закреплять практикой полученные знания. Несмотря на то, что преподаватели серьезно погружены в процесс проверки домашних заданий (ведь каждому студенту нужно дать развернутый фитбек в течение двух суток), у них остается время на дискуссии со студентами — ведь мы создали живое комьюнити по Java, где студенты делятся своим опытом, обсуждают домашние задания и лекции. Случается так, что кто-то из студентов пропустил вебинар (или несколько по причине, например, отпуска). В этом случае комьюнити и видеозаписи вебинаров (они всегда будут доступны студенту), помогут наверстать упущенное.
Хотите посмотреть, как проходит вебинар, чтобы оценить, подходит ли вам такой формат? Посмотрите небольшое видео с одного из вебинаров — говорим про SOLID.
Если вам интересна серьезная разработка на Java, хочется новых кейсов, опыта, знаний и карьерных возможностей, хочется учиться с удовольствием и вы не боитесь трудностей — приходите к нам на курс. Мы начнем погружаться в тонкости Java уже завтра! Смотреть видео https://goo.gl/aE6hpH
Дорогие друзья, в связи с тем, что deeppost Java, который мы подготовили для вас, имеет сложную структуру подачи, мы не можем отправить его в канал Telegram и приглашаем вас к прочтению статьи на официальной странице facebook OTUS https://goo.gl/vjkNTM
Ура! Наступил долгожданный день! Сегодня стартует первый день занятий у четвертой группы программы обучения «Разработчик Java»!
Поздравляем слушателей курса и наших преподавателей с этим событием. Популярность курса Java растет каждый день и увеличивается в геометрической прогрессии, а это говорит о том, что специалистов с каждым днем будет становиться больше и больше. Сегодня последний день, когда можно записаться на обучение в группу #2 по курсу «Разработчик Java» https://goo.gl/KLKw6P
Друзья, сегодня День Открытых Дверей по курсу «Разработчик Python»! Начало трансляции в 20:00 по московскому времени. Именно сегодня состоится розыгрыш бесплатных мест обучения для тех, кто прошел тестирование.
Пройти тестирование можно тут https://goo.gl/EsNEmj
Присоединиться к трансляции https://goo.gl/XX9xXn
Станислав Ступников программист компании Mail.ru, преподаватель образовательного проекта OTUS сегодня в 20:00 по московскому времени в прямом эфир для вас. Можно и нужно задавать все волнующие вопросы об обучении, формате занятий и т.п. Все самые популярные вопросы: а как? а почему? а можно ли …? Будут рассмотрены именно сегодня. Присоединяйтесь!
Говоря об оптимизациях, мы должны понимать сложность используемых алгоритмов, но, зачастую, имеем ввиду только вычислительную сложность. Конечно, скорость работы алгоритма - это очень важная метрика, но мы можем и не успеть полностью, утилизировать CPU, если у нас кончится память. В реальном мире есть много ресурсов, которые надо беречь. Не про деревья и воду, а дисковый и сетевой ввод/вывод, объем кэша и даже скорость памяти. Попробуем оценить аппетит поедания памяти в динамике. Насколько легко понять, сколько и какой памяти требуется для работы нашему чудо-сервису?
«#include <array>»
«#include <memory>»
«auto static_storage = std::array<char, 0x40000000>();»
«int main(int argc, char *argv[])»
«{« «static_storage.fill(0);»
«auto dynamic_storage = std::make_unique<std::array<char, 0x40000000>>();»
«dynamic_storage->fill(0);»
«auto automatic_storage = std::array<char, 0x400000>();»
«automatic_storage.fill(0);»
«return 0;»
«}»
В примере трижды вызывается конструктор «std::array» и трижды метод «fill». Как меняется потребление памяти после выполнения каждой из этих строк? Как влияет на потребление памяти то, что первый объект со статическим временем жизни, второй в куче (да, при этом сам указатель на стеке), а третий целиком на стеке? Зачем в примере используется метод «fill», память и так уже выделена, в чем подвох? Почему память выделяется не в том порядке, в котором можно было бы ожидать? Оптимизация ни при чём. И, кстати, сколько раз массивы будут заполнены значениями? Конструктор «+ fill» и, так три раза – неверный ответ. #deeppost c++
Спешим сообщить, что 17 ноября завершился День Открытых Дверей по курсу «Разработчик Python». По традиции в гонке тестирования «светлых умов программирования» есть два победителя, которых мы спешим поздравить с тем, что они заслуженно получают в награду бесплатное образование по курсу «Разработчик Python». Ура! А, те, кто хотел присоединиться к трансляции, но не смог, приглашаем к просмотру на официальном канале YouTube образовательного проекта OTUS https://goo.gl/tNKCEg Друзья, спасибо всем, кто присутствовал на встрече! И увидимся на первом занятии!
Друзья, сегодня особенный день! В образовательном проекте OTUS, сегодня, в 19.00 часов по московскому времени, будет проходить открытый урок по Java EE. В формате вебинара будут рассмотрены вопросы проектирования API на платформе Java. Слушатель научится разрабатывать приложения построенные на базе SOA с использованием технологий «JAX-WS» и «JAX-RS». Присоединиться к трансляции можно тут https://goo.gl/Zx57tu
Если вы еще думаете, чем заняться в декабре — эта информация для вас! 27 ноября нас ждет уникальный День Открытых Дверей посвященный курсу «Разработчик C++». Великолепный специалист и виртуозный преподаватель Дмитрий Шебордаев в прямом эфире! Профессионал высокого уровня, выпускник МГУ, персона youself, совершенствуется c каждым днем и с радостью делиться своим опытом с нами!
Обратите внимание, что разработчик C++ в OTUS — это не начальный курс для новичков или тех, кто еще ищет себя в профессии. Это сильный курс для сильных. Это не просто скучные лекции или учеба по принципу «Ну, что нового вы сможете мне рассказать?». Это глубокий курс с увлекательным погружением в мир C++. Только лучшее, только самое смелое, ловкое и увлекательное в процессе обучения. Совершенствоваться вместе с OTUS, в атмосфере абсолютных профессионалов и единомышленников — это быстрый рост профессиональных навыков, достижений и личных побед. 80% наших учеников меняют свои профессиональные предпочтения после обучения в лучшую сторону. Ведь мы не только учим, мы вдохновляем на достижение наивысших результатов и гордимся каждым из вас!
Работодатели по окончании курса: Yandех, Luxoft, Kaspersky, КРОК, 1C. Перед началом трансляции протестируй свои знания и, кто знает, может быть именно Вам выпадет уникальная возможность бесплатного обучения в OTUS https://goo.gl/5XVuSY
Mail API. Среди распространенных требований, предъявляемых к приложениям уровня Enterprise, следует отметить необходимость отправки электронных писем на стороне сервера. Например, может потребоваться отправить сообщение пользователю после регистрации или смены пароля в системе, или же отправка сообщения с новостной рассылкой. Нет сомнений, что каждый найдет свой случай для применения этой полезной функциональности. Рассматривая стек технологий JavaEE, важно отметить, что все необходимое для отправки электронных писем доступно «из коробки» и можно использовать для любого JavaEE-приложения. Данная технология так же известна, как «Mail API», располагающаяся в пакете «javax.mail». Важно понимать, что JavaEE не решает вопросов создания почтового SMTP-сервера. Для этих целей Вы можете использовать готовые решения, к примеру, любой общедоступный сервер как Gmail, Yandex, Mail и т.д. Для целей отправки писем достаточно знать параметры используемого почтового сервера: имя и порт сервера, параметры соединения. Для безопасной отправки писем также допустимо использование «SSL» и «TLS-протоколов». С помощью «Mail API» можно отправлять не только простые письма, но и включать вложения, прикреплять изображения, документы, использовать HTML-форматирование и т.д. Наиболее значимые сущности для возможности отправки email — это класс Session, инициализирующий основные параметры для соединения с SMTP-сервером, MimeMessage, включающий информацию о получателе письма, теме, теле и вложениях сообщения, а также класс Transport, реализующий непосредственную отправку методом void send(MimeMessage message). Обратите внимание, что количество инициализируемых параметров соединения класса Session напрямую зависит от типа SMTP-сервера. Для серверов, в которых не требуется какой-либо аутентификации, достаточно указать лишь свойство «mail.smtp.host» и оставить без изменения 25й порт, используемый по умолчанию. Но для случаев использования почтовых серверов, поддерживающих SSL или TLS аутентификацию, важно детализировать оба параметра «mail.smtp.host» и «mail.smtp.port». Если рассматривать Gmail в качестве почтового сервера, то в нем используются 465й и 587й порты для SSL и TLS, соответственно (самая актуальная информация о деталях почтового сервера Gmail доступна по ссылке). Взгляните на код метода, обеспечивающего отправку письма, используя TLS-аутентификацию: «public static void sendEmail(final String username, final String password)»
«throws MessagingException {»
«Properties props = new Properties();»
«props.put(„mail.smtp.auth“, „true“);»
«props.put(„mail.smtp.starttls.enable“, „true“);»
«props.put(„mail.smtp.host“, „smtp.gmail.com“);»
«props.put(„mail.smtp.port“, „587“);»
«Session session = Session.getInstance(props,»
«new javax.mail.Authenticator() {»
«protected PasswordAuthentication getPasswordAuthentication() {»
«return new PasswordAuthentication(username, password);»
«}»
«});»
«Message message = new MimeMessage(session);»
«message.setFrom(new InternetAddress(„youremail@gmail.com“));»
«message.setRecipients(Message.RecipientType.TO
«InternetAddress.parse(„whomemail@gmail.com“));»
«message.setSubject(„Your Subject“);»
«message.setText(„This is test email! Don’t answer!“);»
«Transport.send(message);»
«}»
Данный код в особых комментариях особо не нуждается, поэтому для лучшего закрепления материала предлагается реализовать метод, который отправляет email через Gmail, но уже с использованием SSL-аутентификации.
Друзья, приглашаем Вас к прочтению свежей и полезной статьи "Применение DevOps практики Infrastructure as Code (IaC)" опубликованной на официальной странице OTUS в Facebook. Читать сейчас https://goo.gl/LB4VXA
Внимание, уже через час стартует сразу два Дня Открытых Дверей по курсам: «Разработчик Python» и «DevOps практики и инструменты». Старт встреч ровно в 20:00 по московскому времени. Трансляция встречи «Разработчик Python» https://goo.gl/C2Rwpp
Трансляция встречи «DevOps практики и инструменты» https://goo.gl/95nRGe

У вас есть еще час, чтобы пройти тестирование и принять участие в розыгрыше бесплатных мест обучения. До встречи в прямом эфире!
Мы начинаем дни открытых дверей по курсам «DevOps практики и инструменты» и «Разработчик Python». Присоединяйтесь!
20 ноября проходил открытый вебинар по курсу «Разработчик JavaEE» в OTUS. Почти 500 человек в прямом эфире с экспертом по Java технологиям Виталием Ивановым. Смотреть запись вебинара можно тут https://otus.pw/PEmF/
Ни для кого не секрет, что язык PHP имеет довольно низкий порог вхождения, что делает его как одним из самых удобных языков для быстрого создания веб-приложений, так и самым уязвимым для неоптимизированного кода. Зачастую разработчики даже middle-уровня ограничиваются в своей работе тем, что используют среды разработки типа OpenServer или XAMPP. Разумеется, для небольших проектов в этом нет ничего фатального, но как только размер проекта вырастает, то появляются новые проблемы, которые до этого не были известны. Во-первых, большие проекты не терпят отключения на время обновления кода. При этом на самом сервере, ни о каком OpenServer речи не идет — зачастую случается, что у разработчика стоит Windows, а на сервере работает Linux-подобная ОС. При выкатке проекта выясняется, что код, который работал локально, вдруг перестаёт работать в Production-окружении, прерывая работу ресурса. Во-вторых, большие проекты не ограничиваются простым делением на DEV и PROD. Они имеют сервера QA, где идет приемочное тестирование, имеют множество разработчиков, которым к тому же надо обмениваться своими наработками. И их среды разработки тоже могут отличаться, к примеру, потому, что кто-то не обновил ПО. Так что же делать в таких ситуациях? На помощь приходят виртуальные машины, которые собираются по строго заданным шаблонам с предустановленным единообразным LAMP/LNMP-стеком. Их прелесть также и в том, что они совершенно беспроблемно могут создавать неограниченное число копий Production-окружения, делая процесс разработки максимально гибким. Можно собирать машину вручную, но для быстрого старта можно использовать существующие решения автоматизации. Мы рассмотрим работу в Windows-системах. Достаточно будет двух программ — Vagrant и VirtualBox. VirtualBox — это среда для управления и запуска виртуальных машин, а Vagrant — это программа автоматизации их сборки. Более того, энтузиасты уже подготовили готовые инструкции для работы с PHP, NGINX, MySQL и другими популярными модулями стека. Если Вы планируете работать с этой сборкой, то установите также Git. При необходимости нужно добавить путь к Vagrant в переменную PATH. «set PATH=%PATH%;C:HashiCorpVagrantbin» Теперь мы можем создать отдельную директорию для нашей виртуальной машины или же перейти в уже созданную. Можно развернуть «голую» ОС Ubuntu, либо взять готовую сборку из репозитория на GitHub «https://github.com/kiaplayer/vagrant-php» Если рассматривать второй случай, то нужно будет выполнить команды «git clone https://github.com/kiaplayer/vagrant-php.git» Инструкция по сборке виртуальной машины располагается в директории «.chef.» Это файл Vagrantfile, который нужно скопировать на уровень выше. После этого уже можно запустить сборку самой виртуальной машины «vagrant up». По завершению её работы в меню VirtualBox появится новая строчка с Вашей только что созданной виртуальной машиной. Она уже имеет возможность подключения по сети, а также располагает стеком LNMP. Как видите, работа с виртуальными машинами совсем несложная!
Ваше мнение очень важно для нас.
По итогу дня хотим рассказать о том, что вчера успешно завершен День Открытых Дверей по курсу «Разработчик Python». Было увлекательно, информативно и, как всегда, полезно. Для тех, кто не успел присоединиться в прямом эфире приглашаем к просмотру записи эфира на канале YouTube https://otus.pw/NLnq/
До старта первого урока остался один день.

Друзья, если у вас есть вопросы или пожелания Вы всегда можете оставлять их в комментариях. Благодаря обратной связи мы сможем совершенствовать подход к образованию каждый день. Как ни банально, но тем не менее, именно ваше мнение очень важно для нас.
Наступил первый день занятий по курсу "Разработчик Python"!Впереди нас ждут пять увлекательнейших месяцев в познании всех тонкостей программы обучения. Сегодня последний день, когда можно присоединиться к новой группе и мгновенно приступить к обучению. Мы поздравляем всех, кто уже с нами! Всех слушателей, кто сегодня начнет свое первое занятие. И конечно же, мы спешим поздравить с этим событием преподавателя курса Станислав Ступникова!