FeraS, спасибо :) Semisonic на личном использовании. Чтобы понять, какие технологии где применимы, нужно каждую из них попробовать на маленьком примере. Про NodeJS, в частности, можно заранее сказать, где его нужно использовать — в realtime-приложениях, когда клиентская часть непрерывно держит коннект.
Стать крутым web-разработчиком, прочитав пару книжек, невозможно. В любом случае нужна практика.
Часть HTML/CSS — самая лёгкая, из предложенного мною её закрывает Twitter Bootstrap полностью. «Дизайнить» это всё самому, вникать в тонкости CSS в разных версиях браузеров, разные клиенты, оси — это всё довольно долго и для получения готового результата не требуется. Если Вас затянет эта тема и захотите стать специалистом именно по вёрстке — Вы сами это ощутите и забудете про backend :) Будете ковыряться в CSS, наводить красивости и всё такое.
Вторая часть frontend-разработки это JS — здесь я упомянул AngularJS. Я работал с ним довольно плотно и он мне очень нравится. Сильно сокращает время разработки, изначально готов к росту сложности приложения (со временем не возникает потребности переписать весь код).
jQuery я забыл упомянуть — он очень часто используется, но он прост как 5 копеек и его основы можно за пару дней осилить. Однако код, написанный изначально для jQuery в маленьком проекте, с ростом проекта довольно быстро становится захламлённым, обрастает зависимостями, дублированием и багами. Это не вина jQuery, просто для больших проектов готовые фреймворки вроде AngularJS и Backbone уже имеют готовый функционал и «скелет».
Решение RDBMS/NoSQL как основное хранилище — непростое на любом этапе. Тут чем больше знаешь, тем сложнее выбирать. Стоит пробовать разное и не бояться со временем создавать кластер из нескольких нод — в моём случае это сильно поменяло взгляд на базы данных в целом.
Но в качестве хранилища для кэша Redis я смело могу назвать лучшим :)
PHP (если решитесь) рекомендую первый месяц помучать без фреймворков, делая MVC-приложения с использованием пространств имён.
А потом — Symfony 2, остальные фреймворки в PHP позорны.
Придумывайте маленькие проекты и давайте себе по 2 недели на реализацию каждого — крутой метод, рекомендую :)
Прежде чем «накидать» я потратил время на прочтение Вашего вопроса (не маленького совсем) и на обдумывание. Поэтому своим "-1" Вы не распологаете к дальнейшим ответам.
Не совсем понятно, в чём отличие от MVC (может я торможу сегодня).
Вы ведь по url запроса определяете, что нужно «показать», забираете данные у модели, потом эти данные отдаёте генератору вьюхи и он заполняет шаблон данными. Как можно иначе? Сначала собрать страницу из шаблона без данных, отдать её… Непонятно.
При чём тут дураки, клоуны и продакшен? Это обычное изменение таблицы. Хоть она трижды продакшен, она будет со временем изменяться. Это реальный случай из жизни — всё это было сделано не «через консоль», а миграциями, как обычно. Ок, считайте, что я Вам ничего не говорил и багов никаких нет — мне пофиг :)
Ну посмотрите вот на этот: bugs.launchpad.net/codership-mysql/+bug/587170
«Adding AUTO_INCREMENT column to a table results in data inconsistency» — ну не трындец ли? Баг с 2010 года!!!
1 сервак вполне может держать очень много запросов, я не спорю, но без fault tolerance я архитектуру HighLoad не представляю — при простом обновлении софта всё приляжет. И при HighLoad это означает High-потери :)
Нет абсолютно ничего сложного в кластере для сессий, а вот галера это глючное творение, с которым я сталкивался. Почитайте баги в их багтрекере — у Вас исчезнет желание использовать эту фигню.