Что нужно для веб разработчика
Новичку only: 10 вещей, которые вы должны знать как веб-разработчик
Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Things You Should Know As a Web Developer» автора Anuupadhyay.
Написание тысячи строк кода и превращение в веб-сайт — одна из творческих и сложных вещей для веб-разработчиков. Если вы в этом деле новичок, увидели множество красивых веб-сайтов и подумали попробовать силы в этом, нам необходимо открыть глаза и рассказать о некоторых вещах, нужных веб-разработчику. Создание веб-сайта, который привлекает внимание пользователей, — это не только изучение различных языков программирования, это также изучение других концепций, таких как DevTools, форматы данных, тестирование, API-интерфейсы, аутентификация и многое другое. Здесь рассказывается о некоторых вещах, которыми должен овладеть веб-разработчик.
1. HTML / CSS / JS
Важным навыком, который каждый разработчик должен изучить в первую очередь, является знание этих трех основных строительных блоков, то есть HTML, CSS и JavaScript. Вы будете использовать HTML и CSS во «фронтенде» для интерфейсов. Щелкните правой кнопкой мыши на веб-браузере и выберите вариант просмотра источника страницы. Вы найдете структуру вашего сайта, где много HTML-тегов используются для различных целей.
CSS также используется в веб-интерфейсе, который определяет стиль, дизайн, макет и то, как элементы HTML должны отображаться на экране.
В настоящее время Javascript пользуется большим спросом и в отвечает за то, чтобы сделать ваши HTML-страницы динамичными. Javascript также поставляется с различными языками, такими как PHP, Python, ASP.Net, чтобы сделать ваш сайт более интерактивным. Если вы собираетесь специализироваться на Javascript, таком как MEAN Stack или MERN stack, вам следует углубиться в этот язык, потому что он будет вашим внешним и внутренним языком.
2. Git и Github
Git — одна из самых популярных систем контроля версий, которая используется в большинстве организаций. Скорее всего, вам нужно работать над этим контролем версий, если вы получите работу в качестве веб-разработчика. По этой причине следует потратить некоторое время на изучение Git и некоторых базовых команд, таких как клонирование, отправка в репозитории, создание запроса на извлечение, объединение веток и т. д.
Github — это сервис, где можно использовать свои репозитории Git для размещения кода. Github используется для совместной работы или, можно сказать, разрешает разработчикам работать вместе над их проектами.
3. Development Tools
Вы можете сделать много вещей, используя Development Tools, такие как отладка, редактирование элементов HTML, редактирование свойств CSS, проверка устройства, отслеживание ошибок JavaScript и т. д. Каждый разработчик должен знать об использовании различных вкладок (элементов, консоли, сети и многое другое) В DevTools, чтобы сделать их работу проще и быстрее. В зависимости браузера можно использовать любые DevTools, такие как Chrome DevTools, Firefox DevTools или другой браузер, который используете. Люди предпочитают использовать Chrome DevTools для разработки, тестирования и отладки веб-приложения, но опять-таки это выбор разработчика, какой браузер используется для разработки веб-сайта.
4. API (интерфейс прикладного программирования)
В веб-разработке придется много работать с API, которые в имеют дело с данными сторонних разработчиков. Это разрешает разработчикам использовать некоторые функции без совместного использования кода. Существует потрясающий Github-репозиторий API-интерфейсов, который можно использовать для разных целей, и он также дает множество идей для проектов. Вы можете проверить ссылку Public API и изучить ее.
Рекомендуется узнать об использовании API-интерфейсов Rest, методов HTTP-запросов (GET, POST, PUT, PATCH и DELETE), создании API-интерфейсов Rest, операции CRUD (Create, Read, Update, Delete), другой код состояния, формат данных (JSON, HTML или XML), используемый в запросе и т. д.
5. Аутентификация
Существует большая вероятность того, что вы будете иметь дело с аутентификацией пользователей, чтобы отслеживать пользователей на определенном веб-сайте. Например, предоставлять пользователям возможности входить в систему, выходить из нее или создавать некоторые ресурсы из личной учетной записи, отслеживать, какой ресурс какой пользователь создал, или блокировать некоторые страницы для тех пользователей, которые не вошли в систему. Безопасность учетной записи пользователя в значительной степени зависит от проверки подлинности. Поэтому важно знать, как работать с такими функциями в вашем веб-приложении.
Существует множество способов реализации аутентификации для пользователей, и это зависит от того, какой язык программирования или технология используется. Если используется React на веб-интерфейсе и Node с Express в серверной части, может использоваться JWT (JSON Web Tokens) для аутентификации, если вы используете Php, вам придется работать с сессией и файлами cookie, также можете использовать такие сторонние организации, как Google или Twitter для входа. Таким образом, есть несколько режимов работы с аутентификацией, но для веб-разработки важно изучить и внедрить ее.
6. MVC (модель, вид, контроллер)
MVC — это шаблон проектирования, который экономит много времени разработчиков, разделяя приложение на три разных раздела. Работа с шаблоном MVC делает разработку быстрее и проще. Многие высокоуровневые фреймворки, такие как Laravel, Django (на основе MVT, близких к MVC), Angular созданы на основе паттернов MVC. В MVC модель связана с взаимодействием с базой данных, представление отвечает за все, что пользователь видит на экране, а контроллер выступает в качестве интерфейса между моделью и представлением. Изучение MVC поможет легко понять основы для любого языка программирования.
7. Языки программирования
Компьютеры не понимают человеческие языки, и поэтому необходимо общаться с системой на языках программирования. В веб-разработке не только языки программирования обязательны для изучения, но и алгоритмы, которые вы можете применять, используя широкий спектр языков программирования. Веб-разработчики используют различные языки, такие как PHP, Python, Java, Ruby и, в последнее время, Javascript, который составляет им конкуренцию. Как веб-разработчик, вы должны знать хотя бы один язык программирования для создания веб-приложения.
8. Поиск и решение проблем
Если вы хотите стать веб-разработчиком, у вас должны быть естественные навыки поиска проблем и их решений. Этот навык можно развивать с помощью некоторых проектов, с помощью структур данных и алгоритмов, решения некоторых задач, головоломок и тому подобного, но вам нужно продолжать практиковать все, что вы выберете.
Независимо от того, новичок вы или опытный, в роли веб-разработчика придется искать информацию, синтаксис или решение некоторых проблем при создании приложения. Вы наверняка столкнетесь с некоторыми странными ошибками, о которых не подозреваете, и вам нужно обратиться за помощью к сообществам Google или stackoverflow, чтобы решить эту проблему.
9. Написание тестов
Многие разработчики считают это бесполезной и пустой тратой времени. Для небольшого приложения вы можете игнорировать написание тестов, но если создается большое приложение, рекомендуется писать тесты, такие как модульные тесты и другие типы тестов, потому что это помогает сделать процесс надежным и облегчить отладку. Вначале вы будете чувствовать, что напрасно тратите время, но позже поймете, что это на самом деле экономит время, поэтому возьмите за правило писать тесты при создании приложения.
Как стать веб-разработчиком с нуля, почему это актуально и что нужно знать
Профессия веб-разработчика жива, пока живы сайты. Разберёмся, как прийти в неё и что нужно знать новичку. От ситуации на рынке до обучающих ресурсов.
Текст подготовлен на основе вебинара «Как стать веб-разработчиком с нуля за три месяца» с участием Михаила Овчинникова из компании Badoo.
Для полного погружения в профессию у Skillbox есть курс «Веб-разработчик», где теория становится знаниями, практика — навыками, а работа — оплачиваемым призванием.
Ведущий инженер-программист в Badoo Development LLC, специалист по разработке высоконагруженных веб-сервисов.
Ситуация на рынке
Рассматривая общую картину рынка, можно выделить наиболее востребованные направления в IT-сфере:
Почему стоит идти в веб
1. Веб-разработка — это интересно
Стоит изучить одну технологию либо фреймворк и начать с ними работать, как через два-три месяца на рынке появится что-то совершенно новое и все начнут использовать именно это. С вебом не соскучитесь.
2. Веб-разработка — это творчество
Веб-разработка постоянно пополняется молодыми специалистами с новыми идеями, а сама сфера — новыми инструментами, возможностями и сервисами.
3. Веб-разработка — это развитие
Senior-программистов с десятью годами стажа можно встретить довольно редко: либо из них вырастают управленцы, либо они учатся новому. Бурный рост профессии формирует широкое информационное поле и крепкое сообщество.
Поэтому, если вы молоды, полны энергии, имеете чувство вкуса, да ещё и с любовью относитесь к программированию, веб-разработка — для вас.
Сколько зарабатывает веб-разработчик
Изучив сайты поиска работы, мы увидим диапазон зарплат веб-разработчиков:
Многое зависит от страны, региона, выбранного языка и компании, предлагающей вакансию.
Как вырастить веб-разработчика от стажера до архитектора. Матрица компетенций
Когда в 2004 году я окончил университет, в нашем городе почти не было команд разработчиков. Где работать, у кого набираться практического опыта?
Выбор был прост: “админом” или “в Москву”. Или уйти из профессии.
Сейчас я преподаю веб-разработку в местных ВУЗах, руковожу большим коллективом и мне важно, чтобы в моем городе хотели жить толковые молодые ребята, чтобы наш город не считался “тухлым местом”.
Суть статьи коротко
Мы с коллегами умеем «растить» веб-программистов с “почти нуля” до уровня уверенного профессионала (Senior / Архитектор).
Хотим рассказать как все работает и поделиться с сообществом материалами и методикой.
Статья написана для студентов, начинающих и растущих веб-разработчиков.
Далее описан “трек развития веб-разработчика”, уровни компетенций “Стажер”, “Junior”, “Middle”, “Senior” и “Architect”, как я их вижу и даны примеры аттестационных заданий.
Пирамида способностей программиста или «что качать на старте»
Как стать хорошим веб-программистом? Нужно ли заканчивать «информатику» в хорошем ВУЗе? Или хватит месячных курсов? Или «с книжкой и мышкой» все можно изучить?
Три «кита», на которых стоит профессия любого разработчика на любом стеке технологий, это алгоритмизация, базы данных и собственно программирование (язык + ООП + паттерны).
Что такое алгоритмизация?
Близкий «житейский» аналог технического навыка «алгоритмизации» – ремонт вентилятора. Что делать, если «не крутится»? Проверить/сменить розетку, потом рукой крутануть лопасти, потом «прозвонить» провод.
Логика очевидна: «разделил на части и проверил каждую». Удивительно, но многие люди не умеют так мыслить. У настоящего программиста это «в крови».
Базы данных
Курс БД – один из основных, как физика для инженера. Плохо что часто преподают их одинаково плохо: сводят к «пересказыванию параграфов».
В БД важны и теория, и практика. Программист должен уметь и писать запросы, и разбираться в логике ORM, и проектировать структуру.
Какие технологии нужно знать программисту?
Из чего вообще состоит профессионализм разработчика? Указано примерное время освоения при классическом пути развития (начиная с ВУЗа).
“По уму” алгоритмизации учат в школе/ВУЗе. Тратится на это 1-2 года, и этот период определяет высоту будущего профессионального взлета. Если вы не освоите алгоритмизацию, то никогда не вырастете.
Особенности конкретного языка можно изучить довольно быстро. Если вы учите второй или третий язык, через неделю вы решите первую осмысленную задачу. А вот на “знаю в совершенстве” потребуется не менее года практики.
Фреймворки часто включают сотни модулей/классов/расширений и постоянно развиваются. Освоение фреймворка займет у вас несколько месяцев как минимум.
Многие самоучки идут по “легкому”, но неверному пути: вместо алгоритмизации начинают учить фреймворк. И уже через пару месяцев практики заявляют что умеют программировать. Серьезные собеседования они проваливают уже через 10 минут после начала.
Конкретные технологии (например AJAX, серверный рендеринг JS, push&pull, распределение нагрузки по гео-кластеру, профилировка долгих запросов в xhprof, очереди сообщений, NoSQL базы данных) бесконечно разнообразны. Учить их можно вечно.
Эту пирамиду нужно проходить “снизу вверх”. Если вы начнете с фреймворка и напишете красивое резюме, но не будете знать как работает “голый JS” или “чем get-запрос отличается от post” – профи вам не быть.
Какие задачи нужно решать?
Первый этап – “старт”. Сначала нужен навык уверенного и правильного решения относительно простых задач. Чаще всего это игровые, математические или логические задачи.
Для навыка “быстро пишу простой код” нужно прорешать на любом языке программирования любой из классических сборников задач по программированию. Например, Златопольского.
Вам может показаться странным решение 1000 скучных задач, но каждый хороший программист делал это в начале своего пути. Кто-то – в институте, кто-то в школе, наши дети будут делать это в детских садах.
Такой метод обучения у медиков называется “методом свинцовой ж*пы”. Простите за грубость, но из народного творчества слов не выкинешь.
Второй этап – “практика”. Нужно писать код, в котором через год вы сможете разобраться. Чтобы при появлении новых требований не приходилось все переписывать с нуля. Чтобы при росте проекта в 100 раз он остался “поддерживаемым”. Чтобы при добавлении в команду программистов они не покусали вас за странный стиль.
Это очень сложный переход. Многие программисты не делают его никогда: они становятся разработчиками “одной программы” или всегда пишут проекты не более чем в 200 строк. Это не уровень профи.
Чтобы научиться, нужно решать большие задачи в коллективе и параллельно читать правильные книги. Например, Роберта Мартина “Чистый код”.
“Большие задачи” – реальные сервисы, которыми пользуются люди, где команда состоит минимум из 2 человек, и состоящие из тысяч строк кода. Такие проекты формируют уверенного специалиста.
Третий этап – “мастерство”. Оно включает освоение конкретных фреймворков в рамках выбранного стека технологий. Вы должны научиться решать реальные современные задачи на высоком уровне.
Более сложная и более полезная книга – Шаблоны корпоративных приложений Мартина Фаулера. Ее тоже нужно прочитать, примерно через год-полтора работы в профессии.
А зачем? Можно просто закончить 3-месячные курсы “веб-разработчика”?
Удивительно часто на собеседование приходят “как бы программисты”. У них за плечами курсы, несколько мест работы, портфолио с красивыми сайтами (странная манера, как будто мы ищем веб-дизайнера).
При этом на простейший вопрос типа “что такое cookies” или “как работает подгрузка сообщений в ленте ВКонтакте” люди часто не знают ответа, у них даже версий толком нет.
Хороший программист знает теорию и применяет на практике, все время думая “как сделать правильно”. На “спинном мозге” и “копировании кусков кода из гугла” далеко не уедешь. Нужна база и практика.
Как получить эту “базу”? Где правильно учиться? Есть два пути. Первый – 4-5 лет в хорошем ВУЗе. Второй – несколько лет упорного самообучения и практики. Можно стать сильным программистом без профильного образования, если у вас светлая голова, открытое сердце, а вы сами готовы много работать.
Короткие курсы полезны, чтобы получить базовые знания и понять “куда рыть самому”. Профессионалом они не сделают.
Матрица компетенций. Стажер – Junior – Middle – Senior – Architect
Мы считаем что наша матрица и есть ответ на вопрос “как из новичка стать гуру веб-разработки”.
В нашем мире разработчик занимается в основном бекенд-задачами, но он не должен бояться фронтенда и администрирования (для злых задач есть узкие специалисты).
Это – таблица, разделенная на грейды (стажер, junior, middle, senior). Каждый грейд содержит набор уникальных компетенций. Вопросы сгруппированы по областям знаний (PHP, SQL, Frontend, веб-технологии в целом и управление серверным хозяйством)
Стажер
На старте стажер должен быть способен:
Почти каждый стажер удаляет базу, промахивается окном или решает заново давно закрытую задачу. Разумеется, 6ез вреда для боевых проектов.
Ошибки – нормальная часть обучения.
Junior
Junior способен решать задачи самостоятельно. Он часто советуется со старшими, но вопросы он задает совсем не стажерские.
Что практически должен уметь Junior на старте:
Middle
Middle – специалист, который способен решить сам любую типовую для отрасли задачу.
Что практически должен уметь Middle на старте:
Senior
Senior знает “свой стек” досконально, с готовностью изучает и применяет новые технологии, и работает как наставник.
Вот например, что сам Senior должен знать и уметь по блоку “Работа с серверами и Linux”.
Architect
Архитектор – следующий уровень развития специалиста, когда он продумывает архитектуры крупных проектов и руководит их реализацией. Он не только технический, но и проектный руководитель.
Такие специалисты играют ключевую роль в технически и организационно сложных проектах.
Качество архитектора определяет способность проекта выполняться в срок и развиваться много лет подряд.
Управление развитием программиста
Каждый месяц с каждым программистом индивидуально мы проводим «планерку по развитию» и разговор на другие темы о работе. Участвуют руководитель отдела, техлид и/или наставник.
Во время таких встреч мы вместе определяем приоритеты развития — сдать лабораторную или устный экзамен по компетенциям.
Как устроена проверка уровня (аттестация)?
Что такое «аттестация»? Это процедура подтверждения квалификации программиста. Ее проходят все программисты. Аттестация включает лабораторные работы и устные экзамены.
В результате аттестации в матрице компетенций появляются “Да” напротив подтвержденных компетенций. От этого увеличивается грейд, например, «Стажер-54%» → «Junior-27%».
Как проходит аттестация?
Аттестация включает теорию (устный экзамен) и практику (лабораторные работы). Цель – “закрыть” несколько компетенций в матрице, подтвердить уровень, получить новые задачи и повысить зарплату.
Практические задания можно сделать правильно только если изучить и понять теорию. Списывать и хитрить не принято, и наставник не пропустит халтуру.
Многие блоки матрицы компетенций закрываются практикой и теоретических вопросов по ним нет.
Теория. Устный экзамен
Компетенции, не покрытые лабораторными работами нужно подтвердить на устном экзамене.
По каждой компетенции мы задаем около 5 вопросов. По-хорошему ответить надо на все или почти все. Длительность устного экзамена зависит от уровня, обычно это 1-2 ч.
Практика. Лабораторные работы
Лабораторная работа покрывает сразу несколько компетенций. После выполнения лабораторной работы эти компетенции засчитываются как подтвержденные и не попадают в устный экзамен.
Лабораторная работа завершается отчетом. Отчет может включать демонстрацию чего-либо, код-ревью, устные вопросы. Набор проверок зависит от самой лабораторной.
Примерные формулировки заданий
Мы разработали около 20 заданий (называем их привычно для студентов «лабораторные работы»). Несколько – опубликуем.
Вот примеры простых заданий.
Задание 2а. «Базовый web». Реализуем CRUD на чистом PHP.
Задание 2б. Развитие CRUD-интерфейса на PHP.
Задание 10. Парсинг сайтов
Я уверен, что именно так, по шагам, с наставником и постоянным code review, через цепочку аттестаций, развивается правильный разработчик «от стажера до архитектора».
Бриллианты формируются под давлением.
Чем занимается веб-разработчик и что нужно уметь для первой работы
Веб-разработчики — самые востребованные из программистов. Этих специалистов много, но работу найти сравнительно легко.
Слово «веб-разработчик» кажется вполне понятным — очевидно же, что он разрабатывает что-то для веба. На деле всё не так просто. Современный интернет мало похож на веб девяностых или нулевых: технологий столько, что уследить за всем сразу просто нереально. Поэтому в профессии веб-разработчика есть три больших специализации:
Нельзя быть в чистом виде frontend- или backend-разработчиком, даже если занят чем-то одним. Всё равно придётся хотя бы немного разбираться в том, как взаимодействуют между собой серверная и клиентская части
веб-приложения.
Фанат Free Software Foundation, использует Linux и недолюбливает Windows. Пишет истории про кодинг и программы на Python. Влюблен в LISP, но пока что не умеет на нем программировать.
Веб-разработка — самое популярное направление в программировании. Согласно исследованию Stack Overflow за 2020 год, большинство программистов считают себя frontend-, backend- или fullstack-разработчиками. Но лидируют в рейтинге те, кто занимается бэкендом.
Это подтверждает и опрос о самых популярных технологиях среди программистов: так или иначе связанные с вебом лидируют с большим отрывом. А на первом месте здесь JavaScript — его использует почти 70% веб-разработчиков в мире.
История веб-разработки: от 1990 до 2020
В 1990 году Тим Бернерс-Ли создал первый сайт и браузер в CERN — Европейском центре ядерных исследований. Выглядел он так себе, но это была настоящая революция.
Профессиональная веб-разработка началась во второй половине девяностых после выхода первого «нормального» браузера — Mosaic, технологии CSS (каскадные таблицы стилей), языка JavaScript и Flash. Примерно в это же время появился PHP — специальный язык программирования для бэкенда, который до этого писали на чём придётся: на C, C++ или Perl. Веб быстро набирал популярность, стало выгодно делать красивые и удобные сайты — и в разработке появились хорошие деньги.
Потом были браузерные войны: каждый добавлял какие-то свои возможности, а фронтенд-разработчики сходили от них с ума. Только сейчас создатели браузеров приняли более или менее единые стандарты. В бэкенде тоже многое изменилось: PHP теснят конкуренты — например, Python, Java и JavaScript с Node.js, изначально сделанной для фронтенда.
Сейчас все идут в веб. Мировой рынок публичных облачных сервисов вырос с 56,6 млрд долларов в 2014 году до 233,4 млрд долларов в 2019 году (данные аналитической компании IDC, по отчёту TAdviser). И хотя в России рынок облачных решений развивается не так интенсивно, как в мире, но с 2014 года он вырос втрое. Поэтому и спрос на веб-разработчиков только растёт.
Какие навыки понадобятся, чтобы получить работу
От начинающего специалиста ждут понимания основ технологий, которые использует компания. Но прежде чем изучать что-то конкретное, стоит разобраться — куда вам хочется попасть и с чем там работают. Эта информация есть на сайтах с вакансиями. Требования к джунам в целом похожи, различаются только специализации. Мы составили список самых популярных требований к разработчикам — с этими навыками вы точно найдёте работу.
В списке могут встретиться незнакомые слова, но это не проблема: все они относятся к веб-разработке, и их точно можно получить на наших курсах или бесплатных интенсивах.
Backend-разработчик:
Frontend-разработчик:
Требования к начинающим fullstack-разработчикам приводить нет смысла — надо просто суммировать требования к frontend- и backend-специалистам.
Сколько получают веб-разработчики и насколько они востребованы
Веб-разработчики — самая востребованная специальность по данным работных сайтов. Приведём таблицу популярности и зарплат разных направлений веб-разработки на сентябрь 2020 года (прибавьте сюда ещё и вакансии, в заголовок которых вынесены только конкретные технологии — например, «разработчик Node.js» или «Django developer»).
Направление | Количество вакансий | Junior | Middle | Senior |
---|---|---|---|---|
Веб-разработчик | 1228 | 60 вакансий 20−50 тыс. руб. | 70−150 тыс. руб. | 100−200 тыс. руб. |
Fullstack-разработчик | 340 | 10 вакансий 30−60 тыс. руб | 80−150 тыс. руб. | 120−230 тыс. руб. |
Backend-разработчик | 1099 | 40 вакансий 40–60 тыс. руб | 80−150 тыс. руб. | 120−200 тыс. руб. |
Frontend-разработчик | 2159 | 67 вакансий 30−60 тыс. руб | 80−150 тыс. руб. | 120−200 тыс. руб. |
Миф о том, что fullstack-разработчики — это десантники среди программистов и получают они в среднем больше остальных, не подтвердился. А более высокий порог вхождения на деле не помогает даже junior-специалистам получать больше.
Какие веб-технологии популярны в мире и зачем это новичку
Чтобы быть востребованным на рынке труда, неплохо понять, за какими технологиями будущее и что важно изучать уже сегодня. Stack Overflow ежегодно публикует отчёты о технологиях, программистах и зарплатах. На 2020 год самые распространённые веб-фреймворки — jQuery, React, Angular и ASP.NET. Причём jQuery хоть и лидирует, но каждый год теряет популярность — это уже устаревшая технология.
Большинство веб-разработчиков любят ASP.NET Core, React.js, Vue.js, а вот Angular.js, Drupal, WordPress и jQuery они считают просто ужасными. В ближайшее время планируют изучать React.js, Vue.js, Angular и Django. Если же говорить о серверных технологиях, то среднестатистический опытный разработчик любит и хочет изучить Linux, Docker и Kubernetes — они лидируют с большим отрывом.
Это не просто перечисление инструментов, а важная статистика — в исследовании участвовало 65 тысяч разработчиков. Из них 54 тысячи — более пяти лет в профессии. Так что эти данные можно считать коллективным мнением экспертов. Когда будете планировать своё развитие в профессии, обязательно учитывайте это.
Как проще всего изучить основы
веб-разработки
Познакомиться с JavaScript/CSS/HTML удобнее всего в образовательном разделе сайта Mozilla, а получить обзорное представление обо всех современных
веб-технологиях — в видеокурсе от Mail.ru. Этого будет достаточно, чтобы определиться со специализацией и понять, куда двигаться.
Системно изучить веб-разработку, попрактиковаться на реальных задачах и получить обратную связь от опытных профессионалов-менторов можно на нашем курсе «Профессия веб-разработчик».
Программы с продвинутыми возможностями для CSS и собственным синтаксисом. С ними удобно работать, а на выходе код можно конвертировать в CSS.