Есть одно существенное различие между веб-серверами, которое часто и играет основную роль при выборе платформы. Почти все продукты Microsoft платны. IIS работает только под Windows, а эта операционка платная. + MS SQL — также платный сервер.
Поэтому большинство разработчиков выбирает бесплатный Apache + MySQL на unix- и linux-серверах.
Для работы с базами данных чаще всего нужно просто обращаться к базе при помощи SQL-запросов, или вызова хранимых процедур на sql-сервере и дальше уже работать с возвращенными данными (это могут быть отдельные записи таблиц, таблицы или наборы таблиц)
Есть хороший форум sql.ru, на котором можно найти много полезных и интересных материалов, в том числе и примеров работы с базами данных на различных языках.
Я начинал изучать SQL с этой статьи. Там совсем немного и все доступно. Для начала должно хватить.
Вообще, портал codenet.ru был достаточно полезен, когда я начинал, но это было давно. Вот пара ссылок оттуда же: WEB Сервера и Язык SQL
Кстати, любой язык умеет (или хотя бы должен уметь) общаться с любым сервером баз данных. Главное, чтобы драйвер соответствующий был, но лучше, конечно, пользоваться родным сервером. Для .NET это MS SQL, для PHP чаще всего MySQL. Есть еще такой известный сервер, как Oracle (это так, для общего развития).
И напоследок: .NET-сайты теперь можно запускать и разрабатывать и под линуксом, хотя это пока и сопряжено с некоторым набором трудностей. Если интересна эта тема — ознакомьтесь с проектом Mono
P.S. Ух, никогда столько не писал! Обычно я менее многословен :)
К сожалению, полноценно рассказать могу только про платформу ASP.NET с сервером IIS и, соответственно, сервером баз данных MS SQL Server.
На примере IIS и ASP.NET:
Вкратце: на веб-сервер (у нас — IIS, Internet Information Services) приходит клиентский запрос в виде адресной строки URL (http://mywebsite.ru/Test.aspx). Веб-сервер анализирует расширение запрошенной страницы, в данном случае — *.aspx, и обрабатывает запрос в соответствии с установленными настройками. По умолчанию расширение *.aspx обрабатывается механизмом ASP.NET, который уже генерирует результирующий html-код посредством созданных разработчиком ASP.NET-страниц. Результат отправляется обратно клиенту в виде html-содержимого.
Так же могут обрабатываться различные расширения аналогичным образом, но уже другими механизмами. Смысл работы веб-сервера в том, чтобы адекватно реагировать на пользовательский запрос и запускать нужные средства для формирования ответа.
Вики: http://ru.wikipedia.org/wiki/Internet_Information_Services
Есть также хороший ресурс
Про AJAX: это технология, предназначенная для обновления частей веб-страниц в клиентском браузере без перезагрузки всей страницы. Приблизительно это работает так: на странице есть некоторый JavaScript, который реагирует на действия пользователя, обращаясь на сервер по специально созданному адресу и получая ответ с сервера на основе отправленных клиентских данных. Затем этот JavaScript изменяет страницу в соответствии с полученными данными. Надеюсь, нигде не наврал, если что — поправьте кто-нибудь.
Ресурсов наверняка уже наприводили ниже.
С базами данных вас что интересует? Смысл, принцип работы или примеры взаимодействия?
Естественно, все, что я описал — может не подойти для взращивания абсолютно грамотного и крутого программиста и архитектора, так как для этого нужны обширные базовые знания некоторой математики, логики и еще много чего, но для старта с нуля, чтобы понять, что происходит, должно хватить
Для того, чтобы начать программировать, неплохо бы прочитать от начала и до конца какую-нибудь базовую книжку по любому простому языку (basic, pascal), или любому другому на свой вкус, чтобы осознать, что же есть программирование, из чего состоят программы и как это все работает в простейшем приближении. Далее можно определить набор минимальных необходимых навыков для решения практических задач. Например, минимумом для создания сайтов обозначим знание html, css, JavaScript на базовом уровне и язык, на котором вы хотите писать. Тут уже можно порассуждать на тему того, на каком языке и с использованием каких технологий пишутся веб-сайты. Например, можно писать на PHP, можно писать на Java с использованием JSP (Java Server Pajes), или на C# или VisualBasic.NET с использованием технологии ASP.NET (Active Server Pages). Вообще говоря, создание сайтов — задача, требующая более обширных знаний на начальном уровне, чем, например, написание форм или консольных приложений под Windows. Этим я хочу сказать, что нужно еще понимать, как разворачивать свое веб-приложение и что для этого понадобится (к примеру, для разворачивания сайтов на ASP.NET нужен веб-сервер MS IIS, а Apache, на котором можно развернуть PHP-сайт, здесь не подойдет).
После выбора языка можно так же почитать какую-нибудь базовую книжку или простенькую документацию «для разгона», чтобы хоть как-то создать свою первую страницу HelloWorld!
Ну а дальше — изучать более глубоко язык (здесь помогут правильные книжки из магазинов), изучать дополнительные технологии вроде работы с базами данных, AJAX'а, читать про алгоритмы на досуге, посмотреть на различные JS-фреймворки, становиться мастером дивовой верстки, гуглить при возникновении проблем или обращаться к знающим знакомым
Все это, конечно, ИМХО
Если такой подход интересен — я могу порекомендовать какую-нибудь литературу для старта или даже дать несколько полезных ссылок.
Я там уже четыре года учусь. Правда, на математике — я теорверщик, а не на мат.обесе, но часто посещал некоторые их спецкурсы и имею хороших знакомых на этой специальности.
Поработав пару лет программистом я осознал, что действительно неплохо бы знать хорошему разработчику и с интересом обнаружил, что большинство из это читается как раз матобесам (про математиков я ничего не говорю, т.к. с трудом, но все же сознательно учусь на этой специальности и мне здесь нравится, я особый извращенец :) ).
Это совсем не проблема — все новые технологии читаются в спецкурсах, на которые вольны ходить все заинтересованные в данной тематике. Поверьте, система отлично работает.
Все перечисленные курсы читают на Мат-Мехе в СПбГУ, на специальности Математическое обеспечение и администрирование информационных систем (за исключением, разве что, генетики, мат-лингвистики, маркетинга, PR и что-то не помню там ПХП :) ), да еще и много дополнительных интересных спецкурсов и проектов + бонусные лекции Microsoft, Intel, Sun и т.д. Кстати, суровый матан, алгебра, геометрия, диффуры, матлогика, дискретный анализ, теорвер и даже матфизика присутствуют на первых трех курсах в полной мере. Основные гуманитарные предметы тоже не забыты. Так что, описанный идеал есть, прошу прощения, если кого-то повторил — еще не читал все комменты.
Приведение экспоненциального ряда к линейному - стандартный метод в статистике. Не понимаю, почему в облаке тегов это редко применяется, ведь такая визуализация выглядит гораздо удобнее. Поставил бы плюс, если б мог - нужно нести мудрость в массы :)
Как правило, на таких олимпиадах практически единственное решение задачи - наиболее оптимальное по скорости, т.к., насколько я помню, входные данные так подгоняют под выделяемые вычислительные мощности и выделенное время, что только самое быстрое решение и проходит.
Уязвимости есть во всех системах. Просто стимула особого нет пока - есть невероятно большое количество и серверов и рабочих станций в сети под управлением виндовса, в котором гораздо больше багов и которые закрываются гораздо медленнее. Вот и не пишут.
Поэтому большинство разработчиков выбирает бесплатный Apache + MySQL на unix- и linux-серверах.
Для работы с базами данных чаще всего нужно просто обращаться к базе при помощи SQL-запросов, или вызова хранимых процедур на sql-сервере и дальше уже работать с возвращенными данными (это могут быть отдельные записи таблиц, таблицы или наборы таблиц)
Есть хороший форум sql.ru, на котором можно найти много полезных и интересных материалов, в том числе и примеров работы с базами данных на различных языках.
Я начинал изучать SQL с этой статьи. Там совсем немного и все доступно. Для начала должно хватить.
Вообще, портал codenet.ru был достаточно полезен, когда я начинал, но это было давно. Вот пара ссылок оттуда же: WEB Сервера и Язык SQL
Кстати, любой язык умеет (или хотя бы должен уметь) общаться с любым сервером баз данных. Главное, чтобы драйвер соответствующий был, но лучше, конечно, пользоваться родным сервером. Для .NET это MS SQL, для PHP чаще всего MySQL. Есть еще такой известный сервер, как Oracle (это так, для общего развития).
И напоследок: .NET-сайты теперь можно запускать и разрабатывать и под линуксом, хотя это пока и сопряжено с некоторым набором трудностей. Если интересна эта тема — ознакомьтесь с проектом Mono
P.S. Ух, никогда столько не писал! Обычно я менее многословен :)
На примере IIS и ASP.NET:
Вкратце: на веб-сервер (у нас — IIS, Internet Information Services) приходит клиентский запрос в виде адресной строки URL (http://mywebsite.ru/Test.aspx). Веб-сервер анализирует расширение запрошенной страницы, в данном случае — *.aspx, и обрабатывает запрос в соответствии с установленными настройками. По умолчанию расширение *.aspx обрабатывается механизмом ASP.NET, который уже генерирует результирующий html-код посредством созданных разработчиком ASP.NET-страниц. Результат отправляется обратно клиенту в виде html-содержимого.
Так же могут обрабатываться различные расширения аналогичным образом, но уже другими механизмами. Смысл работы веб-сервера в том, чтобы адекватно реагировать на пользовательский запрос и запускать нужные средства для формирования ответа.
Вики: http://ru.wikipedia.org/wiki/Internet_Information_Services
Есть также хороший ресурс
Про AJAX: это технология, предназначенная для обновления частей веб-страниц в клиентском браузере без перезагрузки всей страницы. Приблизительно это работает так: на странице есть некоторый JavaScript, который реагирует на действия пользователя, обращаясь на сервер по специально созданному адресу и получая ответ с сервера на основе отправленных клиентских данных. Затем этот JavaScript изменяет страницу в соответствии с полученными данными. Надеюсь, нигде не наврал, если что — поправьте кто-нибудь.
Ресурсов наверняка уже наприводили ниже.
С базами данных вас что интересует? Смысл, принцип работы или примеры взаимодействия?
После выбора языка можно так же почитать какую-нибудь базовую книжку или простенькую документацию «для разгона», чтобы хоть как-то создать свою первую страницу HelloWorld!
Ну а дальше — изучать более глубоко язык (здесь помогут правильные книжки из магазинов), изучать дополнительные технологии вроде работы с базами данных, AJAX'а, читать про алгоритмы на досуге, посмотреть на различные JS-фреймворки, становиться мастером дивовой верстки, гуглить при возникновении проблем или обращаться к знающим знакомым
Все это, конечно, ИМХО
Если такой подход интересен — я могу порекомендовать какую-нибудь литературу для старта или даже дать несколько полезных ссылок.
Последние — так вообще тесты сплошные
Поработав пару лет программистом я осознал, что действительно неплохо бы знать хорошему разработчику и с интересом обнаружил, что большинство из это читается как раз матобесам (про математиков я ничего не говорю, т.к. с трудом, но все же сознательно учусь на этой специальности и мне здесь нравится, я особый извращенец :) ).