9. Чистый разум
У вас есть власть над своим разумом,
а не за пределами событий.
Осознай это, и ты обретешь силы.
Марк Аврелий
Как я ранее говорил, программисту важно иметь хорошо «прокаченные» навыки концентрации, фокусировки внимания, терпения и усидчивости. Все они напрямую зависят от вашего ментального, физического и психологического состояния, иными словами, от вашего здоровья в целом. Именно это позволяет достигать желаемых результатов как в обучении, так и по части работы в сфере высоких технологий. Ваш основной рабочий инструмент – не язык программирования, не компьютер и даже не ваши пальцы, которыми вы со скоростью сапсана (который славиться своей скоростью в спринтах) набиваете код на клавиатуре, а ваш чистый разум. Именно от работы мозга и вашего разума зависит ваш успех во всех жизненных сферах (это просто факт, друзья).
Я не хочу показаться «ханжой» и занудой, также умышленно не буду оперировать какой-нибудь статистикой, ссылаться на исследования и каких-то ученых, а просто поделюсь опытом в контексте своей профессиональной деятельности в роли программиста.
Еще в начале «карьеры» веб-разработчика, после окончания института, я заметил за собой такую особенность: если выпиваю умеренную дозу алкоголя, например в пятницу вечером, затем на протяжении недели я не могу сконцентрироваться на проекте и коде, как это было ранее. То есть, не могу войти в состояние «потока», когда мысли на ходу формируются в завершенные идеи, и все это моментально перетекает в код (строки, функции, классы, модули). Это состояние, когда кажется, будто кисти рук напрямую соединены с сознанием, перенося сотни строк кода в IDE (интерактивную среду разработки) на компьютере.
Постепенно я стал экспериментировать, то есть прекращать употребление алкоголя на пару недель, месяц, два, и наблюдать за своим сознанием. Результаты всегда подтверждались. Действительно, выпивая алкоголь в эквиваленте «сто грамм водки» за вечер, вся последующая неделя проходит с показаниями КПД (коэффициент полезного действия) мозга с сильным отставанием (от прежнего). И в какой-то момент, я окончательно принял решение не употреблять алкоголь – вообще никогда и ни в каком виде. Затем, в течение десяти лет, я занимался работой и творчеством, писал код, работал с клиентами, разрабатывал свои проекты – совершенно без алкоголя (от слова «совсем»).
Но как-то раз, давно позабыв о своих экспериментах на «старте» пути, я решил, что выпивать немного хорошего, дорогого коньяка или вина, и только по праздникам, можно. Спустя какое-то время я заметил, вспомнил и осознал, что мои прежние выводы были верны – алкоголь, даже в небольших дозах, полностью перекрывает доступ к состоянию «потока» на несколько дней (от пяти до тридцати). Это ужасно, друзья! Вывод однозначный: если хотите связать жизнь с миром «айти», алкоголь – ваш злейший враг. А рассказы, что любая проблема решается с помощью «полторашки пива», вовремя занесенной «сисадмину», это дело давно минувших дней. Сейчас это, мягко говоря, «не модно».
Аналогичным образом на ваш мозг и сознание действуют другие вредные привычки. Несмотря на то, что я, например, никогда не курил, думаю, мое предположение, что сигареты также снижают потенциал сознания, никто оспаривать не станет. Следуя банальной логике, мне понятно, что нанося вред легким, насыщая кровь никотином, аммиаком, угарным газом, свинцом и прочими вдыхаемыми с табачным дымом веществами, вы уж точно никак не способствуете продуктивности своего мозга. Вообще, для хорошего самочувствия человеку, который большую часть времени проводит за компьютером, жизненно важно иметь постоянный приток максимально свежего воздуха, насыщенного кислородом. Мозгу это необходимо. Так что и никотин – в топку.
Вместе с ним придется максимально сократить, а по возможности и отказаться, от различного рода энергетических напитков (повышающих раздражительность, провоцирующих расстройство сна и депрессию); употребления прочих психостимуляторов, в том числе различных настоек, таблеток; посещение кальянных и курения кальянов (тот же угарный газ, прочие химические вещества), «вайпов», «ашек». Желательно, по возможности, сократить в рационе питания всякий «мусор»: чипсы, газировку, фастфуд, снеки, соусы. Я не говорю, что от всего нужно отказаться раз и навсегда и больше никогда в жизни не употреблять. Однако сократить это однозначно стоит – тело и мозг скажут вам за это спасибо.
Что касается различных запрещенных препаратов, тут и говорить не о чем: если что-то такое присутствует в вашей жизни, все это исключить раз и навсегда. Не вижу смысла на этом даже заострять внимание.
Немаловажен психологический аспект состояния вашего сознания. Если в жизни есть неразрешенные проблемы, семейные драмы, конфликты в семье и отношениях, отсутствие взаимопонимания с родителями, неурегулированные споры, трудности с законом, – это также может стать тормозом на пути профессионального развития, причем не только в «айти». Но очень остро отражается именно на работе в области разработки программного обеспечения (программирования), где, еще раз повторюсь, важен чистый разум.
Дело в том, что если что-то из вышеперечисленного в вашей жизни присутствует, с наибольшей вероятностью оно перетягивает внимание. Достаточно какого-то «триггера», и мысли уже там, фокус внимания на проекте потерян, а чтобы восстановить его может потребоваться как пятнадцать минут, так и целый час (если проект сложный). Вы представляете? «Выпал» из фокуса внимания, потерял мысль, задумался о своих переживаниях – и всё, упустил драгоценное время.
Поэтому настойчиво рекомендую, параллельно с погружением в «айти», урегулировать все вопросы и проблемы, которые, на ваш взгляд, пагубно влияют на ваше настроение, внимание и концентрацию. Попросите прощения у родителей, договоритесь со своей «второй половинкой», найдите консенсус, заплатите налоги в конце концов! Вообще, «айтишники» всегда считались миролюбивыми, добрыми и увлеченными людьми, которые могли часами рассказывать про свои «компуктеры», а еще немного чудаками – да есть такое, признаю… Но это же здорово!
Информационная гигиена – сократите до минимума просмотр новостей, особенно негативного характера. Минимизируйте потребление контента социальных сетей, особенно того, который показывает чью-то «красивую» жизнь – в большинстве случаев все это «постановочный контент», но его просмотр создает сильный контраст с окружающей реальностью. После резко падает мотивация заниматься творчеством, а мысли перетекают из «о, как здорово, я тоже так хочу» в «я веду унылый образ жизни и ни на что не способен». Полностью оградите себя от контента, явно направленного на сексуальную провокацию (это вид психологической манипуляции), будь то фотографии знакомой девушки из той же соцсети или просмотр фильмов для взрослых (что вообще разрушает мозг на физическом уровне, информации об этом полно, изучайте) – оградите себя от всего этого настолько, насколько возможно!
По части спорта. Бытует мнение, будто спорт очень полезен для мозга, но и тут не все так однозначно. Спорт бывает разным. Если вы боксер (в чем у меня был опыт) и параллельно решили стать программистом, учитывайте такой момент: систематические удары по голове не сильно-то способствуют повышению уровня концентрации (мягко говоря), которая нам так необходима. Это касается и других контактных видов спорта, где есть элементы, связанные с нанесением физического урона противнику (и вам).
Посещение спортзала, чтобы «подкачаться». В соотношении затрат времени, сил и денег на получаемый результат по части пользы для мозга – она (польза) очень незначительна. Подробнее о затратах времени и эффективности для среднего обывателя, такого как я, можете прочитать в моей статье: «Тренировка дома или спортзал? Подсчитаем», доступной по ссылке https://s.rche.ru/sport (https://s.rche.ru/sport). На мой взгляд, если не планируете стать профессиональным спортсменом и не «больны» желанием сделать себе «красивое» тело, лучший вариант – разминка, зарядка, а также базовые упражнения (турник, отжим, приседания) в домашних условиях, иногда пробежки на свежем воздухе. Поверьте, этого более чем достаточно (по части спорта) для хорошей работы мозга и чистого разума.
Берегите свой рабочий инструмент друзья, – это лучшая инвестиция в себя, которую вы можете сделать. Я стараюсь придерживаться всего, о чем написал выше, и ни разу об этом не пожалел, чего и вам желаю.
10. Терминология
Прежде чем спорить, давайте
договоримся о терминах.
Франсуа-Мари Аруэ
Я не хочу сильно «грузить» вас различной профессиональной терминологией, чтобы не усложнять восприятие книги новичками, но некоторые термины, определения и понятия в мире веб-разработки необходимо знать. Тем более дальше, по мере чтения книги, они будут встречаться чаще. Возможно, опытные пользователи, читающие этот текст, прекрасно понимают, что такое, например, «сервер» или «протокол связи с сервером». Однако многие новички могут не понимать, о чем речь. Быть может, определения терминов читать не так интересно, как истории «из опыта», и все же для общего кругозора или повторения рекомендую ознакомиться со всем списком.
Работа с сетью
CDN (Content Delivery Network) – Сеть из нескольких взаимосвязанных серверов, размещенных по всему миру с целью размещения на них некоторых файлов ресурсов для ускорения их последующей доставки конечным пользователям.
DNS (Domain Name System) – Система доменных имён, хранящая сведения (записи) о доменах, таких как IP-адрес сервера, куда ссылается домен, данные о маршрутизации почты, прочие служебные записи.
FTP (File Transfer Protocol) – Сетевой протокол передачи файлов, работающий по принципу клиент-сервер. Клиент устанавливает соединение с сервером, например по IP и порту (обычно это порт 21), затем может работать с файловой системой сервера так же, как и с локальной – записывать, изменять и удалять файлы.
GET – Метод запроса по протоколу HTTP, для обращения к сетевому ресурсу (сайту) по URL для получения данных от него. Для того чтобы передать какие-то данные в момент запроса, они добавляются в URL.
HTTP (HyperText Transfer Protocol) – Универсальный протокол взаимодействия сетевых узлов между собой, работающий по принципу клиент-сервер. Изначально разрабатывался для передачи документов (страниц) в формате HTML, но сейчас используется в более широком спектре задач.
HTTPS (HyperText Transfer Protocol Secure) – Протокол, имеющий расширенные возможности по сравнению с HTTP, в частности он поддерживает шифрование данных с помощью протоколов SSL и TLS для повышения уровня безопасности передачи данных.
IP-адрес (Internet Protocol) – Уникальный числовой адрес (идентификатор, состоящий из четырех числовых секций, разделенный точкой, например 10.0.0.1) устройства, работающего в сети по протоколу TCP/IP.
POST – Метод отправки данных на сервер по протоколу HTTP, при котором передаваемые данные содержатся в теле запроса. Как правило, такой метод используется при отправки данных на сервер из HTML-формы.
SSH (Secure Shell) – Защищенный сетевой протокол, позволяющий производить подключение к удаленному устройству (серверу) для осуществления управления им, от передачи файлов (по аналогии с FTP) до работы с сервером, используя командную строку.
URL (Uniform Resource Locator) – Адрес ресурса в сети Интернет, ссылка на сайт, имеющая, например, вид «https://example.com/page.html». Содержит протокол (схему) доступа, адрес хоста (домена), путь. Также может содержать логин, пароль, параметры и якорь. URL со всеми параметрами выглядит так: <схема>:[//[<логин>[:<пароль>]@]<хост>[:<порт>]][/<URL?путь>][?<параметры>][#<якорь>]
Данные доступа – Набор данных, служащий для получения доступа к некому сетевому ресурсу, включает адрес (домен или IP), порт, логин и пароль.
Домен – Уникальный адрес сайта в сети интернет, под которым он зарегистрирован и доступен. Домен, как правило, регистрируется на данные физического (или иного) лица, а в настройках домена указываются различные параметры DNS, например для сопряжения (делегирования) его с IP-адресом сервера, где размещен сайт.
Порт – Числовой идентификатор сетевого соединения, по которому доступна та или иная служба (коих может быть множество), размещенная на сервере. Например, для подключения к сайту используется порт 80, для FTP – порт 21, а для подключения к SSH – порт 22. Таким образом на одном IP-адресе, может быть множество разных служб и сервисов, доступных по разным портам.
Протокол – В нашем контексте, протокол передачи данных по сети. В зависимости от задач и используемых служб (программ) протокол может быть разным. Для передачи файлов – FTP, для доступа к сайту – HTTP, а для удаленного управления сервером – SSH. Вообще, сетевых протоколов насчитывается несколько сотен, и все они используются для своих, определенных задач.
Сайт – Набор данных, как правило, представляющих HTML-страницы, логически объединенных между собой и доступных в сети Интернет по уникальному доменному имени. Под сайтом, как правило, понимают совокупность: домен, хостинг, HTML-страницы, скрипты, базы данных, изображения и прочие ресурсы.
Сервер – В контексте веб-разработки и сети Интернет, сервер – это некий техническо-программный комплекс (компьютерная система), предоставляющая пользователю доступ к чему-либо, например к сайту, или файловому хранилищу, или DNS-службе. На одном физическом сервере, может размещаться множество различных служб.
Сетевой запрос – Отправка данных пользователем (или компьютерной системой) по сетевому протоколу. В зависимости от типа протокола, формируется состав и формат данных сетевого запроса. Например для доступа к сайту отправляет запрос по протоколу HTTP, а в качестве ответа пользователь получает документ в формате HTML (страницу сайта, которую затем отобразит браузер).
Сеть – Информационно-вычислительная сеть, в которую объединены подключенные к ней устройства, в том числе устройства (компьютеры) пользователей, серверы, маршрутизаторы с целью обмена данными между собой. Пример тому – сеть Интернет, или локальная «домовая сеть».
Уровень домена – Доменное имя, состоящее из последовательности символов, с уровнями, разделенными между собой точками. Например домен example.com, является доменов второго уровня, а test.example.com – третьего. Чем больше секций, отделенных точками, тем выше уровень домена. При этом домен первого уровня в указанном примере будет считаться – com. Пользователь может зарегистрировать домен второго уровня (платно) и создать на его основе множество доменов третьего (и последующего) уровней (бесплатно).
Работа с хостингом
Apache – Он же Apache HTTP-сервер, программное обеспечение, веб-сервер, устанавливаемое на сервере в качестве службы, для последующего предоставления пользователю доступа (по протоколу HTTP/S) к ресурсам сайта.
LAMP – Акроним (первые буквы списка), ставший стандартом набора программного обеспечения, устанавливаемого на сервер для обеспечения его работы в Интернет. Расшифровка: Linux – операционная система; Apache – веб-сервер; MariaDB / MySQL – СУБД; PHP – язык программирования. Когда говорят, что нужно установить LAMP на сервер, подразумевают установку и настройку данного перечня программ.
Nginx – Программное обеспечение, веб-сервер, устанавливаемое на сервере в качестве службы, для последующего предоставления пользователю доступа (по протоколу HTTP/S) к ресурсам сайта, но в отличии от Apache имеет ряд преимуществ, в частности скорость работы и малую требовательность к ресурсам.
База данных (сокращенно БД) – Упорядоченный набор данных, хранящийся в одном месте, как правило, в виде одного или нескольких файлов, доступ к которым осуществляется с помощью системы управления базой данных (СУБД), например MySQL, PostgreSQL. В свою очередь СУБД позволяет записывать, изменять и удалять данные в БД.