Всем привет! Я маленько умею программировать на C++ и Java, из опыта разработки только олимпиады и лабы, никогда раньше не занимался написанием сайтов, серверов... и ничего в этом не смыслю.
Сейчас решил научится делать какие-нибудь сайты, скажите пожалуйста, с чего начать, что почитать, на чем вообще сейчас делаются сайты?
ПС. хотелось бы более подробные ответы, чем "HTML5 + Java Script + PHP + погуглить"
заранее спасибо!:)
Например, насколько мне известно, "морда" Codeforces написана с использованием JSP.
Не правда. Java != JSP. И на самом деле JSP я не люблю. Для view-level у нас используется http://freemarker.org/, но это, так сказать, только вершина айсберга )
Но собсно именно так и нужно. Сначала (если не знаете) разбираетесь с HTML, это допустим у вас займёт день.
Потом опционально можете познакомиться с CSS и JS.
Ну а дальше просто берете свой любимый язык и выясняете как генерация HTML на лету осуществляется в нем.
В Java есть много способов и честно говоря все они сложные для новичка. На C++ имхо такими вещами почти никто не занимается (хотя технически можно).
Поэтому я за PHP. После C он у вас легко пойдёт и по тьюториалу точно так же за несколько дней создаст в голове достаточно ясное представление. Ну попутно вы ещё разберетесь в том как работает протокол HTTP чтобы лучше понимать не только как данные с сервера приходят, но и как они туда уходят — как пользователь взаимодействует с сайтом — ну это на час чтения...
Ну а дальше, если захочется, вы уже будете понимать куда вам надо углубляться.
Например вы можете обнаружить что всё это уже прошлый век и сейчас модны сложные одностраничные клиенты на жаваскриптовых фреймворках вроде angular, которые обмениваются JSON-ом с бэкендом. Ну тут все не так категорично, но модное веяние, да...
Вкратце — на всем. И чем дальше, тем фреймворков, библиотек, подходов, парадигм и языков больше и больше... HTML+CSS и их генерация — это просто базис который актуален во всех практически подходах т.к. браузеры рендерят именно его. А как вы их генерируете — это уже дело вкуса.
Фронтенд: HTML5, JS, CSS — обязательно
Бекенд: php, python, ruby, java, asp.net, node.js — выбор огромен
Лично я б предложил два варианта:
1) python(django) — хороший ЯП, хороший фреймворк
2) node.js + angularJS + mongoDB — вариант крут тем, что используется лишь один язык программирования — JS, как для фронтенда, так для бекенда и БД =)
Тут заметим что это просто названия языков. А в рамках применения большинства из них можно ещё самостоятельные варианты выделить. На PHP и Java количество разнообразных фреймворков (которые м.б. изучать придётся не меньше чем язык) десятками измеряется.
Но для новичка я соглашусь насчёт Python. Django можно на Flask заменить, впрочем — м.б. ещё легче станет.
Модное увлечение, но всё-таки юзать не-SQL-ную базу для бизнес-логики чревато я б сказал. Сначала всё кажется весело и прекрасно, а потом когда переписывать уже поздно понимаешь что завяз, гы.
А так да, Node + Angular сейчас в тренде. Даже в проекте на котором я сейчас работаю миддл и фронтенд именно этой связкой представлены. Только вместо Mongo мы завязли по уши с другой не-sql-ной базой :D
Прорекламирую Meteor в комбинации с Bootstrap. Первое — это очень удобный и зрелищный (в смысле результата) framework для создания сайтов, а второе — CSS-framework, чтобы меньше думать о вёрстке и цветах. Но, да, знание основ HTML и JavaScript (довольно прост, если не лезть в дебри и WAT-зону) просто необходимо.
В частности, чем, по моему мнению, хорош Meteor: