Как стать полноценным разработчиком: часть 2
Опубликовано: 2017-12-02Это вторая статья из серии статей о самостоятельном обучении программированию и разработке полного стека. Если вы еще не ознакомились с первой частью, посвященной основам CS, алгоритмам, принципам проектирования и фронтенд-разработке, вы можете сделать это здесь.
Мотивация
Теперь вы знаете, как создавать статические веб-сайты с помощью HTML, CSS и Javascript. Хотя изначально Интернет был разработан для обмена статическими веб-страницами, возможности (и ожидания) современных веб-приложений значительно возросли. Почти каждое приложение требует, чтобы вы аутентифицировали пользователей, отвечали им и максимально точно воспроизводили реальные сценарии.
Чтобы сделать вышеупомянутое, вам нужно получить данные от пользователя (или API), обработать их и произвести вывод. Вам также необходимо сохранить эти данные и иметь механизм для идентификации пользователя в следующий раз, когда он/она вернется, чтобы использовать ваше приложение. Для выполнения этих функций нашего нынешнего стека недостаточно.
Интервью с Анкитом Томаром, соучредителем и техническим директором Bizongo
Серверы необходимы для обработки пользовательских данных, хранения файлов, преобразования их в HTML/CSS/JS. Затем эти серверы подают его в браузер в форме, которую может представить пользователю. База данных необходима для хранения данных, важных для вашего приложения. Чтобы запрограммировать сервер, нам нужен язык сценариев на стороне сервера, а для базы данных нам нужна база данных (да) и язык для связи с ней. Это именно то, что мы собираемся сделать в следующих шагах. Для первых семи, обратитесь к предыдущему посту!
Оглавление
Шаг 8: Языки сценариев на стороне сервера
Как упоминалось ранее, для программирования и связи с вашим сервером вам необходимо знать язык, который он понимает. В отличие от внешнего интерфейса, где Javascript является единственным выбором, для бэкенда доступно множество вариантов программирования. Самые популярные из них — Java, PHP, Python, JavaScript и Ruby.
У PHP есть свои недостатки, но у него самая мягкая кривая обучения из всех языков и фреймворков, которые я использовал до сих пор. А PHP предназначен для написания быстрых (и грязных) решений. Таким образом, за очень короткий промежуток времени вы можете создать веб-приложение, которым можно будет гордиться.

Java — это язык программирования общего назначения и, вероятно, самый популярный язык всех времен. Он чрезвычайно популярен для создания мобильных приложений (на платформе Android) и широко используется в большинстве крупных технологических компаний. Head First Java — отличное место для изучения этого вездесущего языка.
Чтобы изучить Python, я настоятельно рекомендую книгу Zed Shaw Learn Python the Hard Way. и «Автоматизация скучных вещей с помощью Python» Альберта Свейгарта. Если вы решили использовать PHP, вы можете изучить основы языка на Codecademy.
Вы уже достаточно знаете синтаксис JavaScript, чтобы запачкать руки при работе с Node и серверными JS-фреймворками (такими как Express). Позже я расскажу о Ruby вместе с Rails, так как он редко используется как самостоятельный язык.
Шаг 9: Изучите SQL
Для следующего шага вам, вероятно, следует немного изучить SQL (язык структурированных запросов). Это язык, с которым взаимодействуют базы данных. И хотя вы можете не использовать его напрямую при переходе на использование фреймворков, все же полезно знать, как напрямую взаимодействовать с вашей базой данных. Хорошая новость заключается в том, что SQL невероятно прост в изучении. Вы должны быть в состоянии получить хорошее представление о нем в течение нескольких часов. Head First SQL — отличный ресурс для этой цели.
Как стать полноценным разработчиком: часть 1
Шаг 10. Изучите «традиционную» полнофункциональную веб-инфраструктуру
Сейчас самое время поэкспериментировать с веб-фреймворками, которые могут сделать за вас большую часть работы нижнего уровня.
Нет недостатка в отличных фреймворках, которые могут удовлетворить все мыслимые цели. Rails (написанный на Ruby), Spring (написанный на Java) и Django (написанный на Python) — одни из самых популярных сегодня фреймворков. Вы можете взглянуть на учебник Майкла Хартла The Rails Tutorial — он доступен бесплатно.
Что касается Django, руководство на официальном сайте — хорошее место для начала. Как только вы почувствуете, что освоились с основами фреймворка, прочтите Two Scoops of Django . Это одна из лучших книг по технологиям.
Если вы решили пойти по пути Spring, я настоятельно рекомендую зарегистрироваться в программе разработки программного обеспечения UpGrad & IIIT-B. Программа дает вам очень целостный обзор структуры и помогает вам создать надежную и масштабируемую серверную часть.


Шаг 11. Фреймворки полного стека Javascript и стек MEAN
Не так давно Backend Development основывалась на концепции цикла запрос-ответ. Например, браузер отправил запрос, а сервер ответил, выдав веб-страницу в формате HTML. Однако с начала 2010 года все больше и больше приложений переходят в режим реального времени.
Структура всей веб-страницы изменяется без обновления и ведет себя динамически в зависимости от пользовательского ввода и взаимодействия (подумайте о чате, лайках, комментариях, живых видео и реакциях и т. д.).

В таком сценарии простого цикла запрос-ответ просто недостаточно. Поэтому в последнее время наблюдается всплеск интереса к асинхронному программированию и превращению AJAX-запросов в норму. Javascript Frameworks, как правило, преуспевают в этом. Итак, имеет смысл познакомиться с одним из основных JS-фреймворков, доступных на рынке. Двумя наиболее популярными из них являются MEAN Stack и MeteorJS.
Интервью с Фаруком Адамом, соучредителем Fynd
Изучение MEAN немного сложнее из-за его асинхронной природы и адских обратных вызовов, которые Node обычно имеет тенденцию развязывать. Но теперь, когда вы опытный разработчик, вы достаточно зрелы, чтобы справиться с его особенностями.
Meteor — это JS-фреймворк с полным стеком, с которым я сейчас экспериментирую. Концепция Meteor абсолютно восхитительна — одна структура на одном языке, которая заботится обо всех компонентах приложения (внешняя часть, внутренняя часть и база данных). Однако это происходит за счет свободы настройки. После того, как вы что-то создали в Meteor, практически невозможно изменить базу данных или серверную структуру, если вы решите это сделать. Тем не менее, я все еще думаю, что это стоящая технология для изучения. Метеор, как известно, чрезвычайно мощный. Он способен делать что-то в сотнях строк кода, тогда как для других традиционных фреймворков потребовалась бы тысяча.
Заключение
Это конец части 2. В этом посте мы рассмотрели ресурсы, касающиеся разработки бэкэнда и различных доступных технологий полного стека. Теперь вы можете с гордостью называть себя full-stack разработчиком. Поздравляем!
Но на этом история полнофункциональной веб-разработки не заканчивается. С появлением iPhone во всем мире произошла революция смартфонов. Все больше и больше людей переходят на использование смартфонов вместо настольных компьютеров. В таком случае крайне важно научиться создавать приложения для двух самых популярных платформ: Android и iOS. Мы расскажем об этом в следующей и последней части этой серии. Кроме того, мы также рассмотрим фреймворки, которые позволяют нам создавать нативные приложения с использованием Javascript (Ionic, React Native и т. д.).
А пока до свидания.
Ваши комментарии и предложения приветствуются!

