Я думаю, что веб-разработка - это гораздо больше, чем кто-либо может себе представить, когда они впервые начинают заниматься этим! Прочитайте это и знайте, что все это необязательно ... но требуется, чтобы быть действительно хорошим в том, что вы делаете.
Я предлагаю вам сначала потратить время на изучение вашего языка. Я бы посоветовал изучать C # просто потому, что он гораздо более востребован и обычно поддерживается напрямую в большинстве продуктов MS. Изучая C # - программирование в ASP.NET, консольные приложения, серверы, службы, приложения для настольных компьютеров и т. Д. Будут в пределах вашей досягаемости. Вы можете программировать для большинства продуктов MS, а также на многих платформах типа Linux.
Как только вы это отключите, вы можете перейти к программированию для Интернета, поскольку программирование для Интернета имеет некоторые тонкости, которых нет в большинстве других сред. Такие понятия, как сеансы, кэширование, управление состоянием, межсайтовый скриптинг, стилизация, программирование на стороне клиента и на стороне сервера, поддержка браузера, как работает HTTP, как получить сообщение, как работает форма, файлы cookie и т. Д., Находятся на вершине список вещей, которые нужно изучать отдельно, не говоря уже об изучении базовых платформ ASP.NET и пространств имен.
Как только вы освоите язык программирования, а затем концепции веб-программирования, я предлагаю вам остановиться и изучить проектирование базы данных. Пока не беспокойтесь о производительности ... попробуйте сначала изучить хороший дизайн. Производительность будет дальше. Хорошее начало для вас - Access (богохульство, я знаю). С новичком легко работать. И это легко переводится на более надежную платформу, такую как SQL Server. Выучите хотя бы немного SQL ... но я предлагаю вам выучить столько, сколько может выдержать ваш желудок. Я слышал, как кто-то сказал, что SQL подобен языку ассемблера базы данных. Первое, что замедляет работу приложения, - это плохая конструкция базы данных и плохие запросы. Как только у вас появятся эти знания, набросайте их себе на ум и посмотрите на хороший ORM. NHybernate, вероятно, лучший на данный момент, но более сложный, чем базовый ученик. По этой причине в настоящее время я предлагаю запустить LINQ to SQL, так как с ним СУПЕР ЛЕГКО работать. Затем посмотрите на Entity Framework (хотя я все еще думаю, что это отстой ... и вам следует подождать, пока EF 2.0 ... ERRRRR ... сейчас 4.0 выпущен с .net 4.0). Тогда NHybernate.
Теперь пришло время начать понимать инфраструктуру, которая требуется для веб-разработки. Вы можете столкнуться с этим, изучая некоторые вещи веб-программирования. Но вы должны понимать основы DNS, IIS, балансировщиков нагрузки, липкой маршрутизации, циклического перебора, кластеризации, отказоустойчивости, настройки аппаратного обеспечения сервера, веб-ферм, ферм кеша (MemCached Win32, Velocity), SMTP, MSMQ, организации почтовой очереди базы данных, и т.д. Многие люди могут сказать, что вам это не нужно. Что здесь будет какой-то знающий сетевой администратор, который поможет вам. Однако они обычно знают вещи, которые влияют на них ... не вы. Чем больше вы здесь знаете, тем более ценным вы будете для компании, которая вас нанимает.
Теперь вы можете познакомиться с деталями лучших практик и шаблонов проектирования. Узнайте об основах, таких как шаблон репозитория, шаблон фабрики, шаблон фасада, шаблон презентатора вида модели, шаблон контроллера вида модели, шаблон наблюдателя и многое другое. Следуйте за Мартином Фаулером и другими за предложениями здесь. Взгляните на такие понятия, как инверсия управления, внедрение зависимостей, принцип SOLID, DRY, FIT, проектирование с тестированием, проектирование с учетом предметной области и т. Д. Узнайте как можно больше здесь, прежде чем переходить к следующему шагу.
СЕЙЧАС вы можете думать о фреймворках! Начните с создания базового приложения с ASP Classic (поставляется с IIS бесплатно!). Это даст вам представление о среде веб-разработки без излишеств. Взгляните на веб-формы ASP.NET (кратко), чтобы увидеть, как MS пыталась упростить ситуацию, скрывая все сложные вещи (которыми вы теперь знаете, как самостоятельно управлять, читая вышеупомянутые материалы !!!). Теперь вам больше не нужны веб-формы ASP.NET. Перейдите сразу к ASP.NET MVC. Фреймворк MVC дает вам все возможности, необходимые для создания хорошего легко управляемого веб-приложения. Если вы создаете что-то действительно большое, никакой фреймворк для чистой веб-разработки не сможет справиться с тем, что вам нужно. Однако MVC гораздо более расширяем для таких пользовательских сценариев UBER.
Теперь, когда вы прошли путь к ASP.NET MVC, вы можете взглянуть на такие вещи, как блоки корпоративных приложений Microsoft (например, на MySpace). Взгляните на Elmah протоколирование ошибок (обязательно). Посмотрите, как создать пользовательский SiteMapProvider для вашего сайта MVC. Если вам нужно заняться поиском, поймите Lucene.NET .
И если вы сделали это так далеко ... вы готовы сами разобраться с остальными, когда они придут! Веселитесь. В этом пространстве достаточно места для человека, который понимает все вышеперечисленные понятия.