Pull to refresh
33
0
Send message
Этот курс не будет в свободном доступе:(
Другие, которые выложены на youtube (Java Core, Junior Java Developer) — можно подумать, но Вы первый из 4.000 подписчиков, кому такое потребовалось.
Так что, вряд ли.
О!
Спасибо.

Еще есть интересный вопрос: аннотации не поддерживают рекурсивные структуры данных, т.е. сделать что-то типа односвязного списка или дерева «в лоб» не получится:
@Node {
    @Node next();
}

@TreeNode {
    @TreeNode left();
    @TreeNode right();
}


Вопрос — как красивее организовать такое?
Скажем генеалогическое древо на классе Person?
Согласен.
Но тут методическая проблема:
1. Это делает написание статьи в 2 раза более длительным по времени. Многие вещи просто «размазаны» по java lang spec. И их поиск и собирание по абзацу — длительная процедура.
2. Спецификации, по моему опыту, склонны читать только около 10%-20% обучаемых.

Если делать серьезный ресурс, то это абсолютно правильное решение. Но непонятна монетизация такого ресурса. Пример: Эккель, Хорстман, Гослинг и прочие Шилдты и то в своих учебниках так не делают.
При всем моем уважении к авторам бесплатных курсов, я считаю, что преподавание (подбор материала, чтение лекций, написание статей, составление тестов, ...) должно оплачиваться.
Меценатство — это личный выбор. Сейчас для меня обучение — главный источник дохода.

С удовольствием скооперировался бы с теми, кто строит бизнес.
Вторая часть будет посвящено рассказу о том, для чего аннотации служат:
1. Влияем на поведение компилятора/JVM (@ Override, @SafeVarargs, ...).
2. Добавляем метаинформацию к классам. Можем считать ее при помощи Reflection API.
Я решил ограничиться разумным объемом, что бы пост было реально написать и вычитать за раз.
Я старался выстроить цепочку примеров.
Введение есть к любом учебнике, в том же Хорстмане — целая глава, кажется.
Я детально не разбирался, но Hexlet — это бесплатное образование?
Мне так показалось.
— добавить изучение CompletableFuture из java8

Да, это пропустил.
Надо выделить время и в целом помедитировать над тем, что Future — это монада, и что мы можем из этого выжать. Посмотреть что там в Akka, кажется в Netty реализовывали свое Future.
Я бы предложил изменить последовательность подачи материала:
— начать с высокоуровневых понятий, а именно передачи сообщений синхронным (блокирующие очереди) и асинхронным (акторы) способом, чтобы ученики сразу имели возможность писать работоспособные программы
— соответственно, низкоуровневые и аппаратные механизмы перенести в конец, когда ученики станут способны чувствовать параллелизм и его проблемы


Полностью с Вами согласен. Этот список с разбиением на модули — это не точный хронологический порядок. Это скорее классификация материала с примерной разбивкой по часам.

Сейчас составляю вторую программу — по задачам. И сам курс будет «нанизываться» на задачи.
В ближайшее время опубликую. На вскидку, я пожалуй начну с простейшего в 50-100 строчек HTTP-сервера на блокирующих сокетах — сразу используется пул потоков для обработки каждого соединения + шаблон производитель-потребители через блокирующую очередь (поток на ServerSocket.accept() передает принятые Socket-ы «потребителям»). Потом добавить shared state, скажем простейший механизм сессий на ConcurrentHashMap.
Получилось легкое введение в j.u.c.
Потом вместо блокирующей очереди из j.u.c пишем свою на synchronized/wait/notifyAll, другую на ReentrantLock/Condition, третью на семафорах.

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

Собственно было бы вообще интересно составить подборку из 10-20 «классических» задач по многопоточности. «Классических» — в смысле популярности «в жизни».
Проще говоря, при цене в $100 можно ожидать в 100 раз большую аудиторию чем при цене в $1000.

1. Базовая цена — 475$, а не 1000$. В реальности практически ни у кого не хватит времени/мощности И пересмотреть все примеры с лекции И почитать ссылки И ЕЩЕ поделать примеры за 3 дня между лекциями.
2. Мой опыт показывает, что психологических порогов несколько. 100$ — это первый порог, 500$ — второй. 100-долларовый порог уменьшает аудиторию НЕ в 10 раз, а примерно в 2-3 раза.

Есть люди которые согласны платить/инвестировать в образование, а есть те, кто не согласен.
Мой опыт показывает, что хорошее знание многопоточности позволяет повысить зарплату примерно на 100$ (на з.п. в 1000$-1500$ в месяц) и сменить сферу деятельности на более интересную (игровые сервера, сетевые сервера, движки игр, ...). Итого инвестиция в 475$ отбивается за 5 месяцев и потом начинает приносить 100$ в месяц.
Очень часто себя ловлю на мысли что по середине большой лекции уже теряю нить лектора (

У меня большинство слушателей как раз пересматривают лекции несколько раз и с перерывами на чай.
Плотность материала обусловлена тем, что необходимо за ограниченный срок (40-100 часов) дать огромный объем теории, примеров, подходов. Иначе — ну вы знаете: 11 семестров по 5 экзаменов + 5 зачетов:)
Как известно устав бизнес-модель написана кровью:)
Я пробовал разные схемы монетизации (я полтора года преподаю Java Core + Junior Java Developer).
Сумма 400$-600$ показала себя как самая разумная и выгодная.
на каждого дополнительного слушателя тратится крайне мало дополнительных ресурсов

Это правда. Но учитывайте, что есть начальный порог затрат на ведения сложного курса длительностью N месяцев. Это примерно N * 4.000$.
— надо готовиться заранее. Сейчас месяц до старта, а я уже занимаюсь курсом
— обязательное требование — не работать во время чтения курса. Необходимо время на продумывание примеров, вычитку статей, ответы на вопросы. Да и вообще чтение лекции 2.5 часа тратит много сил.
— реклама. Блог на habrahabr, скажем, стоит 1.500$ за три месяца
— офис. У меня дома ребенок, значит мне вечерами необходимо помещение
— з.п. бухгалтера
— налоги
— и т.д.

Если бы я был уверен, что этот порог будет пройден — я могу снижать цену. Я не могу сказать курс по 100$, приходит 30 человек, я пересчитываю и говорю — нет ребята, курс по 300$.

Скажем можно по другому, курс стоит 12К. Если соберется 120 человек, то всем будет по 100$. Соберется 480 человек — по 25$. Не вопрос.
а у вас между ними ещё и пулы вклинились.

Тоже обсуждаемо.
Но методически синхронизаторы необходимо учить сразу с пулами. Для демонстрации синхронизаторов необходимо иметь множества потоков и создавать их по new Thread(new Runnable() {...}) как-то уже некрасиво.
Стоит обдумать. LockSupport, думаю, можно читать и в начале.
Но AQS крайне сложно устроен и имеет нетривиальное API:
— попытка блокирующего/неблокирующего захвата (Lock.lock()/tryLock())
— попытка блокирующего захвата с таймаутом и без (Lock.lock()/lock(long))
— прерываемая и непрерываемая через interrupt() попытка захвата (Lock.lockInterruptibly()/lock())
— «четная» и «нечестная» блокировки
— exclusive и shared захват
— и т.д.

Я предполагаю, что сначала слушателю стоит поиграться с Lock/Semaphore/CountDownLatch, что бы он понят как эти свойства «выглядят», для чего могут быть полезны. И только потом самые сильные могут попробовать разобраться на каком основании это все построено.
1. Вы можете переподключиться в течении хода лекции.
2. Сейчас запись лекции выкладывается с задержкой 12-24 часа: конвертация из внутреннего формата вебинаров в mp4 + заливка на внешний сервер.

Так что сейчас смотреть с задержкой 30 минут — не получится.
Но если найдем (посоветуете) хорошего провайдера вебинаров, у которого видео доступно сразу (с задержкой 1-10-100 минут после трансляции), то Ваша проблема будет решена.

Мы сейчас ищем.
На торрентах — нет.
Большая часть материалов на youtube в публичном доступе. Там около 800 часов, кажется.
В следующем посте опишу, что есть на youtube по Java Core + Junior Java Developer.
достаточно 475$ — вы получаете все (выше писал что) включая задания, но я их не проверяю.
975$ — это с code review и общению по заданиям, персональному обсуждению литературы.
выложите ли записи вебинаров в свободный доступ?

Скорее всего — нет.
Иначе эта деятельность теряет смысл как источник заработка:(
Какова цена вопроса?

1. Участие в вебинарах, доступ к записанному видео, доступ к коду с лекций, доступ к электронной литературе – 475$.
2. Пункт 1 + проверка лектором заданий для самостоятельной работы (16 больших заданий) – 975$.
.
Если Вас несколько человек — можем обговорить значительную скидку.
Где записываться? Срочно ссылку на форму регистрации!

Пишите в скайп. Как таковой «регистрации» нет.
Мы ответим на все Ваши вопросы, вы решите — платить или нет.
У нас все административные вопросы решаются в общей скайп-группе.

Information

Rating
Does not participate
Registered
Activity