WEB-программирование. Что выбрать и с чего начать?
====================================================

 Приветствую!  

  

У меня возникло желание научиться писать что-то для WEB'а.   

Опыт программирования до этого — системный и прикладной софт на Delphi, C#.   

Есть реальный учебный проект — страничка авторизации, страничка ввода данных, БД, куда данные сохраняются, страничка аналитики, на которую выводятся обработанные данные. Есть много пользователей, которые хотят использовать полученный продукт. Нет понимания, что выбрать для изучения — JS, jquery, RoR, Rubby итд. Есть понимание, что инструмент выбирается под задачу и я хочу понять, что проще всего в освоении и что даст понимание, как писать для WEB.  

  

Рекомендации по среде разработки так же приветствуются (привык к VS и RAD Studio).  

  

Заранее спасибо! 

 На мой взгляд базисные знания следующие:  

  

1) Клиентская верстка и стили (html, css). Можно пробежаться глазами хотя бы по теме. Почитать про правила верстки.  

3) Теория распределенных приложений. — Веб приложения чаще всего являются распределенными. Поэтому стоит изучить архитектурные принципы распределенных приложений. API и т.д.  

4) Базы данных (SQL, etc.) — Конечно начать стоит с классического сиквела — но стоит посмотреть и шире — например на nosql решения.  

  

Далее стоит выбрать технологическую платформу. С вашим бэграундом вероятно стоит посмотреть в сторону **Microsoft ASP.NET MVC**. Это великолепное решение и погружение в обширный мир разработки в рамках решений MS. У них сейчас самые развитые языки программирования (C# 5.0), самые развитые инструментальные среды (MS Visual Studio), одна из самых совершенных виртуальных машин (.Net).  

Решение удобнее всего для серьезных и масштабных проектов, хотя и для небольших вполне подойдет.  

Следующий кандидат — **Ruby on Rails**. Это развитое решение с замечательным языком программирования и отличными каркасными решениями, заточенное именно под веб. Возможно лучше подойдет для небольших приложений — но и промышленные продукты без проблем потянет.  

Он также очень распространен.  

Ну и конечно **PHP**. Язык программирования данной технологической платформы отстает от требований к разработке больших решений — он скорее подходит для написания скриптов. Однако существует колоссальное количество каркасных решений для данной платформы, которые позволяют реализовывать даже приличного объема продукты. Кроме того данное решение наверное самое распространенное из всех.  

И оно потихоньку подтягивается до уровня платформ для разработки промышленных продуктов.  

  

Скоп работ будет состоять из следующих частей:  

  

Часто эта часть в web приложениях бывает больше чем хотелось бы.  

  

2) Серверная часть. Тут все определяется технологической платформой описанной в предыдущем абзаце. В веб приложениях как правило немного серверной логики — почти все можно заменить на внешние библиотеки. Но у разработчиков десктопных приложений всегда есть соблазн развивать именно эту часть потому что она им знакома — не поддавайтесь. Специфическая для проекта серверная логика нужна не очень часто. Если ее много — значить кто то увлекся велосипедами. Тоже касается разработок API и систем взаимодействия с внешними сервисами.  

  

3) Базы данных. Конечно обязательно! стоит использовать развитые ORM системы. То есть нужно их изучить под выбранную вами технологическую платформу. Ну и конечно базовые знания баз данных тут тоже очень понадобятся — сиквел, реляционная модель и все остальное.  

  

Дерзайте. Я за вас болею. 

 Так ведь есть стек C# для web. ASP там всякое. 

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

 Надо начинать с html+css+js. Эти языки формируют область приложения для других языков. Без их хорошего знания, Вас ждут множество проблем. 

 ИМХО в вашем случае стоит начинать с пхп.  

Поскольку вы имеете опыт работы с более-менее строгими языками, то либерализм пхп не должен повредить детскую неокрепшую психику. Правда стоит таки включить E\_STRICT сразу когда начнете писать.  

  

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

  

Вы только не ведитесь на эту либерастию… сначала упиваешься как круто, что тебя ни в чем не ограничивают, потом свыкаешься с мыслью что многих привычных инструментов нет (и это вам еще повезло, вы не застали ООП в пхп4). Потом жизнь кажется прекрасной… а когда переваливаешь через мегабайт кода, начинаешь ныть «дайте, дайте, дайте мне жесткую типизацию!!! расрас», включаешь E\_STRICT и сразу узнаешь о себе много нового…  

  

**Итог:** советую пхп, но сразу писать строго. Начните с одного из стандартов оформления кода… 

 Все хорошие и новые книги на английском.  

Поэтому начни с [английского](http://vk.com.cm/1yVUqCm). 

 Смотря с какими целями.  

Если просто так, хобби, тогда почитайте общую литературу, посмотрите, что вам больше нравится…  

Если работу найти, тогда посмотрите, по каким словам вакансий больше.  

Вы правильно пишете, что инструмент подбирается под задачу, однако web — это зоопарк технологий и задач, поэтому это не выбор, это слишком общее Ж)