Профессия веб-разработчика — одна из самых востребованных на IT-рынке. Давайте разберемся, как прийти в нее, выясним, как работают и взаимодействуют между собой технологии веб-разработки, и на практическом примере попробуем создать свою первую страницу.
Текст подготовлен на основе вебинара «Как стать веб-разработчиком с нуля за 3 месяца» с участием Михаила Овчинникова из компании Badoo.
Ситуация на рынке
Рассматривая общую картину рынка, можно выделить наиболее востребованные направления в IT-сфере:
1. Frontend — самая «громкая» и быстроразвивающаяся отрасль, в которой постоянно меняются тренды. Опирается на язык программирования JavaScript и его фреймворки, такие как Angular.js, React.js, Vue.js и другие, а также язык разметки гипертекста HTML и таблицы стилей CSS.
2. Web-development, а именно backend-разработка с использованием различных языков, например, PHP, Ruby и Python.
3. Android/iOS-development — разработка под мобильные устройства на языках Java, Swift, Objective-C, C# (Xamarin), JavaScript (React Native) и других.
4. .NET-development — разработка как десктопных приложений под операционную систему Windows на языке C#, так и серверных программ, в том числе веб-сайтов, с использованием технологии ASP.NET.
5. Java-development — разработка кросс-платформенных приложений на языке Java, а также крупных высокопроизводительных систем с использованием технологии Java EE. Ее выбирают, когда нужны надежность, масштабируемость и гибкость.
6. Game development — разработка игр под различные платформы.
7. UI/UX — проектирование пользовательских интерфейсов.
8. QA — обеспечение качества программного обеспечения и его тестирование.
9. Embedded development — разработка программного обеспечения под «железо»: автомобили, бытовую технику и различные устройства с использованием низкоуровневых языков, таких как C и C++ со вставками ассемблера соответствующего процессора.
Почему стоит идти в веб
Сейчас веб-разработка — настолько быстро развивающаяся отрасль, что стоит изучить одну технологию либо фреймворк и начать с ними работать, как через два-три месяца на рынке появится что-то совершенно новое и все начнут использовать именно это.
Веб-разработка постоянно пополняется молодыми специалистами. Senior-программистов с десятью годами стажа можно встретить довольно редко: либо из них успевают вырасти управленцы, либо им приходится осваивать новые языки. Этот бурный рост отрасли формирует широкое информационное поле и крепкое сообщество.
Поэтому, если вы молоды, полны энергии, имеете чувство вкуса, да еще и с любовью относитесь к программированию, веб-разработка — для вас.
Сколько зарабатывает веб-разработчик
Изучив сайты поиска работы, можно увидеть весь диапазон зарплат веб-разработчиков. Новичок, у которого меньше полугода опыта, может зарабатывать от 30 000 до 60 000 рублей. Средний специалист с хорошим стажем получает 80 000–150 000 рублей. Доход профессионала составляет 150 000–250 000 рублей. Вдобавок, многое зависит от страны, региона, выбранного языка и компании, предлагающей вакансию.
Что нужно знать веб-разработчику
Про веб-разработку и программирование бытует множество слухов и стереотипов. Мы поговорим в том числе и о них.
Что веб-разработчику не требуется:
- Знать математику — большинству программистов, которые профессионально занимаются созданием сайтов и веб-сервисов, достаточно знаний на уровне 5 класса.
- Иметь глубокие знания английского языка. Полсотни слов может вполне хватить.
- Учиться несколько лет и заканчивать институт, чтобы освоить базовую веб-разработку. На деле ее освоение займет два-три месяца обучения.
Что понадобится для успешного старта:
- Изучить базовые технологии создания сайтов — HTML и CSS — и понять принципы построения структуры сайтов. На это уйдет несколько недель.
- Освоить сопутствующие технологии: редакторы кода либо IDE (интегрированные среды разработки), например Notepad++, Sublime Text, Brackets, WebStorm, PHPStorm. Эти инструменты сильно ускорят процесс разработки.
- Знать о существовании фреймворков и готовых решений, которые упрощают и улучшают код. Например, для frontend-разработчика это фреймворк для верстки Bootstrap, библиотека языка JavaScript — JQuery, с помощью которой написано множество других полезных и нужных библиотек, и Simfony — PHP-фреймворк общего назначения, который облегчает взаимодействие с базой данных, задачи формирования HTML-кода и задачи принятия данных из запроса.
- Не менее важно и умение правильно составлять поисковые запросы, пользоваться качественными и проверенными источниками информации.
Структура веб-сайта
Для начала давайте выясним что такое сайт и из чего он состоит.
Технически, сайт — просто набор текстовых файлов, имеющих определенные расширения, хранящихся в одном каталоге на компьютере или сервере. Кроме них в структуру каталога могут входить подпапки с изображениями, шрифтами и дополнительными библиотеками, использующимися на нем. В зависимости от назначения и формата файлов их сортируют по соответствующим папкам. Главная страница сайта, как правило, лежит в корне каталога и называется index.html.
Например, если бы наш сайт имел домен mysite123.com, то и папка, в которой он лежит, называлась бы так же и имела примерно такую структуру:
Когда в адресной строке браузера мы вводим адрес, например, yandex.ru, браузер обращается к серверу соответствующего сайта. Это то, с чего начинается взаимодействие с любой страницей в сети.
В ответ на этот запрос на сервере yandex.ru начинают работать backend-технологии, например, PHP и MySQL. Они делают свою «серверную магию» и в ответ на запрос «покажи мне главную страницу» отдают обратно браузеру искомую страницу в виде HTML, CSS и JavaScript-кода. Браузер умеет распознавать этот код и в результате выводит в своем окне красивую, работающую «Главную».
Ресурсы и инструменты для веб-разработки
Для качественного и продуктивного освоения веб-разработки познакомимся с наиболее популярными источниками информации, а также некоторыми инструментами.
HTML и CSS:
- htmlbook.ru — самоучитель по HTML4, а также введение в HTML5, самоучитель CSS, введение в CSS3;
- htmlacademy.ru — интерактивный курс по HTML5, основы CSS, множество бесплатных уроков;
- webref.ru — самоучитель HTML, основы CSS, блочная модель CSS, текст в CSS, позиционирование в CSS, продвинутый CSS;
- «Погружение в HTML5» Марка Пилгрима.
JavaScript:
- learn.javascript.ru — самый современный самоучитель по JavaScript;
- «JavaScript. Подробное руководство» Дэвида Флэнагана.
После освоения этих технологий рекомендуется также изучить JQuery — самую популярную библиотеку JavaScript. В дальнейшем стоит познакомиться и с такими полезными библиотеками, как Slick, Owl Carousel, Magniffic Popup, Velosity.js, Tree.js и другими.
Для ускорения написания кода и удобной работы с ним советуем использовать текстовые редакторы, такие как Sublime Text с плагином Emmet, редактором Notepad++, Brackets, IDE WEBStorm, PHPStorm и другими полезными инструментами.
Для ускорения написания CSS-кода полезно будет научиться работать с препроцессорами CSS, такими как Scss, Sass, Less.
Читайте также
• Какой язык программирования выбрать новичку
• Как перестать быть джуниором и начать жить
• Как стать программистом? Советы преподавателей Skillbox
Создаем простую веб-страницу
Как вы уже узнали,веб-страница — это файл с расширением .html, в которой содержится HTML-код. Он представляет собой набор определенных тегов, заключенных с обеих сторон в угловые скобки. Теги бывают закрывающие и незакрывающие.
Воспользуемся текстовым редактором Sublime Text 3 и создадим в нем новый файл index.html.
Теперь у нас есть стандартная структура HTML-документа. Откры созданную страницу в браузере, вы увидите пустой белый фон. Все содержимое страницы, которое выводится в браузере, помещается между открывающим и закрывающим тегами <html> и </html> — а пока что у нее есть только title, отображаемый во вкладке браузера, но нет никакого наполнения.
Добавим несколько элементов. Для каждого из них есть свой тег. Для начала создадим заголовок и дополним его текстом и кнопкой.
Для добавления заголовка используется тег <h1>, для параграфа текста — тег <p>, а для кнопки — тег <button>. Поместим эти элементы внутри блока с тегом <body>.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Моя первая страница</title>
</head>
<body>
<h1>Это моя первая страница</h1>
<p>Программирование — это просто!</p>
<button>Показать</button>
</body>
</html>
Теперь обновим страницу. Как видите, элементы появились в окне браузера.
Язык HTML, который мы использовали до сих пор, отвечает лишь за создание структуры страницы. Давайте попробуем немного стилизовать наши элементы: поменяем цвета заголовка и фона кнопки, а для текста параграфа изменим размер шрифта.
Для изменения стиля элементов необходимо применить к ним CSS-правила. CSS-правила можно записать внутри блока с тегом <style>.
Нужный нам код выглядит так:
<style>
h1 {color: violet;}
p {font-size: 30px; }
button {background-color: yellow;}
</style>
Разместить его следует между тегами <head>. Как вы могли заметить, названия свойств говорят сами за себя. Это простые английские слова, записанные согласно определенному синтаксису, свойственному языку программирования. Снова обновим страницу и посмотрим, что получилось.
Отлично. Теперь установим фон, а кнопку сделаем более заметной. Добавим следующие правила для кнопки и фона:
button {
background-color: orange;
width: 300px;
height: 50px;
color: white;
font-size: 30px;
}
body {background-color: lightgray;}
Пора дополнить все это великолепие картинкой. Добавим к существующим элементам тег <img>, который и отвечает за отображение изображений на странице. Он включает такой атрибут, как src (от англ. source — источник), который указывает на путь к картинке. Наша картинка лежит на диске D.
<img src=”D:/cat.jpg">
Так можно создавать множество элементов на странице, а затем с помощью CSS-правил придавать им нужные вид и расположение.
Давайте сделаем так, чтобы при наведении курсора на кнопку она становилась белой, а текст внутри нее — оранжевым. За состояние элемента при наведении на него курсора в CSS отвечает псевдокласс hover. Добавим несколько правил для нашей кнопки и после этого попробуем навести на нее курсор.
button:hover {background-color: white; color: orange;}
Все сработало! Кнопка поменяла свой вид.
Теперь попробуем сделать нашу картинку по умолчанию невидимой и устроим все так, чтобы она появлялась только по нажатию на кнопку. За видимость объектов отвечает CSS-свойство visibility. Установим ему значение hidden.
img {visibility: hidden;}
Как видите, картинка исчезла.
Вернем нашу картинку и нажмем на кнопку «Показать». Ничего не произошло? Все потому, что мы еще не запрограммировали кнопку на выполнение действия. Здесь мы уже можем применить JavaScript.
Зачем нужен JavaScript
Сейчас мы имеем статическую страницу, которая содержит простой контент. Для того чтобы назначить какое-то событие в качестве реакции для нажатия на кнопку, и нужен язык JavaScript. Вообще любая интерактивность на сайте, любое взаимодействие с пользователем — это JavaScript. Код JavaScript, как и CSS, записывается в определенном теге — <script>.
Обычно скрипты, кстати, как и CSS-правила, принято выносить в отдельный файл с расширением .js (для CSS — .css), а затем подключать этот файл к странице. Но в нашем примере мы вставим скрипт в раздел <head>, точно так же, как делали это с CSS.
Чтобы выполнить действие только с определенным элементом, в нашем случае с картинкой, зададим ей уникальный идентификатор с произвольным именем, например, cat.
<img id="cat" src="D:/cat.jpg">
После чего создадим с помощью JavaScript функцию, которая будет возвращать картинку на экран, и дадим ей имя show. Вставим этот кусок кода в раздел <head>.
<script>
function show(){ document.getElementById('cat').style.visibility='visible';}
</script>
Также необходимо явно указать кнопке, что она должна реагировать на какое-то событие. В нашем случае это одиночный клик. То есть при клике по кнопке должна выполниться ранее созданная функция show.
<button onclick="show()">Показать</button>
Теперь конструкция document.getElementById('cat') выполняет обращение к элементу по идентификатору cat, который прикреплен к нашей картинке. Укажем, что обращаемся к стилю элемента, а конкретно — к свойству visibility, и устанавливаем через знак «=» значение visible в кавычках.
Если вы хотите, чтобы при нажатии на кнопку менялся и фон страницы, добавьте в функцию и этот код:
document.body.style.background = 'green';
Как видите, и правда просто.
Вместо того чтобы вручную менять свойства объектов в коде, JavaScript это сделал за нас.
Как сайты хранят данные
Сам сайт данные не хранит. Он лишь отображает их на своих страницах. Профили пользователей, списки товаров и услуг, а с ними и прочая информация лежат в базе данных на сервере. На новостном сайте все новости также хранятся в базе данных.
Представьте себе, если бы каждый раз, когда какой-нибудь онлайн-магазин пополняет свой список товаров, приходилось вручную вставлять блоки с информацией о них в HTML-код страницы. Сложно представить, насколько рутинным было бы это занятие. Вместо человека этот процесс должен выполняться программой.
Для таких целей и существуют серверные языки, например PHP. Скрипты, написанные на PHP, умеют работать с базой данных в автоматическом режиме. Типовая задача, которую решает PHP-код, — это получить какой-то запрос от пользователя, обработать его, сходить в базу данных, забрать нужные и вывести их пользователю.
Существует много других языков для этих целей, но PHP в связке с MySQL — системой управления базой данных (СУБД) — считаются наиболее простым вариантом для освоения новичком.
Для того чтобы постоянно пополнять сайт новым контентом, существуют системы управления контентом (CMS), или так называемые движки. Кстати, одна из наиболее популярных CMS, Wordpress, как раз написана на языке PHP.
Подводя итог, можно сказать, что для того, чтобы сделать сайт «живым», необходимо овладеть как минимум вышеперечисленными технологиями.
Заключение
Сегодня мы поговорили о том, какой стек знаний должен иметь начинающий программист. Разобрались с основами сайтостроения и попробовали создать свою первую веб-страницу. Еще раз перечислим основные навыки веб-разработчика:
- Знание языков.
- Умение пользоваться готовыми решениями, библиотеками и фреймворками.
- Самопрезентация и работа с заказчиком.
- Наличие хорошего портфолио и резюме.
- Умение вникать в требования заказчика и работодателя.
И, пожалуй, самое важное — это постоянная практика и стремление к изучению чего-то нового. Всему этому (и многому другому) вы сможете научиться, пройдя курс «Веб-разработчик», включающий в себя множество тестовых и практических задач, большой объем коммуникаций с профессиональными программистами и даже создание своего первого рабочего проекта.
Курс «Профессия Веб-разработчик»
Практический годовой курс для тех, кто хочет стать профессиональным веб-разработчиком, запустить свой интернет-проект или веб-сервис и получить первые заказы на разработку.
Программа курса