Я хотел бы Вам рассказать свою историю, как я пытался применять Java в сложных проектах. Шёл 2007 год. Благодарю одному замечательному на тот момент видеокурсу я этот язык освоил в той степени, которая позволила мне программировать всё, что я пожелаю. Однако, у меня постоянно возникали проблемы с крупными проектами. Вначале всё шло гладко, но чем дальше я писал код, чем больше расширял функционал, тем сложнее он читался, тем сложнее было что-то добавить ещё, не сломав что-то старое. Разумеется, о красивом коде нельзя было и мечтать. В теории действительно я примерно представлял, как создать что-то сложное, но это только в теории, на реальной практике каждый шаг был тяжелее и тяжелее. Это можно сравнить, например, с отжиманиями. Первое отжимание даётся легко, второе тоже, но уже чуть-чуть тяжелее. Третье ещё чуть-чуть тяжелее, потом ещё и ещё, и в конце становится просто невмоготу. Аналогично, и с программированием сложных программ.
И если бы Вы знали, как в тот момент я мечтал о продолжении того курса, но только уже не с основами Java, а именно с примером создания действительно сложного и большого проекта. Чтобы я посмотрел это, и уже понимал, как вообще всё это происходит, с чего начинается, как продолжается, как добавляется потом функционал, как грамотно строится архитектура и так далее. К сожалению, этого примера я так и не дождался.
В итоге, пришлось мне самому разбираться: читать множество книг, учиться применять паттерны проектирования, постоянно практиковаться. Чего я только в своё время не создавал: и аналог Paint, и какую-то гонку (где, правда, было не движение автомобиля, а иллюзия, где двигалось окружение, но не машина, тогда я ещё не знал, как это можно сделать иначе), и текстовый редактор, и лабиринт, где бегает нарисованная мышка в поисках сыра и ищет оптимальный путь, чтобы найти сыр в кратчайшие сроки. В общем, чего я там только не делал. И в конце концов, я выработал свою систему, и теперь я с уверенностью могу сказать, что мне без разницы, что писать: программу на 100 строк, на 5 000 строк или на 20 000 строк. Разница будет лишь во времени написания, но не в сложности.
И вот этого состояния добиться новичкам крайне сложно. У меня на это всё ушло, по меньшей мере, 3-4 года.