pnick
@pnick
Телеком инженер

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

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

У меня возникло желание научиться писать что-то для WEB'а.
Опыт программирования до этого — системный и прикладной софт на Delphi, C#.
Есть реальный учебный проект — страничка авторизации, страничка ввода данных, БД, куда данные сохраняются, страничка аналитики, на которую выводятся обработанные данные. Есть много пользователей, которые хотят использовать полученный продукт. Нет понимания, что выбрать для изучения — JS, jquery, RoR, Rubby итд. Есть понимание, что инструмент выбирается под задачу и я хочу понять, что проще всего в освоении и что даст понимание, как писать для WEB.

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

Заранее спасибо!
  • Вопрос задан
  • 31862 просмотра
Пригласить эксперта
Ответы на вопрос 7
pletinsky
@pletinsky
На мой взгляд базисные знания следующие:

1) Клиентская верстка и стили (html, css). Можно пробежаться глазами хотя бы по теме. Почитать про правила верстки.
2) Клиентская логика, работа с DOM (Javascript, Jquery). Важная тема — стоит уделить ей время.
3) Теория распределенных приложений. — Веб приложения чаще всего являются распределенными. Поэтому стоит изучить архитектурные принципы распределенных приложений. API и т.д.
4) Базы данных (SQL, etc.) — Конечно начать стоит с классического сиквела — но стоит посмотреть и шире — например на nosql решения.

Далее стоит выбрать технологическую платформу. С вашим бэграундом вероятно стоит посмотреть в сторону Microsoft ASP.NET MVC. Это великолепное решение и погружение в обширный мир разработки в рамках решений MS. У них сейчас самые развитые языки программирования (C# 5.0), самые развитые инструментальные среды (MS Visual Studio), одна из самых совершенных виртуальных машин (.Net).
Решение удобнее всего для серьезных и масштабных проектов, хотя и для небольших вполне подойдет.
Следующий кандидат — Ruby on Rails. Это развитое решение с замечательным языком программирования и отличными каркасными решениями, заточенное именно под веб. Возможно лучше подойдет для небольших приложений — но и промышленные продукты без проблем потянет.
Он также очень распространен.
Ну и конечно PHP. Язык программирования данной технологической платформы отстает от требований к разработке больших решений — он скорее подходит для написания скриптов. Однако существует колоссальное количество каркасных решений для данной платформы, которые позволяют реализовывать даже приличного объема продукты. Кроме того данное решение наверное самое распространенное из всех.
И оно потихоньку подтягивается до уровня платформ для разработки промышленных продуктов.
Существует также множество других решений. Например огромный мир Java и решения на базе серверного Javascript.

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

1) Клиентская часть (html, css, javascript). Тут вам понадобятся знания по верстке как раз и жаваскрипту. Также следует использовать различные базовые решения и фреймворки. Эта как раз та часть, где слишком глубокие знания (например использование чистого некроссбраузерного javascript) могут быть вредны и лучше все базировать на готовых платформах.
Часто эта часть в web приложениях бывает больше чем хотелось бы.

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

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

Дерзайте. Я за вас болею.
Ответ написан
EugeneOZ
@EugeneOZ
Так ведь есть стек C# для web. ASP там всякое.
Ответ написан
@koriaf
Составьте список наиболее вероятных технологий и почитайте вводную к каждой. Создайте малюсенький проект в каждой. И там видно будет, к чему душа лежит.
Ответ написан
Надо начинать с html+css+js. Эти языки формируют область приложения для других языков. Без их хорошего знания, Вас ждут множество проблем.
Ответ написан
Mendel
@Mendel
PHP-developer
ИМХО в вашем случае стоит начинать с пхп.
Поскольку вы имеете опыт работы с более-менее строгими языками, то либерализм пхп не должен повредить детскую неокрепшую психику. Правда стоит таки включить E_STRICT сразу когда начнете писать.

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

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

Итог: советую пхп, но сразу писать строго. Начните с одного из стандартов оформления кода…
Ответ написан
SLY_G
@SLY_G
журналист, переводчик, программист, стартапщик
Смотря с какими целями.
Если просто так, хобби, тогда почитайте общую литературу, посмотрите, что вам больше нравится…
Если работу найти, тогда посмотрите, по каким словам вакансий больше.
Вы правильно пишете, что инструмент подбирается под задачу, однако web — это зоопарк технологий и задач, поэтому это не выбор, это слишком общее Ж)
Для приложений на стороне клиента есть javascript, flash. Для серверных приложений чаще всего сейчас используют php, ruby. Для больших проектов ещё базы данных понадобятся. Ну а есть ещё node.js и другие специальные вещи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы