В утрированном смысле, веб-разработка – это программирование сайтов. И все бы было просто, если бы это на самом деле так и было.
Все мы знаем, что сайты могут состоять из множества страниц. Это не те страницы, которые мы листаем колесиком мыши, а те страницы на которые мы попадаем нажимая на ссылки клавишей мыши. Так вот, если рассматривать из чего состоит страница сайта внутри, то можно провести аналогию с газетой. Колонки – это верстка, текст – содержимое, шрифт текста – визуальное оформление. До появления современной типографии, чтобы вся эта красота проявилась на бумаге, были специальные люди, которые собирали печатную форму для текста и клише для картинок. Если рассматривать такого человека в формате создателя веб-страницы, его вполне можно назвать веб-разработчиком. А вот печатный станок, который переносил с печатной формы все это на бумагу, в текущих реалиях, можно назвать браузером.
Чтобы создать красивую страницу в интернете нужен дизайнер, верстальщик, программист и у каждого из них своя зона ответственности. Хотя бывает и такое, что все эти профессии вполне могут одновременно существовать в одном человеке. Само собой, если вы хотите просто отобразить текст на странице, то и дизайнер с программистом вам не нужен. Все зависит от конкретной задачи.
К примеру, если рассматривать простой сайт – это уже комплекс страниц, которые могут содержать ссылки друг на друга. Можно сверстать несколько страниц, наполнить их текстом и картинками и оформить по своему вкусу. И это легко может отобразить любой браузер.
Но вот, если мы захотим сделать интернет-магазин, где товары и цены на них меняются каждый день, где можно сделать онлайн заказ или зайти в чат с консультантом, здесь уже не обойтись «газетной» версткой. Необходимо запрограммировать взаимодействие сайта и пользователя. Помимо этого обязательно нужна база данных, которая будет хранить товары и данные о пользователях и их заказах. Примерно в этот момент, разработка начинается делиться на клиентскую и серверную часть.
Клиентская часть – это все, что отображает браузер. Внешний вид, визуальные эффекты, взаимодействие с формами и кнопками, реакция на действия пользователя. Также клиентская часть отвечает за отображение данных, полученных с сервера и отправку данных на сервер, которые предоставил пользователь.
Серверная часть – это комплекс программ расположенных на сервере. Сервер, в классическом понимании – это компьютер, доступный 24/7, который содержит комплекс программ для работы с клиентской частью. Браузер переходя на определенный сайт, обращается на веб-сервер, который отдает веб-страницу. А если обратиться по определенному адресу, веб-сервер может подключиться к базе данных и вернуть какую-то специфическую информацию. Например, список товаров и цен или курсы валют.
Что это нам дает?
Вместе, клиентская и серверная часть, позволяют создавать полноценные веб-сайты. Но говоря, веб-сайт, мы подразумеваем страницу, к которой можно получить доступ через интернет. А на самой странице, мы уже видим веб-приложение. И спустя несколько лет развития веб-технологий, вышло так, что веб-приложения стали применяться во многих сферах, не обязательно в формате сайтов.
Большинство компаний, разрабатывают программы для внутреннего использования именно в формате веб-приложений. Доля мобильных игр и приложений, программы для компьютеров, интерфейсы для платежных терминалов и многое другое – все это, раньше реже, сейчас чаще, реализуется за счет веб-технологий.
Почему так происходит?
Еще давно, когда еще не было стандартов и норм в веб-разработке, да и вообще в интернете, было несколько разновидностей браузеров, которые интерпретировали написанный код как им хотелось. Чаще всего это касалось верстки, и если в одном браузере все было великолепно, то в другом это было совсем никак. Поэтому разработка сайтов отягощалась тем, что приходилось использовать всякие приемы и ухищрения, чтобы добиться одинакового внешнего вида в разных браузерах. Так появился термин «кроссбраузерной» верстки.
А в мире разработки программ для разных операционных систем (платформ), была немного другая проблема. Были программы под windows, linux, macos. Например Photoshop есть для windows и macos, но нет для linux. Большинство игр, сделаны только под windows. Соотвественно, приложения которые работают во всех операционных системах, они «кроссплатформенные». Но создание таких приложений в силу специфических ограничений в каждой из платформ несет собой большие трудозатраты с точки зрения разработки.
Ирония вся в том, что веб-браузер, есть на любой платформе. А это значит, что веб-приложения, по своей сути являются кроссплатформенными. Само собой, невозможно создать аналог тяжеловесной программы написаной на C++ переписав её на JavaScript, который используется в веб-приложениях. Но с другой стороны взгляните на обилие различных сервисов в интернете, особенно от техногигантов. Как самые удачные примеры в голову приходит YouTube Studio и Google Docs или веб-версия Microsoft Office – все это веб-приложения.
Какие технологии в вебе?
Основные технологии применяемые в вебе также делятся на клиентскую и серверную часть.
С клиентской составляющей все просто:
HTML – верстка/разметка.
CSS – стилизация внешнего вида.
JavaScript (JS) – язык программирования.
Основным, да можно сказать и единственным, языком программирования в вебе является JS. На нем пишутся все веб-приложения, которые вы видите в интернете. Игры, которые есть в ВКонтакте, Одноклассниках и зарубежных соцсетях, также используют этот язык программирования.
JS исполняется в среде браузера и имеет доступ к множеству интерфейсов браузера (Web API). Поэтому при помощи JS можно работать с графикой или с сетью, воспроизводить звуки, видео, получать геолокацию. И эти возможности с каждым годом растут.
Если рассматривать серверную сторону, то стоит выделить Node.js. Если в двух словах, это среда в которой исполняется JS (В клиентской части, этой средой является браузер). Поэтому изучая основной язык, который применяется на клиентской части, вы также можете его применять и при разработке серверных приложений.
В остальном, в качестве серверной разработки можно применять практически любой язык программирования. Основной же перечень примерно такой:
- JavaScript
- PHP
- Ruby
- Golang
- Python
- Java
Как с трудоустройством?
В плане трудоустройства, вакансий в области веб-разработки очень много, причем для людей с разным уровнем знаний и опыта. Уровень заработных плат относительно высокий, но как и везде зависит от опыта. Стоит заметить, что годами ранее, разработчик, пишущий на JS, ценился намного хуже и уровень оплаты был гораздо ниже.
Как обучиться?
На просторах интернета уйма всяческих курсов и интенсивов. По факту, это выжимка из книг и общедоступной информации. Везде обещают, что через 2-3 месяца, вы уже сможете без труда найти работу. Конечно же это не так. Любое учение – это труд. А в сфере веб-разработки немалую роль играет еще и опыт. Программирование – это не только написание кода, это постоянный поиск решения. И найти ответ на вопрос, всегда проще, когда вы уже сталкивались с какой-то подобной ситуации. А как мы все понимаем, интенсивный курс из 10 уроков по 2 часа, вряд ли вам даст большой опыт. Такая же история с видео-уроками: короткая выжимка на типичных примерах, с трудом запомнится в вашей памяти.
Единственный путь обучения – это самообразование, чтение технической литературы и документации. Поиск профильных статей от людей с опытом.
В современном мире доступ к этой информации в интернете в свободном доступе, но люди продолжают отдавать деньги владельцам площадок онлайн-курсов и их наставникам, которые «обучают» людей по одним и тем же программам из года в год.
Итоги
Веб-разработка в современном мире неотъемлемая часть IT-сферы. Технологии, которые применяются в веб-разработке, также можно применять и при разработке мобильных приложений и игр. Это одна из самых быстро развивающихся областей информационных технологий, которая объединяет очень много сфер жизни человека. В связи с этим, спрос и применение знаний, связанных с веб-разработкой, будет только расти.
#веб-разработка #javascript #html #css