Веб-программирование. Языки web-программирования Web программист создание сервера

  • Перевод
  • Tutorial

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.

2. Попробуйте всего понемногу, а затем выбирайте специализацию.

Деньги – не самое важное. Вам необходимо ЛЮБИТЬ ваше занятие! Но вы не узнаете, что вам нравится, пока не попробуете.


Найдите свою страсть, а потом монетизируйте её

Руководство поможет вам ознакомиться с как можно большим количеством областей веб-разработки как можно быстрее. А потом поможет вам выбрать специализацию в той области, что вам понравилась. Сначала вы не достигнете совершенства ни в чём – вы выучите основы, и потом продолжите изучение. Найдите свою страсть, и я покажу вам, как двигаться дальше.

Я решил писать код. Мне нравится веб. Я не знаю, с чего начать


У вас всё получится!

Поздравляю! Это серьёзный первый шаг и начало чего-то весьма захватывающего. Но это может оказаться и очень сложным. Не волнуйтесь, я помогу.

Сначала вам нужно быстро познакомиться с основами всех областей веб-разработки («полный цикл»). Обучение будет разнообразным, но неглубоким. Это нужно для того, чтобы найти область, которая вам нравится, а также приобрести основные навыки в разных областях. Тогда вы сможете понимать и работать с большим набором задач, вне зависимости от того, на чём вы остановите свой выбор.

Изучите основы HTML

Язык разметки гипертекста, Hypertext Markup Language (HTML), контролирует содержимое и разметку того, что вы видите в браузере. Начав с него, вы получаете интерфейс пользователя, с которым можно взаимодействовать, и видите результаты работы своего кода. При изучении более сложных языков его важность будет возрастать. Вам ведь не нужно кодить вслепую.

Вот, что вам нужно изучить на тему HTML:

Я уже знаю основы HTML

Круто! Это очень важный шаг. Теперь изучите основы JavaScript.

Изучите основы JavaScript

JavaScript – язык веба, и все основные браузеры (Chrome, Firefox, Safari, IE, множество других) поддерживают его. Каждый сайт, каждое веб-приложение, которым вы пользовались, скорее всего, содержит огромное количество JS-кода. Не говоря уже о том, что язык набирает популяность и на других платформах – сервера, настольные компьютеры, другие устройства.

Пока вам нужны основы, и для этого подойдут следующие ресурсы:

Я знаю основы JavaScript и HTML

Потрясающе! Теперь добавим к вашим навыкам CSS

Изучите CSS

CSS, или Cascading Style Sheets (каскадные таблицы стилей). Используются для настройки внешнего вида элементов HTML на странице. Ознакомьтесь с бесплатным обучающим материалом от Mozilla, а затем обращайтесь к ресурсу CSS-Tricks для решения самых сложных проблем (справа вверху есть поиск).

Переходим к бэкенду

До сих пор мы с вами рассматривали то, что называют «фронтендом» веб-разработки. Вы ознакомились с основными языками, работающими в браузере. Пора переходить к бэкенду – коду, работающему на сервере. Не волнуйтесь, сервер вам не понадобится – ваш компьютер справится с этим.

Языков для бэкенда масса, но поскольку вы знакомы с JavaScript, я порекомендую изучить использование Node.js. Он позволяет запускать JS-код на сервере, а не в браузере.

В дополнение к этому вам необходимо изучить Express и MongoDB.

Express
Это библиотека, с помощью которой Node.JS может работать веб-сервером (слушать запросы от страниц и отправлять им ответы).
MongoDB
Это база данных, позволяющая вам хранить и извлекать информацию.

Изучить три эти темы можно благодаря следующему прекрасному и бесплатному обучающему материалу , и его продолжению .

Мне нужно выбрать между «фронтенд», «бэкенд» и разработкой полного цикла

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

К этому моменту вы писали два типа кода. Один предназначен для взаимодействия с пользователем, другой – с данными. Что вы предпочитаете?

Взаимодействие с пользователем? Поздравляю, вы фронтенд-разработчик!

Взаимодействие с данными? Поздравляю, вы бэкенд-разработчик!

Оба? Поздравляю, вы разработчик полного цикла!

Ничего не понравилось? Поздравляю, веб-разработка – это не для вас. Возрадуйтесь, что вы поняли это сейчас, и не потеряли кучу времени и денег. Не готовы сдаваться? Может, вам не попался язык, который пришёлся бы вам по душе? Попробуйте изучить другие языки в разделе «Я хочу быть бэкенд-разработчиком».

Я хочу быть разработчиком полного цикла

Круто. Вам нужно ознакомиться со всем содержимым разделов «Я хочу быть бэкенд-разработчиком» и «Я хочу быть фронтенд-разработчиком».

Я хочу быть фронтенд-разработчиком и я знаю основы JavaScript, HTML и CSS

Для эффективной работы фронтенд-разработчиком вам необходимо в совершенстве овладеть HTML, CSS и клиентским JavaScript. Также вам нужно будет хорошо разобраться в нескольких важных фреймворках. Вы приобретёте навыки, которые работодатели и клиенты ожидают найти в разработчиках фронтенда.

К этому моменту вы уже должны знать основы HTML. В противном случае вернитесь к разделу «Изучите основы HTML».

Изучите промежуточный и продвинутый HTML
Ознакомьтесь с обучающим материалом по промежуточному HTML, а затем – по продвинутому .
Изучите продвинутый клиентский JavaScript


Отличная серия книг по JS, при этом бесплатная

Для поднятия вашего уровня владения JavaScript, я рекомендую серию книг «You Don’t Know JS» за авторством Кайла Симпсона. Автор выложил всю серию в онлайн совершенно бесплатно:

Кроме того, вашим лучшим другом должен стать и MDN JavaScript .

[Также совершенно бесплатно вам доступен превосходный перевод отличной книги "Выразительный JavaScript " - прим.перев.]

Знать «троицу фронтенда», HTML, CSS и JavaScript – это, конечно, здорово. Но для зарабатывания денег придётся вам познакомиться с некоторыми фреймворками.

Изучите jQuery
Это самая популярная библиотека JS всех времён. Хотя из-за некоторых новых фреймворков важность jQuery чуть поуменьшилась, если вы ищете работу, велика вероятность, что jQuery будет присутствовать в описании необходимых навыков (и упоминаться на собеседовании) ещё много лет.

Рекомендую изучить jQuery при помощи материалов FreeCodeCamp – это быстрый и эффективный метод. После этого отправляйтесь на официальный обучающий сайт – там вы найдёте дополнительные инструкции.

Изучите популярный JS-фреймворк
Фреймворки делают работу с определённым языком или технологией легче, поскольку решают наибольшие проблемы, существующие у выбранной технологии. JavaScript очень благотворно повлиял на разработку и популяризацию фреймворков.

Чуть ли не раз в неделю появляется новый фреймворк, который прочат на место нового стандарта разработки. Вам нужно будет прошерстить сайты с вакансиями и немало погуглить, чтобы выяснить, какой фреймворк популярен на вашем рынке. Также рекомендую инструмент от Hacker News по оценке тенденций рынка вакансий.

Во время написания этой статьи следующие фреймворки пользовались популярностью:

Выбрав наиболее подходящий фреймворк и хорошенько ознакомившись с ним, стоит изучить идущий в паре с ним CSS-фреймворк. Два крупнейших игрока на этом рынке сегодня – Bootstrap и Material Design.

Bootstrap
Bootstrap сделали разработчики Twitter, и он уже довольно взрослый и популярный. Версии Bootstrap существуют для Angular, Angular 2 и React.
Material
Material – это набор правил дизайна, разработанный в Google. Он набирает популярность, существуют его версии для Angular и React. Поскольку Angular – это тоже детище Google, сочетается Material с ним превосходно.

Вот вам несколько ссылок:

Поздравляю! У вас есть ключевые навыки фронтенд-разработчика!


Вы только посмотрите на него!

Я хочу быть бэкенд-разработчиком

Прекрасно! Первый шаг – выбор языка. Для работы с бэкендом существует много языков, и у каждого есть свои преимущества и недостатки. Ознакомьтесь с таблицей языков программирования, отсортированных по популярности. Все они уже десять лет входят в десятку лучших. Отмеченные зелёным – это веб-языки, которые с годами набирают популярность.


TIOBE Index of Programming Languages, www.tiobe.com/tiobe_index?page=index

Концентрируйтесь на языках, чьи названия я обвёл зелёной рамкой. Если вы не знаете их, начинайте сверху таблицы и идите вниз. Останавливайтесь, когда найдёте то, что вам нравится, и копайте вглубь!

Если вы знакомы с одним из отмеченных зелёным цветом языков, и он вам нравится – концентрируйтесь на нём.

Подкачайте необходимые для интервью умения
Вам нужно подготовиться не только к написанию кода. В хорошей статье с Life Hacker описано много полезной и ценной информации.
Главное – закрепиться на рынке
Не сильно переживайте насчёт получения работы мечты у работодателя мечты с зарплатой мечты. Сначала просто добейтесь получения работы, где вы будете писать код за деньги. Получив больше опыта, сможете планировать следующий шаг.
Хочу быть фрилансером
Сам себе хозяин – это хорошо, но это одновременно и огромное давление, и большие сложности. Лучший источник информации по фрилансу из всех, что я видел - DoubleYourFreelancing.com . У него есть серия статей , которые помогут вам стать фрилансером лучше, чем это получилось бы у меня. Читайте.

Ещё один вариант, если вы в себе уверены – сервис Toptal . Они принимают лишь 3% из всех, кто подаёт заявки, и этот процесс очень сложен, но если вы попадёте туда – у вас будет доступ к хорошо оплачиваемым работам, над которыми вы сможете трудиться удалённо.

Я начал работу, но чувствую, что зашел в тупик
Понимаю. Это нелегко, и если кто-то говорил вам обратное – он либо этим не занимался, либо пытается выманить у вас деньги. Если вы чувствуете, что зашли в тупик, попробуйте следующие варианты:
Освежите ваше первоначальное намерение
Спросите себя, запишите на бумаге, почему вы решили идти по этому пути. В силе ли всё ещё ваш ответ? Если да – то зачем останавливаться? Вперёд!

Языки программирования, на основе которых лежит любой сайт, можно вместить всего в две категории: клиентские и серверные.

Серверные языки программирования

Чтобы понять, как работают серверные языки веб-программирования, заходим на любой сайт. Сервер, который мы посетили, на своей стороне обрабатывает информацию, а потом выдает ее нам, но уже в виде HTML. Страница кода со скриптом не видна посетителю.

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

Серверные языки рассчитаны на работу с так называемыми базами данных. В них встроены свои библиотеки, которые нужны для считывания, редактирования и сохранения информации.

К серверным web языкам программирования относятся такие языки, как PHP , Perl , ASP.NET, Java , Python , Groovy , Ruby . Для работы с ними вполне достаточно установить на персональном компьютере локальный сервер.

Такие языки нужны для приема и хранения информации на сервере. Для примера можно оценить социальные сети, где хранятся фотографии, списки подарков, сообщения и т.д.

Клиентские языки программирования

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

У клиентских языков есть свои преимущества и недостатки. Для основного сервера это плюс, так как не нужно загружаться выполнением скриптов, а недостаток в том, что ваш браузер может просто не справиться с выданным скриптом. Это, в основном, касается устаревших браузеров или их неправильной установки. К таким языкам web программирования относятся

Заранее признателен за комментарии, оценки и поправки (с учетом, что целевая аудитория - чайники).

Если всем пользователям при любых обстоятельствах требуется показывать одно и тоже, то соответствующий файл можно просто положить на сервер, но обычно этого недостаточно и хочется какого-то разнообразия. В таком случае на сервере нужно запустить программу, которая будет создавать HTML-текст необходимый в данном конкретном случае. Написание этих «серверных» программ (скриптов) и есть в общем-то основное дело веб-разработки, именно в них обычно скрывается 90% сложности и стоимости любого проекта. Т. к. программа выполняется на нашем сервере, а не на компьютере пользователя, то выбор инструментария полностью за нами и нет какого-то одного языка, на котором такие программы пишутся.

Первое и самое принципиальное решение, которое следует принять - операционная система нашего сервера. Теоретически это может быть что угодно, на практике в России в 93% случаев используют Unix, в 6.99% - Windows, в 0.01% - что-то иное. Я не совсем объективен, но не вижу ни одного аргумента в пользу Windows и два в пользу Unix, соответственно рекомендую всегда выбирать его. Аргумент первый: то, что более распространено, всегда удобнее, проще найти хостинг, проще найти специалиста, проще найти готовое решение какой-то подзадачи. Аргумент второй: стоимость лицензий на Windows/MS SQL/...; деньги там не запредельные, но всё же отличные от нуля. Если в качестве ОС мы выбрали Unix, то следующий естественный вопрос - какую его реализацию использовать - абсолютно незначителен и может быть решен исходя из личных предпочтений системного администратора.

Второе принципиальное решение - язык программирования. Выбор тут достаточно велик. Во-первых, есть целый класс языков, идеально подходящих для типичных задач web-программирования (а один из них специально для него и придуман) - "скриптовые языки". Сейчас это как минимум PHP, Perl, Ruby и Python. Именно на них написано подавляющее большинство сайтов от простейших интернет-магазинов до vkontakte.ru, например. По возможностям, удобству, производительности, средствам разработки, каким-то другим теоретическим показателям они примерно равны между собой, основная разница в наличии программистов. Прямо сейчас замеренные показатели рынка таковы: на 100 резюме PHP-программистов в России приходится 10 Perl и по 2-3 Ruby и Python-резюме. С другой стороны, из всех людей, которые называют себя PHP-программистами, к коду на пушечный выстрел нельзя подпускать 80%, для перловиков этот показатель в районе половины, а для Ruby и Python и того меньше. Понятно, что первые цифры объективны и взяты с рабочих сайтов, а вторые условная субъективная оценка и прямо перемножать их нельзя, но в любом случае, количество и программистов, и хороших программистов упорядочено именно в таком порядке: PHP, Perl, Ruby или Python, а средний их уровень в прямо противоположном. Таким образом, если у нас промышленный проект, с большим количеством разработчиков и текучкой кадров, то из Web-языков выбирать нужно PHP (допустимо использование Perl в случае каких-то очень важных локальных причин). Если же проект короткий, программист точно будет один и не будет меняться никогда, то выбор можно доверить ему, при этом выбор Ruby/Python может даже оказаться оптимистичным фактором.

Кроме рассмотренных близнецов-братьев скриптовых языков (выбор между которыми чисто социальный), есть языки и другие, имеющие другие технические характеристики и соответственно другие ниши для применения.

Язык C. Язык, требующий максимальной аккуратности программиста, наиболее сложный в поиске ошибок, с наименьшим количеством доступных готовых решений и с самой низкой скоростью разработки. Все эти минусы он компенсирует только одним плюсом: производительностью, которая на несколько порядков лучше производительности PHP и его аналогов. В принципе, железо сейчас дешевое, а рабочая сила дорогая, плюс этот важен достаточно редко. Условно, если в проекте предполагается менее миллиона показов в сутки, то про C можно забыть смело, но, если показов больше, о нем следует только думать, а не принимать безоговорчно. На C написан, например, счетчик liveinternet.ru.

Язык С++. Обладает всеми теми же недостатками, что и С, но в менее явной форме, взамен дает соизмеримую, но меньшую производительность. Обычно применяется там, где производительность всё же требуется, а бизнес-логика очень сложна и находится на грани научности. Классический пример - поисковые сервисы. Важный недостаток, не дающий ему полностью вытеснить С на его нише, это большая свобода для неподдерживаемого кода. Как и в случае табличной верстки, на С все пишут примерно одинаково, и если код удовлетворяет формальным и проверяемым требованиям качества (не допускает утечки памяти, корректно обрабатывает ошибки и т. п.), то он скорее всего будет на вполне приемлемом уровне и по неформализуемым, но важным характеристикам типа «понятности» и «связности». А вот на C++ можно соблюдая все формальные требования написать, как великолепно, так и отвратительно. И естественно второе встречается чаще.

Язык Java. С технической точки зрения отличается от C++ примерно так же, как C++ отличается от C. Т. е. переход от C++ на Java это потеря ещё половины порядка производительности, но новый выигрыш в скорости разработки и библиотека готовых решений уже соизмерима со скриптовыми языками. С точки зрения социальной, количество программистов на Java меньше и количества программистов на C++, и количества программистов на PHP, при этом они в среднем дороже и, на мой субъективный взгляд, в среднем хуже тех и других. Причина такого странного расклада - в довольно большом рынке Java-разработки корпоративных систем, который с одной стороны поднимает зарплаты, а с другой прививает свою культуру и подход к программированию, который только вреден в вебе. В итоге, я не вижу ни одной ситуации, когда применение Java в веб-разработке было бы обосновано. (Но тем не менее odnoklassniki.ru написаны именно на Java и успешно работают.)

Если мы успели совершить ошибку и выбрали в качестве операционной системы Windows, то кроме перечисленных языков (все они в принципе больше ориентированы на Unix, но могут быть использованы везде) появляются ещё два варианта: это VBScript (некий аналог PHP) и C# (аналог Java). Т. к. я не вижу выигрыша от Windows, то и их рекомендовать не могу.

Перечисленными вариантами многообразие серверных языков программирования не ограничивается, но суммарная популярность всего остального близка к нулю и рациональных причин для выбора экзотики я не знаю.

Все существующие (по крайней мере все популярные) инструменты универсальны. На каждом из них можно реализовать абсолютно всё что угодно, вопрос только в том, что с некоторыми инструментами это будет быстрее и дешевле, а с другими дороже и медленнее. В принципе, никто не запрещает использовать в одном проекте два разных серверных языка, но обычно это приводит к ухудшению управляемости проекта - мы зависим от двух специалистов (или двух групп специалистов) вместо одного, которые кроме собственно проектной работы должны тратить усилия на согласование как чисто социальное (общение между собой), так и техническое. Единственное оправдывающее себя исключение это связка одного из скриптовых языков с кем-то из пары C/C++. «Поверхностная» часть кода, отвечающая за интерфейс, пишется на скриптовом, а наиболее критичная к производительности внутренняя - на С или С++. При этом соотношение между частями в разных проектах может быть совершенно разным. Например, ulov-umov.ru представляет из себя очень алгоритмически сложный C++ проект, реализующий по сути собственную поисковую систему и небольшую Perl-обертку, рисующую пользовательский интерфейс из буквально 10 страниц. А внутри полностью PHP-шного readme.ru есть один маленький C-шный модуль, который по готовым данным быстро-быстро рисует информеры. Важно, что производительный язык всегда «внутри», а уж какую долю от объёма он занимает - зависит от локальных факторов.

А вы знаете, что языки веб-программирования бывают клиентскими и серверными? JavaScript, VBS, PHP, PERL. А вы знаете, чем они отличаются, как работают? А вы знаете, что такое сервер? А вы знаете, что такое СУБД? А вы знаете? Так читайте эту статью и узнаете:)

1 - Языки веб-программирования, что это такое
2 - Клиентские языки веб-программирования
3 - Серверные языки веб-программирования
4 - Пара слов напоследок

Языки веб-программирования, что это такое

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

Языки веб-программирования - это соответственно языки, которые в основном предназначены для работы с интернет-технологиями. А некоторые и создавались только для работы с каким-нибудь ресурсом, и лишь долгое время спустя к ним приходила известность и всеобщее признание (например, PHP). Но я не буду углубляться в историю создания различных языков веб-программирования, поскольку не она является предметом этой статьи, а если читателю интересно, он может найти её на сайтах разработчиков.

Языки веб-программирования делятся на две группы: клиентские и серверные. Напомню, что такое сервер: это и тот компьютер, где хранится ваш сайт, и та программа, которая обрабатывает запросы браузера к какой-либо странице.

Клиентские языки

Как следует из названия, клиентские языки обрабатываются на стороне клиента пользователя, а если проще - программы на клиентском языке обрабатывает браузер. Отсюда следует и недостаток – это то, что обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы он вообще игнорировал написанные вами скрипты. При этом, если браузер старый, он может не поддерживать тот или иной язык или версию языка, на которую вы опираетесь. С современными браузерами таких проблем возникать не должно, к тому же языки программирования не так уж часто кардинально обновляются (раз в несколько лет) и лучшие из них давно известны. Также код клиентского скрипта может посмотреть каждый, выбрав в меню “Вид” своего браузера вкладку “Исходный код” (или что-то в этом роде).

Преимущество же клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер. Это легче объяснить на примере: допустим, вам надо проверить правильно ли пользователь ввел e-mail (т.е., например, проверить в нем наличие “@”); чтобы это сделать пользователю, надо было бы отправить форму с заполненными данными, потом дождаться, пока она обработается, и лишь после этого получить сообщение об ошибке (если она, разумеется, присутствует). Процесс слишком долгий. С клиентским же языком программа сразу проверит правильное заполнение формы перед отправкой, и, если необходимо, выведет ошибку. Отсюда же вытекает и то ограничение, что с помощью клиентского языка программирования ничто не может быть записано на сервер, то есть, например, с его помощью нельзя сделать гостевую книгу, потому что тогда надо записывать сообщения в какой-либо файл на сервере.

Самым распространенным из клиентских языков является JavaScript, разработчиками которого является компания Netscape (www.netscape.com, думаю, вам известен их браузер Netscape Navigator) совместно с компанией SunMicrosystems (www.sun.com). Другой вариант клиентского языка это, например, VisualBasicScript (VBS). Чтобы начать учить клиентский язык веб-программирования, Вам понадобится поддерживающий этот язык браузер (Internet Explorer (www.microsoft.com), Opera (www.opera.com), Netscape Navigator (www.netscape.com), Mozilla (www.mozilla.org), будут подходящими вариантами (лично я пользуюсь последним)) и обучающий материал, который можно найти на сайте alepira.ural.ru

Серверные языки

Итак, теперь разберемся в том, как обрабатываются скрипты на серверном языке программирования. Для начала предоставлю следующую схему:

Когда пользователь дает запрос на какую-либо страницу (переходит на нее по ссылке, или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере, то есть выполняются все скрипты, связанные со страницой, и только потом возвращается к посетителю в виде простого HTML-документа (то есть посетитель уже никак не сможет увидеть код Вашего скрипта). Но работа ваших скриптов уже полностью зависима от сервера, на котором расположен ваш сайт, и от того, какая версия того или иного языка поддерживается хостингом.

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

Здесь же стоит упомянуть, что такое Система Управления Баз Данных, или СУБД. Это, по сути, тоже сервер, на котором в определенном пользователем порядке хранится разная необходимая информация, которая может быть вызвана в любой момент. Это библиотека, в которой все материалы аккуратно сложены по полочкам и в любой момент могут быть взяты. Обычно при покупке хостинга выделяется одна База данных (БД), в которой пользователь может создавать множество таблиц, а в них уже хранить разнообразную информацию. То есть если опять же вернуться к примеру с гостевой книгой, то в какой-либо созданной Вами таблице можно хранить сообщения, оставленные пользователями. Можно, конечно, хранить их и в текстовом файле, но это менее надежно, да и к тому же я привел лишь мелкий пример, а если, скажем Вам надо хранить пароли (а их надо хранить в зашифрованном виде), или связать несколько таблиц при обращении к каким-либо данным, тут без БД не обойтись.

В настоящее время стали известны и не напрасно СУБД, обращение к которым производится посредством Structured Query Language (SQL), или структуризированным языком запросов. Чтобы работать с этими базами данных (дополнять, обновлять, делать запросы и т. д.) вам необходимо знать этот самый SQL. Среди таких СУБД наиболее известна MySQL (www.mysql.com), я же для себя предпочел PostgreSQL (www.postgresql.org).

Пара слов напоследок

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

Среди серверных языков программирования выделяются PHP (PHP: Hypertext Preprocessor) (www.php.net), Perl (www.perl.com), SSI (Server Side Include). Для тестирования этих скриптов Вам понадобится уже побольше: сервер (www.apache.org), интерпретатор языка (можно взять на сайте производителя), ну и конечно при продуктивной работе еще и СУБД.

The Dynamic Websites Server-side programming topic is a series of modules that show how to create dynamic websites; websites that deliver customised information in response to HTTP requests. The modules provide a general introduction to server-side programming, along with specific beginner-level guides on how to use the Django (Python) and Express (Node.js/JavaScript) web frameworks to create basic applications.

Most major websites use some kind of server-side technology to dynamically display different data as required. For example, imagine how many products are available on Amazon, and imagine how many posts have been written on Facebook? Displaying all of these using completely different static pages would be completely inefficient, so instead such sites display static templates (built using HTML , CSS , and JavaScript), and then dynamically update the data displayed inside those templates when needed, e.g. when you want to view a different product on Amazon.

In the modern world of web development, learning about server-side development is highly recommended.

Learning pathway

Getting started with server-side programming is usually easier than with client-side development, because dynamic websites tend to perform a lot of very similar operations (retrieving data from a database and displaying it in a page, validating user-entered data and saving it in a database, checking user permissions and logging users in, etc.), and are constructed using web frameworks that make these and other common web server operations easy.

Basic knowledge of programming concepts (or of a particular programming language) is useful, but not essential. Similarly, expertise in client-side coding is not required, but a basic knowledge will help you work better with the developers creating your client-side web "front end".

You will need to understand "how the web works". We recommend that you first read the following topics:

With that basic understanding, you"ll be ready to work your way through the modules in this section.

Modules

This topic contains the following modules. You should start with the first module, then go on to one of the following modules, which show how to work with two very popular server-side languages using appropriate web frameworks.

Server-side website programming first steps This module provides server-technology-agnostic information about server-side website programming, including answers to fundamental questions about server-side programming - "what it is", "how it differs from client-side programming", and "why it is so useful" - and an overview of some of the more popular server-side web frameworks and guidance on how to select the most suitable for your site. Lastly we provide an introductory section on web server security. Django Web Framework (Python) Django is an extremely popular and fully featured server-side web framework, written in Python. The module explains why Django is such a good web server framework, how to set up a development environment and how to perform common tasks with it. Express Web Framework (Node.js/JavaScript) Express is a popular web framework, written in JavaScript and hosted within the node.js runtime environment. The module explains some of the key benefits of this framework, how to set up your development environment and how to perform common web development and deployment tasks.

See also

Node server without framework This article provides a simple static file server built with pure Node.js, for those of you not wanting to use a framework.