Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Java EE прог - как вы устраивались на работу?


Автор: lesha_od 28.4.2007, 08:20
/прошу не переносить пока в работу, потому что в этом форуме больше людей, понимающих в технологиях java ee/

Очень интересно, какие сейчас направления в Java EE используются наиболее широко. Я через год заканчиваю университет, то есть целый год у меня на изучение технологий Java.

Пока что заметил такие вещи:

1. С опытом работы берут куда угодно. Но чтобы получить работу, связанную с Java EE, а соответственно и опыт, нужно начинать с "левых" вакансий, так или иначе связанных с Java, а потом переходить на более серьезные.
Кто как начинал карьеру, связанную с Java?

2. Непонятно, за чем "гнаться" в технологиях. Только закончил ознакомление с JSP, JSF, Servlets. И на уровне SCJP знаю Java. Какие сейчас направления актуальны, какие будут актуальны через год? Понятно, что Enterprise JavaBeans нужно изучать, а что еще? AJAX + JSF? Scruts?

3. Где можно почитать актуальную информацию про Java? Я нашел много книг и журналов, но там не совсем то.

4. Нужно ли получать сертификаты SCJP, SCJD?

Автор: tux 28.4.2007, 09:29
Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Но чтобы получить работу, связанную с Java EE, а соответственно и опыт, нужно начинать с "левых" вакансий, так или иначе связанных с Java, а потом переходить на более серьезные.

Что за левые вакансии? 

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Непонятно, за чем "гнаться" в технологиях.

За тем, что в вакансиях мелькает. Все зависит от конкретного проекта. Что в нем используется, то и нужно знать. Заранее угадать что понадобится, думаю, вряд ли возможно. Если посмотреть в сторону MVC-фреймворков, то достаточно знать один и понимать как это работает, чтобы начать использовать любой другой. 

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Какие сейчас направления актуальны, какие будут актуальны через год?

А кто его знает? Есть проекты, где используется то, что было модно 5 лет назад. Какая тогда разница что будет модно завтра? Не стоит думать, что всё Java-сообщество сломя голову кидается в очередной мэнстрим. То, что Sun считает, что JSF - это круто еще не привело к тому, что все повсеместно его используют. То же самое касается много другого. 

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Понятно, что Enterprise JavaBeans нужно изучать

Зачем? Уже давно ни одного нового проекта на EJB не видел. Понадобится, изучишь. Сомневаюсь, что стоит тратить несколько месяцев чтобы потом про EJB навсегда забыть.

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
AJAX + JSF? Scruts?

Или Spring или Wicket или еще что-то. Тебе опыт нужен, а не поверхностное знание всего. Хорошо конечно представлять что и с чем едят, но на это много времени не надо, а вот опыт годами получается. AJAX - это модно, но пока только один проект видел, где он реально используется. Если уже знаком с JSF, ну сделай какое-нибудь небольшое приложение на нем. В вакансиях он встречается.

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Где можно почитать актуальную информацию про Java? Я нашел много книг и журналов, но там не совсем то.

А "то" - это что? Вообще говоря, на http://java.sun.com/ все актуальное написано. Плюс куча порталов по Java существует.

Цитата(lesha_od @  28.4.2007,  08:20 Найти цитируемый пост)
Нужно ли получать сертификаты SCJP, SCJD?

Не нужно, как правило, никто на них не смотрит. Уже не раз встречал ситуацию когда в конторе у Java-программеров никаких сертификатов не было, зато Oracle DBA и админы были увешаны сертификатами по Java.

Автор: chief39 28.4.2007, 12:10
Разберись с веб-программированием,
работа с БД - джейдибиси, связки с крупными серверами, транзакции, етц
фундаменталзы - чтоб было как удобный молоток, а не непонятная дрель.
еджиби - полистай, попробуй.
ОРМ какой-нить - ентити 3.0 , хибернейт

А там - пофик - иди и работай. Рвись сразу как можно выше - выучишься.
Всё равно всех технологий не осилить, в каждом новом проекте что-то новое - будешь раз в пару месяцев какую-то технологию подучивать on demand

Автор: lesha_od 28.4.2007, 14:53
tux

Цитата

Что за левые вакансии? 


Дело вот в чем. Все хотят программистов Java EE с опытом работы. Мол новичков мы не берем, зато спецам платим много. И говорят "иди в наше отделение QA, а потом через год-два наберешься опыта и переведешься на другую должность". Что лучше - устроиться так, или просить работу на Java EE со сравнительно низким уровнем оплаты?

Цитата

А "то" - это что? Вообще говоря, на http://java.sun.com/ все актуальное написано. Плюс куча порталов по Java существует.

А можно один хороший, на котором хорошее наполнение, и достаточно посещаемый? На английском.


chief39

а есть универсальные технологии, которые в любом случае нужно досконально знать? кроме общих знаний по всей системе

Автор: tux 28.4.2007, 15:47
Цитата(lesha_od @  28.4.2007,  14:53 Найти цитируемый пост)
Что лучше - устроиться так, или просить работу на Java EE со сравнительно низким уровнем оплаты?

ИМХО лучше второе, если конечно цель именно Java. Тогда опыта действительно быстро наберешься.

Цитата(lesha_od @  28.4.2007,  14:53 Найти цитируемый пост)
А можно один хороший, на котором хорошее наполнение, и достаточно посещаемый? На английском.

Интересно зачем тебе посещаемость? Вот сборка отовсюду - http://www.j2eeolympus.com/, насколько посещаемая, не знаю. И вот - http://www.theserverside.com/, J2EE community.

Автор: chief39 28.4.2007, 15:47
Цитата(lesha_od @  28.4.2007,  14:53 Найти цитируемый пост)
или просить работу на Java EE со сравнительно низким уровнем оплаты?

!

Потом ты сам поймёшь что надо знать, выучишь это, попробуешь, запишешь в резюме опыт работы и спокойно пойдёшь в любую контору которая и выдвигает такие требования.
Кстати, зачастую 3-5 лет опыта и бла-абла - это "очень желательно". Но такова сейчас ситуация, что возьмут и с годом-два на эту должность. А на джуниора - дык и без опыта могут взять.


Цитата(lesha_od @  28.4.2007,  14:53 Найти цитируемый пост)
chief39, 
а есть универсальные технологии, которые в любом случае нужно досконально знать? кроме общих знаний по всей системе 

Нет.
java fundamentals - чем лучше, тем лучше
jdbc - надо. Но может быть что в конкретном случае и не понадобится.
ant - да. Но может там maven или вообще ничего нет лдя сборки.
jsp/servlets/jsf - надо. Но есть проекты и без веба. Или роли в проектах, когда веб не нужен.
struts/spring/velosity - полезно, но... знаю проекты где этого вовсе нет
ejb - весомо, дорого и "имиджево". Полезно, но опять-таки... может им нужен просто обалденный джава программер,а не кое-какой знаток еджиби.
hibernate и проч - полезно, но не факт что везде используется(даже напротив иногда) 

Учи и пробуй просто направления с одной какой-то технологией в них.
Веб-программирование - джсф или struts
еджиби
пару утилит типа анта-мавена-круиза-континуума
остальное потянет за собой.

Короче выучи какой-то кусочек и иди на работу. Даже на 24 бакса в месяц(хотя, чем больше - тем лучше smile ). Через месяц ты почувствуешь что учиьт, что ты знаешь и чего стоишь.  попросишь сколько надо.  Или сменишь работу уже уверенней.

По правде говоря, я когда-то пришёл на J2EE программиста  с маааахоньким некоммерческим опытом джавы. Правда были си и скл. Прошёл месяц - и уже наман. три месяца - полноценный программер по направлению. анты, еджибя, паттерны, orm-ы и проч сами попадались под ноги и просили с ними разобраться. А выучив несколько технологий, выучить 10-ю - не проблема.

Погляди на "КОТа", J2EE во всей красе... а потом хлоп - и сишарп. Уверен, если нуна - хоть перл, хоть фортран.

Так что... дорогу осилит идущий. Всё равно тебя будут брать не за огромный опыт или знания а за перспективность. Базовый багаж знаний - это лишь для резкого старта твоего. 


Автор: lesha_od 28.4.2007, 19:32
У меня еще вот такой вопрос. Поскольку я программист очень начинающий, и серьезные проекты не разрабатывал - а только университетские, или достаточно небольшие по размеру.
Должен ли я наизусть знать, что например для создания собственного тега нужно наследовать класс SimpleTagSupport и перезаписать метод doTag? Нужно ли досконально наизусть знать части web.xml? Либо я могу полагаться на справочники, свойства среды разработки и прочее?


tux

Цитата

Интересно зачем тебе посещаемость?

Обычно на посещаемом комьюнити есть посещаемый форум.

Добавлено через 5 минут и 2 секунды
chief39

И по поводу сборки проектов. Я пишу на NetBeans, там достаточно удобно всё разложено. Нажал F6 - проект скомпилирован, отдеплоен (как это по-русски - распространен?smile ), и запущен. Или это не совсем то?
Раньше писал Java-приложения на Eclipse, но там нет встроенной поддержки Java EE.

Автор: Hidrag 28.4.2007, 20:38
lesha_od, НетБинс вешь просто замечательная, но хорошо бы знать как он и что делает, вот для этого чисто ради практики стоит собрать приложение без него smile

За обращение к справочной информации никто ругать не будет, даже порой не так важно много знать, как где найти нужные "знания" в кротчайшее время в нужный момент.

И до web программрования стоит очччень хорошо знать "Java Core".

Моя истроия оччень похожа на твою. Я устроился в крупную фирму помощником аналитика, через два месяца взвыл, сказал что это не мое и пошел увольняться, меня спросили а что же "мое", я сказал что хочу программить на java, решили попробывать (хотя я до этого только только стал разбираться с java и писать свои первые хеллоуворды), и взяли меня младшим программистом, и вот уже 6 месяцев ежедневного кодинга. Скажу сразу, за 4 года самостоятельного изучения программирования (Delphi, C#) и 4 года в ВУЗе (а учусь я на программиста) я не узнал столько нового как запервые два месяца практики и работы.

ИМХО 

С уважением.

Автор: lesha_od 28.4.2007, 22:06
Hidrag

Да, конкретный проект дает очень сильный толчок к знаниям. Когда нужно было срочно сделать курсовую, за один день разобрался с основами Swing, и сделал достаточно приличный интерфейс.

Так все-таки НетБинс чаще всего используется для JEE? Он очень удобный, практически настолько, насколько и медленный. Дома-то разница в скорости по сравнению с Eclipse небольшая, а в универе по полчаса ждать приходится.

Автор: Greg 28.4.2007, 22:18
На данный момент своего развития я вижу два пути начать работать программистом:
1.Придти и сказать: "У меня нету опыта, но я хочу обучиться делать то-то или то-то.Я согласен на любую зарплату". Если тебя спросят, согласишься ли ты работать QA, то, ты, скорее всего, согласишься.
В итоге ты будешь тестировать софт, это тоже работа - там своя специфика и свои специалисты. Не факт, что тебя переведут на должность программиста, это потому что, в обязанности QA не входит написание кода и после 8 часов работы вряд ли у тебя останутся силы и желание писать код.
2.Изучить некоторые технологии самостоятельно, написать тестовый проект.Придти и сказть: "Я знаю то и то, у меня есть проект, который вы можете заценить". Ты покажешь, что можешь добиваться своей цели самостоятельно. Тебя уже можно будет оценить, а это очень большой плюс.
Так вот, для начала напиши тестовое задание, в интернете примеры таких заданий найти не сложно. Если это веб проект,то скорее всего тебя попросят использовать: Struts, Hibernate, JSTL - это то,что используют очень многие, но не факт, что фирма, в которую ты будешь устраиваться, использует именно их. Не расстраивайся, на работе тебе все равно придется обучаться постоянно и скоро ты поймешь, что лишних знаний не бывает smile. Ты получишь кое-какое представление о том, с чем в будущем тебе придётся иметь дело.Твой первый опыт придёт только после первых месяцев работы над реальным проектом. Написание тестовых веб проектов требует достаточного длительного времени на изучение и отладку, поэтому главное здесь - это не расстраиваться если, что-то сразу не получается, а мелкими, но ровными шагами идти вперёд.
Преимущества выбора Eclipse в качестве IDE:
1.Он разбит на части, как следствие относительно легкий, легко расширяемый.
2.Когда спрашивают, какой дистрибутив Linux выбрать - обычно отвечают, тот которым пользуются ваш знакомый гуру. Не скажу, что все, но многие профессионалы используют Eclipse из-за пункта 1.
3.Он бесплатный и с открытыми исходниками.
Желаю удачи.

Автор: lesha_od 29.4.2007, 00:07
Greg, с Эклипс есть возможность работать с Java EE? Как называется надстройка?

Автор: Greg 29.4.2007, 00:15
Юзай WTP 

Автор: lesha_od 30.4.2007, 18:48
Еще раз спрошу: на предполагаемом собеседовании насколько важны мои знания конкретных функций и связей между классами? Или я смогу сказать: должна быть такая-то функция, искать надо в АПИ.  Или например спросят, как с помощью JavaServer Faces сделать список с импортом элементов из web.xml. Я должен знать такие мелочи, либо просто знать, где это найти?
И должен ли я знать то, что за меня может сделать IDE?

Greg

Цитата

Так вот, для начала напиши тестовое задание, в интернете примеры таких заданий найти не сложно. Если это веб проект,то скорее всего тебя попросят использовать: Struts, Hibernate, JSTL - это то,что используют очень многие, но не факт, что фирма, в которую ты будешь устраиваться, использует именно их. Не расстраивайся, на работе тебе все равно придется обучаться постоянно и скоро ты поймешь, что лишних знаний не бывает

Где можно найти примеры тестовых заданий? Не просто "напиши часы, которые работают так-то", а с описанием функций и требованиями. Я хотел было найти задания к Sun Certified Java Developer, там дают полную спецификацию проекта, который надо сделать. Но даже не знаю, где искать - гугл не выдает.

Автор: nornad 30.4.2007, 19:23
Цитата(lesha_od @  30.4.2007,  21:48 Найти цитируемый пост)
Еще раз спрошу: на предполагаемом собеседовании насколько важны мои знания конкретных функций и связей между классами? Или я смогу сказать: должна быть такая-то функция, искать надо в АПИ.

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

Цитата(lesha_od @  30.4.2007,  21:48 Найти цитируемый пост)
Где можно найти примеры тестовых заданий? Не просто "напиши часы, которые работают так-то", а с описанием функций и требованиями.

Сомневаюсь, что такие задания есть. Ещё больше сомневаюсь, что на собеседовании тебе будут давать точно расписанное ТЗ. Я, например, когда общаюсь с претендентом, даю общее описание того, что требуется реализовать и за какой срок. Если человек с головой, то найдёт хорошее решение задачи. А если его код из рук вон плох - зачем мне такой работник? Дай я ему разжёванное ТЗ и он даже будучи плохим программистом сможет написать вполне нормальный код. Я его приму, а потом придётся увольнять. Зачем? smile 

Автор: lesha_od 1.5.2007, 05:32
nornad

Цитата

Ещё больше сомневаюсь, что на собеседовании тебе будут давать точно расписанное ТЗ.


В данном случае я говорю про задание не для собеседования, а для того, чтобы самому тренироваться в создании проектов. Дома. Надо же какой-то опыт самому приобрести, прежде чем идти устраиваться.

Автор: nornad 1.5.2007, 06:23
Извини, но из этих слов
Цитата(lesha_od @  30.4.2007,  21:48 Найти цитируемый пост)
Еще раз спрошу: на предполагаемом собеседовании насколько важны мои знания конкретных функций и связей между классами? Или я смогу сказать: должна быть такая-то функция, искать надо в АПИ.  Или например спросят, как с помощью JavaServer Faces сделать список с импортом элементов из web.xml.

я однозначно понял так, как описал.  smile 

Ежели ты имел в виду проекты для саморазвития, то посоветовать могу лишь просто поиграться с различными технологиями и их отдельными частями, написать пару небольших проектиков хотя бы для того, чтобы "пощупать" код.
Но и этом случае тестовых заданий с расписанными ТЗ в сети больше не станет. Буду рад, если они обнаружатся (мне, в принципе, тоже интересно глянуть на них и кое-что, наверное, попробовать при следующем знакомстве с очередной технологией).

Автор: Greg 1.5.2007, 15:27
Цитата(nornad @  30.4.2007,  19:23 Найти цитируемый пост)
Сомневаюсь, что такие задания есть

Такие задания есть, не знаю, правда, насколько много, но мне приходилось иметь дело с тремя разными конторами, которые предлагали достаточно конкретные описания для веб-проекта.
Цитата(nornad @  30.4.2007,  19:23 Найти цитируемый пост)
Дай я ему разжёванное ТЗ и он даже будучи плохим программистом сможет написать вполне нормальный код.

Если имеются две постановки вопроса, одна из котрых сильное обобщение первой:
1."Мне нужна штуковина, на которой можно возить предметы."
2."Мне нужен легковой автомобиль с прицепом, для перевозки предметов с габаритами не более чем 2x2."
Интересно, по Вашему получается, что с заданием 2 справится почти каждый, в то время как 1-ое поможет выявить склонность к работе в проекте ?
lesha_od, очень советую обратить особенное внимание именно на тестовое задание, которое будет тебе высылать фирма.

Автор: nornad 1.5.2007, 18:02
Цитата(Greg @  1.5.2007,  18:27 Найти цитируемый пост)
Интересно, по Вашему получается, что с заданием 2 справится почти каждый, в то время как 1-ое поможет выявить склонность к работе в проекте ?

По моему получается, что с третьим заданием справится "почти каждый":
3. "Мне нужен легковой автомобиль. Вот детальное описание всех его узлов, механизмов и деталей."
Хотя, приведённый пример (все три варианта) всё же несколько неудачен.
Я не говорил про излишнюю обобщённость. Задание должно быть предельно ясным, но при этом не детализированным, чтобы можно было увидеть, чего стоит претендент.

Автор: Greg 1.5.2007, 19:53
Трудно с этим согласится.
Даже с такой несложной работой, как строительство зданий, где творческий элемент вовсе отсуствует, справиться дано не каждому. В реальных проектах, я думаю, Вы не даете программистам полную свободу ? Ограничения, они всегда присутсвуют.
На мой взгляд,  детализация проекта вовсе не означает, что с такими проектами справляться легче - думать так совсем не правильно. Плюс к этому, обычно приписывается, что Вы можете добавить или изменить что-либо по Вашему усмотрению.
Неприятно, когда тестовое задание оформлено лишь бы как - дальше сам додумайся.
Это элементарное неуважение к кандидату.

Автор: nornad 1.5.2007, 20:46
Цитата(Greg @  1.5.2007,  22:53 Найти цитируемый пост)
В реальных проектах, я думаю, Вы не даете программистам полную свободу ?

Абсолютную свободу не даю, конечно. Иначе вместо "телевизора" рискую получить "велосипед".
Я задаю общее направление. После того (или в процессе), как исполнитель продумает, что и как он решил делать, мы с ним обсуждаем - всегда есть возможность понять задачу неправильно или не в полной мере.

Цитата(Greg @  1.5.2007,  22:53 Найти цитируемый пост)
На мой взгляд,  детализация проекта вовсе не означает, что с такими проектами справляться легче - думать так совсем не правильно.

Уровни детализации различны. Полностью детализированное задание не предполагает умственной деятельности работника, поэтому я и против полной детализации. Но я и не выступаю за полное обобщение задания - в этом случае придётся довольно долго объяснять, что же требуется получить в итоге.
Детализация должна быть в меру.

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

Цитата(Greg @  1.5.2007,  22:53 Найти цитируемый пост)
Это элементарное неуважение к кандидату. 

С этим я не согласен. Потому что вопрос можно повернуть и так: если ко мне пришёл на собеседование человек, который мало что умеет и его умения ограничиваются в основном механическими движениями мышкой, то не есть ли это неуважение ко мне?
Я считаю, что лучше потерять хорошего кандидата из-за его моральных претензий к моей позиции, чем нанять и через месяц уволить неподходящего человека. К тому же, если человеку не нравится, какое ему дали задание (качество поставленной задачи) - его право высказать своё мнение. Если же он молчит или просто бросает задание - вряд ли он впишется в команду. Наиболее вероятно, что он индивидуал и на командную работу "раскрутить" его будет проблематично.

С другой стороны, индивидуалы тоже иногда полезны. smile 

Автор: Greg 1.5.2007, 21:50
Цитата(nornad @  1.5.2007,  20:46 Найти цитируемый пост)
Уровни детализации различны. Полностью детализированное задание не предполагает умственной деятельности работника, поэтому я и против полной детализации.

Раз уж разговор дошел до уровней, могли бы Вы продемонстрировать что по Вашему есть не детализированное задание, а я в свою очередь приведу в пример задание, которое считаю достаточно детализированным.

Автор: nornad 2.5.2007, 04:31
Пожалуйста, вот пример небольшого задания без лишней детализации:

Написать, используя трёхзвенную структуру, приложение для хранения и отображения контактной информации пользователей.

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

Автор: chief39 2.5.2007, 22:37
На вопросы "как именно называется метод и в каком классе он находится?" - отвечать можно в общем. Я многого и сам не помню. И выспрашивать точное название тега/метода или класса - это заморочки. Если кто-то будет такое выдирать из тебя - шли их на. Работать тут тебе нормально не придётся. Хотя, что такое System, что такое out и что такое println - знать, канешна полезна smile
Ну и на вопрос "в чём можно хранить коллекции пар?" желательно назвать хешмапу, хешсету и проч, а не заявлять что эт оя прочитаю при необходимости smile))
А вот как именно там метод звётся put или add - это, чесс говоря, я и сам хз сейчас. И на собеседованиях людей за такое не гоняю. Не энциклопедиста ведь на работу берёшь  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)