uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

OTUS: программирование и карьера в IT

OTUS: программирование и карьера в IT

Відкрити в Telegram

Канал для быстрого карьерного роста в IT: опыт практиков, актуальные технологии и инструменты, чтобы быть впереди коллег и привлечь внимание руководителей. Иногда шутим! 🔔Включайте уведомления, чтобы не пропустить!

Показати більше
7 377
Підписники
-224 години
+17 днів
-730 днів
Архів дописів
Кажется, ссылка была не очень... вот точно верная! https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live

Через считанные минуты начинаем трансляцию второго (и последнего) Дня открытых дверей! Присоединяйтесь, задавайте вопросы, следите за розыгрышем бесплатного обучения среди тех, кто успешно прошел вступительное тестирование! https://www.youtube.com/chann…/UCetgtvy93o3i3CvyGXKFU3g/live

Завтра мы проведем еще один День открытых дверей по Java (последний перед началом обучения новой группы). Регистрируйтесь на http://otus.ru/dod?utm_source=telegram&utm_medium=internal&utm_campaign=dod2 и готовьте свои вопросы. А поскольку мы по традиции разыграем бесплатное обучение - торопитесь скорее пройти вступительное тестирование, чтобы принять участие в розыгрыше!

И еще один весомый аргумент в пользу изучения Java! https://habrahabr.ru/company/otus/blog/329816/

Что такое “углубленные основы”? В нашей программе есть такая тема. Что такое основы Java думаем, понятно. Например, цикл for или ветвление if-else или создание объекта через оператор new. Как основы могут быть “углубленными”? Рассмотрим следующий базовый вопрос: как создать объект в Java? Первый и самый правильный ответ: через оператор new. Что может быть более базовым в объектно ориентированном языке, чем Object object = new Object(); Теперь усложним вопрос: Как создать объект в Java без использования new? И на этот вопрос есть два ответа: Reflection и клонирование. Можно создать объект, если у вас есть объект класса Class<Т> этого класса: Object instance = Class.forName("java.lang.Object").newInstance(); То есть вы можете получить новый объект класса зная только название этого класса (конечно если объект типа Class для этого класса может быть загружен класс-лоадером). Можно сделать класс Clonable и вызвать protected native Object clone() класса Object. В результате вы получите копию объекта, которую для вас сделает нативный метод. Хорошо. Еще немного усложним задачу: как создать объект в Java не вызывая его конструктор? Кто сказал, что нельзя так сделать? Так работает ObjectOutputStream, когда десериализует объект. Вызывает sun.reflect.ReflectionFactory.newConstructorForSerialization() Фактически создавая объект произвольного класса через вызов конструктора java.lang.Object Что еще можно углубленно-базового рассмотреть? Вот, например, области видимости переменных: public, protected, private. Интересно что о них можно углубленного рассказать? Посмотрите sun.reflect.MagicAccessorImpl. Да-да magic accessor.

Начинаем понедельник с отличных новостей! Наших лучших выпускников по курсам Java, C++, JavaScript на собеседование ждет еще одна компания - 1С. Еще больше карьерных возможностей!

На первом Дне открытых дверей состоялся розыгрыш бесплатных мест в новую Java группу! Победителями стали: Егор Кузьмин и Сергей Жерновой. Поздравляем ребят, ждем на занятиях, желаем успехов в обучении и новых карьерных высот!

Мы начинаем День открытых дверей! Присоединяйтесь! https://www.bigmarker.com/otus-ru/11

Напоминаем, что первый День открытых дверей пройдет уже завтра! Мы не только поговорим о проекте OTUS, программе обучения и перспективах для выпускников, но и по традиции разыграем среди успешно прошедших вступительное тестирование несколько бесплатных мест в новой Java группе. Если вы еще не зарегистрировались и не прошли вступительное тестирование - самое время сделать это! http://otus.ru/dod

3 июня у нас стартует второй курс по программе “Java разработчик”, в преддверии этого события мы приготовили обзор программы обучения - чем мы руководствовались и почему считаем ее актуальной? Все что вы хотели знать, но боялись спросить о Java! :) 👇 https://habrahabr.ru/company/otus/blog/329458/

Наших компаний-партнеров стало еще больше! Теперь и Лаборатория Касперского ждет на собеседования наших лучших студентов. Компания заинтересована в выпускниках курсов Python, C++, мобильной разработки и информационной безопасности. Запись на эти курсы откроется совсем скоро!

Наш главный преподаватель Java Виталий Чибриков (Vitaly Chibrikov) самоиронизирует :) 5 лет назад (когда была сделана фотография) у Виталия уже был солидный опыт преподавания и отличное чувство юмора :)

Согласно тесту Тьюринга, если что-то плавает как утка, крякает как утка и летает как утка, то это что-то -- утка. Но что делать, если при этом она не работает без батареек? Если в вашем приложении объект пришел к вам по референсу на базовый класс, но ведет себя не так как вы ждете от базового класса, то у вас в приложении нарушен один из принципов SOLID -- Liskov Substitution. Ошибка частая и не сразу заметная. Ошибка порядка наследования. Например, у вас в приложении есть квадрат и прямоугольник. Что из них базовый класс? Школьная математика нам подсказывает, что квадрат это частный случай прямоугольника. Но в проектировании это не так. Если прямоугольнику два метода: setHeight() и setWidth() вполне подходят, то что они должны делать с квадратом? Например первый может задавать размер квадрата, а второй… ничего не делать. Или наоборот. Это не так важно. Важно что архитектура у вас при наследовании квадратом методов прямоугольника сломана. И если кто-то получит на квадрат референс базового типа, он не сможет с ним работать. Или другой пример: есть подвижный объект и неподвижный. Кто из них базовый? Ждем ваш ответ в коментариях. Кстати, Liskov Substitution это только одна буква в SOLID (L). Приходите к нам, расскажем про остальные четыре.

С радостью приглашаем всех 27 мая и 1 июня на Дни открытых дверей! Из любой удобной точки мира - приходите к нам - формат проведения онлайн. Проводить ДОД будет Виталий Чибриков - преподаватель на курсе Java разработки, один из основателей проекта и отличный специалист области с 12 - летним стажем разработки. О чем будем говорить: Расскажем почему OTUS больше чем просто образовательный проект и какие возможности получат наши студенты после прохождения обучения. Расскажем о программе курса, практических занятиях и профессиональном сообществе разработчиков. Расскажем о карьерных перспективах студентов и возможностях, предложенных компаниями - партнерами. Ответим на все интересующие вопросы, поделимся новостями, просто приятно и с пользой проведем время. Конечно, это еще не всё! Успешно прошедших вступительный тест на Дне открытых дверей ждет уникальная возможность. Спешите проверить свои знания Java и регистрируйтесь на День открытых дверей! http://otus.ru/dod

Найм, фриланс или свой бизнес? Почему чтобы найти свой путь, стоит попробовать все? Своим опытом и взглядом на походы к трудоустройству в новой статье делится Дмитрий Волошин (основатель OTUS): http://www.chaskor.ru/article/tri_tipa_trudoustrojstva_41945

Пришло время подвести первые итоги проделанной работы! Обзорная статья по первому месяцу работы, что нового и какие планы на будущее: https://habrahabr.ru/company/otus/blog/328856/

Как узнать что память, которую занимал объект освобождена? В некоторых языках это просто - вызвал delete и можешь быть уверен - памяти стало больше. У нас в Java все сложнее. С одной стороны -- отлично, что нам не нужно писать delete “руками”. GC все сделает за тебя. Потерял ссылку на объект, и ничего страшного. Память будет освобождена и без ссылки. Утечки не будет. С другой стороны, очень хочется иногда написать delete, но нет такой возможности. И, в самом деле, как узнать, что объект удален? Можно подписаться на события GC, мы о них уже писали, но они не про конкретный объект, а про событие для всех объектов. Можно переопределить finalize() (у всех классов он есть) и обработать событие в нем. Но, если таких объектов будет много, это может сильно снизить скорость работы GC, а медленный GC это большие паузы в работе всего приложения. К счастью есть в Java способ узнать о том что объект удален без finalize в своем потоке, а не потоке GC, удобным способом. Это phantom reference. Это тоже ссылка на объект, как и нормальная ссылка, но у нее все по-своему. Получить объект по ней нельзя. Но можно найти ее в специальном пуле ссылок для удаленных объектов. Создали ссылку, подождали GC, проверили в пуле. Если она там есть, значит объект был удален. А какие еще типы ссылок есть в Java? И зачем они нужны? Приходите к нам - расскажем!

Сегодня о нас тепло и по-братски написали в #стартапдня ✌️Коротко о нас, нашей ЦА, конкуренции с GeekBrains и трудоустройстве читайте в канале Стартап дня https://telegram.me/startupoftheday

Для чего программисту нужны паттерны проектирования? Ответ, на первый взгляд, очевиден. Для того чтобы проектировать. И это правда. Но, я сейчас предложу, менее очевидный ответ. Который, на мой взгляд, даже важнее, чем разработка хорошей архитектуры. Знание паттернов нужны программистам для общения. Вот сравните например диалоги: - Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате. - Хорошо, мы добавим в класс для каждого типа купюр, сделаем так чтобы они по цепочке обрабатывали запрос на снятие денег, передавая остаток, который не могу обработать дальше по цепочке. А чтобы посчитать остаток в автомате -- добавим специальный класс, который позволит перемещаться по цепочке и складывать остатки в каждой ячейке. - Не понял, объясните пожалуйста. и - Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате. - Хорошо, мы используем Chain-of-responsibility для снятия и Iterator для остатков. - Понятно, делайте. А вам какой диалог понятнее?