Книги бесполезны - читайте форумы

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

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

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

Веб-мастер (встречается также вариант вебмастер; веб-разработчик) — человек, занимающийся разработкой веб-сайтов или корпоративных приложений для Интернета. В зависимости от размера коллектива разработчиков, он может объединять в себе функции автора, дизайнера, верстальщика веб-страниц, программиста, системного администратора, модератора, контент-менеджера (ответственного за содержимое), сотрудника технической поддержки, специалиста по продвижению сайта (SEO, «раскрутка») и другие. Подобные специалисты чаще всего разрабатывают и поддерживают небольшие сайты, так как крупные (и дорогие) интернет-порталы имеют возможность распределить роли на нескольких специалистов (или заказать их услуги в специализированных агентствах).

В целом, всё так и есть. Современный вебмастер это такой себе "человек-оркестр" цифровой эпохи. Уметь надо всё и немножко больше. Конечно, если есть желание не плестись в хвосте у конкурентов или самоутверждаться в комментариях среди диванных экспертов.

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

Азы интернета


В интернете самое начало-начал это стек протоколов TCP/IP. Да, IP - это тот самый адрес компьютера выходящего в сеть, по которому так любят вычислять адрес. Без этих знаний крайне сложно понять структуру и работу мировой сети вообще. Здесь я рекомендую книгу "TCP/IP. Сетевое администрирование" автора Крейга Ханта, редакции 2016 года. Есть еще книга Александра Филимонова "Протоколы интернета" образца 2002 года, с забавным возрастным ограничением от нуля лет. Подойдет даже дошкольникам.

Дальше больше. Не будем останавливаться на достигнутом. Язык HTML. Все страницы сайтов в интернете так или иначе созданы на HTML. Сейчас уже пятая версия языка, но начать лучше с четвертой. "Самоучитель HTML 4" редакции 2001 года даст хорошие знания основ языка. Сразу за ним стоит ознакомиться с пятой версией. Подойдет "HTML5. Недостающее руководство" Мэтью Макдональда 2016 года выпуска. Почему не стоит начинать сразу с пятой версии? Во-первых, не будут понятны изменения языка, что улучшено, что нет. Во-вторых, многие сайты до сих пор работают на четвертой версии и не собираются ничего менять. К вопросу, почему же тогда не обратиться к третьей, второй или первой версии языка мы вернемся позже.

Вместе с HTML стоит ознакомиться с CSS. CSS - это каскадные таблицы стилей. Технология разработанная для уменьшения размера страницы и времени разработки. Тут нам поможет "CSS. Быстрый старт" Луиса Лазариса. Книга вышла в 2013 году.

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


JavaScript. Язык выполняющийся на стороне клиента. Наравне с HTML и CSS используется в большинстве современных сайтов. Знать его, или хотя бы понимать, обязан любой уважающий себя вебмастер. "JavaScript для детей. Самоучитель по программированию" c возрастным ограничением от шести лет прекрасно подойдет как нашему любопытному школьнику, так и всем остальным.

Вообще, языков программирования для интернет существует великое множество и перечисление их всех выходит за рамки данного обзора. Возможно я напишу отдельную статью про каждый из них, но пока мы остановимся на тех популярных и основных, которые следует изучить в первую очередь. Кстати, на вышеупомянутом JavaScript создана модная нынче технология AJAX. Про неё неплохо написано в "AJAX: программирование для Интернета" авторов Геннадия Самкова и Елены Бенкен.

Самые распространенные языки программирования, применяемые в интернете это PHP, Python, Perl, Ruby, и ASP.NET. Первые 4 работают в основном в операционных системах (ОС) типа Linux или FreeBSD, пятый предназначен для платформы Windows. Хотя есть версии и для противоположных ОС.

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

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. На Shared hosting почти не поддерживается «из коробки». В некоторых случаях надо писать в тех.поддержку, чтобы включили, но в основном не включают, предлагая перейти на виртуальный или выделенный сервер. Из-за этого язык менее популярен для создания сайтов, но очень популярен для создания разного рода серьезных приложений. Подробнее о языке и его применении можно прочесть в книге Майка МакГрата "Программирование на Python для начинающих".

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

perl -wle '(1 x $_) !~ /^(1|((11+)\3+))$/ && print while ++ $_'

Установлен на многих Shared Hosting, где реализован посредством CGI. Понять, что такое CGI и как оно связано с Perl можно из книги "CGI-программирование на Perl, 2-е издание".

Ruby - динамический, рефлективный, интерпретируемый высокоуровневый язык программирования. По особенностям синтаксиса он близок к языку Perl. Описан в книге Майкла Фитцджеральда "Изучаем Ruby".

ASP.NET - технология создания веб-приложений и веб-сервисов от компании Microsoft. Является составной частью платформы Microsoft.NET и развитием более старой технологии Microsoft ASP. Работает в операционной системе Windows Server, под управлением веб-сервера IIS. О веб-серверах мы поговорим чуть позже. Изучать данную технологию мы будем по "Основы ASP. NET 2.0. Учебное пособие" от А. Гаряка.

Операционные системы


Любой сервер в интернете работает под управлением какой-то операционной системы. Лидирует в этом плане Linux. За ним идет FreeBSD, дальше Windows Server и где-то там за ним macOS Server. Конечно, это очень приблизительный рейтинг популярности и ОС указаны далеко не все, но все нам сейчас и ненужны.

Linux - ядро для Unix-подобных операционных систем. Чистый Linux встречается крайне редко, как и чистый UNIX, кстати. Но существует масса дистрибутивов использующих данное ядро и применяемых как сетевые операционные системы. Самые распространенные это CentOS, Ubuntu и Debian. Хотя, по сути, все дистрибутивы Linux - сетевые ОС. Но не все ставят на сервера.

Начинать изучение можно с любого дистрибутива, они во многом схожи и имеют почти одинаковый набор команд. Я, лично, рекомендую освоить Ubuntu или CentOS. Первый самый простой, второй чаще всего устанавливают на серверах.

Ubuntu - операционная система, основанная на Debian GNU/Linux. Основным разработчиком и спонсором является компания Canonical. По утверждению разработчиков Ubuntu используется примерно 20 миллионами пользователей. И занимает 4 место среди дистрибутивов Linux для веб-серверов. Книга для изучения "Устанавливаем и настраиваем Ubuntu Server 2012-2015 и офисные ПК с Ubuntu". Авторы Филипп Резников и Валерий Комягин.

Debian - операционная система, состоящая из свободного ПО с открытым исходным кодом. Может использоваться в качестве операционной системы как для серверов, так и для рабочих станций. Ознакомиться с основами работы можно в книге Д.Н. Колисниченко "Linux. От новичка к профессионалу, 5-е издание".

CentOS - дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. По моему мнению является лидирующей ОС для веб-серверов. Изучить обе операционные системы можно по книге Войтова Михайловича «Администрирование Red Hat Enterprise Linux. Учебный курс».

FreeBSD - свободная Unix-подобная операционная система, потомок AT&T Unix по линии BSD, созданной в университете Беркли. FreeBSD работает на PC-совместимых системах семейства x86, включая Microsoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM. Хорошая серверная ОС, хотя и не самая легкая в освоении. Изучается по книге Дениса Колисниченко "FreeBSD. От новичка к профессионалу (2-е издание)".

Windows Server - Серверно-ориентированная операционная система разрабатываемая корпорацией Microsoft. В отличие от ОС семейства Linux поставляется без исходных кодов, но с платной лицензией на использование. Книга: "Microsoft Windows Server 2012 R2. Хранение, безопасность, сетевые компоненты. Справочник администратора".

macOS Server (ранее Mac OS X Server, OS X Server) - UNIX-подобная, серверная операционная система. Начиная с 2011 года (версии OS X 10.7), серверная редакция была встроена в обычную версию OS X. Однако для настройки и управления сервером необходимо приобрести пакет управлением (server management app) OS X Server. Была предустановлена на компьютеры Mac mini Server (до 2014 года) и Mac Pro Server (до 2013 года), сейчас программа управления сервером распространяется отдельно для использования на компьютерах Apple. Не работает в России и вообще, не поддерживает русский язык. Из-за чего переводить с английского книги по macOS Server особо не спешат. Книга: "Managing iOS Devices with OS X Lion Server" на английском языке.

Веб-серверы


Веб-сервер — сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает. На данный момент в интернете популярны 3 веб-сервера: Apache, Nginx и IIS.

Apache HTTP Server - кроссплатформенное ПО, работаеющее в операционных системах Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Поддерживает IPv6. Книга: "Администрирование Apache", автор: Марк Арнольд.

Nginx - веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах. Так же существует экспериментальная бинарная сборка под Microsoft Windows. Книга: "Администрирование сервера NGINX", автор: Димитрий Айвалиотис.

IIS (Internet Information Services, до версии 5.1 — Internet Information Server) — проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT. Основным компонентом является веб-сервер, который позволяет размещать в интернете сайты. Поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP. Книга: "Internet Information Services (IIS) 7.0. Справочник администратора", автор: Уильям Р. Станек.

Базы данных


Основная часть данных доступная на современных веб-сайтах хранится в базах данных (БД). БД много, очень много. Но основные, чаще всего используемые в интернете, это MySQL, SQLite, PostgreSQL и MS SQL. Из названий понятно, что SQL здесь играет не последнюю роль. SQL - это формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД). SQL основывается на исчислении кортежей. Начинать изучение БД я рекомендую именно с него. И поможет нам в этом книга Криса Фиайли "SQL: Руководство по изучению языка".

MySQL - свободная реляционная система управления базами данных. Разработку и поддержку осуществляет корпорация Oracle. Является решением для малых и средних приложений. Обычно используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Книга: "Руководство по MySQL".

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

PostgreSQL - свободная объектно-реляционная система управления базами данных. Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows. Книга: "Администрирование PostgreSQL 9. Книга рецептов", авторы: Ханну Кросинг и Саймон Ригс.

Microsoft SQL Server (MS SQL) — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия. Книга: "Microsoft SQL Server 2014", автор: Александр Бондарь.

XML - вообще-то это не СУБД, а расширяемый язык разметки. Изначально разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Но не смотря на это может применяться как база данных. Нередко используется для передачи каких-либо данных или значений. Например партнёрская программа ShopXML в этом формате отдает все необходимые параметры для создания полноценного магазина.

Графика


Использование графических редакторов хотя бы на базовом уровне необходимо вебмастеру, даже если он не планирует стать иллюстратором или дизайнером. Где-то подправить баннер, где-то изображение кадрировать, вариантов может быть много. Лучший инструмент для подобного это, конечно же, платный редактор растровой графики Adobe Photoshop. Но можно обойтись и бесплатными графическими редакторами, такими как Paint.NET или GIMP.

Adobe Photoshop - многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems. В основном работает с растровыми изображениями, однако имеет некоторые векторные инструменты. Доступен на платформах macOS, Windows, в мобильных системах iOS, Windows Phone и Android. Для версий 8.0 и CS6 возможен запуск под Linux с помощью альтернативы Windows API — Wine. Книга: "Photoshop для начинающих", автор: Александр Заика.

Paint.NET — бесплатный растровый графический редактор для Windows NT, основанный на .NET Framework. К сожалению, программа не сильно распространена и книг по ней мало вообще, а на русском языке вовсе нет. Мне удалось найти только "Getting Started with Paint.Net" на английском языке, но стоимость книги столь высока, для достаточно простого и, к тому же, бесплатного графического редактора, что возникает вопрос о целесообразности приобретения книги. Особенно учитывая, что программа простая в освоении и специальных знаний не требует.

GIMP - свободно распространяемый растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой. Не очень удобный в управлении, особенно если уже имеется опыт в Photoshop. Работает в GNU/Linux, macOS, Windows, FreeBSD, Solaris и AmigaOS 4. Книга: "GIMP 2 – бесплатный аналог Photoshop для Windows/Linux/Mac OS", автор: Денис Колисниченко.

Так же полезно будет узнать про уже отмирающую технологию Flash. У технологии богатая история и внушительное количество реализаций всевозможных сайтов, игр, интерактива. Но увы, постоянные недоработки, еженедельные обновления, зачастую криво устанавливающиеся, масса уязвимостей и требовательность к ресурсам технологию сгубили. Книга "Adobe Flash CC. Официальный учебный курс" подойдет.

Лингвистика


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

Английский язык - "Быстрый английский. Самоучитель для тех, кто не знает ничего", автор Сергей Матвеев.

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

История


Выше я обещал рассказать, почему не стоит читать книги по версиям языка HTML ниже четвертой. Это уже история, которую, конечно знать нужно, как и всю историю, но первоочередной задачи в этом нет. Однако для расширения кругозора я все же порекомендую книгу "История компьютерной эры", авторов Макарский Д.Д. и Никоноров А.В. Зачем? Затем, что кто не знает свою историю, не имеет будущего.

Продолжение следует...

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

2017 © Webmasters.click