Как мне заставить себя изучать Java EE?
=========================================

 Здравствуйте, друзья.  
  

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

Суть в том, что я очень люблю Java, а ещё больше Clojure (хотя, наверное, просто из-за того, что я только начал изучать этот язык). Но разве суть в языках? Суть, ведь, в том, как и для чего мы их используем. И вот в этом всё и дело.  
  

Я работаю сейчас тестировщиком. Вокруг меня масса Java EE программистов. Было бы логично для меня, как для человека влюблённого в программирование, поставить цель присоединиться к их племени, изучить JEE с кучей её фреймворков и в ус не дуть, заниматься багфиксами и саппортом на аутсорсе и получать денежку, на которую я могу что-то купить себе и семье.  
  

И я изучаю сейчас JEE... Но мне не интересно...  
  

То что мне интересно - хакинг. Не в том смысле, в котором мы часто употребляем это слово, а в смысле, который когда-то озвучил Эрик Рэймонд. Я люблю сам процесс кодинга, а точнее, воплощения моих идей в жизнь. А все мои идеи крутятся только вокруг создания игр, создания прикольных или полезных приложений на Android. Мне нравится веб-разработка, но именно бэкенд. Точнее, мне нравится сама идея уметь делать хороший серверный бэкенд, но когда я смотрю на Java EE... Короче, мне становится немного дурно от масштаба этой надстройки над Java.  
  

Ну вы поняли, в вопросах бэкенда и разработки серверов я пока плаваю. Но так как у меня есть идея связанная с этим, я это изучу и буду уметь. Но... Порой мне кажется, а туда ли я влез? Может нужно было ограничиться Python или PHP? Да нет. Мне нравится Java, и я просто не достаточно знаю EE часть.   
  

И вот мы возвращаемся к EE. Так как я всегда мыслю связкой идея -> план -> реализация, я не могу понять, что в домашних условиях я могу написать на Java EE. Если я этого не понимаю, то мне не интересно этим заниматься. Но чтобы вырасти по карьерной лестинце до программиста, я обязан это знать... Но не интересно... Но обязан... А обязан потому, что за плечами семья, и тестером будучи сыт не будешь. Хотя, порой кажется, что работа промышленного разработчика совершенно не отличается от работы промышленного тестировщика.  
  

Я расцениваю Java EE как хороший фундамент, как то, благодаря чему на столе всегда будет что-то. Почему-то, профессия тестера наводит на меня страх. Страх того, что она ведёт в никуда, эта профессия. Поэтому, рано или поздно, я хочу стать разработчиком ПО. Ну, я по складу ума кодер, а не тестер. Такой вот я. Значит нужно учить JavaEE, которая кажется мне огромным монстром, и если его пожарить, то очень пресным на вкус, но как мне заставить себя её изучать, если я не понимаю, что а могу "похачить" с этой платформной?  
  

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

 Одно из решений - это выделить время. И не просто "Вот примерно в это время я наверное буду изучать Java EE", а "С 21.00 до 22.00 я изучаю Java EE и плевать на все остальное. Жрать, срать, спать, играть на дудке, да, я все это хочу делать с 21.00 до 22.00, но не могу, потому что мне нужно изучать. Мне стоило огромных усилий приучить себя к изучению Java EE с 21.00 до 22.00 и даже если ты будешь где-то дохнуть в канаве, то помочь я тебе смогу только после 22.00". Примерно так). Приучайте себя и окружающих(они иногда сильно мешают) к мысли, что в такое-то время вы заняты. Ну и само собой разумеется за качество обучения вы отвечаете только перед самим собой.) 

 Понимаете, язык программирования подбирается под характер человека. Но окружение влияет, у вас вокруг Ява и вы думаете вам нужна Ява. Но у людей которые вас окружают просто другой характер и поэтому она им подходит. Я пробовал учить Java... ну лучше чем плюсы, конечно, но не фонтан, громоздко, всё объекты, ну не моё, просто не моё...  

> Ну вы поняли, в вопросах бэкенда и разработки серверов я пока плаваю

  

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

Что же касается JavaEE - это чистой воды фикция. Это просто [спецификация](https://ru.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition):  
*Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий*. И вы вольны даже при разработке EE-приложений не придерживаться её.  
  

> Может нужно было ограничиться Python или PHP?

 - это вы сами решайте. Но JavaEE не делает чего-то особенного, чего вы не знаете. Просто представление о backend-е у вас срослось с Python и PHP. Разделять то, что приросло - очень трудно. Так что это больше работа над собой, чем изучении JavaEE. 

 "И я изучаю сейчас JEE... Но мне не интересно..."  

Есть же поговорка: Не хочешь срать не мучай жопу.   
  

"как для человека влюблённого в программирование"  

"изучить JEE с кучей её фреймворков и в ус не дуть, заниматься багфиксами и саппортом на аутсорсе и получать денежку, на которую я могу что-то купить себе и семье"  
  

эти выражения противоречат друг другу, подумайте дважды  
  

"я не могу понять, что в домашних условиях я могу написать на Java EE"  

на java ee можно написать все что угодно и все тоже самое что и на других языках   
  

"тестером будучи сыт не будешь"  

Хороший qa инженер стоит не на много меньше девелопера, если вам платят мало, меняйте работу, в некоторых компаниях qa очень ценится  
  

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

PS полностью осилил стек java ee по книжкам и примерам и не ныл что это не интересно. java ee разрабом не работал :) 

 Я как-то начал было писать вопрос на тостер о том, как мне тяжело запинать себя изучать фронтенд (изучать потому, что там рынок удалённой работы больше и, вообще – работы больше).  

А потом вспомнил о том, что работаю фултайм в геймдеве и доволен своей работой: зачем мне фронтенд, ненавистная вёрстка и прочее, что я просто в принципе не переношу?  
  

> Я люблю сам процесс кодинга, а точнее, воплощения моих идей в жизнь. А все мои идеи крутятся только вокруг создания игр, создания прикольных или полезных приложений на Android.

  

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

 по java enterprise - курс лекций golovach courses. любой курс(плейлист) джава джуниор выбирайте и осваивайте. начинается с азов и предыстории. заканчивается тем что вы можете сделать себе интернет магазин с какой захотите логикой, авторизацией/безопастностью, персистентностью, вебсервисами и кучей всяких побочных фич. Очень круто и понятно рассказывает.  
  

Очень классная книжка - spring in action. желательно 4 издание, желательно на английском (хотя если с англ туго то и на русском норм, правда иногда поглядывайте в оригинал, тк иногда некоторые термины слегка некорректно переведены).  
  

Именно исконный Java EE 7, на EJB вам не нужен (это нужно при разработке под серьезные проекты, такие как банки и распределенные системы). Спринга достаточно (то же самое только чуть легче).  
  

Про тестеров зря боитесь. QA, и developer in test сейчас очень востребованны в рф, а кадров нету.  

Никто не хочет быть каким-то там тестером.   

Хотя в чем отличие разработчика ИС от разработчика тестирующих программ/приложений, не совсем понятно...   

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

Хотя если вы ручной тестер (пройтись по функционалу руками и написать отчет) - то да, здесь лучше параллельно выходить на девелоперский уровень, а еще логичней на автотестера/QA.  
  

Вообще если нравится мобильная разработка - ей и занимайтесь. Сейчас это более прибыльно чем джава ЕЕ.  
  

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

В качестве выводов в вебе бывает: UI в виде браузера (страничка сайта) или мобильного приложения, вебсервисы (REST или SOAP), чтото еще специфичное что обычно не нужно но иногда бывает.  

Для подхода "сделать самоу себе сайтик за пару месяцев в одного" - javaEE так себе подходит. расчитана на более менее сложные, развитые, универсальные, масштабируемые системы. тоесть на более менее большие проекты и разработку в течение лет группами от 3х человек хотябы. обычно 5-12 или типа того 

 Вот и занимаейтесь тем, что лучше получается, не надо себя мучать, всё равно потом бросите это занятие и уйдете на что-то более интересное. 

 А зачем изучать то что не нравится, когда вокруг столько интересных технологий?) 

 Ну изучайте хакинг, вон хомаков со своим сакурити не стесняется брать по 200 баксов в час за анализ безопасности.