26 января 2013 года состоялся вебинар "Пошаговый план изучения J2EE и веб программирования" Тимур Батыршинова. Я захотел посетить его с целью немного расширить кругозор и по возможности узнать ответы на некоторые свои вопросы. Так сказать взглянуть на свой прогресс со стороны. Предыдущий вебинар по Java был о настолько элементарных темах, что у меня заранее не было иллюзий получения ответы на все вопросы. Но даже если узнать немного "живой" информации, это уже хорошо. Поэтому я выделил время и теперь вкратце изложу суть презентации, прибавлю свои комментарии.
Это был мой второй вебинар посвященный Java. Я с удовольствием разместился в комнате чата, приготовил блокнот и ручку для заметок, налил кофе... В прошлый раз в комнате было около 100 человек, и за час до начала уже можно было пообщаться с коллегами по разным IT вопросам. Правда коллег было не так много, в основном все только начали программировать, поэтому часто беседы сваливались в очередной холивар android-iphone, win-lin, java-c#. Ну да все-равно было весело :). В этот раз в комнату пустили за 10 минут до начала презентации. Мы успели узнать что среди нас много начинающих разработчиков java, и тех кто еще только учится.
Темы, который Тимур объявил для вебинара:
- что такое J2EE, из чего он состоит
- какие знания нужны, чтобы начать изучать J2EE
- что нужно изучать и в какой последовательности
- какие современные технологии наиболее востребованы
- что такое EJB
- личный опыт применения J2EE и веб программирования
- что такое сервера приложений, порталы
- что такое JSF, Spring, Hibernate, Ajax
- зачем нужны "облака" (Clouds)
- и многое другое
По моему мнению, Тимур рассказал достаточно хорошо про сервера, про то зачем нужны те или иные технологии, про пошаговый план изучения J2EE и веб программирования. Меня больше всего интересовал Spring, поэтому я все пытался расспрашивать про него Тимура, но его ответы были всегда уклончивы и в конце он все-таки сказал: "Со спрингом я дела не имел, начал понемногу читать - довольно интересная технология".
Кстати, достаточно часто начинающие программисты не понимают что такое сервер. И на вебинаре об этом постоянно спрашивали. Объясню в двух словах.
Если одна программа посылает какой-то запрос другой программе и (возможно) получает ответ, то это клиент. Если программа ожидает поступающие запросы и (возможно) выдает ответы на них - это сервер. У программ есть возможность слушать порты операционной системы на предмет поступающих сообщений и передавать по ним ответы (или запросы). Портов много, программа может задействовать несколько портов. Благодаря сети, можно посылать сообщения на компьютеры, находящиеся в ней. Для этого указывают ip адрес и порт. Например 80.90.102.201:8080. Распространенный сервер - tomcat. Если его запустить, то мы сможем зайти на приложение, развернутое на этом сервере. Если эта информация показалась вам новой - скачайте tomcat, попробуйте написать простой html файл, и откройте его в браузере через сервер томката.
Вот план, по которому Тимур предлагает изучать веб программирование для Java.
- ООП
- JDBC
- Архитектура J2EE
- HTML
- Запросы, протоколы
- XML
- CSS
- Сервлеты
- JSP
- JSF
- Facelets
- ORM (JPA)
- JavaScript, Ajax
- EJB
- JMS
Я не совсем понял, что имелось ввиду под знанием JDBC и Архитектурой J2EE. Сейчас я понимаю знание JDBC как умение приконнектиться к базе и получить данные. Соответственно есть понятия пула соединений, транзакций, prepare statements и т.д. Про знание архитектуры J2EE вообще не могу ничего сказать - что под этим подразумевается? Двухзвенка, трехзвенка?
XML выделен в середину плана. Мне кажется, о нем надо узнать сразу после написания нескольких маленьких программ. И научится парсить xml хотя бы каким-нибудь способом.
Далее идут базовые технологии для веб, но без определенного порядка. Эти технологии неразрывны друг с другом и изучать их надо сразу все, а не пытаться по одному что-то изучать с перерывом во времени. Тут нужно понимать, что конечный продукт для веба содержит HTML, CSS, JavaScript, какой-то серверный код, Ajax. Поэтому эффективно будет сразу написать маленькое приложение, используя сервлет. Хорошим первым приложением будет сайт, показывающий время до наступления нового года. Ajax-ом запрашивать время у сервлета и выводить его на html страницу.
Сервлеты - это самая базовая веб технология Java. В развитии Java появились JSP, потом появились JSF а затем Facelets. По крайней мере, JSP точно является эволюционным развитием сервлетов. Тимур говорил, что JSF и Facelets тоже являются ступенями эволюции.
Про оставшиеся технологии я говорить не буду, краткий поиск в гугле даст хорошее представление о них.
Лично меня интересовало, в каком месте этого списка может стоять Spring, GWT и веб-сервисы, но ответа я не получил. Сам доклад был достаточно интересным, наглядным. После окончания вебинара Тимур рекламировал свои курсы. Наверное они и хороши, но у меня ощущение, что самостоятельно можно изучить Java за то же время. Поэтому лично в его курсах не вижу никакой пользы для себя.
Время, которое Тимур посчитал понадобиться на изучение этого списка, 2-3 месяца. Очень сомневаюсь в этой оценке. Что бы понять концепции веба нужно время, чтобы понять концепции и сферы применения технологий нужно время. Причем просто прочитать и узнать - это одно, а сделать эти знания "своими" - другое.
Лучший способ освоить технологии - работать с ними. Я не имею права говорить, что путь к успеху надо прокладывать большим трудом. Потому что еще не достиг успеха. Но логические предположения, какой-то опыт и наблюдения говорят мне об этом.
Спасибо за статью, как раз записался на вебинар Тимура по J2EE в это воскресенье. Уже есть представление что на нем будет. Еще он проводит набора на свой тренинг по веб программированию на Java. Наверное луче все это самостоятельно изучить.
ОтветитьУдалить