Добрый день, дорогой друг. Сегодня я хочу рассказать о своем пути в web разработку, и быть может мой опыт и советы помогут новым людям в IT сфере.
Сразу скажу в статье предоставлено именно мое виденье данной области в текущее время.
1. Базовые знания
Основа любого веб-сайта это:
1) HTML - язык разметки, служит для того, чтобы браузер построил структурированное дерево из элементов страницы
2) CSS - стили, с помощью них элементы html дерева "разукрашиваются"
3) Javascript - отвечает за динамику страницы в целом.
4) Сервер(nginx, apache) - отдает файлы вашему браузеру
5) Серверный язык - предназначен для обработки пользовательского взаимодействия, с элементами html дерева. Обычно используется, для взаимодействия с базой данных, и выполнения операций, которые не выполнить на стороне клиента.
Последнее время много компаний делят web-разработчиков на:
1) Front-End - занимается клиентской частью сайта, пользуется языками (CSS, Javascript, HTML)
2) Back-End -занимается серверной стороной сайта, пользуется языками (PHP, Python, NodeJS(javascript), Java). По сути серверным языком может стать любой, на котором имеется возможность слушать порты сервера или локальной машины.
2. Библиотеки и framework
Выучить языки разработки сейчас не является большой проблемой, сейчас существует огромное море площадок для изучения. Нужно уметь пользоваться ими оптимально.
В текущее время существует множество инструментов для оптимизации затрат разработчика на разработку. Разберем некоторые из них:
1) CSS
Сейчас существует много средств для оптимизации написания стилей, к таким относится графические препроцессоры Less, Sass, Stylus.
Рассмотрим для сравнения код на CSS и например на Less:
Плюсы кода LESS:
1) Четко видимая древовидная структура, вести такую же структуру в CSS намного сложнее
2) Легче избежать конфликта стилей поскольку мы видим контекст применяемый стилей более подробно по ссылке специфичность
3) Выше скорость доработки(изменения)
2) Javascript
В мире javascipt-а каждый день появляется новый и новый framework или библиотека. Знать все невозможно, но последние два года есть костяк framework которые знать очень даже желательно:
Angular - полноценный инструмент для создания web приложений(spa). Позволяет сделать всю бизнес логику на клиент(кроме работы с базой). Однако не терпит "костылей"
React - библиотека для компонентного подхода к созданию web-приложений. Позволяет создавать изолированные компоненты со своей бизнес логикой и стилями.
jQuery - куда же мы без него, библиотека для работы с html деревом(dom деревом)
VueJS - framework являющийся помесью Angular и React, по скорости превосходящий обеих в middle size и low size тестах. Сочетает собой компонентный подход с архитектурой приложения. Однако имеет малую кодовую базу( не очень вошел в trend)
3) HTML
Основными игроками тут являются:
Bootstrap - набор готовых html компонентов от Twitter. Имеется хорошая база примеров, хорошо написано документация, оптимизирован для мобильных устройств.
Materializecss - набор компонентов, достаточно популярен у любителей Material дизайна, хорошо подходит для небольших проектов с использованием Angular.
4) Сборщики Front-End части
Gulp - позволяет оптимизировать ручной труд(перегонки Less в CSS, CoffeeScript в JS, и так далее). Отлично подходит для начинающих.
Webpack - сочетает собой gulp + dev-сервер для тестирования разработки, позволяет автоматизировать тестирование и развертывание проекта. Высокий порог вхождения!!
3. Знания
Я обозначу необходимые знания для web-разработчика, которые я лично считаю must have:
1) Любой серверный язык
2) База(HTML, CSS, JS)
3) Алгоритмы ( Сложность, понимания базовый вещей)
4) Понимание как работает веб-сервер(nginx, apache)
5) Система контроля версии Git(80% компаний используют его)
6) Главное не боятся - если есть желание можно сделать все, если потратить время
И напоследок совет, стремитесь за знаниями а не за деньгами(без крайней необходимости), более крепкие знания в будущем дадут более денежный выхлоп.
Спасибо за внимание, дальше будет еще много информации!