Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Малый джентельменский набор знаний, начинающего девелопера корпоративного ПО 
:(
    Опции темы
rsm
Дата 25.6.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Предлагаю собрать в данной теме разбросанные по всему форуму крупицы информации о том, какими знаниями необходимо обладать программисту, желающему устроиться на работу в должности стажера (самое начало карьеры) по направлению разработки корпоративного ПО на Java. Подчеркну: только корпоративного ПО, а не сайтов, инет-магазинов и пр.

Проанализировав несколько десятков подходящих объявлений о приеме на работу, я выделил примерный список того, что работодатели требуют в обязательном порядке:
  • Java (как язык программирования)
  • J2EE, а конкретнее:
    а) JDBC
    б) EJB
    в) Servlet
    г) JSP
  • SQL
  • составление документации
Достаточно ли этого? Может быть нужно что-то добавить\убавить? Понятно что у каждого работодателя свои требования, однако очень хотелось бы видеть некий усредненный список. Он очень поможет начинающим разработчикам тем, что они будут знать, что конкретно им нужно изучать для успешного приема на работу.

Особое внимание хочу обратить на то, что означенный список должен определять исключительно минимальный (базовый) уровень, необходимый для входа в мир корпоративного ПО. Конечно, Velocity, Spring Framework и прочие модные штучки это очень здорово, но сперва нужно заложить некоторое основание. Вот именно его и хотелось бы видеть в данной теме.

Заранее благодарю за участие!


Добавлено: по результатам обсуждения окончательный вариант списка выглядит примерно так:

- твердо знать:
  • Java (как язык программирования)
  • SQL
  • javadoc
  • CVS
  • J2SE (основные средства стандартной библиотеки)
  • ant
  • JUnit
  • servlets
  • JSP
- иметь представление:
  • MVC
  • spring\strust framework
  • hibernate
  • JSF
  • JMS // надо ли?
  • EJB
  • web-services
  • дополнительные средства документации (TWiki, OpenOffice)


Это сообщение отредактировал(а) rsm - 5.7.2007, 09:49
PM MAIL   Вверх
nornad
Дата 25.6.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



SQL подразумевается.
Для минимального уровня знаний, имхо, наличие с списке сервлетов и JSP спорно. Скорее "очень желательно", чем "необходимо". Да и составление документации тут не к месту. Мой опыт показывает, что кодеры не умеют писать документацию, а те, кто умеет её писать, либо не умеют кодить, либо делают это плохо (исключения бывают, но это всего лишь редкие исключения из правила).


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
rsm
Дата 25.6.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(nornad @  25.6.2007,  20:11 Найти цитируемый пост)
SQL подразумевается

Логично, добавил.

Цитата(nornad @  25.6.2007,  20:11 Найти цитируемый пост)
наличие с списке сервлетов и JSP спорно

А если разрабатываемое ПО имеет web-интерфейс? Что, кстати, совсем не редость (а скорее даже правило) для корпоративок.

Цитата(nornad @  25.6.2007,  20:11 Найти цитируемый пост)
кодеры не умеют писать документацию

Кто ж тогда ее пишет? smile
PM MAIL   Вверх
powerOn
Дата 25.6.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(rsm @  25.6.2007,  17:48 Найти цитируемый пост)
Подчеркну: только корпоративного ПО, а не сайтов


Это как? Львиная доля корпоративного ПО имеет веб интерфейс. Даже сам написал:

Цитата(rsm @  25.6.2007,  17:48 Найти цитируемый пост)
в) Servlet
г) JSP


а с сайтами возиться не хочешь.  smile 

Впрочем, позволю себе высказать свое IMHO:
Лучше выбрать одно J2EE направление и быть гуру в нем, а не рассеиваться по всему сразу. Например View Tier (HTML, AJAX, Servlet, JSP, JSF, Java Script ...) или Business Tier (Spring, EJB, Web Services, Quartz ...) или Data Tier (SQL, XML, Hibernate, Java Persistence, XQuery, Lucene...)  Это я говорю по тому, что J2EE невероятна большая и динамично развивающаяся технология. Знания устаревают на днях. То что было современно 3 года назад сейчас уже никому нужно. Только если в команду поддержки ПО не попадешь. Выучить все очень непросто, а эксперты везде нужны... Хотя, конечно же, как минимум, ознакомленным нужно быть со всем...

Добавлено через 52 секунды
Цитата(rsm @  25.6.2007,  18:58 Найти цитируемый пост)
Кто ж тогда ее пишет? smile 

Technical Writer


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
v2v
Дата 25.6.2007, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



Цитата

Лучше выбрать одно J2EE направление и быть гуру в нем, а не рассеиваться по всему сразу. Например View Tier (HTML, AJAX, Servlet, JSP, JSF, Java Script ...) или Business Tier (Spring, EJB, Web Services, Quartz ...) или Data Tier (SQL, XML, Hibernate, Java Persistence, XQuery, Lucene...)  Это я говорю по тому, что J2EE невероятна большая и динамично развивающаяся технология. Знания устаревают на днях. То что было современно 3 года назад сейчас уже никому нужно.

ну и какую же выбрать?

Цитата

кодеры не умеют писать документацию

кодеры пишут тест-кейсы , так что 
Цитата

составление документации

всё таки надо


--------------------
PM   Вверх
rsm
Дата 25.6.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(powerOn @  25.6.2007,  21:14 Найти цитируемый пост)
а с сайтами возиться не хочешь

Пардон, но насколько мне известно, web-интерфейс только выглядит как сайт, но таковым вовсе не является. В первую очередь потому, что корпоративное ПО предназначено исключительно для внутреннего использования. А сайт доступен всегда и для всех. Конечно и в корпоративке можно сделать отдельный пользовательский интерфейс, который будет сообщаться с внешним миром, но это будет опять таки не сайт, а лишь часть корпоративки.

Цитата(powerOn @  25.6.2007,  21:14 Найти цитируемый пост)
Лучше выбрать одно J2EE направление и быть гуру в нем

А всегда ли это приемлемо для работодателя? ИМХО очень даже редко приемлемо. Потому что настолько тонкое разделение направлений может быть только в очень большом коллективе, а компаний подходящего масштаба в мире не так много.
PM MAIL   Вверх
nornad
Дата 25.6.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



Цитата(rsm @  25.6.2007,  22:20 Найти цитируемый пост)
но это будет опять таки не сайт

Это уже скатывается к дискуссии, что есть "сайт", а что - "вэб-интерфейс". Имхо, многие корпоративные проекты имеют не только вэб-интерфейс, но и полнофункциональную структуру сайта.

Цитата(rsm @  25.6.2007,  22:20 Найти цитируемый пост)
А всегда ли это приемлемо для работодателя?

Смотря, чего хочет работодатель. Если он хочет мальчика на побегушках, который будет латать дыры в проекте - нужен человек, который сносно разбирается во всём. Если он желает создавать современные продукты с высоким качеством - придётся искать специалистов.

Цитата(rsm @  25.6.2007,  22:20 Найти цитируемый пост)
Потому что настолько тонкое разделение направлений может быть только в очень большом коллективе

Хм... три человека - это много? А ведь разделение будет уже достаточным, чтобы они успешно выполняли проекты. Конечно, если это будут специалисты, а не новички.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
powerOn
Дата 25.6.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(v2v @  25.6.2007,  19:42 Найти цитируемый пост)
ну и какую же выбрать?

Какая больше нравится, ту и выбирай.  smile 

Цитата(rsm @  25.6.2007,  20:20 Найти цитируемый пост)
Пардон, но насколько мне известно, web-интерфейс только выглядит как сайт, но таковым вовсе не является.

Лично для меня, web интерфейс и сайт это одно и тоже. Поскольку работать с ним приходится через Web-браузер. Технология все равно сводятся к отправке HTML разметки браузеру клиента. Или клиент это не браузер, а GUI программа?

Цитата(rsm @  25.6.2007,  20:20 Найти цитируемый пост)
А всегда ли это приемлемо для работодателя? ИМХО очень даже редко приемлемо.

Не думаю что всегда. Все от организации труда в конторе зависит. Бывают большие конторы и большие проекты, а бывают не очень. Бывают команды где 15 студентов и пару матерых спецов, а бывают где штук 7 спецов и все. Просто последние везде нужны. Это факт. 
Впрочем я конечно же не утверждаю, что нужно обязательно учить что-то одно... можно все и сразу. Это как ты сам хочешь: в ширь или в глубь копать.

P.S:
Вот я в своем первом посте написал 16 различных технологий (причем далеко еще не все). Даже если уделять каждой на серьезное изучение по 1 месяцу то уйдет примерно полтора года (хотя тут от человека сильно зависит). За полтора года, выйдут новые версии библиотек и где поменяют (добавят фитч) процентов на 20, или придут более "модные" технологии. А если чем то постоянно не пользоваться то это забывается, значит все нужно заново повторять. Мне вообще парой кажется, что людей разрабатывающих новые технологии гораздо больше чем их использующих smile Вывод могу сделать такой: Хочешь трудится в j2ee сфере готовься к постоянному самообразованию. 



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
tux
Дата 26.6.2007, 07:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Добавлю свои 5 копеек. 

Во-первых, я бы разделил технологии (стандарты) и их реализации. Например, сервлеты и JSP - это технологии, а Tomcat, Jetty, Resin - это реализации. Предполагается, что веб-приложение, написанное с помощью JSP и сервлетов будет работать с любой реализацией. Если рассматривать Tomcat и Jetty, то я почти уверен, что так и будет, если же тоже самое приложение попытаться запустить на IBM Websphere, я бы поостерегся говорить так однозначно. Мораль - любая реализация обладает своими особенностями, которые в общем-то нужно знать, но приходит это с опытом. И в первую очередь нужно знать технологии.  

Во-вторых, рассмотрим те же JSP и сервлеты. Это те технологии, которые точно нужно знать если ты собираешься разрабатывать веб-приложения. Но! Их точно нужно знать если ты в ближайшем будущем собираешься участвовать в разработке коммерческих проектов. Есть множество людей, убежденных, что Velocity - гораздо лучшая альтернатива JSP (я в их числе), тем не менее в работе приходится использовать JSP и ни что иное. По той простой причине, что это стандарт де-факто и пиарится Sun, хотя может быть и использование Velocity было бы гораздо более эффективным. Поэтому для участия в коммерческих проектах (если конечно, не ты сам организатор проекта и не определяешь чем пользоваться), нужно знать стандартные вещи - JSP, сервлеты, JMS, веб-сервисы и т.п.

В третьих, специализация на каком-то одном tier может быть и верна, но на самом раннем этапе карьеры программиста. Велика вероятность того, что при переходе на новый проект ты скажешь, что хочешь заниматься data tier, а менеджер проекта тебе ответит: "Да у меня таких уже 5 человек, а займись-ка ты, дружок, веб-вервисами". Думаю, иметь представление нужно обо всем. И готовиться постоянно изучать что-то новое. Честно скажу, заниматься этим приходится ежедневно. Долго продержаться с каким-то ограниченным запасом знаний вряд ли представляется возможным. Мой небольшой опыт программирования на Delphi когда-то убедил меня в том, что можно наизусть знать все API и писать не заглядывая в документацию. Так вот, с J2EE так не пройдет, здесь помнить все - не в человеческих силах, всего очень много, при этом это самое "все" постоянно меняется.

В-четвертых, писать документацию таки надо уметь, полезно для себя же. Через полгода бывает сложно разобраться в своем собственном коде. Хоть у меня и большой опыт в J2EE, в коммерческих проектах я участвую относительно недолгое время. Тем не менее, видел и свой проект и несколько параллельных. У меня такое ощущение, что технический писатель - это некая мифическая личность, которую никто никогда не видел. Допускаю, что где-то такие специально обученные люди есть, я же всегда документацию писал сам.

Ну и последнее. Все-таки, самый быстрый путь изучения - это туториал от Sun. Единственное "но" - тот сервер приложений, который у них используется в примерах (Sun application server) на практике встречается очень редко, скорее всего придется переходить на что-то другое.
PM MAIL Skype GTalk Jabber YIM   Вверх
batigoal
Дата 26.6.2007, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(tux @  26.6.2007,  08:25 Найти цитируемый пост)
У меня такое ощущение, что технический писатель - это некая мифическая личность, которую никто никогда не видел.

Нет, они существуют, но "сырьё" для них всё равно должен предоставлять разработчик.

Цитата(tux @  26.6.2007,  08:25 Найти цитируемый пост)
Ну и последнее. Все-таки, самый быстрый путь изучения - это туториал от Sun. Единственное "но" - тот сервер приложений, который у них используется в примерах (Sun application server) на практике встречается очень редко, скорее всего придется переходить на что-то другое. 

Неужели отличия достаточно значительны?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
tux
Дата 26.6.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(batigoal @  26.6.2007,  08:16 Найти цитируемый пост)
Неужели отличия достаточно значительны? 

Нет конечно, технологии везде одни и те же. Но иногда там описываются вещи, которые генерируются или создаются инструментами SAP. Средства других серверов приложений могут сильно отличаются.
PM MAIL Skype GTalk Jabber YIM   Вверх
Ulysses4j
Дата 26.6.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 6.6.2007
Где: Ростов-на-Дону

Репутация: 1
Всего: 10



Цитата(tux @  26.6.2007,  08:25 Найти цитируемый пост)
 Если рассматривать Tomcat и Jetty, то я почти уверен, что так и будет, если же тоже самое приложение попытаться запустить на IBM Websphere, я бы поостерегся говорить так однозначно.

Как я понимаю, дело обстоит обратным образом: то, что запускается на Tomcat, должно запускаться везде, потому что Tomcat это reference implementation - эталон - для спецификаций servlets&JSP. Если кто-то говорит, что он эти спецификации реализует, то все, что запускается на Tomcat, должно запускаться и у него. 

С другой стороны, то, что разработано под некоторым application server (WebSphere, WebLogic, JBoss, SAP) - может быть (скорее даже - "чаще всего") непереносимо (по меньшей мере, без дополнительных трудностей).

Добавлено @ 14:02
Цитата(powerOn @  25.6.2007,  19:14 Найти цитируемый пост)
Лучше выбрать одно J2EE направление ... View Tier ... или Business Tier ... или Data Tier ... Хотя, конечно же, как минимум, ознакомленным нужно быть со всем...

+1


Это сообщение отредактировал(а) Ulysses4j - 26.6.2007, 14:34


--------------------
Communication is critical to the job of a programmer.
C. Jazdzewski. Fatherly Advice To New Programmers
PM MAIL WWW   Вверх
tux
Дата 26.6.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Ulysses4j @  26.6.2007,  13:59 Найти цитируемый пост)
Как я понимаю, дело обстоит обратным образом: то, что запускается на Tomcat, должно запускаться везде, потому что Tomcat это reference implementation - эталон - для спецификаций servlets&JSP.

Согласен, в Tomcat об этом говорят. Скорее всего, потому что Tomcat разрабатывают сотрудники Sun.

Цитата(Ulysses4j @  26.6.2007,  13:59 Найти цитируемый пост)
Если кто-то говорит, что он эти спецификации реализует, то все, что запускается на Tomcat, должно запускаться и у него. 

Где такое написано? Серверы приложений J2EE проходят соответствующую сертификацию у Sun. В процессе сертификации, насколько я знаю, не сказано, что веб-контейнер должен работать идентитично Tomcat.

Цитата(Ulysses4j @  26.6.2007,  13:59 Найти цитируемый пост)
С другой стороны, то, что разработано под некоторым application server (WebSphere, WebLogic, JBoss, SAP) - может быть (скорее даже - "чаще всего") непереносимо (по меньшей мере, без дополнительных трудностей).

Как я понимаю, если сервер приложений прошел сертификацию у Sun, то приложения должны быть переносимы, за исключением деталей, которые зависимы от разработчика (они явно указаны в спецификации). Тогда мне совершенно не понятно почему в Websphere 6.1 ранних версий жизненный цикл обработки запроса не соответствует спецификации, хотя Websphere сертификацию прошел.
PM MAIL Skype GTalk Jabber YIM   Вверх
Ulysses4j
Дата 26.6.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 6.6.2007
Где: Ростов-на-Дону

Репутация: 1
Всего: 10



Цитата(tux @  26.6.2007,  18:41 Найти цитируемый пост)
Tomcat разрабатывают сотрудники Sun.

В смысле, это те сотрудники, которые по совместительству состоят в ASF? ;)

Цитата(tux @  26.6.2007,  18:41 Найти цитируемый пост)
Где такое написано?

Каюсь, ссылку привести не могу.

Цитата(tux @  26.6.2007,  18:41 Найти цитируемый пост)
не сказано, что веб-контейнер должен работать идентитично Tomcat

Этого не сказал и я: я не говорил, что работать должны идентично, я сказал, что то, что запускатся на Tomcat, должно запускать в других местах, потому что Tomcat  предоставляет минимальную функциональность сервлет-контейнера, а app-серверы - надмножество этой функциональности:
Цитата( Chopra et al. Professional Apache Tomcat 5)
Whereas Tomcat provides an implementation of the Servlet and JSP APIs (and is thus called a Servlet container), application servers provide a superset of Tomcat’s functionality

Все, что я сказал выше, в основном вытекает из этого представления о надмножестве. 

Про ситуацию с WebSphere ничего сказать не могу.

ЗЫ Это все, наверное, жуткий оффтоп пошел. Прошу прощения. Надеюсь, мы как-то остановимся.

Это сообщение отредактировал(а) Ulysses4j - 26.6.2007, 19:04


--------------------
Communication is critical to the job of a programmer.
C. Jazdzewski. Fatherly Advice To New Programmers
PM MAIL WWW   Вверх
batigoal
Дата 26.6.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Главное, чтобы интересно было. И это правило соблюдено smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1005 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.