Стоит ли переходить работать с php на java?

Привет всем.
Хотелось бы попросить совета, как и куда дальше двигаться. сейчас я работаю в одной фирме, со своим проектом главным программистом (всего нас 2е =) ) в качестве php разработчика. На php пишу более 4-5х лет. На этой работе уже 2 года, и завис на одном проекте, уже и интерес пропал.

Около полу-года я начал изучать java. Прочел книги Java 2 Кей Хортсманн, Гари Корнелл
Написал пару программ (Swing, SWT) для сетей магазинов.
Начал изучение J2EE, куда и хотелось бы целиком и полностью перейти.
Прошу совета опытных Java разработчиков, что читать, изучать дальше. Реально ли устроится с не сильно хорошим знанием английского?
Для каких направлений чаще всего пишут на java (под Android и веб?)
Правильно ли начать с фриланса для мелких доработок?
Хотелось бы сразу перейти на мидла, ежели это реально.
  • Вопрос задан
  • 5902 просмотра
Пригласить эксперта
Ответы на вопрос 2
Я бы смотрел в сторону Angular, Play2, swagger, Jooq, Apache DirectMemory и не заморачивался с энтерпрайсом. Как показывает практика J2EE стэк не очень подходят для фриланса. Конечно есть исключения - можно глянуть Grails, Vaadin и ZK для RAD'а.
У Grails ужасно низкий порог вхождения, я на него подсаживал рельсозависимых и джангистоманов; там уровень поддержки на несколько порядков лучше чем в большинстве решений из миров php/ruby/python.

J2EE сейчас немного парализован, и с его использованием в продакшене связано не мало рисков. В первую очередь участились случаи взлома серьёзных учреждений которые используют JBoss и WebLogic. Сейчас как-то стало совсем непопулярно использовать сервлеты ...

JSF / ADF сейчас отмирает.
Spring очень простая и нужная штука если разобраться, правда есть свои проблемы и иногда лучше обойтись без него.

По шаблонам проектирования, важно понимать: mvc, mvp (document-view), mvvm, cqrs-es, disruptor, proactor / reactor. Все остальное, "банальное" типа Factory, Builder, Facade можно подчерпнуть из книжек... в вэбе такое почти не используется, но для понимания остальных шаблонов нужно разобраться.

В большинстве случаев мне приходится реализовывать CQRS-ES в Play2 через Angular + sse. Есть свои сложности с http кэшированием, и кэшированием модели... часто использую prerender.io для клиентов без JS'а и поисковых роботов. Вэбсокеты (Socket.io) работают медленнее (задержки выше, инициализация длительнее) чем sse, иногда приходится откатываться на флеш и long-polling, но это все по ходу дела приходится самому дописывать руками. Есть много классных решений типа restangular, правда большинство из них ещё довольно сыроваты - доверяю тому что сам пишу.
Ответ написан
Доброго времени суток.

Да, устроиться "с не сильно хорошим знанием английского" вполне реально". Если в языке достаточно хорошо разобрались - могу посоветовать посмотреть в сторону паттернов, на мой взгляд отличная книга - Фримен, Сьерра - "Паттерны проектирования". Ставится конкретная проблема, решается, показываются проблемы решения и решение постепенно улучшается.

Чаще всего сейчас в java это именно веб, как следствие будет полезным знание сопутствующих технологий - jquery, javascript, бывает что и поверстать приходится (зависит от вакансии уже). Если вернуться к java частенько нужно знание Spring Framework но разбираться с ним я бы советовал уже на проекте а не самостоятельно (самостоятельно нужно посмотреть только что есть IoC).

И я бы не советовал лезть во всякие JSF, ADF. С 1го взгляда это может быть и прикольно но очень ограничено и тяжеловесно (моё личное мнение). Так же переходя с 5 лет опыта работы в php на мидл java нужно быть готовым к снижению ЗП, но на мой взгляд это инвестиция в будущее :)

Если остались вопросы - буду рад помочь! Удачи в постижении мира java! =)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы