Шпаргалка фронтендера гид по таблицам


Содержание

Шпаргалка фронтендера: гид по таблицам

13’423 подписчиков
4’191 просмотров на пост

Полезные материалы по всему, что может быть интересно frontend-разработчику.

Детальная рекламная статистика будет доступна после прохождения простой процедуры регистрации

  • Детальная аналитика 70’882 каналов
  • Доступ к 28’533’214 рекламных постов
  • Поиск по 114’156’140 постам
  • Отдача с каждой купленной рекламы
  • Графики динамики изменения показателей канала
  • Где и как размещался канал
  • Детальная статистика по подпискам и отпискам

Найдено 966 постов

Вам нужна кроссбраузерность и адаптивность под все устройства? Эта библиотека вам поможет в этом.

Хотите установить на свой сайт гугл-карты? В этой статье подробно объясняется, как это сделать.

Изучаете React? Этот плейлист будет лучшим вашим помощником.

Для тех, кто не знает, Bulma — это современный CSS фреймворк, основанный на Flexbox. Очень удобная технология в разработке, так что советуем изучить.

​​Хороший front-end? Учи Python, становись full-stack и поднимай зарплату!

⚙ «Программирование на Python»
��‍�� Курс для тех, кто уже умеет
Преподаватели — сотрудники Mail.Ru Group, «Мегафон», лекторы МФТИ.
✅ На курсе вы сможете:

написать серверные приложения
разработать собственную онлайн-игру
создать чат-бота
спарсить Википедию и сверстать Stackoverflow
сделать приложение для управления «умным» домом
написать нейронную сеть, с помощью которой -сможете классифицировать одежду по фотографии

��По промокоду «backupmaster» скидка -5 000 рублей до конца недели!

Webpack — это JavaScript модуль, позволяющий собрать все файлы JavaScript вместе. Очень полезная технология, и если вы ещё с ней незнакомы, бегом читать.

Пишем приложение для поиска музыки на React.

#beginners #html #css

Большой плейлист по HTML5 и CSS3 для начинающих фронтенд-разработчиков.

#angular #react #vue

Наверняка вы слышали шутку про множество фреймворков на JavaScript и до сих пор не понимаете, какой из них выбрать. Этот курс расскажет вам про основы самых популярных из них — Angular, React и Vue. После его прохождения вы будете с лёгкостью определять, какой из них и для какой задачи нужен.

Абсолютное позиционирование в CSS: понять раз и навсегда

Вы все еще не понимаете как работает абсолютное позиционирование в CSS и теряете элементы на экране? Давайте разбираться в этой магии.

Основы Ajax для тех, кто ещё не знает.

JS-гайд: основные концепции JavaScript с примерами кода

Гайд по принципу Парето: 20% языка, которые нужны вам в 80% случаев. Только основные концепции JavaScript с примерами кода.

​​Практическое онлайн-занятие для тех кто хочет разобраться в PHP, уйти в бэкенд или стать фулстеком.

Составим карту развития под руководством Senior Developer. Расскажем какие технологии, инструменты и фреймворки помогут тебе в этом.
Подробности ��: @gloacademy

Статья, которая объяснит вам, как стать специалистом на React.

Юрий Ветров ведёт дайджест продуктового дизайна в Телеграме — https://t.me/pdigest. Там уйма свежайших статей о дизайне интерфейсов: методы и практики, анонсы инструментов дизайна, обзоры трендов, публикации о дизайн-системах и дизайн-менеджменте.

Вот несколько свежих выпусков:

— Что такое DesignOps — https://t.me/pdigest/129
— Индекс ценности дизайна для бизнеса — https://t.me/pdigest/131
— Как унифицировать стиль иллюстраций — https://t.me/pdigest/123
— Свежие интерфейсные паттерны — https://t.me/pdigest/126
— Новые инструменты дизайна с Adobe MAX 2020 — https://t.me/pdigest/118

Подпишитесь на дайджест продуктового дизайна в Телеграме — @pdigest — он выходит с 2009 года и это лучший способ быть в курсе профессиональных новостей. Кстати, дайджест есть и в ВК — https://vk.com/pdigest.

В этой серии видеоуроков вы узнаете, как писать приложения, используя Vue.js и современную библиотеку для серверного рендеринга Nuxt.js.

Давайте посмотрим на новые возможности React:

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

Если вы только присоединились к нам и готовы начать изучение JavaScript, то вот вам три лучшие книги по нему от Ильи Кантора:

ТИПИЧНЫЙ ВЕРСТАЛЬЩИК

Это первый ежедневник, который целиком и полностью посвящен фронтенд тематике. Стань обладателем FrontendBook’a, которого точно ни у кого больше нет!

Уже в продаже! Приобрести их можно, кликнув по кнопке ниже. Тираж ограничен.

Что содержится внутри?

Недатированные страницы

Записывай свои планы на каждый день без привязки к конкретной дате. Не стоит ждать определенного месяца, чтобы стать продуктивным/ой уже сегодня!

Шпаргалки и статьи

На некоторых разворотах между недатированными страничками Вы найдете полезные шпаргалки и статьи о фронтенд-разработке.

Юмор на английском

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

Видеообзор

Больше фотографий

Сколько стоит?

1490 руб Для жителей России и Беларуси

Можно с курьером за 2490 руб.
Доставка бесплатная.
Срок доставки: 3-7 дней.

от 2990 руб * Для жителей Украины, Казахстана и стран Европы

Окончательная стоимость будет сформирована в зависимости от страны доставки. Обычно это +500 руб к первоначальной стоимости ежедневника.
Срок доставки: 5-7 дней (в зависимости от страны).

1 Оплатить Frontend Book

При помощи этой формы оплаты ты сможешь оплатить заказ по банковской карте. В случае возникновения проблем, напишите нам на info@tpverstak.ru.

Обязательно изучи прайс-лист ежедневника для жителей РФ, СНГ и Европы.

* Жители стран СНГ и Европы платят первоначально 3000 руб. После обработки заказа и расчета вашего адреса доставки, если нам потребуется доплата за отправку, мы напишем вам об этом на email или в соц.сетях

2 Оставить данные о доставке

После оплаты оставь необходимые данные для того, чтобы мы могли отправить посылку на твой адрес.

Мой путь во фронтенд с нуля

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

Итак. Все началось давным-давно когда я еще учился в школе, и после того как я перешел в 10 класс у нас появился новый предмет — информатика. К слову сказать учился я так себе, по точным наукам у меня были тройки, да и в целом к учебе я относился «спустя рукава». Но новый предмет меня зацепил и я не прогуливал эти уроки. В конце 11 класса я одним из экзаменов выбрал конечно же информатику и легко сдал его в отличии от других предметов. А после школы вместо того что бы хотя бы попробовать поступить в ВУЗ я просто подал документы в ПТУ по специальности повар-кондитер.

Отучившись я пошел работать, сначала поваром, затем продавцом в салон связи, а дальше, кем я только не работал: занимался ремонтом, ставил пластиковые окна, занимался натяжными потолками, изготавливал мебель на заказ, потом очень долго работал электриком, даже машинами занимался. И все это время я понимал — работа которая есть у меня сейчас не приносит мне драйв, не доставляет кайф, и однажды проснувшись я решил что пора снова изучать программирование.

И как раз в тот момент я работал помощником директора одной небольшой организации которая занималась в том числе разработкой сайтов, и мне было очень интересно что же там такое делают ребята. Именно тогда я решил сверстать свой первый сайт, и я сел и стал изучать html и css, как это все работает, затем очень быстро понял что мне еще нужно изучать js. Буквально через пару месяцев моей девушке поступает оффер с релокацией в Спб(она к слову сказать уже тогда работала кодером). Она переезжает, а у меня появляется дикая мотивация к тому что б учится и тоже искать работу в IT сфере. Тут начинается самое интересное: я погрузился в самообучение с головой, хватался за все подряд и через месяц был готов искать работу верстальщиком с парой сайтов в портфолио. Накидав простое резюме я стал откликаться на все вакансии по Спб где требовались верстальщики. В течении месяца я получил около 150 отказов по тем или иным причинам.

Спустя две недели у меня зазвонил телефон. Мне позвонили из компании с одним вопросом — «Молодой человек, собственно, а кек вы хотите быть? Вы у нас откликнулись на 3 разных вакансии: frontend-разработчик, fullstack-разработчик и верстальщик». Пообщавшись с человеком я объяснил что готов развиваться в любом направлении, что очень хочу учиться. Мне было поставлено условие — если сделаю тестовое задание, то меня возьмут junior frontend разработчиком с зарплатой в 30 тысяч. Я был невероятно рад такому шансу, поэтому засел за написание своего задания. Задание было следующее: сделать TODO-лист на angular.js с бекендом на node.js + mongodb. Я знаю что в интернете полно готовых решений, но мне как человеку который только что узнал чем отличается div от span задание казалось невыполнимым, но очень интересным. Я провел 3ое суток не вылезая из-за компьютера, пытаясь собрать хоть что-то более менее приличное. По завершению отправил на проверку и через сутки мне написали что я прошел, и когда я выйду на работу. Радости не было предела :)

А дальше переезд, новый город, новые люди, все новое. Спб хоть и не далеко находится относительно от моего родного города(кстати привет Череповец :)), но я испытывал культурный шок, долго привыкал к новому окружению.


Первые пол года а работал по 10-11 часов в сутки, поглощая информацию взахлеб, и к слову сказать что мне очень сильно повезло с тимлидом. Это был грамотный человек который занимался моим обучением, говорил что читать и показывал как писать, таскал меня по всем профильным конференциям, и давал очень много советов(Михаил Полубояринов, привет и спасибо тебе за все то время и знания что ты вложил в меня).

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

Самое главное что важно в этой истории: если вы хотите стать программистом то вам придется постоянно учиться, это нескончаемый процесс. Постоянно расширяйте кругозор и углубляйте знания.

А теперь поговорим про зарплаты. Тут все не очень просто. В вебе, сейчас очень много всего происходит, появляются новые фреймворки, релизятся новые библиотеки и т.д. Поэтому невозможно хорошо знать все, приходится сосредотачиваться на конкретных вещах, и например часто могут иметь место такие ситуации когда человек получает хороший оффер просто потому что пишет на модном фреймворке который сейчас в тренде. В целом зарплатная вилка крепкого мидла сейчас 70 — 150 тысяч рублей. Все зависит от компании, стека технологий, знаний и умения продать свои знания.

Ну и по традиции — чукча не писатель, так что прошу прощения за ошибки, а так же вышеизложенное чисто мое субъективное мнение, мой личный опыт. Если у вас есть вопросы — задавайте! Постараюсь ответить :)

От нуля до героя фронтенда (Часть 1)

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

Этот гайд поможет вам сориентироваться в изучении фронтенд-разработки. В нем собраны учебные ресурсы, уже доказавшие свою эффективность, и подробные объяснения.

Руководство разбито на две части для более простого усвоения материала. Часть 1 посвящена разработке интерфейсов на HTML и CSS. Часть 2 будет о Javascript, фреймворках и паттернах дизайна.

Основы HTML и CSS

В разработке фронтенда все начинается с HTML (рус. — здесь и далее примечание переводчика с указанием языка статьи по ссылке) и CSS (рус.). HTML и CSS контролируют то, что вы видите на странице. HTML диктует содержимое в то время как CSS регулирует стили и раскладку.

Для начала прочитайте пособия по HTML (рус.) и CSS (рус.) от Mozilla Developer Network (MDN). MDN предоставляет пошаговые объяснения важных концепций HTML и CSS. К тому же каждая глава длинной всего в один экран и проиллюстрирована интерактивными демо на CodePen и JSFiddle.

После прочтения этих материалов загляните на курс Создай сайт (англ.) от CodeAcademy. Потребуется всего несколько часов для прохождения этого курса. Он даст хорошую основу для построения сайтов на HTML и CSS. Если вы хотите больше, то Построение веб-форм (англ.) — еще одно руководство от CodeAcademy, которое научит вас создавать и стилизовать веб-формы.

Чтобы попрактиковаться в CSS попробуйте CSS Diner (англ.). Это забавная игра с задачками по CSS. Другой важный аспект HTML и CSS — раскладка. LearnLayout (рус.) интерактивный учебник, показывающий как создавать раскладки на HTML и CSS.

Так же изучите как пользоваться Google Fonts (англ.) при помощи статьи Основы Google Font API (англ.) от CSSTricks или Руководство по Google Font API (рус.). Типографика — это фундаментальная основа интерфейса. Когда у вас появится время, я крайне рекомендую вам прочитать эту бесплатную онлайн-книгу Professional Web (англ.) от Donny Truong. Она научит вас всему, что вы должны знать о типографике во фронтенд-разработке.

Цукерберг рекомендует:  Верстка - Макеты для практикипортфолио.

Изучая все эти ресурсы, не беспокойтесь особо о том, чтобы все запомнить. В первую очередь сосредоточьтесь на понимании того, как HTML и CSS взаимосвязаны.

Практика основ HTML и CSS

Теперь, когда вы имеете представление об основах HTML и CSS, давайте повеселимся. В этом разделе есть два эксперимента для вашей практики создания сайтов и интерфейсов. Я использую термин “эксперимент” поскольку в ходе эксперимента вы осознаете на сколько сильно ваш успех зависит от ваших неудач.

Эксперимент 1

В нашем первом эксперименте мы будем использовать CodePen. CodePen это площадка для фронтенда (“песочница”), где вы можете писать HTML и CSS код без создания файлов на вашем компьютере. Там так же есть функция живого предпросмотра, которая обновляется сразу после сохранения кода.

Используя CodePen, вы убиваете двух зайцев сразу. С одной стороны вы практикуете HTML и CSS. C другой стороны вы создаете основу для портфолио с иллюстрациями вашего прогресса. Мы так же будем использовать Dribbble, который полон вдохновляющего дизайна.

Идите на Dribbble и найдите дизайн, код для которого вы сможете написать за пару часов. Я выбрал несколько примеров, с которых вы можете начать: 1, 2, 3, 4 и 5. Я выбирал дизайны, ориентированные в первую очередь на мобильную разработку, потому что они менее сложны, чем их аналоги для обычных экранов. Тем не менее вы вольны выбрать вариант для десктопов.

Когда вы определились с дизайном, идите и попробуйте сверстать его на CodePen. Если вы застряли, помните что StackOverflow (англ.) ваш друг. Другой полезной практикой будет пойти на такие сайты, как Medium, AirBnB и Dropbox и при помощи инструментов разработчика (англ.) посмотреть как реализована разметка и стили. Так же взгляните на некоторые примеры на CodePen. Я прикрепляю несколько хороших ссылок:

Не стоит расстраиваться если ваша копия будет отличатся от оригинала. Продолжайте практиковаться с разными дизайнами и со временем вы заметите существенные улучшения.

Если у вас нет за плечами опыта в дизайне, вероятнее всего, ваш дизайнерский глазомер не настроен. Фронтенд-разработчик с хорошим дизайнерским чутьем будет в состоянии отличить хороший дизайн и сверстать его идеально. Я написал статью несколько недель назад о том, как развить свое дизайнерское чутье (рус.).

Эксперимент 2

Надеюсь, первый эксперимент дал вам определенную уверенность в написании HTML и CSS. Для эксперимента 2 мы заглянем на ряд сайтов, затем напишем код нескольких компонентов.

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

  • Dropbox for Business: Попробуйте повторить их секцию с баннерами (так называемые hero image (англ.))
  • AirBnB: Попробуйте повторить их футер
  • PayPal: Попробуйте повторить их навигацию
  • Invision: Попробуйте повторить секцию регистрации (signup) в нижней части страницы
  • Stripe: Попробуйте повторить секцию оплаты

Еще раз повторю, что целью второго эксперимента является не воссоздание главной страницы. Даже не смотря на то, что это бы точно не помешало! Выберите пару ключевых компонентов, например навигационную панель или секцию с баннерами и сверстайте их. Я написал свои предложения рядом со ссылками на сайты, но вы можете выбрать другие части на свое усмотрение.

Вы можете использовать CodePen для своих экспериментов или выполните их на своем компьютере. Если вы планируете работать локально, то так же можете скачать этот пример проекта в качестве шаблона или создать файлы с нуля. Я советую вам использовать редакторы Atom или Sublime.

К тому же помните, что вы всегда можете посмотреть HTML или CSS любого сайта. Просто кликните правой кнопкой мыши на странице или на определенном элементе, выберите “Просмотреть код” и появится панель с HTML кодом в левой части и CSS кодом в правой. После окончания верстки или в момент, когда вы в тупике проинспектируйте свой код и посмотрите, как взаимодействуют ваши HTML и CSS.

Лучшие практики HTML и CSS

То, что вы узнали выше — основы HTML и CSS. Следующим шагом будет изучение лучших практик. Лучшие практики представляют из себя набор правил, которые улучшат качество вашего кода.

Семантичная разметка

Одним из лучших правил для HTML и CSS это написание семантичной разметки. Хорошая веб-семантика означает использование подходящих HTML тегов и “говорящих” названий классов в CSS, которые будут передавать структурный смысл.

Например, тег h1 говорит нам, что вложенный текст является важным заголовком. Другим примером является тег footer, который говорит нам что элемент должен располагаться внизу страницы. Для дальнейшего изучения прочтите Основы семантической верстки на HTML5 (рус.) и Для чего нужна семантика в именах классов (англ.) от CSSTricks.

Соглашение об именах в CSS

Следующая важная хорошая практика в CSS собственно соглашение об именах. Хорошее именование, как семантичная разметка, передает смысл и помогает сделать наш код предсказуемым, удобным для чтения и поддержки. Вы можете почитать о разных соглашениях в статье OOCSS, ACSS, BEM, SMACSS: что это? Что мне использовать? (англ.) или Правильный CSS: OOCSS, SMACSS, BEM и SASS (рус.).

В общем я предлагаю вам начать с простых соглашений об именах, которые будут вам интуитивно понятны. Со временем придет понимание, с каким лично вам удобнее всего работать. Чтобы посмотреть, как большие компании типа Medium используют в своей работе BEM можете почитать CSS у Medium чертовски хорош (англ.). В этой статье вы так же узнаете, что составление эффективного набора CSS правил это процесс итеративный.

Сброс CSS

Браузеры имеют небольшие различия при отрисовке стилей, начиная от отступов и до высоты строк. По этой причине всегда сбрасывайте CSS. MeyerWeb — самый популярный способ. Если вы хотите копнуть глубже, то можете почитать Создайте свой собственный файл Reset.css (англ.).

Кроссбраузерная поддержка

Кроссбраузерная поддержка означает что ваш код поддерживает большую часть современных брузеров. Некоторые свойства CSS^ например transition, требуют префиксов (англ.) для их верной работы в разных браузерах. Можете почитать о префиксах в статьях CSS Vendor Prefixes (англ.) или Вендорные префиксы (рус.). Главное что вы должны запомнить — тестируйте свои сайты во всех браузерах, включая Chrome, Firefox и Safari.

Препроцессоры и постпроцессоры CSS

C момента своего появления в 1990-х, CSS проделал огромный путь. Поскольку пользовательские интерфейсы становятся все сложнее, разработчики придумывают инструменты, позволяющие облегчить работу над их созданием. Для этого и предназначены пре- и постпроцессоры.

Препроцессоры представляют из себя расширения для языка CSS, которые добавляют наворотов типа переменных, миксинов и наследования. Два самых главных препроцессора Sass и Less. На 2020 год Sass более распространен. Bootstrap, популярный CSS фреймворк, переключился с Less на Sass. К тому же когда большинство людей заводят речь о Sass, то они на самом деле говорят о SCSS (рус.).

Постпроцессоры CSS вносят изменения в код после того, как он был написан или после компиляции препроцессора. Например, некоторые постпроцессоры, тот же PostCSS, имеют плагины для автоматического добавления префиксов.

Когда вы впервые открываете для себя препроцессоры и постпроцессоры, появляется соблазн использовать их везде. Тем не менее начните с простого и добавляйте переменные, миксины только там, где это действительно необходимо. Статья, о которой я упоминал ранее, CSS у Medium чертовски хорош (англ.), так же рассказывает о том, какие возможны излишки при работе с препроцессорами.

Система сеток и отзывчивость

Сетки в CSS это структура, позволяющая вам “укладывать” элементы горизонтально и вертикально.

Такие фреймворки, как Bootstrap, Skeleton и Foundation предусматривают стили, управляющие строками и колонками в раскладке. В то время как фреймворки, безусловно, полезны, стоит понимать саму суть работы сеток. Прекрасные обзоры на эту тему: Понимание CSS сеток (англ.) и Don’t Overthink Grids (англ.).

Одна из главных возможностей, которую дают сетки, это обеспечение отзывчивости вашего сайта. Отзывчивость ( responsiveness) означает, что сайт изменяет свои размеры в зависимости от ширины окна браузера. Долгое время отзывчивость достигалась при помощи медиавыражений в CSS (рус.): правил, срабатывающих только при определенных размерах экрана.

Вы можете почитать больше на тему медиавыражений в статье Введение в медиавыражения (англ.). Так же, поскольку мы вступили в эру mobile-first (рус.), загляните в Введение в медиавыражения Mobile-First (англ.).

Отработка лучших практик HTML и CSS

Теперь вы вооружены самыми лучшими практиками. Давайте проверим их в бою! Целью следующих двух экспериментов является практика написания чистого кода и наблюдение за долгосрочным эффектом повышения читабельности и поддерживаемости.

Эксперимент 3

В рамках эксперимента 3 выберите один из прошлых экспериментов и проведите рефакторинг своего кода с использованием советов, которые вы узнали выше. Рефакторинг означает редактирование вашего кода так, чтобы он стал проще, в том числе в плане читаемости.

Умение проводить эффективный рефакторинг кода — очень важный навык для фронтенд-разработчика. Создание эффективного кода- постоянный процесс. Возьмите статью CSS архитектура: рефакторинг CSS (англ.) в качестве отправной точки для вашей работы над рефакторингом.

Ниже несколько вопросов, на которые вы должны себе ответить в процессе рефакторинга.

  • Не двусмысленны ли названия классов? Через полгода я все еще смогу понять, что означает название класса?
  • Семантичен ли мой HTML и CSS? Можно ли с первого взгляда определить структуру и взаимоотношения элементов?
  • Использую ли я одни и те же цвета в коде? Не будет ли логичнее вынести их в переменные Sass (англ.)?
  • Работает ли мой код в Safari так же хорошо, как в Chrome?
  • Нельзя ли заменить часть кода на систему сеток, например Skeleton?
  • Не слишком ли часто я использую !important? Как я могу это исправить?

Эксперимент 4

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

В качестве последнего эксперимента создайте собственный сайт-портфолио. Для фронтенд-разработчика портфолио—самый важный актив. Сайт-портфолио предназначен для демонстрации ваших работ. Что еще более важно, это постоянно обновляющийся отчет вашего прогресса в разработке. Поэтому создавайте портфолио даже если у вас 1–2 работы.

Если первый вариант вашего портфолио не идеален — это нормально! Портфолио пройдет через множество итераций (рус.). В первую очередь важно использовать при разработке все ваши навыки.

Будьте в курсе

До тех пор, пока HTML и CSS не выйдут из употребления, важно оставаться в курсе всех событий в области фронтенда.

Ниже приведен список сайтов, блогов и форумов, которые являются передовыми источниками информации.

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

Лучшим способом обучения является работа с примерами, практика. Вот несколько руководств по стилям (стайлгайдов (рус.)) и соглашений, которые помогут вам стать более эффективным разработчиком.

Стайлгайды


Стайлгайды в вебе это наборы CSS компонентов и паттернов, которые могут быть использованы на разных сайтах. Ключевой вещью для обучения является понимание того, как повторно использовать компоненты на основе HTML и CSS и не нарушать принцип “Не повторяйся” (рус.).

Соглашения о коде

Соглашения о коде призваны сделать ваш код читабельным и легким в поддержке. Некоторые из этих ссылок, например CSS Guidelines (англ.), являются набором советов по улучшению написания HTML и CSS в то время, как другие ссылки, например Github internal CSS toolkit and guidelines (англ.) являются примерами эффективного кода.

Сворачиваемся

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

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

P.S. Поделитесь этой статьей с друзьями, если она вам понравилась. Это много значит для меня.

Нашли ошибку? Воспользуйтесь функцией Private notes: выделяете текст с ошибкой, нажимаете на символ замка в появившемся дудле и оставляете свой комментарий. Спасибо!

Библиотека фронтендера

Добавлен в индекс

Подписчики
Просмотры
Средний охват поста и ERR%
Публикации
Репосты и упоминания канала
Каналы, которые цитирует @frontendproglib
Последние публикации

​8 задач для практики Frontend-разработчика

Хотите написать приложение на JavaScript, но не знаете, какое? Ловите 8 идей проектов для прокачки навыков фронтенд-программиста.

Разработка игр на JavaScript: реально и безболезненно

Сегодня игрушку можно наваять на любом ЯП, и JS не исключение. Разработка игр по своей природе сложная задача – мы подскажем, с чего начать.

​​Где веб-разработчику искать работу:

— Вакансии для веб-разработчиков (@fordev). Небольшой канал в Телеграме, но в будни появляется по 2-3 новых вакансии;

— vc.ru/job — на крупнейшей платформе РФ для предпринимателей и высококвалифицированных специалистов. На сегодня открыты 25 вакансий по разным направлениям разработки;
отслеживать раздел “Вакансии” на сайте интересующей компании.

Но если ваши знания не соответствуют требованиям работодателей, можно пройти курс по frontend-разработке в SkillFactory, где рассказывают о HTML, CSS, JavaScript, инфраструктуре веб-приложений. Слушатели получают доступ к закрытой подборке вакансий, а резюме лучших студентов отправляют напрямую партнёрам (Яндекс, Рамблер, Сбербанк и др.).

Можно ли вращать курсор с помощью CSS?

Марафон верстки от Glo Academy

6 видео с версткой реального лендинга в прямом эфире

В чём разница между props и data в Vue.js

Во Vue предусмотрено два способа хранения данных в компоненте: props и data. Кажется, что они нужны для одного и того же, и непонятно, когда и что нужно использовать.

#frameworks #vuejs #beginners

��15 ноября в 20:00 мск OTUS приглашает на бесплатный пробный урок «Трюки Django ORM» в рамках курса «Web-разработчик на Python»: https://otus.pw/6b7I/

��Многие начинающие разработчики допускают ошибки при формировании запросов в базу и при обработке полученных результатов. На открытом уроке мы:
— познакомимся с такими инструментами как annotate, aggregate, prefetch related, выражениями: F, Subquery, OuterRef;
— изучим практические задачи, где это может вам пригодиться, и какие ошибки вы скорее всего допускаете при работе с Django ORM.

��Урок проведёт преподаватель-практик курса Сурен Хоренян (Python 3.6, Flask, SQLAlchemy, PostgreSQL, Redis, Docker и многое другое). Не упустите возможности задать ему все интересующие вопросы!

☝��Чтобы попасть на курс с welcome-скидкой прямо сейчас, пройдите вступительный тест: https://otus.pw/DJWm/

Почему «голые» промисы небезопасны — и что использовать вместо них?

Цукерберг рекомендует:  Телеграмм - Телеграмм бот

Аналитикам: большая шпаргалка по Pandas

Привет. Я задумывал эту заметку для студентов курса Digital Rockstar, на котором мы учим маркетологов автоматизировать свою работу с помощью программирования, но решил поделиться шпаргалкой по Pandas со всеми. Я ожидаю, что читатель умеет писать код на Python хотя бы на минимальном уровне, знает, что такое списки, словари, циклы и функции.

Что такое Pandas и зачем он нужен

Pandas — это библиотека для работы с данными на Python. Она упрощает жизнь аналитикам: где раньше использовалось 10 строк кода теперь хватит одной.

Например, чтобы прочитать данные из csv, в стандартном Python надо сначала решить, как хранить данные, затем открыть файл, прочитать его построчно, отделить значения друг от друга и очистить данные от специальных символов.

В Pandas всё проще. Во-первых, не нужно думать, как будут храниться данные — они лежат в датафрейме. Во-вторых, достаточно написать одну команду:

Pandas добавляет в Python новые структуры данных — серии и датафреймы. Расскажу, что это такое.

Структуры данных: серии и датафреймы

Серии — одномерные массивы данных. Они очень похожи на списки, но отличаются по поведению — например, операции применяются к списку целиком, а в сериях — поэлементно.

То есть, если список умножить на 2, получите тот же список, повторенный 2 раза.

А если умножить серию, ее длина не изменится, а вот элементы удвоятся.

Обратите внимание на первый столбик вывода. Это индекс, в котором хранятся адреса каждого элемента серии. Каждый элемент потом можно получать, обратившись по нужному адресу.

Еще одно отличие серий от списков — в качестве индексов можно использовать произвольные значения, это делает данные нагляднее. Представим, что мы анализируем помесячные продажи. Используем в качестве индексов названия месяцев, значениями будет выручка:

Теперь можем получать значения каждого месяца:

Так как серии — одномерный массив данных, в них удобно хранить измерения по одному. На практике удобнее группировать данные вместе. Например, если мы анализируем помесячные продажи, полезно видеть не только выручку, но и количество проданных товаров, количество новых клиентов и средний чек. Для этого отлично подходят датафреймы.

Датафреймы — это таблицы. У их есть строки, колонки и ячейки.

Технически, колонки датафреймов — это серии. Поскольку в колонках обычно описывают одни и те же объекты, то все колонки делят один и тот же индекс:

Объясню, как создавать датафреймы и загружать в них данные.

Создаем датафреймы и загружаем данные

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

А иногда данные уже есть, но хранятся в переменной из стандартного Python, например, в словаре. Чтобы получить датафрейм, эту переменную передаем в ту же команду:

Случается, что в некоторых записях не хватает данных. Например, посмотрите на список goods_sold — в нём продажи, разбитые по товарным категориям. За первый месяц мы продали машины, компьютеры и программное обеспечение. Во втором машин нет, зато появились велосипеды, а в третьем снова появились машины, но велосипеды исчезли:

Если загрузить данные в датафрейм, Pandas создаст колонки для всех товарных категорий и, где это возможно, заполнит их данными:

Обратите внимание, продажи велосипедов в первом и третьем месяце равны NaN — расшифровывается как Not a Number. Так Pandas помечает отсутствующие значения.

Теперь разберем, как загружать данные из файлов. Чаще всего данные хранятся в экселевских таблицах или csv-, tsv- файлах.

Экселевские таблицы читаются с помощью команды pd.read_excel() . Параметрами нужно передать адрес файла на компьютере и название листа, который нужно прочитать. Команда работает как с xls, так и с xlsx:

Файлы формата csv и tsv — это текстовые файлы, в которых данные отделены друг от друга запятыми или табуляцией:

Оба читаются с помощью команды .read_csv() , символ табуляции передается параметром sep (от англ. separator — разделитель):

При загрузке можно назначить столбец, который будет индексом. Представьте, что мы загружаем таблицу с заказами. У каждого заказа есть свой уникальный номер, Если назначим этот номер индексом, сможем выгружать данные командой df[order_id] . Иначе придется писать фильтр df[df[‘ >.

О том, как получать данные из датафреймов, я расскажу в одном из следующих разделов. Чтобы назначить колонку индексом, добавим в команду read_csv() параметр index_col , равный названию нужной колонки:

После загрузки данных в датафрейм, хорошо бы их исследовать — особенно, если они вам незнакомы.

Исследуем загруженные данные

Представим, что мы анализируем продажи американского интернет-магазина. У нас есть данные о заказах и клиентах. Загрузим файл с продажами интернет-магазина в переменную orders . Раз загружаем заказы, укажем, что колонка id пойдет в индекс:

Расскажу о четырех атрибутах, которые есть у любого датафрейма: .shape , .columns , .index и .dtypes .

.shape показывает, сколько в датафрейме строк и колонок. Он возвращает пару значений (n_rows, n_columns) . Сначала идут строки, потом колонки.

В датафрейме 5009 строк и 5 колонок.

Окей, масштаб оценили. Теперь посмотрим, какая информация содержится в каждой колонке. С помощью .columns узнаем названия колонок:

Теперь видим, что в таблице есть дата заказа, метод доставки, номер клиента и выручка.


С помощью .dtypes узнаем типы данных, находящихся в каждой колонке и поймем, надо ли их обрабатывать. Бывает, что числа загружаются в виде текста. Если мы попробуем сложить две текстовых значения ‘1’ + ‘1’ , то получим не число 2, а строку ’11’ :

Тип object — это текст, float64 — это дробное число типа 3,14.

C помощью атрибута .index посмотрим, как называются строки:

Ожидаемо, в индексе датафрейма номера заказов: 100762, 100860 и так далее.

В колонке sales хранится стоимость каждого проданного товара. Чтобы узнать разброс значений, среднюю стоимость и медиану, используем метод .describe() :

Наконец, чтобы посмотреть на несколько примеров записей датафрейма, используем команды .head() и .sample() . Первая возвращает 6 записей из начала датафрейма. Вторая — 6 случайных записей:

Получив первое представление о датафреймах, теперь обсудим, как доставать из него данные.

Получаем данные из датафреймов

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

Указываем нужные строки и колонки

Продолжаем анализировать продажи интернет-магазина, которые загрузили в предыдущем разделе. Допустим, я хочу вывести столбец sales . Для этого название столбца нужно заключить в квадратные скобки и поставить после них названия датафрейма: orders[‘sales’] :

Обратите внимание, результат команды — новый датафрейм с таким же индексом.

Если нужно вывести несколько столбцов, в квадратные скобки нужно вставить список с их названиями: orders[[‘customer_id’, ‘sales’]] . Будьте внимательны: квадратные скобки стали двойными. Первые — от датафрейма, вторые — от списка:

Перейдем к строкам. Их можно фильтровать по индексу и по порядку. Например, мы хотим вывести только заказы 100363, 100391 и 100706, для этого есть команда .loc[] :

А в другой раз бывает нужно достать просто заказы с 1 по 3 по порядку, вне зависимости от их номеров в таблицемы. Тогда используют команду .iloc[] :

Можно фильтровать датафреймы по колонкам и столбцам одновременно:

Часто вы не знаете заранее номеров заказов, которые вам нужны. Например, если задача — получить заказы, стоимостью более 1000 рублей. Эту задачу удобно решать с помощью условных операторов.

Если — то. Условные операторы

Задача: нужно узнать, откуда приходят самые большие заказы. Начнем с того, что достанем все покупки стоимостью более 1000 долларов:

Помните, в начале статьи я упоминал, что в сериях все операции применяются по-элементно? Так вот, операция orders[‘sales’] > 1000 идет по каждому элементу серии и, если условие выполняется, возвращает True . Если не выполняется — False . Получившуюся серию мы сохраняем в переменную filter_large .

Вторая команда фильтрует строки датафрейма с помощью серии. Если элемент filter_large равен True , заказ отобразится, если False — нет. Результат — датафрейм с заказами, стоимостью более 1000 долларов.

Интересно, сколько дорогих заказов было доставлено первым классом? Добавим в фильтр ещё одно условие:

Логика не изменилась. В переменную filter_large сохранили серию, удовлетворяющую условию orders[‘sales’] > 1000 . В filter_first_class — серию, удовлетворяющую orders[‘ship_mode’] == ‘First’ .

Затем объединили обе серии с помощью логического ‘И’: filter_first_class & filter_first_class . Получили новую серию той же длины, в элементах которой True только у заказов, стоимостью больше 1000, доставленных первым классом. Таких условий может быть сколько угодно.

Язык запросов

Еще один способ решить предыдущую задачу — использовать язык запросов. Все условия пишем одной строкой ‘sales > 1000 & ship_mode == ‘First’ и передаем ее в метод .query() . Запрос получается компактнее.

Отдельный кайф: значения для фильтров можно сохранить в переменной, а в запросе сослаться на нее с помощью символа @: sales > @sales_filter .

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

Считаем производные метрики

Задача: посчитаем, сколько денег магазин заработал с помощью каждого класса доставки. Начнем с простого — просуммируем выручку со всех заказов. Для этого используем метод .sum() :

Добавим класс доставки. Перед суммированием сгруппируем данные с помощью метода .groupby() :

3.514284e+05 — научный формат вывода чисел. Означает 3.51 * 10 5 . Нам такая точность не нужна, поэтому можем сказать Pandas, чтобы округлял значения до сотых:

Другое дело. Теперь видим сумму выручки по каждому классу доставки. По суммарной выручке неясно, становится лучше или хуже. Добавим разбивку по датам заказа:

Видно, что выручка прыгает ото дня ко дню: иногда 10 долларов, а иногда 378. Интересно, это меняется количество заказов или средний чек? Добавим к выборке количество заказов. Для этого вместо .sum() используем метод .agg() , в который передадим список с названиями нужных функций.

Ого, получается, что это так прыгает средний чек. Интересно, а какой был самый удачный день? Чтобы узнать, отсортируем получившийся датафрейм: выведем 10 самых денежных дней по выручке:

Команда разрослась, и её теперь неудобно читать. Чтобы упростить, можно разбить её на несколько строк. В конце каждой строки ставим обратный слеш \ :

В самый удачный день — 18 марта 2014 года — магазин заработал 27 тысяч долларов с помощью стандартного класса доставки. Интересно, откуда были клиенты, сделавшие эти заказы? Чтобы узнать, надо объединить данные о заказах с данными о клиентах.

Объединяем несколько датафреймов

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

Мы знаем тип клиента, место его проживания, его имя и имя контактного лица. У каждого клиента есть уникальный номер id . Этот же номер лежит в колонке customer_id таблицы orders . Значит мы можем найти, какие заказы сделал каждый клиент. Например, посмотрим, заказы пользователя CG-12520 :

Вернемся к задаче из предыдущего раздела: узнать, что за клиенты, которые сделали 18 марта заказы со стандартной доставкой. Для этого объединим таблицы с клиентами и заказами. Датафреймы объединяют с помощью методов .concat() , .merge() и .join() . Все они делают одно и то же, но отличаются синтаксисом — на практике достаточно уметь пользоваться одним из них.

Покажу на примере .merge() :

В .merge() я сначала указал названия датафреймов, которые хочу объединить. Затем уточнил, как именно их объединить и какие колонки использовать в качестве ключа.

Ключ — это колонка, связывающая оба датафрейма. В нашем случае — номер клиента. В таблице с заказами он в колонке customer_id , а таблице с клиентами — в индексе. Поэтому в команде мы пишем: left_on=’customer_ >.

Решаем задачу

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

Для начала отфильтруем заказы из 2020 года:

Город — это атрибут пользователей, а не заказов. Добавим информацию о пользователях:

Cруппируем получившийся датафрейм по городам и посчитаем выручку:

Отсортируем по убыванию продаж и оставим топ-5:

Возьмите данные о заказах и покупателях и посчитайте:

  1. Сколько заказов, отправлено первым классом за последние 5 лет?
  2. Сколько в базе клиентов из Калифорнии?
  3. Сколько заказов они сделали?
  4. Постройте сводную таблицу средних чеков по всем штатам за каждый год.

Через некоторое время выложу ответы в Телеграме. Подписывайтесь, чтобы не пропустить ответы и новые статьи.

Кстати, большое спасибо Александру Марфицину за то, что помог отредактировать статью.

Антиода фронтендерам

К фронтендерам у меня крайне двойственное отношение, отдающее шизофренией.

С одной стороны вне работы они норм. Ну т.е. люди как люди. Бывают очень годные, бывают очень упоротые. В целом совпадает с распределением по популяции разработчиков.

С другой стороны в разработке… Мне кажется, многие больны. Когда от меня хотят чего-то странного и плохого, почти всегда это оказывается либо менеджер (чем дальше от разработки, тем больше бабушка в режиме “а чё, вот кнопочку нажать не поможет?”), либо фронтендер (в режиме “да чё, вот тут костыль, сюда костыль, а сверху штукатурка, мы всегда так делаем”).

Когда начались проблемы? Когда верстальщики стали фронтендерами, да будет проклят Node.js, прорубивший им это окно. О, сказали верстальщики, теперь мы можем писать на JavaScript все утилиты и даже бекенд! Мы всё можем на нём написать! И ведь пишут. Казалось бы, что в этом такого?

Во-первых, по теоретической подготовке фронтендер не является программистом. Если даже когда и являлся, ему не зашло, потому он ушёл в мир выпадающих списков и теней под менюшками. В этом мире не нужны знания алгоритмов, процессоров, операционных систем и т.д. Есть макет (обычно нет), есть зоопарк браузеров, да и всё. Если человек с таким background’ом берётся писать бекенд, в 99% случаев на результат нельзя смотреть без ящика пива. И вы лоб сломаете в попытках объяснить, почему одной бутылки мало. Вас не поймут. НУ РАБОТАЕТ ЖЕ! ЧЁ НЕ ТАК?!

Во-вторых, JavaScript не воспитывает хороших разработчиков. Опять же, потому, что этот язык никогда не предназначался для разработки вне браузера и никогда не предназначался для разработки больших сервисов. Сейчас он почти идеален для “полезные скрипты на два-три экрана” и для “хочу попробовать программировать”, во всём остальном выкапывает мозг тем глубже, чем больше строк вам надо отладить, собрать и выкатить. Да, с этим справляются. Но чуваки на классических языках бекенда с меньшими усилиями справляются на гораздо, гораздо бОльших кодовых базах.

В-третьих, культура фронтенда — это культура “раз в полугодие мы всё переписываем” и “ой, у нас новый фреймворк, уииии!”. В итоге нет привычки доводить продукт до состояния продукта. Зачем, если завтра вы выкидываете то, что написали сегодня? Это же является одной из причин, по которым костылизация становится нормой. Зачем неделю писать правильный железобетонный код, если завтра всё поменяется, а костыль можно написать за час?

Цукерберг рекомендует:  Php - php скрипт обработки формы

В-четвёртых, мир браузеров — джунгли. Я вообще не понимаю, как можно остаться в здравом рассудке и продолжать что-либо делать в условиях “это работает в X, не работает в Y, странно тупит в Z, а в A и B работает, но не так, но надо, чтобы везде хоть как-то работало, при этом вчера”. Нет ничего удивительного, что этот мир порождает орды Маугли и Тарзанов, успешно действующих в доисторических условиях, но фигово творящих в условиях цивилизации. Как если бы в Нью-Йорке рубить пальмы и делать из них телеги. Да, телега поедет (задача решена), но блин, чувак, это Нью-Йорк и 2020 год.

В-пятых, фронтендеры являют собою апофеоз подхода “я ничего не буду системно учить, погуглю и со Stackoverflow стырю решение”. Может, мне так везёт. Не знаю. Но, образно говоря, если из десяти бекендеров одного точно можно уговорить прочитать спецификацию или учебник (и он прочтёт), то из сотни фронтендеров спецификацию попробует осилить один, да и тому будет скучно, если чаем с мёдом не поить и не уговаривать “заинька, ну ещё страничку, ну за папу, за маму”.

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

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

© — Powered by Jekyll & whiteglass — Subscribe via RSS

Что почитать фронтендеру на выходных — 1

Я читал на этой неделе Оруэлла — 1984. Давно собирался и вот, к новому году, приобрел себе книженцию и прочитал. До сих пор не выходит из головы, сильный финал. Рекомендую.

А теперь что касается фронтенда…

Я перешел на Pocket для сохранения статей. До этого складывал их в Wunderlist и Notes, а теперь выбрал годное из них и составил списочки ниже. Чтива хватит на пару выходных.

Статьи и видео


  1. Воркшоп React.js и архитектура Flux — крутой старт по реакту и флюксу.
  2. Что читает в PCC Вадим Макеев
  3. Список YouTube-каналов для обучения веб-разработке
  4. Чеклист по установке и настройке нового сайта на WordPress
  5. ���� React для начинающих
  6. ���� Руководство по React.js
  7. ���� Путь React.js: руководство по началу работы
  8. ���� Руководство по Canvas
  9. ���� Awesome Frontend Development
  10. ���� Возможно вам не нужен jQuery
  11. ���� HTML5 кросс браузерные полифилы
  12. ���� Как должно выглядеть хорошее резюме
  13. ���� Вопросы по JS на собеседовании
  14. ���� Примеры использования Flexbox
  15. ���� Critical 0.7.0
  16. ���� Webpack dev server ProTip

Книги

Библиотеки и фреймворки

  1. ���� Garlicjs — сохраняет введенные пользователем данные в формы
  2. ���� Барон — нативный скролл с кастомным скроллбаром
  3. ���� Email фреймворк — шаблон для email писем
  4. ���� jQuery Aim — гениальный плагин, жаль под jQuery и возможно будет тормозить, но идея очень крутая
  5. ���� jQuery Dot Dot Dot — обрезает текст по высоте блока и ставит многоточие
  6. ���� Полифил для flexbox
  7. ���� Полифилы по User Agent
  8. ���� Clipboard.js
  9. ���� Fast.js — оптимизированные версии для встроенных JavaScript методов, таких как forEach , map , reduce .
  10. ���� KeyboardJS — библиотека для работы с клавиатурными сочетаниями.
  11. ���� AnyBarWebpackPlugin

Сервисы

  1. Это кеш. Определенно, кеш — куда посылать клиентов, которые не видят правок.
  2. ���� Inline-css — сервис для заинлайнивания CSS свойств. Нужен для email рассылок.
  3. ���� Instacode — генератор изображений с кодом, пример шапке статьи «Что нужно знать и уметь front end разработчику в 2015/2020».
  4. ���� Баг репортинг для интернета
  5. ���� Анимированные визуализации структур данных
  6. ���� Букмарклет для тестирование сайта по медиа выражениям
  7. ���� Grid Lover и ���� Type Scale — вертикальная сетка для текста и подбор пропорции увеличения шрифта.

Шорткат недели

В Google Chrome CMD + L выделяет адрессную строку. Мне лень тянуться мышкой, поэтому хватит это терпеть.

Еше можно подписаться на email рассылку новых заметок. Не чаще раза в неделю, без спама.

Книги по обучению фронтенду

Книги

Все книги, представленные ниже, были прочитаны мною, поэтому рейтинг каждой является субъективным мнением. Также хочу заметить, что ни одна не получила 10 баллов, а некоторые удостоились «четвёрки». Это, конечно же, является моей ошибкой, т.к. перед покупкой нужно было хорошенько пройтись по отзывам.

Список будет регулярно пополняться. Последнее редактирование — 04.10.2020

  • «Git для профессионального программиста»
    Автор: Скот Чакон, Бен Штрауб 2020
    Самый настоящий бестселлер.
    Только начинаете изучать Git? Эта книга вам идеально подойдет!
    Думаете, что хорошо знаете Git? Это не так. Бегом в магазин!
    9.5 из 10
  • «Новая большая книга CSS»
    Автор: Макфарланд Д., 2020
    Достаточно полный сборник всех возможностей CSS. Идеально подойдёт для новичков и тех, кто любит уточнять все нюансы. Каждая глава содержит подробные примеры. Воды почти нет, что очень порадовало.
    7.5 из 10
  • «Изучаем HTML, XHTML и CSS»
    Автор: Элизабет Фримен, Эрик Фримен, 2020
    Шёл 2013 года. Моя первая книга по разработке. Авторы затрагивают и разбирают на примерах все важные моменты HTML и CSS. Для junior’ов — junior’ов. Рекомендую прочитать её быстро, т.к. вы можете завязнуть в ней как в трясине, а знаний больших не получите. От неё нужно переходить к более серьезному материалу и самостоятельной практике.
    6.5 из 10
  • «Секреты CSS. Идеальные решения ежедневных задач»
    Автор:Леа Веру, 2020
    47 реальных примеров, которые, я уверен, пригодятся каждому. Сейчас книга стоит 779 рублей. Советую не жалеть денег и приобрести её. Найти в интернете также не должно стать проблемой. Если нет, то пишите, скину.
    9 из 10
  • «Сила JavaScript. 68 способов эффективного использования JS»
    Автор:Дэвид Херман, 2013
    Достаточно старое издание, но мне ужасно понравилось. Чем-то похоже на Леа Веру. Логично составленные разделы, короткие главы с примерами. Разбираются вопросы, ответы на которые проблематично найти сети. Советую прочитать каждому фронтендеру, кроме senior’ов. Конечно же.
    8.5 из 10
  • «JavaScript. Оптимизация производительности»
    Автор:Николас Закас, 2012
    Легендарная книга по JavaScript, должна храниться на полке каждого веб-разработчика (или в отдельной папочке на компьютере). Темы, незаслуженно обделённые вниманием программистов. Да, разработчик не может контролировать (можно, конечно, отследить через Яндекс Метрику, но это уже не ваша работа) процесс работы веб-приложения на стороне реальных пользователей, но мы всё же должны стараться (!это ключевое слово!) минимизировать потери на клиенте. В книге содержатся невыдуманные моменты рабочего процесса, что позволяет отнестись к материалу более чем серьезно и даже завести отдельную тетрадь под нее. После прочтения у вас никогда не возникнет мысли «Зачем оптимизировать, когда и так работает».
    9.5 из 10
  • «Вы не знаете JS (серия книг)»
    Автор:Кайл Симпсон, 2020
    Набор из 6 книг, которые позволят junor’ам окунуться в мир JavaScript. Перевод книги абсолютно бесплатен. Рекомендуется читать одновременно с веб-книгой Ильи Кантора (ссылка ниже), т.к. вы сможете совмещать теорию с практикой. Либо можете читать поочередно, чтобы материал успевал закрепиться.
    9 из 10
  • «Приемы объектно-ориентированного проектирования. Паттерны проектирования»
    Авторы:Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес, 2020
    Данный материал сложен, поэтому без вводных знаний в ООП Вам будет трудно. Приступать к нему лучше после изучения вышеперечисленных изданий по JS.
    8 из 10
  • «97 этюдов для программистов. Опыт ведущих экспертов»
    Авторы: Питер Гудлиф, Диомидис Спинеллис, Роберт К. Мартин, Кевлин Хенни, 2012
    В книге фронтенд не освещается, но будет в некоторой степени полезен тем, кто хочет профессионального роста. 5 этюдов в день (15-20 минут) помогут разгрузить голову и узнать что-то полезное от знатоков.
    7 из 10
  • «Современный веб-дизайн. Настольный и мобильный»
    Автор:Юлия Сырых, 2014
    Вот совсем нет хороших книг по веб-дизайну. И эта не исключение. Разработчик с годовым стажем знает больше, чем Вы найдёте на страницах этого издания. Книга подойдет только тому, кто пришел в веб полчаса тому назад. Остальным советую продолжить поиск.
    4 из 10
  • «UX-стратегия. Чего хотят пользователи и как им это дать»
    Автор:Джейми Леви, 2020
    Книга не получила 4 только потому, что в UX я не знаю каких-то серьезных подходов, а Леви как раз их озвучила. На озоне рейтинг 1 из 5. Книга тоненькая, поэтому прочитаете за неделю. Подобную тему я слушал на myDribbble Meetup 2020 (смотреть с 13:30).
    5.5 из 10

Веб-учебники / справочники

Данный список вне конкуренции. Каждому пункту можно поставить 9 из 10.

Шпаргалка фронтендера: гид по таблицам

скидка 20% первым 20 студентам

  • Как работают сайты. Backend и frontend. Вёрстка.
  • Как выглядит и из чего состоит код веб-страницы.
  • Установка редактора кода Sublime Text.
  • Простая веб-страница на HTML. Тэги и атрибуты.
  • CSS-стили. Селекторы, параметры и значения.
  • Структура HTML5-документа.
  • Обзор и демонстрация работы основных HTML-тэгов.
  • Вёрстка веб-форм. Поля и кнопки. Валидация форм.
  • Таблицы и табличная вёрстка.
  • Семантическая вёрстка. Стандарты и валидность.
  • Как можно задавать стили. Селекторы.
  • Отступы, поля, размеры и единицы измерения.
  • Inline- и block-элементы, свойство display.
  • Обтекание, позиционирование и слои.
  • Блочная вёрстка.
  • Цвета, шрифты, фон и границы.
  • Что такое JavaScript и как его подключать к веб-странице.
  • Библиотека jQuery. Управление стилями элементов.
  • Обработка событий.
  • Работа с DOM, изменение, добавление и удаление элементов.
  • Отображение и скрытие элементов, анимация.
  • Работа с сетью, получение и отправка данных.
  • JavaScript-фреймворки.
  • Ширина экрана и “резиновость” сайта.
  • Media-запросы.
  • Flexbox.
  • Шаги адаптивности и сетки.
  • Разнообразие браузеров и их особенности.
  • Инструменты проверки и обеспечения адаптивности и кроссбраузерности.
  • Фон, прозрачность и градиенты.
  • Границы, аутлайны и тени.
  • Шрифты и оформление текста. Типографика и спецсимволы.
  • Стили указателей.
  • Изображения. Форматы, сжатие, cпрайты, iconfonts. Favicon.
  • Рисование на веб-странице. SVG и Canvas.
  • Сложные селекторы. Свойство !important
  • Псевдо-классы и псевдо-элементы.
  • Трансформации, переходы и анимации.
  • Стандарты именования в CSS. Методология БЭМ.
  • Библиотеки стилей: Bootstrap, Semantic UI, Material UI.
  • Шаблонизаторы (Twig, Haml) и препроцессоры (SASS, LESS, Stylus).
  • Размещение своих работ в Интернете. Домен и хостинг.
  • Инструменты командной разработки. Таск-трекеры и Git.
  • Сборщики, минификаторы и оптимизаторы проектов.
  • Инструменты прототипирования.
  • Другие среды разработки. NetBeans, WebStorm.
  • Дипломная работа.
  • Что умеет JavaScript и почему он так популярен?
  • Инструменты разработчика
  • Hello, world!
  • Синтаксис языка
  • Числа
  • Строки
  • Логические (булевые) значения
  • NaN (Not a Number)
  • Infinity
  • Математические операторы
  • Переменные
  • Преобразование типов
  • Условия
  • Циклы
  • Объявление и вызов функций
  • Аргументы
  • Локальные и глобальные переменные
  • Hoisting
  • Возвращаемые значения
  • Рекурсия
  • Понятие объектов
  • Объекты в JavaScript
  • Перебор свойств объекта
  • Массивы
  • Стандартный объект Math
  • Стандартный объект String
  • Стандартный объект Array
  • Стандартный объект Date
  • Глобальный объект window
  • Сборщик мусора
  • Замыкания
  • IIFE
  • Функции-конструкторы
  • Контекст вызова
  • Привязка контекста (call, apply и bind)
  • ООП. Наследование, инкапсуляция, полиморфизм
  • Функциональное наследование
  • Прототипное наследование
  • Прототипы стандартных объектов
  • Объект arguments
  • setTimeout и setInterval
  • Выполнение кода через eval
  • Обработка исключений (throw, catch)
  • Регулярные выражения
  • Строгий режим (strict mode)
  • DOM
  • Порядок выполнения скриптов
  • Селекторы
  • Свойства и методы элементов
  • События и обработчики
  • Погружение и всплытие событий
  • Console
  • Window
  • Селекторы
  • Document
  • Информация о браузере и истории переходов
  • LocalStorage и SessionStorage
  • ContentEditable
  • Разнообразие Web API
  • Клиент-серверное взаимодействие
  • Запуск локального сервера
  • AJAX и callback
  • JSON и Promise
  • API и WebSocker
  • Библиотека jQuery. Интро
  • Библиотеки и frameworks. Интро
  • Возможности jQuery
  • Анимация
  • AJAX
  • Плагины
  • История стандарта ECMAScript. Интро
  • Транспиляция и полифиллы
  • Let и const
  • Деструктуризация
  • Rest и spread
  • Template strings
  • Стрелочные функции и параметры по умолчанию
  • Классы и наследование
  • Что такое сборка проектов и для чего она нужна?
  • Node.js
  • npm
  • Gulp
  • Webpack
  • DOM и императивный подход. Интро
  • React и декларативный подход
  • Подготовка рабочего пространства
  • Простое React-приложение
  • Разделение на компоненты
  • Ключевые принципы Redux
  • Установка зависимостей и разделение на компоненты
  • Создание store и reducers
  • Создание actions
  • Запуск приложения
  • Библиотеки и фреймворки 2020
  • Развитие стандарта ECMAScript
  • Тестирование кода

скидка 20% первым 20 студентам

  • Функциональную систему обучения
  • Быстрый старт и практику кодинга
  • Пожизненный доступ к модулям
  • Систему мотивации
  • Портфолио из работоспособных проектов
  • Возможность уйти в академ отпуск
  • Собственный график
  • Персонального менеджера
  • Преподавателей-практиков
  • Качественный видео-контент
  • Структурированный учебный материал
  • Индивидуальная консультация
  • Диплом

ожидаемая зарплата от

  • Адаптивная и кроссбраузерная верстка
  • Основы работы с Photoshop
  • Знание Node.js
  • Работа с Web API
  • Работа с протоколами HTTP/HTTPS
  • Методология БЭМ

скидка 20% первым 20 студентам

Даниил Пилипенко

Директор центра SymbioWay

10 лет Java-разработки, являлся ведущим разработчиком «Ютинета»

Егор Яковишен

Senior Frontend Developer в Setka.io

Участвовал в разработке более 200 проектов, клиенты: PepsiCo, Tetra Pack и т.д.

Доступ в систему

Просматриваете обучающий видео-модуль в удобное для вас время.

Домашние задания

Получаете необходимые материалы для выполнения домашнего задания.

Комментарии

Куратор проверяет задание, дает обратную связь, разбирает сложные ситуации

Следующий модуль

После одобрения куратором задания вы переходите к следующему блоку

скидка 20% первым 20 студентам

Вёрстка landing-page

Вы сделаете свой первый сайт по представленному нами макету или выберете для реализации макет, понравившийся именно вам

Пользовательский интерфейс
по аналогу с Instagram

Проект не только захватит весь объем полученных знаний за курс, но и в будущем продемонстрирует ваш профессиональный потенциал на практике, а не на словах

6 месяцев практики

В сторону занудные лекции, на курсе мы кодим, кодим и еще раз кодим

Новая профессия

Престижная, востребованная и высокооплачиваемая

Верная методика работы

Учим делать хорошо — вырабатываем подход к написанию чистого кода и структуризации проектов

Портфолио

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

Доступ к материалам курса

По окончании курса вы всегда сможете вернуться к урокам и подглядеть, как в шпаргалку, нужную информацию по кодингу. Ведь у вас бессрочный доступ к системе обучения

Домашние задания

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

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих