Сегодня большинство бизнесов (если не все) нуждаются в полнофункциональных сайтах для обслуживания своих клиентов. Бэкенд-разработчики помогают создать и оптимизировать такие ресурсы.
Бэкенд-разработка — это все процессы, скрытые от глаз потенциального пользователя, происходящее вне его браузера и компьютера.
Бэкенд-разработчики отвечают за построение логики приложений и сайтов, создание алгоритмов, а также решают задачи обработки данных. Такие IT-специалисты обычно умеют интегрировать в имеющуюся платформу всевозможные сервисы, инструменты, библиотеки.
В этой статье я расскажу, какие знания и навыки пригодятся вам для старта карьеры бэкенд-разработчика. Речь пойдет о технической базе, которая позволит успешно овладеть программированием. А в конце — небольшой бонус для практики.
7 шагов, которые нужно пройти перед изучением языка программирования
- Разберите компьютер по запчастям
Именно на этом устройстве вы создаете программные приложения. Поэтому нужно понимать, что находится «под капотом» и как все работает: процессор, оперативная и постоянная память, материнская плата, дисководы, разъемы и т.д.
- Освойте операционные системы
По собственному опыту скажу так: хорошему бэкендеру лучше разбираться в нескольких из них. Хотя для разработки можете выбрать ту, которая больше нравится. Чаще всего бэкенд-разработчики обращаются именно к Linux. Известность системы обусловлена тем, что на ней работает большое количество серверов. Лично я выбрал Linux Mint и Ubuntu, а в качестве основной системы использую MacOS.
- Ознакомьтесь с командной строкой (терминалом)
Следует знать основные консольные команды: работа с директориями, файлами, подключение к сторонним серверам, консольный текстовый редактор. Используя эти знания, вы сможете выполнять большинство действий с помощью терминала. Например, создавать файлы, директории, искать нужные данные, устанавливать дополнительные программы, управлять процессами операционной системы и т.д. К тому же у большинства серверов может не быть графической панели администрирования. В таком случае пригодится использование терминала.
- Узнайте, как происходит передача данных от фронтенда к бэкенду
Пользователь вводит в адресную строку запрос. Браузер пытается понять IP-адрес сервера, на котором находится сайт. Обычно такая информация хранится в DNS — распределенной системе серверов. Это что-то вроде списка контактов в смартфоне. Только в качестве номеров здесь IP-адреса, а вместо имен людей — домены сайтов.
Например, если необходимо найти IP-адрес сайта mail.google.com, браузер спрашивает о нем у DNS-сервера. Сервер может ответить: «Я не знаю о mail.google.com. Я знаю сервер, который отвечает за google.com». Запрос переадресовывается дальше, пока один из серверов не найдет ответ на вопросы. Как только это удалось, браузер пытается установить соединение, обработать ответ и отобразить запрашиваемую страницу конечному пользователю.
- Поработайте с серверами
Поскольку бэкенд-часть находится на серверах, разработчику нужно научиться работать и с ними. Именно они предоставляют доступ к данным по протоколам HTTP и HTTPS. Попробуйте установить веб-сервер, изучите его конфигурации и команды для работы с сервером. А затем узнайте, как создать конфигурацию для вашего будущего сайта или веб-приложения.
- Освойте работу с базами данных
Почти каждое приложение работает на основе информации, которую нужно где-то хранить. Начните с реляционных баз данных MySQL или Postgre. Они используют одинаковый язык для работы — SQL. Изучите базовый синтаксис запросов, в частности Select, Insert, Update, Delete. Затем узнайте, как создавать базы данных, модифицировать таблицы, добавлять и удалять колонки, ознакомьтесь с индексами и транзакциями.
- Разберите алгоритмы для работы с данными
Чтобы качественно обработать полученную информацию, обратитесь к наиболее распространенным функциям для работы с массивами, срочными и другими типами данных. Важно понимать базовые алгоритмы для работы с данными, в частности, сортировку массивов. Начните с сортировки пузырьком и постепенно овладейте алгоритмом быстрой сортировки. Исследовав оба варианта, можете сравнить их производительность. После этого вы уже сможете написать набор инструкций на псевдокоде, а затем превратить их в настоящий код.
Советую потренироваться на задачах по обработке массивов данных. Упражнения будут помогать осознать, как устроен язык программирования «изнутри».
Также необходимо ознакомиться со следующими терминами:
- массивы данных
- переменные
- функции
- константы
Что-то знакомое? Да, это все может напомнить классическую математику. Если вам хорошо давалась эта наука в университете, то с языком программирования будет значительно легче разобраться.
Как правило, вышеперечисленную теорию преподают на технических кафедрах. Для начала этих знаний вполне достаточно. А дальше — терпение, упорство и желание изучать новое помогут постичь бэкенд.
Какие языки программирования подойдут для разработки на бэкенде
Прежде чем приступить к изучению любого языка программирования, я рекомендую четко понять, какое у того или иного языка назначение. Каждый из них используется для разных сфер программирования, хотя иногда эти сферы совпадают:
- PHP и JS (Node JS) прежде всего нужны для разработки бэкенд-части сайтов и приложений.
- C# (с платформой .NET) хорошо подходит в качестве бэкенда для веб-приложений, десктопных программ, игр, IoT-решений.
- Python — для приложений в области Data Science, в частности Machine Learning.
- Java — универсальный язык для бэкенда, используемый для высоконагруженных проектов, например, в области fintech. Также Java подходит для игр, мобильных и десктопных приложений.
Если хотите развиваться в сфере машинного обучения, выбирайте Python или язык R. Для веб-разработки лучше всего подойдет стандартный стек LAMP (Apache)/LEMP (Nginx), PHP или Python .
В свое время я выбрал PHP, потому что хотел связать свою жизнь с веб-разработкой, работать с проектами e-commerce. Сегодня это один из самых популярных языков для серверной разработки. Чем это обусловлено?
- Синтаксис РНР интуитивно понятен. Чтение и написание кода очень удобно. Командные функции PHP тоже легко выучить, поэтому многие начала выбирают именно этот язык.
- Наибольшее количество сайтов в мире написано на PHP. Среди них сайты компаний Pfizer, BBC, Disney, New York Times, Twitch, Warner Bros. Ресурсы все время нужно обновлять, поддерживать, поэтому РНР-специалисты всегда будут востребованы.
- Удобные фреймворки. К примеру, Laravel и Symphony позволяют создавать приложения любого уровня сложности.
Узнаем паттерны программирования на практике
Замечу: ниже приведенная задача не из легких, требует немного креатива, но хорошо поможет вам разобраться с основными подходами в программировании.
Когда новичок создает сайт, для каждой страницы он обычно делает отдельный файл. Со временем страниц становится все больше. Разработчику все труднее поддерживать структуру в должном виде. В нашем случае нужно создать файл index.php, на который будут отправляться все запросы с фронтенда. Затем необходимо настроить конфигурацию веб-сервера таким образом, чтобы получать запросы именно через этот файл.
Переходим к формированию структуры папок. Лучше всего сделать так, чтобы бизнес-логика вашего фреймворка была отделена от той части, которая доступна пользователю в браузере. Рекомендую следующее:
- app:
- Models
- Controllers
- public:
- index.php
- views
Начальная структура директорий готова. Следующий этап — маршрутизация логики для приложения. Ее можно поместить, например, в файл bootstrap.php в каталоге app и обязательно подключить этот файл в index.php. Кроме того, нужно создать массив роутов, где будут сопоставляться страницы и соответствующие контроллеры и обрабатывать запросы пользователя.
После создания маршрутизации переходим к созданию контроллеров, моделей данных и темплейтов для отображения результатов пользователя.
Логика будет следующая: есть роут, к которому привязан контроллер — в контроллере происходит запрос к базе данных с помощью модели данных — полученная модель используется в темплейте для отображения данных пользователю — готовый темплейт выдается как результат работы контроллера.
В дальнейшем можно расширять функционал фреймворка, добавлять файлы для конфигурации, миграции для базы данных, изменять структуру директорий, использовать сторонние библиотеки и т.д.
Полезные ресурсы для начинающих
В этих материалах вы найдете базовые понятия по веб-разработке:
- How does a computer work
- Computers
- How does a computer work and what is inside
- What is a web server
- Apache Vs NGINX — which is the best web server for you
- What Are the Different Types of Databases
- How to Choose the Right Backend Technology
- Как работает материнская плата
- Типы баз данных
- OSI-модель
- TCP/IP-модель
- Патерны проектирования
Документация:
Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: