Перейти к содержимому

Backend разработка с чего начать

  • автор:

С чего начинать обучение backend-разработчику и какой минимум знаний нужен на junior’а в 2016-2017?

Доброго времени суток. Небольшая предыстория. В этом году закончил вуз по специальности «Прикладная информатика». Вуз далеко не из топовых, поэтому, думаю, вы представляете какой уровень знаний в региональных вузах России в it-направлении дается. К тому же, я себя не оправдываю, сам тоже, сверх программы не занимался (о чем очень сожалею, конечно же). Знания в it настолько общие, что я беру примерный уровень «с нуля».
Сейчас я работаю не по специальности. И появилось желание стать разработчиком. Посмотрев востребованность программистов по направлениям, я понял, что сейчас в тренде веб-разработка (в моем регионе). Меня это интересовало в первую очередь не возможностью зарабатывания денег, а возможностью попасть на стажировку (или в перспективе джуниором).
В 70-85% вакансий backend-разработчиков указан php. но покопавшись немного в интернете, я встретил расхожее мнение, что не стоит начинать учиться программированию с данного языка (мой универский опыт с Delphi и просто Pascal’ем я, конечно,в счет не беру,а базовые знания разметки html/css мне вообще в этом деле не помощник). Мне больше по душе или .net или java (в крайнем случае).
Многие советуют начать изучение программирования с какой-то своей прикладной задачи и говнокодить до посинения, пока криво-косо не получится что-то более-менее похожее на ожидаемый результат, и уже в процессе изучать документацию и прочее. Может это и самый быстрый и удобный вариант с точки зрения уже опытных специалистов, но у меня, как у совсем новичка информация укладывается неструктурировано, отрывками, а хотелось бы, чтобы в голове все было разложено «по полочкам».
Есть неплохая «карта развития веб-разработчика» (https://github.com/zualex/devmap), но там только общий суповой набор для «каждого уважающего себя веб-разработчика». Хотелось бы похожу информацию получить для джуниора. Само собой, я понимаю, что не в таком развернутом виде, но хотя бы приблизительно.
И само собой главная дилемма для меня на данный момент: с чего начать само обучение. С изучения алгоритмов и дискретки, или архитектуры компьютера. Или сразу начинать учить синтаксис какого-то языка. Времени у меня много, поэтому я хотел бы все с азов понять и усвоить.
И, не менее интересующий меня вопрос: какими знаниями, помимо синтаксиса ЯП, нужно обладать, для того,чтобы попытать себя на собеседовании джуниор бэкэндщиком.
P.S. всем заранее огромное спасибо за ответы. так же сильно извиняюсь за «много букв», только учусь правильно формулировать вопросы

  • Вопрос задан более трёх лет назад
  • 15856 просмотров

Комментировать
Решения вопроса 2

Adamos

> информация укладывается неструктурировано, отрывками, а хотелось бы, чтобы в голове все было разложено «по полочкам»

Не существует курса обучения программированию, который раскладывает все по полочкам сразу, в теории. А если и есть — то он не работает.
Чтобы действительно разложить IT-знания по полочкам, нужны годы практического опыта.
Поэтому — погружаться и учить то, что получается изучить. Сразу пробуя то, что получается пробовать. А потом — переучиваться, с ужасом оглядываясь на то, что было сделано год назад. Потому что пришел опыт, и начался новый уровень сложности.

Ответ написан более трёх лет назад
Комментировать
Нравится 8 Комментировать

marrk2

Есть неплохая «карта развития веб-разработчика», но там только общий суповой набор

Вам этого общего супового набора на полжизни хватит

с чего начать само обучение

С языка, остальное вторично

какими знаниями, помимо синтаксиса ЯП

А тут уже специализации. Есть БД есть сисадминство, есть специалисты по узким сферам, REST API например

Ответ написан более трёх лет назад
Нравится 2 5 комментариев
toknow @toknow Автор вопроса

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

marrk2

toknow: Распыляться на протоколы и т.п. точно не стоит. Первый язык должен быть тот по которому инфы больше всего — это php или JS а потом остальные уже проще пойдут, просто поверьте ))

toknow: что значит минимум? Разработчик разрабатывает. Джун закрывает джунские задачи. Посмотрите требования в вакансиях и изучайте.

Что нужно знать, чтобы сейчас начать работать backend-разработчиком?

Что нужно знать, чтобы сейчас начать работать backend-разработчиком?

Это рубрика, в которой эксперты коротко отвечают на актуальные и волнующие вопросы об IT-профессиях, будущем сферы и ее перспективах.

Освойте профессию
«Fullstack-разработчик на Python»

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

Какая удаленная профессия ваша?
Пройдите профориентационный тест
и получите доступ к библиотеке
полезного контента
Пройти тест

Group 3 (4)

Мнения экспертов

Алексей Шарыпов,
Lead Python Development в ООО «ВК» (VKPay)

Backend-разработчик отвечает за внутреннюю логику работы приложений и сайтов. Отличие этой профессии от большинства других разработчиков заключается в том, что его работу часто не видно невооруженным взглядом. Результат работы сложной логики приложения, написанного backend-разработчиком, пользователь видит в приложениях и на сайтах, нажимая на кнопки, загружая страницы или обращаясь к голосовому помощнику. То, чем frontend отличается от backend’а, мы объяснили на мемах. Кроме привычных сайтов и приложений, в создании которых участвуют backend-разработчики, можно найти множество отраслей, где присутствует идентичная разработка. Среди них финансовые сервисы, сложные агрегаты, промышленное оборудование, умные дома, самолеты.

Станьте веб-разработчиком и найдите стабильную работу на удаленке

  • 2–4 backend-разработчика;
  • 1 frontend-разработчик;
  • 1 тестировщик;
  • 1 дизайнер;
  • 1 менеджер.

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

С одной стороны, кризис способствовал оттоку IT-специалистов, с другой — ушли многие западные компании. Вместе с ними некоторые российские компании также вывезли бизнес и специалистов в близлежащие страны.

В результате много разработчиков начали поиск стабильных источников дохода за границей. Дефицит IT-специалистов на западном рынке снизился. В России в связи с нестабильностью ситуации многие, кто не смог или не захотел уехать, предпочитают переждать кризис, не меняя работу. Те, кто потерял работу, предпочитают зарплату в валюте и работу на западные страны.

Backend-разработка в ближайшей перспективе будет очень актуальна. Даже до кризиса во всех отраслях наблюдалась нехватка IT-специалистов. Текущая ситуация заставила переключиться в режим ожидания, так как никто пока не понимает, что будет дальше. После выхода из кризиса в России нужны будут разработчики как на места тех, кто предпочел уехать, так и в новые компании независимо от того, вернутся ли после кризиса западные гиганты или возникнут новые решения на базе отечественных разработок.

Антон Губарев,
Senior Backend Engineer в компании «Авито»

Некоторые компании ушли из России. Однако на их место уже пробуют вставать российские стартапы, открываются новые вакансии. Я имею в виду интернет-ресурсы и инфраструктуру для них: инструменты разработки, облачные технологии и т.д. Здесь абсолютно точно требовались и будут требоваться backend-разработчики. Процесс становления не быстрый, но уже заметно появление новых проектов, масштабирование старых, которые занимают освобождающиеся ниши. Также в стране есть и крупные компании вроде Яндекса, VK, Авито, которые продолжают активную деятельность и постепенно начинают открывать приостановленный на время найм.

С начала кризиса в работе backend-разработчика ничего не поменялось. Используются те же технологии. Требования к кандидатам тоже прежние. Очень важно иметь профессиональное образование. Конечно, можно обойтись и без него, но наиболее широкие перспективы открываются в сфере искусственного интеллекта и машинного обучения, где требуются глубокие знания. Можно начать с профессиональных курсов. Наиболее востребованные навыки для старта — алгоритмы и структуры данных, какой-либо один язык программирования, понимание на базовом уровне SQL, контейнеризации и виртуализации. Обязательно иметь навыки работы в Linux. Также не лишним будет знание принципов работы компьютерных сетей.

О том, как стать backend-разработчиком с нуля, мы рассказали в этой статье.

Backend-разработчики будут востребованы в разных нишах. Наиболее важными и перспективными отраслями во всем мире являются искусственный интеллект и машинное обучение. И Россия тут не исключение. Пока что эти отрасли достаточно молоды в нашей стране, но уже в самом ближайшем будущем их совершенно точно ждет рост. Также всегда будут с нами интернет-ресурсы: социальные сети, интернет-магазины, площадки для размещения объявлений и пр.

Игорь Лопушко,
Backend Team Lead в компании RBI Retail Innovation

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

Профессия затрагивает много разных областей программирования и технологий. Требования к backend-разработчикам меняются не так часто, как к frontend-разработчикам.

О требованиях к frontend-разработчикам мы говорили в этой статье.

Первое, что нужно знать, — базовые алгоритмы программирования и структуры данных. Это поможет получить знания принципов и приемов кодирования. Ведь главное для программиста — не знание языков или технологий, а умение решать задачи и выражать это в виде программного кода. Также критически важными навыками являются знание английского языка и умение быстро обучаться. Технологии развиваются очень быстро, и программистам нужно постоянно узнавать что-то новое. Если вы владеете английским языком, то у вас будет преимущество в доступности англоязычных ресурсов, книг, статей, видеоуроков. Кроме того, чаще всего документация по конкретным технологиям написана на английском языке.

Очень важно владеть одним из языков программирования: Python, Go, C#, Java, JavaScript, Rust, Ruby. Данные языки чаще всего используются для программирования backend-части. Не так важно, каким языком вы владеете, главное — как вы им можете пользоваться.

Для backend-разработчика обязательно знание баз данных, в первую очередь реляционных (SQL): Postgres, MySQL, SQL Server, Oracle. Также желательное знание и нереляционных (NoSQL) БД: Cassandra, MongoDB, CouchDB, Neo4j, RavenDB. Базы данных очень часто используются в приложениях, позволяя сохранять жизненно важные для них данные.

Немаловажным навыком является понимание устройства серверов и интернет-ресурсов, знание API, понимание принципов RESTful-сервисов. Также к обязательным навыкам backend-разработчика можно отнести работу с системами контроля версий, например Git. Особенно важным является навык написания различных видов тестов, таких как модульные или интеграционные. Кроме того, необходимо понимание принципов совместной работы с frontend-разработчиком и верстальщиком.

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

Часто задаваемые вопросы

Что такое бэкенд-разработка?

Бэкенд-разработка — это процесс создания программной части веб-приложения, отвечающей за обработку информации на серверной стороне. Бэкенд работает в связке с фронтендом, который отвечает за отображение информации на клиентской стороне. Бэкенд-разработчики работают с серверными языками программирования и базами данных, используя их для обработки и хранения информации. Они также занимаются созданием интерфейсов для взаимодействия с фронтендом. Без бэкенд-разработки веб-приложения не смогут работать.

Чем занимается бэкенд-разработчик?

Бэкенд-разработчик — это специалист, занимающийся разработкой функциональной части веб-сайта или приложения. Его работа заключается в создании серверной части приложения, настройке базы данных и разработке API для взаимодействия с фронтенд-решением. Бэкенд-разработчик работает с кодом на языках программирования Python, Ruby, PHP, Java и других, используя различные инструменты и фреймворки для оптимизации процесса. Он взаимодействует с различными системами и базами данных, обеспечивает хранение и передачу информации между клиентской частью и сервером. Работа бэкенд-разработчика является ключевой для успешной и безопасной работы веб-сайтов и приложений.

Чем бэкенд- отличается от фронтенд-разработки?

Бэкенд-разработка подразумевает создание и поддержку серверной части веб-приложений. Бэкенд-разработчики занимаются обработкой данных, управлением базами данных, реализацией бизнес-логики и взаимодействием с другими системами. Фронтенд-разработка — создание пользовательского интерфейса.

Преимущества и недостатки у бэкенд-разработки

Преимущества
  • Креативная работа для людей с аналитическим образом мышления.
  • Большая ответственность.
  • Высокая заработная плата.
  • Большая востребованность на рынке.
  • Возможность работать удаленно или в иностранных компаниях.
  • Возможность стать фулстек-программистом после изучения фронтенда.
Недостатки
  • Нужны серьезная подготовка и обширные знания.
  • Новичкам бывает непросто найти работу.
  • Нужно быть в курсе все время меняющихся технологий, чтобы оставаться востребованным специалистом.
  • Для перехода с уровня на уровень требуется учиться и работать минимум 2-3 года.

Fullstack-разработчик на Python

Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.

Что вы сможете запрограммировать через год, занимаясь по два часа в день: бэкенд

Что и как учит бэкенд разработчик и что он будет уметь через год, занимаясь в свободное время — рассказ профессионального бэкендера.

[Чтобы изучить любой технологический стек — будь то фронтенд или разработка мобильных приложений — нужно потратить немало времени и сил. Тем, кто только знакомится с программированием, не всегда понятно, стоит ли в это вкладываться. Особенно если у вас уже есть работа в другой сфере, которая сильно ограничивает личный ресурс на обучение новой профессии.

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

Андрей Черабаев
разработчик IT-компании MediaSoft

Привет, меня зовут Андрей, и я PHP-разработчик. Работаю программистом 5 лет, повидал больше 20 проектов, познакомился с толпой руководителей, разработчиков, тестировщиков, аналитиков и других людей из сферы IT.

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

Перед началом: стек и задачи

Для успешного освоения годового плана обучения программированию я рекомендую придерживаться следующих правил:

  1. Старайтесь выделить хотя бы два часа в день. Не каждый, но желательно.
  2. Не ограничивайтесь одним источником информации. Параллельно с официальной документацией читайте форумы, изучайте курсы, задавайте глупые вопросы гуглу и смотрите видеоуроки. Но не злоупотребляйте последним — чревато ролью пассивного зрителя.
  3. Избегайте скуки. Нужно постоянно придумывать себе «‎челлендж». Как писал автор одной книжки для начинающих: «Это же программирование! Развлекайтесь!»
  4. Помните, что этот план — не истина в последней инстанции. Меняйте его под себя с учетом своих особенностей.

План универсален: всё, что будет различаться в другом стеке, это название языка и список сопутствующих технологий. Замените PHP на Python (Django), Ruby (Ruby on Rails) или C# (ASP.NET), а MySQL — на PostgreSQL или MSSQL, ничего не поменяется. А в двух самых популярных редакторах кода — IntelliJ IDEA и VS Code — поддержка того или иного языка включается пятиминутной установкой плагинов.

В нашем случае язык программирования — PHP. Рядом с ним будут стоять веб-сервер nginx (не люблю Apache) и любая база данных (допустим, MySQL). Это мейнстримное решение в стеке PHP, поэтому остановимся на нем.

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

Что мы встретим в краях бэкенда

  • объектно-ориентированное программирование (ООП);
  • работа с базой данных — например, повесить индекс или оптимизировать запрос;
  • работа с API на отправку и на получение данных;
  • приложения с MVC-архитектурой;
  • работа с хранилищами данных и сторонними сервисами;
  • паттерны проектирования;
  • система контроля версий.

Не расслабляйтесь, на этом список не заканчивается. Это базовые требования к человеку, который претендует на работу бэкенд-разработчика.

Первый этап: основы языка, ООП, базы данных — 4 месяца

В самом начале пути ответьте себе на вопрос: зачем я вообще этим занимаюсь, чего хочу добиться? Может, вы хотите найти работу, может, решили найти развлечение на уютные зимние вечера, а может, в анкету в Тиндере писать нечего. На ваше усмотрение, главное озвучьте сами себе. Это ваш стимул, который не даст вам забросить начатое на полпути.

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

Основы языка

Время: 1–1,5 месяца

Открываем справочник языка и начинаем разбивать его на логические блоки. Берём первые пять: типы, переменные, операторы, конструкции и функции. Это первый пункт плана: основы языка.

При формате «примерно два часа в день» на это уйдет месяц-полтора. За это время надо суметь поставить PHP, написать на нем что-нибудь ради баловства, всё сломать и начать разбираться. Вспоминаем третье правило — избегаем скуки. Можете сразу придумать себе проект, и не надо говорить, что идей нет. Делайте приложение, связанное с вашими интересами или хобби. Каталог книг домашней библиотеки, инструмент для ведения записей или расходов на кота — вперёд и с песней! Через месяц у вас будет приложение — кривое и косое, но оно уже будет работать, и его автором будете вы.

Объектно-ориентированное программирование (ООП)

Здесь советую на пару дней отложить документацию. Читайте статьи, попытайтесь понять базовые вещи об ООП, хотя бы различие между классом и объектом. После этого сразу, пока знания не улетучились, открываем документацию и начинаем изучать всё, что связанно с ООП, неймспейсами, загрузкой классов. Это не самая простая тема, и для того, чтобы появилось стабильное понимание вопроса, придётся потратить около месяца.

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

Базы данных

Время: 1–1,5 месяца

Мы уже написали приложение и даже переписали его на ООП, а всё ещё храним данные в массивах? Непорядок! На этом этапе нужно поставить какую-нибудь базу данных (самое простое — MySQL) и разобраться с языком SQL. В жизни так бывает, что люди сначала изучают базы данных и только потом ООП, но, на мой взгляд, это не слишком удобно: ООП — сложная вещь, на неё требуется больше времени. Пока человек будет с ней разбираться, весь SQL может выветриться у него из головы, и придется учить заново. Так что лучше сначала изучить ООП, а потом БД.

Начните с создания таблиц, наполните их данными, делайте запросы с условием и без. Возможно, за неделю изучения вы дойдете до пресвятого JOIN. Если нет, то за две — это нормально. Главное, не зацикливайтесь на SQL как таковом. БД пока выступают просто как хранилище данных для нашего приложения, а трюки с оптимизацией вы изучите позже. Достаточно разобраться, как это работает, и переходить на отправку запросов из PHP. В PHP для этих целей используется библиотека PDO — встроенный механизм работы с любыми базами данных. Как только поймёте, как работать с БД из PHP, можно прикручивать всё это к вашему приложению.

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

Второй этап: системы контроля версий, фреймворки, паттерны проектирования — 4 месяца

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

Системы контроля версий

Время: 3–5 недель

Самая популярная система контроля версий на данный момент — это Git. Установите её и заведите себе аккаунт на GitHub, куда будете выкладывать свои работы, начните разбираться с его базовыми возможностями. Если одна из ваших целей это поиск работы, то аккаунт на GitHub — ваше резюме.

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

Фреймворки

Время: 1–1,5 месяца

В современной веб-разработке мало что пишут с нуля, потому что есть инструменты и каркасы разработки, в которых уже заложена необходимая функциональность. Для начала советую фреймворки Yii2 или Laravel (Yii для новичка будет немного проще, но Laravel, на мой взгляд, лучше организован). Просто начните точно так же с изучения их документации и перепишите с нуля ваше приложение, которое вы написали в самом начале обучения. Реализация одной и той же идеи с помощью разных инструментов позволит увидеть принципиальные различия в коде. Если же старый проект вам наскучил, напишите что-то новое. Необязательно выдумывать стартап — просто возьмите готовую идею и перепишите по-своему, это для опыта, а не для выхода на IPO.

Очень рекомендую разбирать всё, с чем вы сталкиваетесь, как можно подробнее. Увидели QueryBuilder — напишите свой, если не делали этого, когда разбирались с PDO. Увидели роутинг — посмотрите, как он сделан во фреймворке, и попробуйте придумать его самостоятельно. Зачем? Во-первых, чтобы набить руку. Во-вторых, чтобы лучше понимать работу и внутренние процессы очень многих вещей и это не было для вас магией. В-третьих, как я говорил в самом начале, — чтобы создать резюме в виде репозитория своих проектов. Если хотите, можете даже попробовать написать свой домашний микрофреймворк, тоже интересный способ изучать эту область: у меня своих фреймворков как минимум два, их создание помогло мне разобраться с такой вещью, как метапрограммирование.

Паттерны проектирования

Время: 2–5 недель

В ООП есть раздел, о котором очень многие почему-то говорят с придыханием — это «шаблоны ООП» или паттерны. Само появление этого раздела и одноименной книги связано с тем, что разработчики раз за разом сталкивались с одними и теми же проблемами проектирования, в итоге был предложен список из 23 шаблонов, решающих типовые задачи. Это так, краткий экскурс в историю. Почему мы не занялись этим раньше? Потому что без практики сразу погружаться в эту достаточно академичную область сложно. Банальный пример — как объяснить устройство и пользу паттерна «Строитель» (Builder), если до этого человек не изучил QueryBuilder? Это будет слишком сложно.

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

Третий этап: сопутствующие технологии — 4 месяца

Далее мы подходим к самой размытой части нашего плана — к многообразию сопутствующих технологий, и не только в области бэкенда, а программирования и разработки вообще. Разработка программного обеспечения безгранична, и ваши дальнейшие действия будут зависеть от ваших потребностей (или потребностей работодателя). Изучили Laravel или он вам просто надоел — изучайте Symfony, этот фреймворк не менее востребован. Захотели немного во фронтенд — изучайте JS, Angular, React, да хоть jQuery. Захотели изучить что-нибудь за пределами REST API — вебсокеты и GraphQL ждут вас. Хотите попробовать NoSQL, чтобы хранить документы, которые в обычную БД без боли не засунуть, или хранить настолько разрозненные данные, что никакой SQL не справится, — берите MongoDB или Redis и разбирайтесь до посинения. Хотите узнать, что такое поисковые движки и как у «взрослых дядь» работает текстовый поиск, — ElasticSearch и Sphinx к вашим услугам.

Обязательно изучите Docker — систему упаковки приложения для более удобного деплоя. Чем это может быть полезно для домашнего проекта? Если вы захотите сменить версию PHP или вообще язык, вам не придется что-то ставить на рабочую машину: достаточно поменять конфиги Docker, и приложение запустится без вашего участия. А еще немного поможет с пониманием, как взаимодействуют между собой отдельные части приложения: фронтенд, веб-сервер, бэкенд, база, что такое отдача статики (картинок и шрифтов). Таким образом, Docker позволяет не зависеть от окружения на сервере, от окружения на рабочем месте, упрощает сборку и развертывание проекта, повышает безопасность работы за счет изоляции всех частей приложения, в том числе и друг от друга. Маленький совет: если вы до сих пор работали на Windows, то настало время разобраться с Linux. Потому что Docker и Windows очень плохо дружат.

Если за год вы освоили все вышеописанное — я вам честно аплодирую. Потому что лично я в своё время освоил не всё из этого списка. Если не получилось, не отчаивайтесь и не спешите посыпать голову пеплом — все учатся по-разному.

О backend-разработке и с чего начинать новичку

Разработка делится на два направления: это frontend и backend. Frontend — это то, что вы видите, то, с чем взаимодействует пользователь. Интерфейс, анимация, визуальные элементы на сайте или в приложении.

Backend — это процессы, скрытые от глаз юзера, происходящие вне его браузера и компьютера на каком-то удаленном сервере. Backend включает в себя все компоненты и функции, которые недоступны напрямую пользователю, но доступны через интерфейс. Это сертификации, аутентификации, фоновые скрипты, автоматические взаимодействия.

Если сайт — это машина, то frontend — это руль, колеса, салон, приборная панель. А backend — это вся начинка автомобиля. То есть коробка передач, мотор, механизмы и все, что заставляет машину двигаться с места.​

Мирас Лес, ведущий backend-разработчик Kolesa Group, рассказал медиа The Tech о профессии бэкендера.

Кто может стать backend-разработчиком

У backend-разработчика много задач. Причем цена ошибки довольно высокая. Тогда возникает вопрос: Зачем же становиться backend-разработчиком?​

Программирование — однозначно творческая деятельность. Каждый день backend-разработчик будет сталкиваться с различными рода задачами, которые будут требовать все более изящных и элегантных решений. При этом чем выше становится ваш уровень backend-а, тем более сложные профессиональные цели будут перед вами ставить. Но когда вы увидите, что под вашими пальцами создается результат, который приносит пользу многим людям, вы поймете, что это того стоит. Это будет вашим двигателем делать еще больше и лучше. Если вы получаете удовольствие от такого интеллектуального труда, то эта профессия определенно для вас.​ ​

Однако важно понимать, что помимо творческих задач, деятельность программиста заключается в видении малого. Будьте готовы к тому, что вам понадобятся усидчивость и терпение. Большая часть времени будет уходить на кодинг, поиск погрешностей, написание кода и его исправление. Это естественный рабочий процесс. Помните, что стать программистом не так-то просто. Здесь нужен особый склад ума. Вам пригодятся такие качества, как умение системно мыслить, аккуратность, кропотливость. Если вас это не пугает, то добро пожаловать в профессию.​

С чего же начать​

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

Главный инструмент backend-разработчика — это язык программирования. Если сравнить с frontend или мобильной разработкой, то по этим направлениям нужно всего один-два языка. В backend-е же это огромное количество языков, и есть из чего выбирать. Это могут быть Python, Golang, PHP, Java Script. И это список лишь самых популярных языков программирования. А есть еще С++, Кобол и так далее.​

Однако не стоит забывать, что язык — это лишь инструмент. Какой из них использовать, зависит от поставленной цели и от количества ваших знаний. Если вы уже работаете и используете Python, то прекрасно, продолжайте изучать его более углубленно. Изучите, на что он способен, какие проекты на нем можно и нужно писать, а какие нет. Если вы во Frontend-разработке и хотите попробовать себя в Backend, то лучше использовать Java Script.​

Но если вы только начали и хотите попробовать себя в этой сфере, то моя рекомендация — начинайте с языка PHP. Он неизменно классика в backend-разработке. Ведь именно на нем написана большая часть сервисов. К слову, в Kolesa Group мы тоже используем либо PHP, либо Golang.​

Язык программирования: Какой выбрать начинающему backend-разработчику?

PHP по ряду причин — отличный язык для начинающих.

Первое — этот язык постоянно развивается. В конце прошлого года вышла обновленная версия, которая принесла набор уникальных возможностей, которые вы не найдете в других языках.​

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

Второе — это сообщество и разнообразие материалов. Один из ключевых пунктов при выборе любой технологии — это наличие сообщества и курсов, презентаций, чтобы ознакомиться с ней. У PHP есть огромное сообщество, и оно к тому же активно. На любой вопрос вы без труда найдете ответ в Интернете. Помимо этого, на PHP есть огромное количество материалов для самостоятельного изучения. Это интенсивы, видеооуроки, статьи и лекции. PHP позволяет начинать с малого и переходить к большему, к более сложным проектам.​

Третье — PHP отлично интегрируется со всеми языками базы данных. У него есть все необходимые расширения для работы backend-разработчиком. На нем даже можно экспериментировать.​

Мода на языки программирования меняется постоянно, но PHP всегда остается в десятке самых лучших.​

База данных. Backend-разработчику обязательно знать, как работают базы данных.​

Освойте транзакцию. Нужно понять разницу между реляционными и объектно-реляционными БД. Вам нужно понимать, когда использовать индексы и так далее. Работы с базами очень много. Есть такие популярные базы данных, как SQL и mongoDB. Изучите их.

Веб-серверы. Ко всему прочему разработчику нужно знать, как настраивать такие популярные серверы, как Apache и Nginx.​

Фреймворки.​ Не стоит недооценивать важность и преимущества использования фреймворков.Фреймворки вам дадут понимание всех принципов построения современных веб-приложений. Для PHP действуют два самых популярных фреймворка: Laravel и Symphony.​

Вывод

Backend-разработчик — важнейшее звено в работе сайтов и приложений. Именно от него зависит, насколько стабильно, быстро будет работать сам сервис, какие там будут функции и возможности для пользователя.​

Он делает так, чтобы push-уведомления отправлялись именно на ваш телефон, а не другого пользователя, чтобы все работало исправно, чтобы данные сохранялись. Именно благодаря ему ваши фотографии, отзывы и просмотры именно у вас, а не у другого человека.​

Советы

​Backend-разработчику нужно постоянно улучшать свои навыки и непрестанно учиться новому, так как IT-сфера постоянно меняется.

Важно уметь работать в команде.

Уметь нести ответственность за свои действия, быть осторожным и искренне любить то, что делаешь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *