Найти тему
WebSailors

Первые шаги в веб-разработке. С чего начать ?

Веб-разработка - это огромная сфера деятельности, получившая начало в 90-х годах прошлого столетия. Первопроходцем был женевский ученый Тим Бернес-Ли. Он создал первый в мире сайт с описанием технологии WWW (World Wide Web), основанной на протоколе HTTP, методе адресации URL и разметке HTML. Это был первый в мире информационный каталог. С этого момента разработка сайтов стала одним из самых быстро развивающихся отраслей в мире. В 1995 году насчитывалось менее тысячи компаний, занимающихся веб-разработкой, а в 2000 их уже было зарегистрировано более тридцати тысяч только в США.

Что касается России, то развитие Интернета и веб-разработки, как таковой, началось лишь в начале 2000-х, несмотря на то, что первый русскоязычный сайт был сделан в 1995 году. Такое "запаздывание" было обусловлено слабым развитием каналов связи, отсутствием литературы на русском языке и недостатком профильного образования.

Когда мы начинали писать свои первые программы в 90-х, основными инструментами были языки Pascal, C/C++, assembler. Если ты знал Delphi - ты был программист, если С++, то уже "гуру". К веб-обработке относились крайне недоверчиво, не видя перспективы и методов распространения результатов своего труда. Самым доступным способом распространения программ были дискеты, а чуть позже - компакт диски. Загрузка любой программы из Сети занимала часы.

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

Зато образовалась другая проблема, появилось "море" информации, огромное количество языков и технологий. "Стартовать" программисту в такой ситуации стало чрезвычайно сложно. Эта ситуация наблюдается даже сейчас. Но веб-программирование - это очень хорошая специальность, востребованность специалистов - высокая, зарплаты - высокие. То есть "начинать" определенно стоит.

Мы, основываясь на собственном опыте, попытались разобраться, как сделать первые шаги в веб-разработке, с чего начать и как гармонично развиваться.

Сперва стоит честно определиться с своей собственной "классификацией", например по примеру Зеда Шоу (автора книги "Легкий способ выучить Python"): я новичок или начинающий программист. Дело в том, что новичок очень слабо развивается в базовых концепциях программирования и у него отсутствуют даже общие компетенции. Новичок боится слова "консоль", "сборка", "конфигурация", "компиляция", не знает протоколы, методики и средства разработки и базовые алгоритмы. Начинающий программист уже кое-что знает, имеет некоторый опыт и даже кое-что умеет. Следует помнить, что из новичка можно спокойно развиться сначала до начинающего программиста, а затем и до профессионала, поэтому сильно переживать не стоит.

Далее следует определиться с областью будущей профессиональной деятельностью. Дело в том, что сейчас четко разделяют следующие специализации в веб-разработке:

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

Front-end разработчики. Создают "внешний вид" сайтов и веб-приложений, разрабатывают пользовательский интерфейс, шаблоны для CMS. В последнее время, при помощи специальных библиотек (фреймворков) типа React.js / Angular / Vue.js, фронтэнд-разработчик может создавать не статические сайты, а именно приложения "для браузера", когда часть логики переносится с сервера на машину клиента.

Mobile/Native разработчик. Разрабатывает мобильные приложения на стыке веб-технологий и нативных (естественных) инструментов для мобильных устройств. Переход веб-разработчиков в сферу мобильной разработки стал возможен появлению, опять же, таких современных инструментов, как NativeScript, React Native, Ionic, Flutter и тому подобных решений.

Full-stack разработчик. Может делать и фронт-энд и бэк-энд. Это комплексная специальность, но она дает возможность одному человеку разрабатывать и серверную и клиентскую часть распределенного приложения. Сложность обучения такого специалиста заключается в том, что нужно знать много технологий. Например Python (Django), Ruby on Rails, Java/Scala, PHP или .NET для сервера, и, определенно, JavaScript для клиента. Ситуацию немного улучшает возможность использовать JavaScript или TypeScript и на серверной и на клиентской стороне, ровно как и для мобильных устройств.

В любом случае, есть базовый набор техник, которые должен знать любой программист в данной сфере: это верстка на HTML, стилизация элементов CSS и добавление интерактивности при помощи JavaScript. Также необходимо знание подходов REST, принципов построения API, протоколов HTTP/HTTPS, базовых операций для работы с базами данных, методов сборки и запуска серверных и клиентских приложений.

Как же начинающему программисту "пуститься в плавание" во волнам веб-разработки?

Мы можем дать несколько советов.

Выберите специализацию и стек технологий.

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

Учитесь на примерах.

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

Читайте документацию.

Документация к библиотеке или фреймворку - это лучший "друг" разработчика. Грамотно составленная документация с примерами от авторов кода способна ответить на все основные вопросы, а после ее изучения уже можно приступить к анализу материалов форумов или блогов.

Решайте задачи.

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

Читайте книги.

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

Изучайте различные курсы.

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

Вместо заключения.

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

Это специальность будущего и шанс изменить мир!