Как стать Java разработчиком за 1,5 года / Хабр
Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.
Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.
Моя первая статья: «IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там»
Моя вторая статья: «Получить работу в Германии станет проще».
Disclaimer
Скажу сразу, что всякие варианты «выучи яву за 10 дней» (21 день, 30 дней и т.д.) – это утопия. Нет никакой красной таблетки, чтобы быстро попасть в матрицу. Но за год-два параллельно с основным местом работы – вполне реально.
Что у меня было в активе, прежде чем я начал изучать Java
Сначала я хотел назвать статью «Как стать Java разработчиком за 1,5 года с нуля», но передумал. Я ведь пришел в программирование не из совершенно другой области, а из IT. Но работал я не в разработке, а в поддержке. Вероятно, дальнобойщику будет не так просто повторить мои шаги, чтобы стать программистом. Хотя, если у моей жены получится в свои 34 переквалифицироваться из чистого гуманитария в разработчика (или тестера), то напишу еще одну статью.
Стоит сказать о том, что я уже умел, когда решил стать разработчиком.
В университете в течение 2-х семестров мы изучали программирование на Си и С++. Ничего особенного или каких-то глубоких знаний. Сдали – забыли. Далее, будучи студентом, я писал какие-то простенькие программы на Delphi для себя. И всё. Это было более 20 лет назад.
Дальше моя карьера выглядела так:
- Системный администратор
- Системный инженер
- Зам. руководителя отдела
- Руководитель
- Инженер тех. поддержки
Непосредственно программированием я вообще не занимался.
Онлайн-курсы.
Я начал со следующих специализаций на coursera.org:
Java Programming and Software Engineering Fundamentals – 4 месяца
Я прошел следующие онлайн-курсы:
После этой специализации я уже более-менее разбирался в языке, но писать самому программы было еще нереально. Последний capstone-проект я не сделал. Мне было сложно. И у меня, честно говоря, пропал энтузиазм. Я сделал перерыв.
Object Oriented Java Programming: Data Structures and Beyond– 5 месяцев
Через месяц я решил всё-таки вернуться к занятиям снова. Я пошел на специализацию из пяти курсов:
Последний capstone-проект я также не осилил. Но предпоследний курс в списке «Mastering the Software Engineering Interview» помог мне неплохо подготовиться к последующим собеседованиям. А еще я смог написать свой первый простенький парсер простого сайта на чистом HTML. Уже было неплохо, но не впечатляло.
How to Code – 3 месяца
Следующим шагом были эти два странных курса на edx.org:
Я написал «странных», потому что там вообще речь не идет о Java. Авторы курса используют специальный язык программирования Beginning Student Language (BSL). Я где-то прочитал, что они мега-полезные. Наверное, эти два курса помогли мне лучше понять некоторые приемы написания программ и стали хорошим подспорьем для написания Unit-тестов в реальной работе. Но, если быть честным, их можно пропустить.
Data Structures and Algorithms – 2 месяца
Потом я снова вернулся на coursera.org и начал новую специализацию, сотоящую из следующих четырёх курсов:
Но осилил только первых два. На остальные даже не стал записываться. Параллельно с этими курсами я начал читать книгу OCA, о которой речь пойдет дальше.
Топтание на месте
В тот момент я понял, что топчусь на месте. Прохождение новых курсов не давало такого ощутимого количества новых знаний, как это давали первые. Т.е. знания вроде прибавляются, но это никак не приближает меня к получению работы. Я не понимал, как с такими знаниями можно вообще найти на работу. Я всё также не мог написать ничего, что было бы сложнее парсера. Ну как так-то?!?!? Я даже пытался написать свой сервис парсинга сайтов с блэк-джеком и путанами, но уже после недели разработки мой проект превратился в кашу из классов. И я уже сам не мог разобраться в том, что я там понаписал. Кроме того, мне всё ещё были непонятны некоторые аспекты функционирования языка. И это после того, как я уже потратил примерно год на все этих курсы!!! Двенадцать онлайн-курсов и целый год времени, Карл, вы только вдумайтесь в это. На самом деле, это был провал. Я был уверен, что за год я смогу стать разработчиком благодаря этим курсам. Я заблуждался. Мне нужен был план Б.
Альтернатива
Я стал искать курсы, которые бы помогли мне получить какие-то практические навыки, востребованные в реальной работе. Но ничего толкового не было, либо стоило приличных денег. Те же курсы от отуса стоят 50000 за шесть месяцев и отзывы на них противоречивые. Я не был готов к таким расходам. Я был готов впахивать самостоятельно и искал, как это можно сделать бесплатно или совсем недорого. В итоге все онлайн-курсы, которые мне попадались, делились на две категории:
- Первая рассчитана на новичков или людей с нулевой подготовкой. С их помощью ты достигаешь уровня «три с минусом». Это я! Это про меня!
- Вторая для «хорошистов» с опытом работы, которые хотят стать «отличниками». Вроде таких: «Как писать микросервисы на Java для высоконагруженных проектов с использованием WildFly Swarm». Что это вообще такое???
А между ними зияющая пустота. Ну где я и где все эти микросервисы??? Получалось, что для «троечников» вообще ничего нет. Или есть, но за хорошие деньги. И как стать «хорошистом» бесплатно, без регистрации и СМС, вообще непонятно.
Сертификация Oracle
Тогда я решил стать сертифицированным разработчиком на Java. Потому как фраза «Я профессиональный программист на Java» звучит очень круто и должна сразить будущего работодателя наповал!!! Во всяком случае, тогда я так наивно думал.
OCA: Oracle Certified Associate Java SE 8 Programmer – 2 месяца
Для этого я купил книгу:
На освоение этой книги у меня ушло примерно 2 месяца. Она реально открыла мне глаза на многие аспекты и заставила понять, как работает язык в деталях. Это было хорошее продвижение вперед. Но не в поиске работы, а в понимании языка Java. На экзамен я шел с уверенностью, что сдам его хорошо, и я его сдал. Я набрал 84% при необходимых 65%. Я был безмерно горд собой.
Стоимость экзамена $245. В России он стоит немного дешевле.
Оцените стоимость официального тренинга от Oracle для подготовки к этому экзамену
OCP: Oracle Certified Professional Java SE 8 Programmer – 4 месяца
Я с энтузиазмом принялся за вторую книгу тех же авторов:
На освоение второй книги я потратил уже 4 месяца. И это оказалось реально сложно. Два раза я делал перерывы по одной неделе, потому как понять лямбда выражения или многопоточность мне было действительно непросто. Также меня убивало обилие классов для ввода и вывода. Все эти NIO и NIO2, которые так похожи и которые нужно было знать. Что там базовый класс, что производный? Это был настоящий кошмар. В итоге я назначил дату экзамена за месяц, потом перенес его на две недели, потом еще на две. Меня поджимали сроки, на горизонте маячило собеседование. И мне нужен был этот сертификат. Я не стал переносить экзамен в третий раз и пошел с тем, что имел. В отличие от первого экзамена, я уже не был уверен в хорошем результате. Я вообще не был уверен, что смогу его сдать. От былой гордости не осталось и следа. Объем информации для понимания и запоминания во второй книге раз в пять больше чем в первой. Но я сдал и этот экзамен. К счастью, тестовые задания в книгах оказались сложнее, чем те, которые были на экзамене. Но это был прорыв… для меня. Прорыв в плане знаний и понимания того, как работает язык и какие инструменты он предлагает.
Стоимость экзамена также $245.
Могу сказать, что эти две книги мне дали больше, чем все те онлайн курсы, что я прошел ранее. Но я не знаю, смог ли бы я вообще сдать эти экзамены, если бы не прошел предварительно курсы. С помощью этих экзаменов я перешел на уровень «три с плюсом». И это было уже что-то. Но я всё также не был способен самостоятельно реализовать какой-нибудь интересный проект. WTF????
Я понял, что я достиг максимума от того, что я мог получить сам, и изучать язык дальше было бессмысленно. Более того, я понимал, что мои знания, которые я с таким трудом получил, без практики очень быстро улетучиваются. Тянуть было нельзя, и я занялся подготовкой к собеседованию и приобретением навыков, которые могут потребоваться при устройстве на работу.
Что нужно, чтобы получить работу?
Нужно пройти собеседование и техническое интервью! Про подготовку к собеседованию писать не буду. Это тема для отдельной статьи. Напишу только про те знания, которые нужны, чтобы пройти техническое интервью.
Подготовка к интервью – 1 месяц
Я купил следующую книгу:
Настоятельно ее рекомендую. Она поможет подготовиться к техническоой части собеседования. На неё я потратил примерно месяц. Многие задания были непонятны, поэтому я нашел еще один экземпляр на русском, и когда мне было совсем непонятно, я смотрел в него.
Дополнительные навыки
К этому моменту я уже активно мониторил рынок вакансий в своём городе и выбрал компанию, в которой хотел бы работать. У них была вакансия Java Developer. В вакансии в числе желаемых навыков стояли знания Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. Мне не нужны были глубокие знания всех этих технологий, мне нужно было простое понимание, что это такое и как оно работает. Чтобы на собеседовании можно было сказать, мол да, я знаком, но не глубоко.
Oracle SQL – 1 неделя
SQL я уже неплохо знал, так как по долгу службы приходилось делать много произвольных отчетов для руководства. Но это был T-SQL от Microsoft, а тут требовался SQL от Oracle. Пришлось купить книжку, чтобы вспомнить основные моменты и понять разницу.
Эту книжку я пробежал быстренько за неделю. И понял, что я на 70% готов сдать еще один экзамен. Но мне было уже не до этого.
SVN – 1 неделя
SVN распределённая система управления версиями. GIT или SVN используется в большинстве компаний, которые занимаются разработкой ПО. Курсов по SVN я не нашел, поэтому решил взять короткий курс по GIT: «Version Control with Git», чтобы быть в курсе темы. Я даже подумал, что если спросят про SVN, то скажу, что имел дело с GIT. А потом на месте сориентируюсь. Если вдруг будет что-то непонятно, то всегда можно будет сказать, что в GIT это немного по-другому. И это, кстати, сработало.
GWT – 3 дня
Следующая технология из списка – GWT. Потратив несколько дней на поиски информации, я понял, что с этим Фреймворком от Google мне просто не разобраться. Если упрощенно, то можно писать сложные сайты на Java, а этот Фреймворк преобразовывает твой код в HTML + JavaScript и отображает в браузере без всяких надстроек и дополнений. Слишком всё круто. GWT я решил пропустить.
Eclipse – 3 дня
Eclipse — среда разработки, основной инструмент разработчика, с которым я имею дело каждый день. Каких-то специальных курсов я не брал. Посмотрел несколько видео на youtube, понял основные приемы. Попробовал всё сам руками.
Maven, Jenkins – 15 минут.
На эти две вещи времени просто не осталось. Собеседование было уже утром, поэтому я просто прочитал 2 статьи в википедии и лёг спать.
Время
Мной было потрачено примерно 18 месяцев, 2 недели, 6 дней и 15 минут на получение знаний и навыков, необходимых для получения места разработчика. Этим я занимался по вечерам, тратя 1-3 часа в будние дни. И около 5-6 часов на выходных.
Деньги
Я готов был тратить свое время и не готов был тратить деньги. Но потратить их всё же пришлось.
Курсы:
- Все онлайн курсы я прошел бесплатно Бесплатно. Как это сделать на coursera.org я писал тут.
Книги:
Экзамены:
Дополнительные расходы:
- Проезд в другой город на экзамены, т.к. в моем нет сертификационных центров – 120€.
Итого: 702€
Совсем бесплатно, к сожалению, не получилось. Книги покупал на английском, т.к. экзамен тоже на английском.
Результат
Этих знаний хватило, чтобы пройти собеседование и подписать контракт в достаточной крутой немецкой компании. Я бы даже сказал, что их хватило с запасом.
Их также хватило, чтобы пройти шестимесячный испытательный срок и получить постоянное место в штате разработчиков.
За эти 6 месяцев работы в качестве разработчика я закрыл более 200 заявок на разработку, доработку и исправление ошибок в коде совершенно разных подсистем и модулей. И ни от одной заявки я не отказался «потому что я не смог». Да, мне приходилось и сейчас приходится разбираться в новых вещах, искать информацию, вникать в детали. Что-то я делаю медленно, но мне это интересно и процесс идёт. А ещё за это хорошо платят!!!
Но не надо думать, что я очень умный. Я самый простой парень, который просто решил изменить свою жизнь к лучшему. Я такой же, как и ты. А если смог я, то сможешь, и ты!
На самом деле, чтобы стать разработчиком, у меня ушло не 1,5 года, а два. Но это по моей собственной глупости (читайте об этом в моем телеграм-канале). Непосредственно на яву я потратил 1,5 года. Но необязательно повторять мои ошибки. Думаю, что можно достичь того же результата за более короткий срок. Выкидываем всё лишнее и получаем примерно такой путь:
Часть первая – 5 месяцев
Берем следующие курсы специализации Object Oriented Java Programming: Data Structures and Beyond на курсере:
Параллельно читаем книжку:
По результатам сдаем экзамен.
Часть вторая – 2 месяца
Берем следующие курсы специализации Data Structures and Algorithms:
Параллельно читаем книгу:
Часть третья – 4 месяца
Читаем книжку:
По результатам сдаем экзамен.
Часть четвертая – 1 месяц
Смотрим, что конкретно хочет работодатель от соискателей, и тратим по одной неделе на каждую из 4-х самых нужных технологий, программ или Фреймворков (Git, Eclipse, Maven, Spring и т.д.). Плюс изучаем предметную область, в которой работает работодатель, его продукты, если есть и т.д.
Итого год. За год – вполне реально.
О том, как я изменил свою жизнь в 40 лет и переехал с женой и тремя детьми в Германию я пишу в своем телеграм-канале @LiveAndWorkInGermany. Пишу о том, как это было, что хорошо и что плохо в Германии, о планах на будущее. Коротко и по делу. Присоединяйтесь – будет интересно.
1000+ часов видео по Java на русском / Блог компании GolovachCourses / Хабр
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
- Java Core
- Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
- Multicore programming in Java.
Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).
В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.
(GolovachCourses.com)
Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Модуль #2 (Exceptions in Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4, #5 (???)
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3.
Модуль #3 (Java I/O):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #0 (???), #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4, #5
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4, #5.
Модуль #4 (Multithreading in Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3
Набор октябрь 2012: #1, #2, #3.
Модуль #5 (Collections API, java.util.*):
Набор апрель 2013: #1, #2, #3, #4, #5
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4, #5
Набор октябрь 2012: #1, #2, #3, #4, #5.
Модуль #6 (Java OOP):
Набор апрель 2013: #1, #2, #3, #4.
Набор февраль 2013: #1, #2, #3, #4.
Набор январь 2013: #1, #2, #3, #4.
Набор октябрь 2012: #1, #2, #3, #4.
Summary:
Набор январь 2013: итоговая лекция
Набор октябрь 2012: итоговая лекция
Юрий Ткач
Курс «Java для тестировщиков» (видео на youtube.com + скачать c rutracker.org).
Курс учит базовому программированию на языке Java, объясняет основные понятия, знакомит с наиболее популярными библиотеками и средствами, которые могут пригодиться тестировщикам. Курс расcчитан на слушателей, которые слабо подготовлены в программировании.
Программа, расположенная тут, не соответствует наименованию лекций
Урок 1 — Введение
Урок 2 — Синтаксис языка
Урок 3 — ООП
Урок 4 — ООП
Урок 5 — ООП
Урок 6 — ООП
Урок 7 — Enum, Number, String
Урок 8 — Eclipse IDE
Урок 9 — Exceptions
Урок 10 — Generics, Collections
Урок 11 — Annotations, I/O, Properties
Урок 12 — Threads
Урок 13 — Swing
Урок 14 — Swing
Урок 15 — JDBC
Урок 16 — JUnit
Урок 17 — Spring
Урок 18 — EasyMock
Урок 19 — Ant и Maven
Курс «Java практика» (видео на youtube.com).
Данный курс уделяет основное внимание практическому применению языка Java и основывается на предыдущем курсе Java для тестировщиков, который имел теоретическую направленность. В этом курсе рассматриваются различные прикладные задачи, а также проводится их решение с помощью Java. В конце каждого занятия озвучивается задание для самостоятельной работы. Курс расчитан на слушателей, которые слабо подготовлены в программировании.
Занятие 1. «Синтаксис и конструкции языка».
Занятие 2. «Функции (методы)».
Занятие 3. «ООП, классы и объекты».
Занятие 4. «ООП, наследование, классы».
Занятие 5. «Коллекции».
Занятие 6. «ООП, интерфейсы».
Занятие 7. «Файлы, ввод/вывод».
Занятие 8. «XML».
Занятие 9. «Ant».
Курс «Advanced Java» (видео на youtube.com + описание от автора).
1. Concurrency
— Deadlock
— Неблокирующая синхронизация
— Сервис запуска потоков
— Синхронизаторы
— ThreadLocal
2. Collections
— HashSet и TreeSet
— Реализации интерфейса Map
— Queue и приоритетная очередь
— Многопоточные коллекции
— Блокирующая очередь
3. Generics
— Сырые типы
— Наследование и расширители обобщений
— Рекурсивное расширение типа
4. Annotations/Reflection
— Создание собственных аннотаций
— Использование Reflection API
Курс «Технологии проектирования программных систем» (видео на youtube.com).
Юрий Ткач: «Работая преподавателем в Черниговском государственном технологическом университете на кафедре Информационных и компьютерных систем, я читал курс лекций по предмету ТППС (Технологии проектирования программных систем). В основном я старался делать упор на проектирование систем, рассказывая про разные шаблоны, подходы, многослойную архитектуру и т.п. Материал свой я основывал на замечательной книге Мартина Фаулера „Архитектура корпоративных программных приложений“. Однако, без рассказа о технологиях, которые применяются для создания систем уровня предприятия, этот курс был бы не таким интересным. Весь курс основывался на технологиях J2EE и связанными с ними, и поэтому включал в себя такие темы как Spring, AOP, JPA, Hibernate, JSF.»
Лекция 5. Слой сервисов
Лекция 6. Spring
Лекция 7. АОП.
Лекция 8. Слой интеграции.
Лекция 9. JPA Введение.
Лекция 10. JPA. Связи и наследование.
Лекция 11. JPA. Состояния и запросы.
Лекция 12. JPA. DAO.
Лекция 13. JPA. Транзакции.
Лекция 14. Слой представления.
Лекция 15. JSF. Введение.
Лекция 16. JSF. Навигация и beans.
Лекция 17. JSF. H-library and templates.
Лекция 18. JSF. Tables, Spring connect.
Лекция 19. JSF. Validators and Converters.
Лекция 20. JSF. Собственные компоненты.
Слой сервисов с JPA и Spring.
Программирование и тестирование слоя сервисов.
Facelets Templates — создание страниц в JSF.
Игорь Мирончик
Курс Основы Java (30 часов) (на канале youtube.com/MironchikVideo):
1. «Основы программирования на языке Java» [1-1]
2. «Основы программирования на языке Java» [1-2]
3. «Основы программирования на языке Java» [2]
4. «Основы программирования на языке Java» [3]
5. «Основы программирования на языке Java» [4]
6. «Основы программирования на языке Java» [5]
Курс Oracle Java, разработка приложений JEE (34 часа).
Курс был прочитан для группы разработчиков с серьезным опытом работы в технологиях .Net, MIDAS, в среде Delphi, МVC. Задачей курса был обзор технологий, входящих в состав платформы JEE, работающие на базе Oracle Weblogic сервер.:
1. «Разработка приложений в технологии JEE» [1-1]
2. «Разработка приложений в технологии JEE» [1-2]
3. «Разработка приложений в технологии JEE» [2]
4. «Разработка приложений в технологии JEE» [3]
5. «Разработка приложений в технологии JEE» [4]
6. «Разработка приложений в технологии JEE» [5]
Алексей Владыкин
Лекция 1 «Знакомство с языком и интрументами» (история и эволюция Java, особенности Java, разновидности Java, экосистема Java, неформальное знакомство с языком, стандартные инструменты JDK) + презентация
Лекция 2 «Примитивные и ссылочные типы» (примитивные и ссылочные типы, тип boolean, тип char, целочисленные типы, вещественные типы, преобразование типов) + презентация
Лекция 3 «Массивы и строки в Java» (Массивы: объявление, создание, инициализация, индексация, одномерные и многомерные, представление в памяти, java.util.Arrays. Строки: строковые литералы, операции со строками, StringBuilder, поддержка различных кодировок, регулярные выражения) + презентация
Лекция 4 «Объекты, классы и пакеты в Java» (основы ООП, объявление класса, использование класса, наследование, пакеты, модификаторы доступа, вложенные классы) + презентация
Лекция 5 «Управляющие конструкции и исключения в JAVA» + презентация + презентация (условные операторы (if, switch), циклы (for, while, do), операторы break и continue, метки, исключения, типы исключений, конструкция try/catch/finally, try с ресурсами, multicatch)
Лекция 6 «Java I/O, Java NIO, File» (Доступ к файловой системе: java.io.File и java.nio.file.*, потоки байт: InputStream, OutputStream, потоки символов: Reader, Writer, java.io.StreamTokenizer и java.util.Scanner) + презентация
Лекция 7 «Стандартная библиотека: java.util» (Collections Framework, списки, множества, ассоциативные массивы, generics) + презентация
Лекция 8 «Стандартная библиотека: java.lang, reflect, Reflection API» + презентация
Лекция 9 ««Разработка многопоточных приложений на Java, часть 1»» (общие сведения о параллелизме, управление потоками, синхронизация потоков, модель памяти) + презентация
Лекция 10 ««Разработка многопоточных приложений на Java, часть 2» (атомарные типы, примитивы синхронизации, коллекции, ExecutorService, ForkJoinPool) + презентация
Лекция 11 «Модульное тестирование на Java» (основные идеи, JUnit, Mockito, Java Logging API) + презентация
Лекция 12 «Разработка сетевых приложений на Java» (cокеты, URI и URL, библиотека Netty) + презентация
Георгий Корнеев
Найдено на Лекториум, Computer Science Center, rutracker.
Также есть страница автора и библиография/ссылки от автора.
Лекция 1 «Введение в Java»
Лекция 2 «Введение в ООП на Java (1)»
Лекция 3 «Введение в ООП на Java (2)»
Лекция 4 «Обработка ошибок и исключения»
Лекция 5 «Синтаксис Java»
Лекция 6 «Ввод-вывод»
Лекция 7 «Collections Framework»
Лекция 8 «Новые возможности Java 5»
Лекция 9 «Reflection»
Лекция 10 «Введение в многопоточное программирование»
Лекция 11 «Задачи и средства многопоточного программирования»
Продвинутый материал
Глеб Смирнов, «Расчленяя многопоточность».
Алексей Шипилёв, «О чём молчат Heap Dump-ы»
Роман Елизаров, «Факты и заблуждения о Java-сериализации»
Алексей Шипилёв, «Прагматика Java Memory Model»
Сергей Куксенко, «JDK8: Stream style»
Владимир Иванов, «Invokedynamic: роскошь или необходимость?»
Алексей Шипилёв, «ForkJoinPool в Java 8»
Дмитрий Чуйко, «Новинки в java.util.concurrent»
Андрей Паньгин, «Java Runtime: повседневные обязанности виртуальной машины Java»
Александр Макаров, «Исследование возможностей и ограничений JVM по оптимизации памяти»
Руслан Черёмин, «Модель памяти Java: близкие контакты третьей степени»
Сергей Куксенко, «Quantum Performance Effects»
Алексей Шипилёв, Сергей Куксенко «Оптимизация производительности Java-приложений: теория»
Алексей Шипилёв, Сергей Куксенко, «Оптимизация производительности Java-приложений: детали»
Алексей Шипилёв, Сергей Куксенко, «Оптимизация производительности Java-приложений: ещё детали»
… и много других «вкусностей» канала youtube.com/JUGRuVideo
Заключение
Я не буду давать никаких комментариев относительно качества материала по той простой причине, что сотни часов чужих материалов не просматриваю. Надеюсь что те, кто смотрел, смогут охарактеризовать в комментариях.
От имени всех коллег, которые занимаются преподаванием и выкладывают видео бесплатно, прошу простить нас за естественные «дефекты», возникающие при 3-4 часах преподавания в день: оговорки, неправильное произношение, не всегда удачные импровизации.
В описаниях курсов использованы оригинальные описания от авторов.
Контакты
Я занимаюсь онлайн обучением Java (вот курсы программирования) и публикую часть учебных материалов в рамках переработки курса Java Core. Видеозаписи лекций в аудитории Вы можете увидеть на youtube-канале, возможно, видео канала лучше систематизировано в этой статье.
skype: GolovachCourses
email: [email protected]
Java. Уровень 1. Язык программирования Java [Специалист] [2020] [Игорь Седых] | Складчина
Java. Уровень 1. Язык программирования Java. Игорь Седых
Java – самый популярный объектно-ориентированный язык программирования. Java используется для создания серверного программного обеспечения, прикладных программ, разработки веб-сайтов, игр и т.д. Созданные на языке Java приложения могут успешно работать на любом компьютере независимо от его архитектуры.
Базовый синтаксис языка Java взят от Си/С++, а значит, курс подойдет новичкам или опытным программистам, желающим повысить свой уровень квалификации.
Курс не только дает фундаментальные основы, но и готовит к последующей серьезной работе на Java. Вы подробно разберете все элементы и конструкции языка Java SE 13 и возможности платформы JDK. Теория детально отрабатывается на практике. Обучение проводят высококвалифицированные преподаватели-практики, которые работают как с Java SE, так и с современными инструментальными средствами разработки ПО.
Если вы нацелены на карьерный рост и хотите стать высокооплачиваемым программистом Java, этот курс для вас!
Последовательно пройдя первый и второй уровни курса по Java SE, вы получите максимум информации для сдачи экзамена Oracle Certified Associate, Java SE Programmer.
Программа курса соответствует требованиям профессионального стандарта «Программист».
Зарплата программистов Java на 30-40% выше, чем в среднем по рынку труда.
Цель курса:
Овладеть объектно-ориентированным языком программирования Java Standard Edition 13 (Java SE13), научиться использовать интегрированную среду разработки и приобрести базовые навыки создания объектно-ориентированных приложений.
По окончании курса Вы будете уметь:
- разбираться в Java технологиях;
- работать с примитивными типами;
- использовать ветвление и циклы;
- создавать методы на Java;
- работать с массивами и со строками;
- разрабатывать классы на Java;
- использовать наследование и полиморфизм;
- разрабатывать абстрактные классы и интерфейсы;
- обрабатывать ошибки, возникающие в программе;
- работать с файловой системой;
- использовать новые возможности классов из пакета NIO 2;
- пользоваться коллекциями Java;
- использовать в программе параметризованные типы;
- применять знания о паттернах проектирования.
Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.
Спойлер: Программа курса
Модуль 1. Введение в Java технологии
- Особенности языка программирования Java.
- Описание Java технологий.
- Использование интегрированной среды разработки.
Практика:
- Установка JDK/IDE, настройка параметров среды.
- Работа в командной строке.
Модуль 2. Введение в язык программирования Java
- Языковые лексемы Java.
- Введение в систему типов языка Java.
- Работа с примитивными типами и константами.
- Операции языка Java.
- Преобразование простых типов.
- Контекстно-зависимое ключевое слово var.
Модуль 3. Методы и операторы Java
- Создание и вызов методов.
- Перегрузка и методы с переменным числом аргументов.
- Операторы ветвления.
- Выражение switch.
- Операторы циклов.
Модуль 4. Создание и использование массивов Java
- Одномерные массивы.
- Многомерные массивы.
- Работа с массивами и класс Arrays.
Практика:
- Конвертор дня года в месяц и число.
Модуль 5. Работа со строками в Java
- Основные методы класса String.
- Сложение и преобразование строк.
- Классы динамических строк.
- Ввод данных с клавиатуры и класс Scanner.
- Регулярные выражения.
Практика:
- Конвертор целых чисел в двоичную систему.
Модуль 6. Разработка классов на Java
- Обзор основных концепций ООП.
- Объявление класса.
- Члены класса и создание объектов класса.
- Модификаторы доступа.
- Модификаторы final & static.
- Использование пакетов, директив импорта и переменной среды CLASSPATH.
- Модули Java, как единица развёртывания и безопасности
Практика:
- Разбор параметров командной строки.
Модуль 7. Наследование и полиморфизм
- Наследование как механизм повторного использования кода.
- Конструктор при наследовании.
- Преобразование типов и операция instanceof.
- Виртуальные методы и позднее связывание.
- Абстрактные классы и методы.
Практика:
- Разбор параметров командной строки. Часть 2. Наследование.
Модуль 8. Интерфейсы и аннотации
- Концепция интерфейсов.
- Объявление интерфейса.
- Реализация интерфейса.
- Статические методы, методы по умолчанию в интерфейсах и приватные методы.
- Использование и создание аннотаций.
Практика:
- Сортировка массива объектов.
Модуль 9. Пакет java.lang
- Класс Object и переопределение его методов.
- Метаданные и рефлексия.
- Классы System и Math.
Модуль 10. Обработка ошибок в Java
- Концепция исключений в Java.
- Использование операторов try, catch и finally.
- Проверяемые и непроверяемые исключения.
- Создание своих классов исключений.
- Оператор try для освобождения ресурсов.
Модуль 11. Потоки данных в Java
- Обзор классов потоков.
- Работа с байтовыми потоками.
- Работа с потоками символов.
- Использование класса java.io.File.
- Сжатие файлов.
- Сериализация объектов в Java.
Практика:
- Частотный анализ слов в тексте.
Модуль 12. Работа с файловой системой в NIO 2
- Использование интерфейса Path.
- Работа с атрибутами файлов.
- Основные возможности класса Files.
- Использование класса Files для обхода дерева каталогов.
- Мониторинг изменений в файловой системе.
Модуль 13. Пакет java.util
- Форматирование данных.
- Работа с датой и временем.
- Класс Locale и глобализация кода.
- Локализация и класс ResourceBundle.
- Генерация псевдослучайных чисел.
Модуль 14. Коллекции в Java
- Иерархия классов коллекций.
- Концепция параметризованных типов данных.
- Работа с параметризованным методов и интерфейсом.
- Обзор возможностей списков, множеств и словарей в Java.
Модуль 15. Вложенные классы в Java
- Внутренние классы.
- Вложенные классы.
- Анонимные классы.
- Перечисления в Java.
Модуль 16. Лямбда-выражения
- Синтаксис лямбда-выражений.
- Ссылки на методы.
- Функциональные интерфейсы.
Модуль 17. Паттерны проектирования. Новшества последних версий Java и примеры паттернов ООП
- Обзор паттернов.
- Паттерн одиночка.
- Паттерн композиция.
- Паттерн наблюдатель.
Практика:
- Реализация паттерна наблюдатель.
Скрытый контент.
[Специалист] Java SE8. Уровень 2. Разработка клиент — серверных приложений | Складчина
Язык программирования Java самый популярный объектно-ориентированный язык программирования для создания кроссплатформенного серверного программного обеспечения, прикладных программ, разработки веб-сайтов, игр и многое другое.
В курсе «Java SE8. Уровень 2. Разработка клиент — серверных приложений»рассматриваются различные архитектуры для создания Java GUI-приложений, например, Swing и JavaFX, даются основы web-приложений и взаимодействие с базами данных через JDBC API. Много внимания в курсе уделяется и эффективности приложений, которая невозможна без много поточного кода. Все теоретические положения детально демонстрируются на практических примерах сертифицированными преподавателями Центра «Специалист».
В курсе «Java SE8. Уровень 2. Разработка клиент — серверных приложений» рассматривается версия языка Java Standard Edition 8 (Java SE8), поэтому Вы сможете использовать курс для подготовки к экзамену Oracle Certified Professional, Java SE 7 Programmer.
Курс рекомендован как опытным, так и начинающих разработчикам, которые хотят развить свои профессиональные навыки в создании различных приложений на платформе Java.
Программа курса соответствует требованиям профессионального стандарта «Программист».
По окончании курса Вы будете уметь:
- Создавать многопоточные приложения
- Писать код синхронизации потоков
- Использовать пулы потоков
- Создавать компоненты JavaBeans
- Использовать графические модели AWT и Swing
- Понимать архитектуру JavaFX
- Создавать современный интерфейс на JavaFX
- Реализовывать много поточность в JavaFX
- Использовать JDBC в Java приложениях
- Работать с основные объектами JDBC в программе
- Научитесь создавать апплеты
- Использовать сервлеты в распределённых приложениях Java
- Писать код клиентского приложения для работы с веб-сервисами
Спойлер: Программа курса
Модуль 1. Многопоточное программирование
Спойлер: Программа курса
- Место многопоточных приложений;
- Средства Java для управления много поточностью;
- Класс Thread и интерфейс Runnable;
- Создание потоков;
- Мониторы;
- Синхронизация потоков.
- Современные средства по управлению потоками (Executors, Fork/Join Framework)
- Новые поток безопасные коллекции и классы (ThreadLocalRandom, AtomicInteger и др.)
Лабораторная работа. Создание и синхронизация потоков.
Модуль 2. Компонентная модель JavaBeans
- Основы взаимодействия компонентов Java в приложениях;
- Свойства, события и дескрипторы компонентов;
- Адаптеры, безымянные классы как распространенная техника создания адаптеров.
- Модель «источник-получатель» и много поточность.
- Графические модели Java – AWT, Swing.
Лабораторная работа. Создание графических компонентов Swing c использованием безымянных классов, адаптеров.
Модуль 3. Разработка современного пользовательского интерфейса на JavaFX
- Обзор JavaFX.
- Создание простого приложения JavaFX.
- Работа с элементами управления и событиями в JavaFX.
- Визуальные эффекты и анимация в JavaFX
- Использование свойств и привязки данных в JavaFX.
- Реализация много поточности в JavaFX.
Лабораторная работа. Создание современного интерфейса на JavaFX.
Модуль 4. Приложения Java c использованием СУБД
- Java и взаимодействие с СУБД;
- JDBC, использование SQL в Java-приложениях для доступа к реляционным БД;
- JDBC-драйвера, их виды;
- Основные объекты JDBC;
- Транзакции JDBC;
Лабораторная работа. Создание приложения Java/JDBC для работы с изображениями.
Модуль 5. Web-приложения Java
- Java и взаимодействие с Web-серверами;
- Использовании апплетов;
- Распределенные Web-приложения;
- Сервлеты;
- Документы JSP;
- Веб-сервисы.
Лабораторная работа.
- Создание приложения с использованием сервлетов.
- Использование веб-сервисов.
Преподователь :
Скрытый контент.
Ссылка на продукт :
Скрытый контент.
Ближайшая дата : 19.01.2015 — 30.01.2015
Продолжительность курса : 40 ак. ч.
Цена : 21 990р
Путь к Java Junior Developer / Хабр
Здравствуйте.
Меня зовут Кислин Григорий. В начале ноября в Санкт-Петербурге закончился первый обучающий семинар «Java. Базовый курс», сейчас переименнованый в «Java. Junior Developer. Интенсив». Хочу поделиться с Вами полученным при его проведении опытом на тему обучения Java а также своим опытом трудоустройства на позицию Java разработчика.
Изучаем Java
Изучить Java — понятие абстрактное. Необходимо уточнение. Изучить все классы Java — нереально, точно так же, как и наиболее востребованные библиотеки для Java. Изучить синтаксис Java — проще. Достаточно прочитать книги по Java, например, классиков:
- Брюсь Эккель «Философия Java»
- Герберт Шилдт «Java. Руководство для начинающих»
- Кея Хорстманна «Java 2»
- Кен Арнолд, Джеймс Гослинг, Дэвид Холмс «Язык программирования Java»
- Джошуа Блох. «Java. Эффективное программирование»
Также есть много онлайн курсов:
Особое внимание необходимо обратить на такие вещи, как внутренние статические и обычные классы, анонимные классы, параметризация, коллекции и многопоточность.
Вторая вещь после синтаксиса языка — наиболее часто используемые API. На начальном этапе это сервлеты, JSP, JDBC, JUnit.
Затем идет вещь, нужная любому программисту (не только Java) — кругозор. Сюда относится SQL, XML (xsd, xslt, XPath), HTML, JavaScript, Unix shell и пр.
Наконец, инструменты разработки. Общие: отладка в браузере (например firebug для FF), системы багтрекинга и контроля версий, СУБД, инструменты CI и Java: Ant / Maven, веб-контейнеры/серверы приложений.
И, как говорится, last but not least — IDE: создание проекта, кодирование, рефакторинг, дебаг, деплой, тестирование. Насколько вы им владеете, настолько быстрее, проще и качественнее будет ваш проект. По IDEA рекомендую познакомится с роликом Эффективная работа с кодом в IntelliJ IDEA.
Практика
Хорошо учится язык в процессе написания приложения среднего объема. Особенно если стараться писать его правильно- т.е. ~70% времени гуглить на тему лучшего решения каждой локальной проблемы и лучшего варианта кода. Для поиска особенно рекомендую ресурс stackoverflow.com, в ответах которого нужно будет отделить зерна от плевел. Особенно хорошо, если это не абстрактное приложение, а что-то нужное. Или, например, тестовое задание на работу. Вам круто повезет, если Вы знаете предметную область, хороший программист и Вас готовы взять на работу без опыта в Java — тогда Вы получаете опыт а вам еще за это платят. Здесь интересная классификация работы, зарплаты и получаемого опыта. Я бы только не стал сводить все к деньгам и карьере. Когда наберетесь опыта и будет возможность выбирать, можно кодировать для себя, для удовольствия. Ну и выгодно продать себя — это тоже часть игры в программирование, мера вашего профессионализма.
Собеседование
Совсем недавно на Хабре опубликовали хорошую статью про собеседование с позиции работадателя. Там тоже люди:) и чем более человеческие отношения у вас сложаться с собеседующим — тем больше шансов на успех. Ну и вообще — останется приятный осадок. Однако есть и такие собеседования, с которых я бы ушел с чувством, что мы мало подходим друг другу и хорошо, что мне не придется работать с таким начальником. Наконец, как только почувствуете достаточную уверенность, ходите на собеседования! (для людей с опытом, я бы еще добавил исследование рынка с позиции архитектуры, решений и технологий, с частотой пару раз в год и на позиции которые действительно интересны). Причем старайтесь из каждого вынести максимум. Если не знаете — не стесняйтесь поинтересоваться правильным ответом.
После собеседования сразу садитесь за гугл до полной ясности и не сидете сложа руки, ожидая результата. Продолжайте заниматься тем же, что и до него: обучаться и ходить на следующие интерью. Относитесь к этому как к процессу. В случае, если ответа не дали в означенный срок, не стесняйтесь позвонить и поинтересоваться результатом. В случае, если у Вас есть email собеседующего (например вам прислали тестовое задание), и вразумительного ответа от HR не дождаться, можно поинтересоваться результатом напрямую. Разумный срок для пингования — раз в неделю. Я где-то полтора месяца, ничего особенного не ожидая, раз в неделю сначала звонил, а потом переписывался с Yota. В результате меня передали в другой отдел, где условия оказались лучше тех, куда я изначально собеседовался.
При этом, все таки, основа любого собеседования на позицию Java-разработчика это ваши знания: общее понимание сути программирования вообще, java в частности и специфические вещи java. Например: «Сколько экземпляров синглетона может быть в одной JVM?» (необходимо произнести ключевую фразу- зависит от ClassLoader). Вот пример вопросов на собеседовании по коллекциям. Причем это далеко не все вопросы. Меня, например, спросили- почему берется не просто хэш ключа, а в нем еще перемешиваются байты? Вопрос скорее на общее понимание работы HashMap и сообразительность, ответ можно посмотреть в реализации HashMap. Конечно, все вышеперечисленное не потребуют от Junior. Но чем больше знаний у Вас будет — тем выше Ваши шансы.
Итоги
Путь в тысячу миль начинается с одного шага
Если временем не ограничены, можно пробовать освоить все самостоятельно. Если нет, встает вопрос — как получит за минимальное время максимальное количество знаний? Можно поискать индивидуальное репетиторство (особенно если пробелы в чем-то конкретном) или закончить Java курсы с максимально широким и глубоким вхождением в тему. Я бы выделил следующие критерии отбора:
- Преподает программист. С вопросами и задачами из собеседований и знанием Java не только по книжкам.
- Практика. Лучше всего, когда на протяжении курса разбор теории идет вместе с разрабатываемым приложением.
- Работа в IDE (пишу, потому что видел на YouTube курсы java в notepad).
- Охват. Максимальное количество тем за отведенные часы (кроме собственно Java выделю важные темы: работа с XML, SQL/JDBC, сервлеты/JSP, JUnit). Конечно, не в ущерб пониманию.
Для этого чаcть несложного материала (синтаксис, операции, типы, управляющие конструкции) слушатели изучают самостоятельно (и бесплатно).
Очень важен на курсе (по отзывам слушателей) баланс между практикой, когда на занятии разработка приложения идет вместе со студентами, и когда идет только демонстрация разработки. Если весь код программировать вместе, пройдем где-то половину программы, при этом внимание сосредотачивается не на содержимом, а на том, чтобы успесть записать код. Если идет только демонстрация, слушатели не смогут работать с проектом самостоятельно, несмотря на имеющийся код. И особенно важны домашние задания, когда происходит усвоение пройденного материала.
Если Вы собираетесь (или продолжаете) изучать Java, то надеюсь, что Вам было небезинтересно:).
Спасибо.
PS: Перепост из песочницы, куда я попал за ссылку на курс. Отдельное спасибо пользователю Хабра, возвратившему мне инвайт.
Курс Java Design Patterns — JavaSpecialists
Вечный способ кодирования
Наш курс по шаблонам дизайна Java — лучшее образование, которое вы можете получить за свои деньги.
дать вашим программистам. За 4 дня интенсивной работы мы покрываем все
Паттерны «Банда четырех» в дополнение к некоторым другим менее известным. Ваш
программисты узнают, как шаблоны проектирования вписываются в общую картину Java.
За каждым шаблоном следуют упражнения.Они помогают студенту применять то, что
они узнали на лекции. После каждого упражнения мы демонстрируем
решение с проходной.
Мы очень внимательно следим за тем, чтобы каждый паттерн преподавался точно.
Мы гарантируем, что код, который они видят, безопасен для использования в промышленных масштабах.
код.
«Прежде всего, наилучшие пожелания в этом новом году! Я просто хотел сказать вам
что я закончил Курс Java Design Patterns, это было очень
интересно, примеры были очень четкими, а рекомендации по книгам были
здорово, я читал по курсу некоторые из упомянутых вами книг
который у меня уже есть, и я положил пару ваших рекомендаций на свой Amazon
список желаний.»
Эдисон Мартинес
Подходит ли вам этот курс?
- Узнайте, как думает специалист по Java при проектировании системы Java.
- Узнайте, как каждый шаблон используется в Java Development Kit (JDK).
- Узнайте, как виртуальная машина Java оптимизирует наш хорошо продуманный код
на лету. - Узнайте, как сделать наши шаблоны поточно-ориентированными.
- Узнайте, как современные лямбда-выражения Java 8 и функции Java 11 могут уменьшить объем кода при
реализация шаблонов проектирования. - Узнайте, как синглтон может вызывать «запах кода».
- Узнайте, как избавиться от кода копирования и вставки и этих надоедливых
операторы switch и if-else. - Улучшите общение в команде с помощью
введение более богатого словаря дизайна.
«Я думал, что ваш курс был отличным, и
с тех пор использую шаблоны в своей работе (а также
ценность использования шаблонов проектирования для моих коллег).»
Оливер Г., Призма, Кейптаун
«Прежде всего, наилучшие пожелания в этом новом году! Я просто хотел сказать вам
что я закончил Курс Java Design Patterns, это было очень
интересно, примеры были очень четкими, а рекомендации по книгам были
здорово, я читал по курсу некоторые из упомянутых вами книг
который у меня уже есть, и я положил пару ваших рекомендаций на свой Amazon
список желаний «
Эдисон Мартинес
«Если кто-то должен выбрать курс единого шаблона проектирования, он должен быть
Шаблоны проектирования Java от Хайнца Кабуца.Я не могу этого рекомендовать.
очень хорошо организован и охватывает 30 шаблонов проектирования. Что отличает его от других, так это
насколько хорошо объяснен каждый шаблон и охват нескольких менее известных
шаблоны проектирования, такие как Memento, Essence, Object Recursion, Acyclic Visitor.
Хайнц уделяет достаточно времени, чтобы подробно рассказать, как возник каждый узор и его
основные обычаи. В настоящее время это 5-е издание, курс в значительной степени охватывает материал.
глубины, но в то же время не тратит больше времени, чем необходимо на каждую
шаблон.Что я нахожу очень полезным, так это комментарии о распространенных ошибках
избежать и способы расширения и улучшения реализации этих проектов
паттерны с использованием новейших языковых возможностей Java 8,9 и 10. Персональный
мои любимые упражнения, которые следуют каждому шаблону проектирования, позволяя
ученику применить на практике то, что она узнала. И если вы выполните все
упражнения и отправьте их Хайнцу, он выдаст вам окончание курса
сертификат »
Стефан Драгнев
Запрос на курс по шаблонам дизайна
Предварительные требования
Участники должны хорошо понимать объект
концепции ориентации, такие как наследование, инкапсуляция
и полиморфизм.Знание Java — преимущество.
- Предыдущее образование: Желательно формальное
квалификация в области информатики или смежной области. - Требуемый опыт: Не менее одного года
профессиональное программирование на Java или другое объектно-ориентированное
язык, такой как C # или C ++. - Оборудование: Пожалуйста, обратитесь к нашему руководству по настройке, чтобы узнать, как настроить
вверх свою лабораторию. - Подготовка: Прочтите книгу «Шаблоны проектирования в первую очередь».
Варианты ценообразования
У вас есть несколько вариантов пройти этот курс:
1. Внутренний курс:
Представлено в вашей компании либо лично одним из наших
Сертифицированный JavaSpecialist
Инструкторы или по видеоконференцсвязи. Стоимость 11500 €
до 10 студентов, выше
дополнительно 800 евро на студента плюс проезд
расходы на инструктора плюс одного ассистента преподавателя.
Пожалуйста свяжитесь с нами
если у вас есть вопросы.
2. Самостоятельная работа:
См. Наше самообучение
вариант для получения дополнительной информации.
* Цена без НДС и налогов ЕС, если
применимо. Пожалуйста, свяжитесь с нами, чтобы узнать точное предложение для вашего
страна.
Открытые курсы
Расположение | Даты | Ведущий | Язык | Комиссия |
---|
* Цена без НДС ЕС, если применимо.Пожалуйста свяжитесь
для получения точного предложения для вашей страны.
Подробное описание
- 1. Введение
- 1.1. Lay of the Land
- 1,2. Зачем учить выкройки
- 1,3. Что такое шаблон дизайна
- 1,4. Ссылки, используемые в курсе
- 1,5. Унифицированный язык моделирования (UML)
- 1,6. Управление памятью Java
- 1,7. Оптимизация Java HotSpot
- 1.8. Современный синтаксис Java
- 2. Шаблон абстрактного класса (PLoPD4)
- 2.1. Пошаговое руководство по упражнению «Абстрактный класс»
- 3. Шаблон построителя (GoF и эффективная Java)
- 3.1. Прохождение: Упражнение 1 для строителя
- 3.2. Прохождение упражнения 2 для строителя
- 4. Образец сущности (PLoPD4)
- 5. Образец сувенира (GoF)
- 5.1. Прохождение упражнения 1 «Образец воспоминания»
- 5.2. Прохождение упражнения 2 «Образец воспоминания»
- 6. Шаблон прокси (GoF)
- 6,1. Прокси-шаблон, упражнение 1, пошаговое руководство
- 6.2. Прокси-шаблон, упражнение 2, пошаговое руководство
- 7. Модель наилегчайшего веса (GoF)
- 8. Шаблон стратегии (GoF)
- 8.1. Прохождение упражнения 1 стратегии
- 8,2. Прохождение стратегического упражнения 2
- 9. Шаблон пустого объекта (PLoPD3)
- 9.1. Прохождение упражнения с нулевым объектом
- 10.Шаблон итератора (GoF)
- 10.1. Прохождение упражнения по шаблону итератора
- 11. Заводской метод (GoF и рефакторинг)
- 12. Шаблон метода шаблона (GoF)
- 12.1. Упражнение по методу шаблона
- 13. Составной узор (GoF)
- 13,1. Прохождение составного упражнения
- 14. Шаблон посетителей (GoF)
- 14.1. Прохождение упражнения для посетителей
- 15.Ациклический шаблон посетителя (PLoPD3)
- 15,1. Прохождение упражнения для ациклических посетителей
- 16. Шаблон рекурсии объекта (PLoPD4)
- 17. Шаблон посетителя по умолчанию (PLoPD3)
- 17,1. Прохождение упражнения для посетителей по умолчанию
- 18. Шаблон адаптера (GoF)
- 18,1. Прохождение упражнения адаптера
- 19. Командный шаблон (GoF)
- 19,1. Командное упражнение 1, пошаговое руководство
- 19.2. Командное упражнение 2, пошаговое руководство
- 20. Шаблон декоратора (GoF)
- 20,1. Прохождение упражнения Decorator
- 21. Шаблон объекта расширения
- 22. Одиночный шаблон (GoF)
- 22,1. Прохождение упражнения 1 для синглтона
- 22,2. Прохождение Singleton Exercise 2
- 22,3. Прохождение Singleton Exercise 3
- 23. Шаблон состояния (GoF)
- 23,1. Прохождение государственного упражнения
- 24.Фасадный узор (GoF)
- 24.b. Шаблон фасада сеанса (JEE)
- 25. Опытный образец
- 26. Абстрактный узор фабрики (GoF)
- 26,1. Прохождение упражнения Abstract Factory
- 27. Шаблон переводчика (GoF)
- 27,1. Пошаговое руководство к упражнению переводчика
- 28. Шаблон посредника (GoF)
- 29. Схема наблюдателя (GoF)
- 29,1. Прохождение упражнения Observer
- 30.Мостовой узор (GoF)
- 30,1. Прохождение упражнения на мостик
- 31. Схема цепочки ответственности (GoF)
- 31,1. Прохождение упражнения «Цепочка ответственности»
- 32. Заключение
Об авторе
Java Champion, автор информационного бюллетеня Javaspecialists, регулярно выступает на конференциях …
О Heinz
Суперпак 2020
Все наши курсы подготовки Java-специалистов в одном огромном пакете
Больше…
110% гарантия возврата денег
Если вас не устраивает качество обучения
или доставки, мы с радостью вернем вам 100% стоимости курса
сборы. На это необходимо обратить наше внимание в рамках
первые 4 часа курса, и следует дать шанс
исправьте то, что вас не устраивает. Если ты все еще
не удовлетворены, мы вернем вам 100% стоимости курса,
плюс мы сами оплатим дорожные расходы.Тренировка
материал остается собственностью JavaSpecialists.EU.
Политика отмены
Если курс отменен более чем за две недели до
в начале курса взимается плата за отмену в размере 10%.
применяются, плюс любые невозмещаемые командировочные расходы, понесенные
тренер.
Если курс отменен в течение двух недель после начала
конечно, будет применяться 50% сбор за отмену,
плюс любые невозмещаемые командировочные расходы, понесенные
тренер.
В случае отмены во время курса деньги не возвращаются.
.
Отзывы о курсах Java — JavaSpecialists
«Отличный учебный материал и отличный инструктор. Держите свой ум в тонусе». — Синди З. . (North Star Utilities)
«Каждый Java (nist) должен посетить JavaOne и пройти курс JavaMaster 🙂 в своей жизни :)» — Педро (Roche)
«Это отличный курс для всех, кто работает с Java. После прохождения этого курса я чувствую, что мои знания Java стали более полными благодаря широкому кругу затронутых тем.Я узнал о многих последних улучшениях API для решения некоторых старых проблем. Я также заполнил множество пробелов в некоторых областях, а в других случаях изучил совершенно новые темы. Хайнц чрезвычайно хорошо осведомлен и опытен, и он очень хорошо совмещает лекцию с эффективными лабораторными работами и здоровой дозой юмора. Наслаждайтесь! »- ( Anonymous )
«Я бы порекомендовал этот курс каждому опытному программисту Java, который хочет глубоко погрузиться в сложные темы языка Java.В ходе курса каждая тема четко объясняется и подкрепляется соответствующими примерами и часто практическими лабораторными работами, которые я считаю очень практичными »- Кшиштоф Козиол (Рош)
«Это один из наиболее углубленных курсов, которые я проходил, и к которому я обязательно буду часто возвращаться в своих повседневных обязанностях по программированию на Java». — Себастьян Дюбуа (Ericsson)
«Единственный курс, который действительно учит чему-то новому. Все другие курсы Java, предлагаемые в этом районе, слишком просты для наших нужд.»- Александра U (служащая правительства Канады)
«Очень полезный курс для старшего Java-разработчика». — Сяопин Дж. . (Канадский орган регистрации в Интернете)
«Упражнения были действительно хорошими. Иногда сложно, но действительно интересно. Нет ничего лучше, чем практика. Спасибо. Выступление и демонстрация были действительно хорошими!» — Мари-Франс G . (Сотрудник правительства Канады)
«Предоставленные скелеты для упражнений очень помогли в работе с проблемами сразу.»- Benoit L . (Bridgewater Systems)
«Отличный технический курс». — Гийом С . (Комиссия по государственной службе)
«Код, предусмотренный для упражнений, сэкономил время, чтобы сосредоточиться на интересных частях» — Adam F . (Национальный исследовательский совет Канады)
«Этот курс был очень полезным. Полученная информация будет использована, чтобы сделать меня и моих коллег лучшими разработчиками Java». — Брэд Ф. (Исследования в движении)
«На прошлой неделе я посетил Dr.Мастер-курс Хайнца М. Кабуца для специалиста по Java, который мой работодатель провел в качестве курса на месте. Я настоятельно
рекомендую этот курс, если вы свободно владеете Java, но хотите сделать еще один шаг вперед или напомнить себе о некоторых дополнительных функциях или тонкостях »- Asgeir Storesund Nilsen (Schlumberger)
«Я прошел курс в марте 2009 года в Оттаве и до сих пор использую советы и рекомендации для повышения производительности моего кода.
Самый полезный курс, который я когда-либо посещал !! Отличный обзор Java, хорошо преподанный, лучший курс, который я когда-либо посещал.»- Кэрол Серроул (Национальный исследовательский совет Канады)
«Очень интересный курс. По содержанию очень близко к реальной жизни программиста. Сам курс прошел очень профессионально и весело». — Томас Бош (codecentric AG)
«Замечательный курс, который объяснит вам, почему Java ведет себя именно так, и как вы можете эффективно ее использовать». — Фабиан Ланге (codecentric AG)
«Мастер-курс Java Specialist Master — это отличный тренинг по Java от доктора Хайнца Макса Кабуца.Я так много узнал за 4 дня, наполненные содержанием
(Более 1000 слайдов) с множеством упражнений. Доктор Хайнц Макс Кабуц обладает отличными навыками межличностного общения и презентаций »- Сантош Анто (Арбитрон)
«Однозначно того стоит: даже если вы являетесь старшим разработчиком Java, вам придется столкнуться с трудностями. Все темы очень актуальны для нашей повседневной работы в
Java и этот курс представляют собой возможность узнать важные детали и сложные вопросы, которые у вас редко бывает или время, чтобы либо узнать, либо полностью рассмотреть во время работы.»- Массимо Кальдерони
«Отличный обзор Java, хорошо преподанный, лучший курс, который я когда-либо посещал». — Доктор Розмари Д. (Вариал)
«Это отличный курс, и как менеджер я могу определенно понять, почему каждый сотрудник (включая менеджеров) должен пройти такой курс, прежде чем начинать какой-либо проект на Java». — Сакки Нел , менеджер по развитию продукта (Spescom DataVoice)
«Большой опыт программирования, много способностей, много юмора, много скромности — это Хайнц.»- Марина С . (Вариал)
«Спасибо за эту мотивирующую неделю для улучшения моих навыков Java. Я абсолютно рекомендую это как для начинающих, так и для опытных пользователей. Вы увидите, насколько увлекательной может быть Java». — Даниил Б . (Вариал)
«Какой прекрасный способ обратить любителя VB. Курс помог мне увидеть свет в бесконечном туннеле». — JC van Schalkwyk (CyberSim)
«Это определенно был лучший курс, который я когда-либо посещал по любой технологии, связанной с программированием.Хайнц действительно помог мне понять технологию, а не просто познакомил меня с ней (как в случае с большинством других курсов). Оглядываясь назад, мы все согласны с тем, что этот курс определенно был лучшим решением для нашей компании »- Jaco K . (CyberSim)
«Я посетил ваш курс по шаблонам дизайна, который вы провели для нас в офисе Prism в Кейптауне около двух лет назад. Я подумал, что ваш курс был превосходным, и с тех пор я использую шаблоны в своей работе (а также пропагандирую ценность использования шаблонов проектирования моим коллегам).»- Оливер Гарднер (Призма)
«Я был приятно удивлен, узнав эти шаблоны дизайна в своей повседневной работе». — Михаил М . (Alcatel Австрия)
«Примеры были очень похожи на то, что я испытал в реальной жизни, поскольку курс был представлен кем-то, у кого есть практический опыт разработки программного обеспечения на Java. Вы можете положиться на предложения — они действительно работают!» — Dagmar J . (Вариал)
«Этот курс научит вас тому, что должен знать каждый программист, серьезно относящийся к работе с Java.»- Аноним (Вариал)
«Курс был чрезвычайно интересным, информативным и дал мне глубокое понимание. Великолепно проведен!» — Uwe R . (Вариал)
«Даже если это звучит парадоксально, но между теорией шаблонов дизайна и их практическим повседневным применением был отличный баланс». — Аноним (Вариант)
«Замечательный курс!» — Аноним (Вариант)
.