Ответ: PHP и с чем его едят....
С архитектурой сложнее, проблема в том, что приложение можно написать и как попало, нет стимула изучать как правильно. Тут уж нужно сначала читать книги, статьи, смотреть примеры а потом уж будут появляться идеи для практического применения.
Может я и заблуждаюсь, но когда програмулина выходит за пределы нескольких сот строк кода, то начинается ломка, если не была продумана архитектура - для добавления каждой новой строчки окда приходится ломтаь голову, а иногда лезть править десятки и сотни других строчек кода, либо же писать в несколько раз больше кода чем хочется. Тогда могут быть две ситуации - либо человек заходит в ступор и перестаёт писать, либо начинает думать, а почему у меня получлось такое, и как такого избежать.
Чтение талмудов в данном лучае помогает мало, особенно в начале, не настцпив на такие грабли - да я же супер программер, сейчас одной левой напишу это, и это... А как присобачить к этому ещё вот это, фиг его знает.
В том то и ресурсоёмкие вещи и хороши, что раньше или позже изобретать для каждого элемента велосипед (а потом ещё думать как собрать сто разноформенных (у некоторых то и педалей нет, не говоря уже о руле) велосипедов в кучу) надоедает. Становится легче штамповать велосипеды по шаблону готовому, а потом подкрашывать. Я вон так года два назад "изобрёл" компонентную модель. Много кода писал, и потом увидел что много лишнего, и что продолжать писать дальше будет ещё больше - придумал обьект базовый, создал кое-какой стандартный интерфейс взаимодействия и набор правил, которым каждый отображаемый елемент системы должен отвечать и класс умеющий отображать все подобные обьекты.. А потом через пару месяцев открыл для себя, как это уже давно называется.
А на программах до тысячи строк кода зачастую нет никакой необходимости заниматься архитектурой.. На первый взгляд. А там смотри, если позаниматься архитектурой, то вместо тысячи строк выйдет раза в полтора меньше, да и добавление нового внутрь не заставит писать ещё тысячу строчек, а так сотню-другую.