└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Карта развития веб-разработчика [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=%D0%9A%D0%B0%D1%80%D1%82%D0%B0+%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D1%8F+%D0%B2%D0%B5%D0%B1-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0&url=https://github.com/zualex/devmap/&via=iamZualex&hashtags=devmap) 2 | 3 | ## Содержание 4 | - [**Каждый уважающий себя разработчик должен знать:**](#Каждый-уважающий-себя-разработчик-должен-знать-) 5 | - [ ] [Книги](#Книги-) 6 | - [ ] [Английский язык](#Английский-язык-) 7 | - [ ] [Архитектура компьютера](#Архитектура-компьютера-) 8 | - [ ] [Linux, командная строка Bash](#linux-командная-строка-bash-) 9 | - [ ] [Структуры данных](#Структуры-данных-) 10 | - [ ] [HTML & CSS](#html--css-) 11 | - [ ] [Объектно-ориентированное программирование](#Объектно-ориентированное-программирование-) 12 | - [ ] [Функциональное программирование](#Функциональное-программирование-) 13 | - [ ] [Системы управления версиями](#Системы-управления-версиями-) 14 | - [ ] [Протокол HTTP](#Протокол-http-) 15 | - [ ] [Тестирование](#Тестирование-) 16 | - [ ] [Безопасность сайтов](#Безопасность-сайтов-) 17 | - [ ] [Тайм-менеджмент](#Тайм-менеджмент-) 18 | 19 | - [**Карта развития Back-end разработчика:**](#Карта-развития-back-end-разработчика-) 20 | - [ ] [Алгоритмы](#Алгоритмы-) 21 | - [ ] [Серверные языки программирования](#Серверные-языки-программирования-) 22 | - [ ] [Паттерны программирования](#Паттерны-программирования-) 23 | - [ ] [Принципы программирования](#Принципы-программирования-) 24 | - [ ] [Регулярные выражения](#Регулярные-выражения-) 25 | - [ ] [SQL](#sql-) 26 | - [ ] [Проектирование баз данных](#Проектирование-баз-данных-) 27 | - [ ] [Фреймворки](#Фреймворки-) 28 | - [ ] [Пакетный менеджер](#Пакетный-менеджер-) 29 | - [ ] [Устройство веб-серверов и способы взаимодействия](#Устройство-веб-серверов-и-способы-взаимодействия-) 30 | - [ ] [Развертывание проектов](#Развертывание-проектов-) 31 | 32 | - [**Карта развития Front-end разработчика:**](#Карта-развития-front-end-разработчика-) 33 | - [ ] [JavaScript](#javascript-) 34 | - [ ] [Адаптивный/отзывчивый веб-дизайн](#Адаптивныйотзывчивый-веб-дизайн-) 35 | - [ ] [JavaScript библиотеки](#javascript-библиотеки-) 36 | - [ ] [Препроцессоры CSS](#Препроцессоры-css-) 37 | - [ ] [Сборщик проектов](#Сборщик-проектов-) 38 | - [ ] [Пакетный менеджер](#Пакетный-менеджер-) 39 | - [ ] [CSS фреймворки](#css-фреймворки-) 40 | - [ ] [JavaScript фреймворки](#javascript-фреймворки-) 41 | - [ ] [Одностраничное приложение](#Одностраничное-приложение-) 42 | 43 | --- 44 | 45 | ## Каждый уважающий себя разработчик должен знать [↑](#Содержание) 46 | 47 | ### Книги [↑](#Содержание) 48 | Это — книги «на все времена». Лучшие в своем роде и важные для программистов любых направлений. 49 | 50 | - [ ] Жизнь: 51 | - [ ] [Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)](https://www.ozon.ru/context/detail/id/4341360/) 52 | - [ ] [Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)](http://www.ozon.ru/context/detail/id/7360633/) 53 | - [ ] [Джоэл о программировании (Джоэл Х. Спольски)](https://www.ozon.ru/context/detail/id/2820575/) 54 | - [ ] [Джоэл и снова о программировании (Джоэл Х. Спольски)](http://www.ozon.ru/context/detail/id/4878099/) 55 | 56 | - [ ] Архитектура компьютера: 57 | - [ ] [Код. Тайный язык информатики (Чарльз Петцольд)](http://www.ozon.ru/context/detail/id/125884/) 58 | 59 | - [ ] Программирование: 60 | - [ ] [Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)](http://www.ozon.ru/context/detail/id/5322055/) 61 | - [ ] [Алгоритмы. Вводный курс (Томас Х. Кормен)](http://www.ozon.ru/context/detail/id/24903185/) 62 | - [ ] [Совершенный код (Стив Макконнелл)](http://www.ozon.ru/context/detail/id/5508646/) 63 | - [ ] [Чистый код: создание, анализ и рефакторинг (Роберт Мартин)](http://www.ozon.ru/context/detail/id/21916535/) 64 | - [ ] [Рефакторинг. Улучшение существующего кода (Мартин Фаулер)](http://www.ozon.ru/context/detail/id/1308678/) 65 | 66 | - [ ] Операционные системы: 67 | - [ ] [Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)](http://www.ozon.ru/context/detail/id/2419365/) 68 | - [ ] [Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)](https://www.ozon.ru/context/detail/id/7607778/) 69 | 70 | - [ ] Люди: 71 | - [ ] [Человеческий фактор. Успешные проекты и команды (Том ДеМарко, Тимоти Листер)](https://www.ozon.ru/context/detail/id/2338486/) 72 | - [ ] [Мифический человеко-месяц, или Как создаются программные системы (Хилл Чапел, Фредерик Брукс)](https://www.ozon.ru/context/detail/id/83760/) 73 | - [ ] [Как сдвинуть гору Фудзи? Подходы ведущих мировых компаний к поиску талантов (Уильям Паундстоун)](https://www.ozon.ru/context/detail/id/3764126/) 74 | 75 | --- 76 | 77 | ### Английский язык [↑](#Содержание) 78 | **Зачем** - большинство лучших курсов, справочных и учебных материалов доступно именно на английском языке. Если возникают трудности, то со знанием английского языка выше шансы найти ответ во всемирной паутине. Также если хотите работать в крутой престижной кампании, то без английского никак. 79 | 80 | - Полезные ресурсы: 81 | - [ ] [Duolingo](https://www.duolingo.com/) 82 | - [ ] [Lingualeo](https://lingualeo.com/) 83 | - [ ] [Babadum](https://babadum.com/) 84 | - [ ] [Anki](http://ankisrs.net/) и карточки [4000 Essential English Words (all books) [en-en] M4R4M](https://ankiweb.net/shared/info/1898344648) 85 | - [ ] [Techrocks](https://techrocks.ru) очень много статей переведенных с английского 86 | - [ ] [English e-Reader](https://english-e-reader.net/) адаптированные книги на английском 87 | - [ ] [British council](https://learnenglish.britishcouncil.org/) очень много полезной и структурированной информации для изучения 88 | - [ ] [Jazz chants](http://www.onestopenglish.com/skills/listening/jazz-chants/mp3-files-and-recording-scripts/) тренировка темпа и скорости речи, чтобы звучать более естественно 89 | - [ ] [Engoo Daily news](https://engoo.com/app/daily-news) статьи на английском с разбивкой по уровням 90 | - [ ] [YouGlish](https://youglish.com) поиск произношения слова или короткой фразы в Youtube 91 | 92 | --- 93 | 94 | ### Архитектура компьютера [↑](#Содержание) 95 | **Цель** - познакомиться с концептуальной структурой вычислительных машин. 96 | 97 | - [ ] Книга: 98 | - [ ] [Код. Тайный язык информатики (Чарльз Петцольд)](http://www.ozon.ru/context/detail/id/125884/) 99 | 100 | --- 101 | 102 | ### Linux, командная строка Bash [↑](#Содержание) 103 | **Цель** - понять как работают операционные системы. Научиться базовому администрированию. 104 | 105 | - [ ] Ресурсы: 106 | - [ ] [Курс: Bash: Основы командной строки (Hexlet)](https://ru.hexlet.io/courses/bash?ref=62000) 107 | - [ ] [Статья: Искусство командной строки (статья)](https://github.com/jlevy/the-art-of-command-line/blob/master/README-ru.md) 108 | - [ ] [Книга: Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)](http://www.ozon.ru/context/detail/id/2419365/) 109 | - [ ] [Книга: Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)](https://www.ozon.ru/context/detail/id/7607778/) 110 | - [ ] [Книга: Advanced Programming in the UNIX Environment (Richard Stevens)](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739) 111 | 112 | --- 113 | 114 | ### Структуры данных [↑](#Содержание) 115 | Структуры данных — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Данные можно представить по-разному. В зависимости от того, что это за данные и что вы собираетесь с ними делать, одно представление подойдёт лучше других. 116 | 117 | Рекомендуется ознакомиться с [алгоритмами](#Алгоритмы-) хотя бы на базововм уровне. Так как структуры данных реализованы с помощью алгоритмов, алгоритмы - с помощью структур данных. 118 | 119 | - [ ] Понимание: 120 | - [ ] Списки 121 | - [ ] Хеш-таблица 122 | - [ ] Стек 123 | - [ ] Очередь 124 | - [ ] Граф 125 | - [ ] Связный список 126 | - [ ] Деревья 127 | - [ ] Двоичное дерево поиска 128 | 129 | - [ ] Статьи: 130 | - [ ] [Структуры данных для самых маленьких](https://habrahabr.ru/post/310794/) 131 | 132 | - [ ] Книги: 133 | - [ ] [Совершенный код (Стив Макконнелл) глава 12 Основные типы данных](http://www.ozon.ru/context/detail/id/5508646/) 134 | - [ ] [Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)](http://www.ozon.ru/context/detail/id/5322055/) 135 | - [ ] [Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих(Адитья Бхаргава)](https://www.ozon.ru/context/detail/id/139296295/) 136 | 137 | 138 | --- 139 | 140 | ### HTML & CSS [↑](#Содержание) 141 | - [ ] Усвоить понятия: 142 | - [ ] Верстка 143 | - [ ] HTML 5 144 | - [ ] Разметка 145 | - [ ] Семантика 146 | - [ ] Cтили 147 | - [ ] Cелекторы 148 | - [ ] Анимация 149 | 150 | - [ ] Документации, курсы: 151 | - [ ] [htmlbook](http://htmlbook.ru/) 152 | - [ ] [MDN](https://developer.mozilla.org/en-US/) 153 | - [ ] [HTML academy](https://htmlacademy.ru/) 154 | - [ ] [Введение в schema.org (yandex)](https://yandex.ru/support/webmaster/schema-org/intro-schema-org.xml) 155 | 156 | --- 157 | 158 | ### Объектно-ориентированное программирование [↑](#Содержание) 159 | - [ ] Усвоить понятия: 160 | - [ ] Класс 161 | - [ ] Объект 162 | - [ ] Абстракция данных 163 | - [ ] Инкапсуляция 164 | - [ ] Наследование 165 | - [ ] Полиморфизм 166 | 167 | - [ ] Книга: 168 | - [ ] [Объектно-ориентированное конструирование программных систем (Бертран Мейер)](http://www.ozon.ru/context/detail/id/2336754/) 169 | 170 | --- 171 | 172 | ### Функциональное программирование [↑](#Содержание) 173 | - [ ] Усвоить понятия: 174 | - [ ] Абстракция данных 175 | - [ ] Функция высшего порядка 176 | - [ ] Чистые функции 177 | - [ ] Рекурсия 178 | - [ ] Замыкания 179 | - [ ] Неизменяемый объект 180 | 181 | - [ ] Статьи: 182 | - [ ] [Функциональное программирование для всех (habrahabr)](https://habrahabr.ru/post/142351/) 183 | - [ ] [Умение видеть абстракции (habrahabr)](https://habrahabr.ru/company/infopulse/blog/185144/) 184 | 185 | - [ ] Книга: 186 | - [ ] [Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)](http://www.ozon.ru/context/detail/id/5322055/) 187 | 188 | --- 189 | 190 | ### Системы управления версиями [↑](#Содержание) 191 | - [ ] Усвоить понятия: 192 | - [ ] Ветвления 193 | - [ ] Слияние 194 | - [ ] Конфликты и их разрешение 195 | - [ ] Версии проекта, теги 196 | - [ ] Базовые принципы разработки ПО в VCS 197 | - [ ] Ежедневный цикл работы 198 | 199 | - [ ] Курс: 200 | - [ ] [Git How To](https://githowto.com/ru) 201 | 202 | - [ ] Книга: 203 | - [ ] [Pro Git (Scott Chacon, Ben Straub)](https://git-scm.com/book/ru/v2) 204 | 205 | - [ ] Статьи: 206 | - [ ] [Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits](https://habr.com/ru/company/yandex/blog/431432/) 207 | 208 | --- 209 | 210 | ### Протокол HTTP [↑](#Содержание) 211 | **Цель** - понять, как браузер взаимодействует с веб-сервером. 212 | 213 | - [ ] Усвоить понятия: 214 | - [ ] User-agent 215 | - [ ] DNS 216 | - [ ] Отличия HTTP 2.0 от версий 1.x 217 | - [ ] Тело HTTP-запроса 218 | - [ ] Передача данных 219 | - [ ] Отправка форм 220 | - [ ] Transfer-Encoding 221 | - [ ] Перенаправления 222 | - [ ] Базовая аутентификация 223 | - [ ] Cookies 224 | 225 | - [ ] Статьи: 226 | - [ ] [Простым языком об HTTP (habrahabr)](https://habrahabr.ru/post/215117/) 227 | - [ ] [HTTP: протокол, который каждый разработчик должен знать (часть 1)](http://ruseller.com/lessons.php?rub=28&id=1726) 228 | - [ ] [HTTP: протокол, который каждый разработчик должен знать (часть 2)](http://ruseller.com/lessons.php?rub=28&id=1777) 229 | - [ ] [HTTP запрос](http://citforum.ru/internet/cgi_tut/rqst.shtml) 230 | - [ ] [HTTP ответ](http://citforum.ru/internet/cgi_tut/spns.shtml) 231 | 232 | - [ ] Курс: 233 | - [ ] [Протокол HTTP (Hexlet)](https://ru.hexlet.io/courses/http_protocol?ref=62000) 234 | 235 | --- 236 | 237 | ### Тестирование [↑](#Содержание) 238 | - [ ] Виды тестов: 239 | - [ ] Блочное тестирование (модульное, unit testing) 240 | - [ ] Интеграционное тестирование 241 | - [ ] Системное тестирование 242 | 243 | - [ ] Изучить методологии: 244 | - [ ] Разработка через тестирование (TDD) 245 | - [ ] разработка, основанная на функционировании (BDD) 246 | 247 | - [ ] Статьи: 248 | - [ ] [Виды тестирования и подходы к их применению (habrahabr)](https://habrahabr.ru/post/81226/) 249 | - [ ] [Test-Driven Development — телега или лошадь? (habrahabr)](https://habrahabr.ru/post/206828/) 250 | 251 | --- 252 | 253 | ### Безопасность сайтов [↑](#Содержание) 254 | - [ ] Уязвимости: 255 | - [ ] SQL-инъекция 256 | - [ ] Межсайтовый скриптинг или XSS 257 | - [ ] Демонстрация ошибок пользователю 258 | - [ ] Доступность данных о характеристиках системы пользователю 259 | - [ ] Инъекция через загрузку файлов 260 | - [ ] E-mail-инъекция 261 | - [ ] Кража сессии 262 | 263 | - [ ] Книга: 264 | - [ ] [Секреты хакеров. Безопасность Web-приложений - готовые решения (Джоел Скамбрэй, Майк Шема)](http://www.ozon.ru/reviews/1351090/) 265 | 266 | - [ ] Статья: 267 | - [ ] [Top 5 уязвимостей PHP безопасности](http://php-hack.ru/php_mysql/top_5_uyazvimostej_php_bezopasnosti/) 268 | 269 | --- 270 | 271 | ### Тайм-менеджмент [↑](#Содержание) 272 | Тайм-менеджмент - технология организации времени и повышения эффективности его использования. 273 | 274 | Методы: 275 | - [ ] Метод «Помидора» 276 | - [ ] Метод Парето 277 | - [ ] Метод «Альп» 278 | - [ ] Матрица Эйзенхауэра 279 | 280 | Можно использовать один или несколько методов или разработать свой метод. Главное, чтобы он был удобен и реально приносил пользу. 281 | 282 | - [ ] Статьи: 283 | - [ ] [Как планировать время: 7 самых популярных техник тайм-менеджмента](http://uspevai7ya.ru/2014/10/kak-planirovat-vremya/) 284 | - [ ] [Тайм-менеджмент для разработчика](https://habrahabr.ru/post/259293/) 285 | - [ ] [Управление временем (Wikipedia)](https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B5%D0%BC) 286 | 287 | --- 288 | 289 | ## Карта развития Back-end разработчика [↑](#Содержание) 290 | 291 | ### Алгоритмы [↑](#Содержание) 292 | - [ ] Познакомиться с алгоритмами: 293 | - [ ] Сортировки 294 | - [ ] Поиска в строке 295 | - [ ] Обхода и поиска в структурах данных 296 | - [ ] На графах 297 | 298 | - [ ] Статьи: 299 | - [ ] [Пузырьковая сортировка и все-все-все (habrahabr)](https://habrahabr.ru/post/204600/) 300 | - [ ] [Алгоритмы поиска в строке (habrahabr)](https://habrahabr.ru/post/111449/) 301 | - [ ] [Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса (habrahabr)](https://habrahabr.ru/company/yandex/blog/208716/) 302 | - [ ] [Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе (habrahabr)](https://habrahabr.ru/post/111361/) 303 | 304 | - [ ] Книги: 305 | - [ ] [Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих (Адитья Бхаргава)](https://www.ozon.ru/context/detail/id/139296295/) 306 | - [ ] [Алгоритмы. Вводный курс (Томас Х. Кормен)](http://www.ozon.ru/context/detail/id/24903185/) 307 | 308 | - [ ] Ресурсы: 309 | - [ ] [HackerRank](https://www.hackerrank.com/) 310 | - [ ] [Codewars](https://www.codewars.com/) 311 | - [ ] [LeetCode](https://leetcode.com/) 312 | 313 | --- 314 | 315 | ### Серверные языки программирования [↑](#Содержание) 316 | **Цель** - освоить несколько серверных языков программирования. 317 | 318 | Нельзя останавливаться на одном языке, так как у вас может появиться 'JAVA головного мозга' - неспособность думать за пределами своего языка программирования. 319 | 320 | Лозунг: нужно программировать не на языке программирования, а используя его. 321 | 322 | - [ ] Примеры серверных языков: 323 | - [ ] PHP 324 | - [ ] Python 325 | - [ ] Ruby 326 | - [ ] Node.js 327 | 328 | - [ ] Статьи: 329 | - [ ] Типы данных 330 | - [ ] [Функциональное программирование](#Функциональное-программирование-) 331 | - [ ] [Объектно-ориентированное программирование](#Объектно-ориентированное-программирование-) 332 | - [ ] [Тестирование](#Тестирование-) 333 | 334 | --- 335 | 336 | ### Паттерны программирования [↑](#Содержание) 337 | - [ ] Познакомиться cо слелующими типами паттернов: 338 | - [ ] Порождающие шаблоны проектирования 339 | - [ ] Структурные шаблоны проектирования 340 | - [ ] Поведенческие шаблоны проектирования 341 | 342 | - [ ] Статьи: 343 | - [ ] [DesignPatternsPHP](http://designpatternsphp.readthedocs.io/ru/latest/README.html) 344 | - [ ] [Шаблон проектирования (wikipedia)](https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) 345 | - [ ] [Шпаргалка по шаблонам проектирования (habrahabr)](https://habrahabr.ru/post/210288/) 346 | - [ ] [Справочник «Паттерны проектирования»](http://design-pattern.ru/) 347 | - [ ] [Design Patterns for Humans (Github)](https://github.com/kamranahmedse/design-patterns-for-humans) 348 | - [ ] [Каталог паттернов проектирования](https://refactoring.guru/ru/design-patterns/catalog) 349 | 350 | - [ ] Видео: 351 | - [ ] [Webinar: Patterns (Hexlet)](https://www.youtube.com/watch?v=wX6BBaQZpzE) 352 | 353 | - [ ] Книга: 354 | - [ ] [Приемы объектно-ориентированного проектирования. Паттерны проектирования (Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссилес.)](http://www.ozon.ru/context/detail/id/2457392/) 355 | 356 | --- 357 | 358 | ### Принципы программирования [↑](#Содержание) 359 | - [ ] Познакомиться с принципами: 360 | - [ ] DRY 361 | - [ ] KISS 362 | - [ ] YAGNI 363 | - [ ] SOLID 364 | 365 | - [ ] Статья: 366 | - [ ] [Принципы программирования (wikipedia)](https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) 367 | 368 | --- 369 | 370 | ### Регулярные выражения [↑](#Содержание) 371 | - [ ] Усвоить понятия: 372 | - [ ] Квантификация 373 | - [ ] Жадность 374 | - [ ] Группировка 375 | 376 | - [ ] Статьи: 377 | - [ ] [Регулярные выражения (wikipedia)](https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) 378 | - [ ] [Жадные и ленивые квантификаторы (learn.javascript)](https://learn.javascript.ru/regexp-greedy-and-lazy) 379 | 380 | --- 381 | 382 | ### SQL [↑](#Содержание) 383 | - [ ] Усвоить понятия: 384 | - [ ] DDL, DML, DQL 385 | - [ ] Создание и удаление базы данных, таблицы 386 | - [ ] Добавление, обновление и удаление записи 387 | - [ ] Схема (SCHEMA) 388 | - [ ] Представления (VIEWS) 389 | - [ ] WHERE 390 | - [ ] LIMIT, OFFSET 391 | - [ ] ORDER BY 392 | - [ ] GROUP BY 393 | - [ ] JOIN 394 | - [ ] Подзапросы 395 | 396 | - [ ] Статьи: 397 | - [ ] [Что такое SQL (wikipedia)](https://ru.wikipedia.org/wiki/SQL) 398 | - [ ] [Схема базы данных (wikipedia)](https://ru.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) 399 | - [ ] [Представления в MySQL (habrahabr)](https://habrahabr.ru/post/47031/) 400 | - [ ] [Квалифицированный выбор при использовании предложений](http://www.sql.ru/docs/sql/u_sql/ch3.shtml#3.9) 401 | - [ ] [Полнотекстовый поиск и его возможности (habrahabr)](https://habrahabr.ru/post/40218/) 402 | 403 | - [ ] Курсы: 404 | - [ ] [Базы данных: SQL (DDL/DML) (Hexlet)](https://ru.hexlet.io/courses/postgresql-ddl?ref=62000) 405 | - [ ] [Базы данных: SQL (DQL) (Hexlet)](https://ru.hexlet.io/courses/sql-dql?ref=62000) 406 | 407 | --- 408 | 409 | ### Проектирование баз данных [↑](#Содержание) 410 | - [ ] Усвоить понятия: 411 | - [ ] Нормализация 412 | - [ ] Денормализация 413 | - [ ] Связи 414 | 415 | - [ ] Статьи: 416 | - [ ] [Проектирование баз данных (wikipedia)](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D0%B7_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) 417 | - [ ] [Нормальная форма (wikipedia)](https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0) 418 | - [ ] [Нормализация отношений. Шесть нормальных форм (habrahabr)](https://habrahabr.ru/post/254773/) 419 | - [ ] [Денормализация БД. Зачем? Когда? Как? (habrahabr)](https://habrahabr.ru/post/64524/) 420 | 421 | --- 422 | 423 | ### Фреймворки [↑](#Содержание) 424 | Для разных языков программирования существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу. 425 | 426 | - [ ] PHP фреймворки: 427 | - [ ] [Slim microframework](http://www.slimframework.com/) 428 | - [ ] [Laravel](https://laravel.com/) 429 | - [ ] [Symfony](https://symfony.com/) 430 | - [ ] [Yii](http://www.yiiframework.com/) 431 | 432 | - [ ] Python фреймворки: 433 | - [ ] [Django](https://www.djangoproject.com/) 434 | - [ ] [Flask](http://flask.pocoo.org/) 435 | 436 | - [ ] Ruby фреймворки: 437 | - [ ] [Ruby on Rails](http://rubyonrails.org/) 438 | 439 | - [ ] Node.js фреймворки: 440 | - [ ] [Express](https://expressjs.com/) 441 | - [ ] [Koa](https://koajs.com/) 442 | - [ ] [Next](https://nextjs.org/) 443 | 444 | - [ ] Статьи: 445 | - [ ] [Фреймворк (wikipedia)](https://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA) 446 | - [ ] [Не учите фреймворки, учите архитектуру (habrahabr)](https://habrahabr.ru/post/253297/) 447 | 448 | --- 449 | 450 | ### Пакетный менеджер [↑](#Содержание) 451 | - [ ] Список пакетных менеджеров: 452 | - [ ] Для PHP - [composer](https://getcomposer.org/) 453 | - [ ] Для Python - [pip](https://pypi.python.org/pypi/pip) 454 | - [ ] Для Ruby - [bundler](http://bundler.io/) 455 | - [ ] Для Javascript - [npm](https://www.npmjs.com/), [yarn](https://yarnpkg.com/) 456 | 457 | - [ ] Статьи: 458 | - [ ] [Composer — менеджер зависимостей для PHP (habrahabr)](https://habrahabr.ru/post/145946/) 459 | - [ ] [npm для простых смертных (habrahabr)](https://habrahabr.ru/post/243335/) 460 | 461 | --- 462 | 463 | ### Устройство веб-серверов и способы взаимодействия [↑](#Содержание) 464 | - [ ] Усвоить понятия: 465 | - [ ] HTTP 466 | - [ ] NGINX 467 | - [ ] APACHE 468 | - [ ] Треды 469 | - [ ] Worker 470 | - [ ] CGI 471 | - [ ] FastCGI 472 | - [ ] event Loop 473 | 474 | - [ ] Статьи: 475 | - [ ] [Протокол HTTP (devmap)](http.md) 476 | - [ ] [Веб-сервер (wikipedia)](https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80) 477 | - [ ] [Модели работы веб-серверов](http://algolist.manual.ru/web/servers.php) 478 | 479 | --- 480 | 481 | ### Развертывание проектов [↑](#Содержание) 482 | - [ ] Усвоить понятия: 483 | - [ ] Деплой 484 | - [ ] Миграции 485 | - [ ] Релизы 486 | - [ ] Еnvironment 487 | - [ ] Непрерывная интеграция (CI) 488 | 489 | - [ ] Статьи: 490 | - [ ] [Версионная миграция структуры базы данных: основные подходы (habrahabr)](https://habrahabr.ru/post/121265/) 491 | - [ ] [Нумерация версий ПО для новичков и не только (habrahabr)](https://habrahabr.ru/post/119400/) 492 | - [ ] [Automated git deployments from Bitbucket](http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/) 493 | - [ ] [How to use Vagrant for local web development](http://tech.osteel.me/posts/2015/01/25/how-to-use-vagrant-for-local-web-development.html) 494 | - [ ] [Vagrant для малышей, или как на Windows легко получить настроенный сервер для разработки веб-приложений](https://habrahabr.ru/post/251529/) 495 | 496 | --- 497 | 498 | ## Карта развития Front-end разработчика [↑](#Содержание) 499 | 500 | ### JavaScript [↑](#Содержание) 501 | - [ ] Познакомиться с такими понятиями как: 502 | - [ ] Переменные 503 | - [ ] Типы данных 504 | - [ ] Функции 505 | - [ ] Рекурсия 506 | - [ ] Замыкания 507 | - [ ] Область видимости 508 | - [ ] Объекты 509 | - [ ] События 510 | - [ ] DOM 511 | 512 | - [ ] Документации, книги: 513 | - [ ] [Eloquent JavaScript](https://karmazzin.gitbooks.io/eloquentjavascript_ru/content/) 514 | - [ ] [learn.javascript](https://learn.javascript.ru/) 515 | - [ ] [MDN](https://developer.mozilla.org/bm/docs/Web/JavaScript) 516 | - [ ] [ECMAScript 6 features](https://github.com/lukehoban/es6features) 517 | 518 | --- 519 | 520 | ### Адаптивный/отзывчивый веб-дизайн [↑](#Содержание) 521 | - [ ] Усвоить понятия: 522 | - [ ] Адаптивный веб-дизайн 523 | - [ ] Отзывчивый веб-дизайн 524 | - [ ] Media queries 525 | - [ ] Mobile first 526 | - [ ] Graceful degradation 527 | - [ ] RESS 528 | 529 | - [ ] Статьи: 530 | - [ ] [9 отличий адаптивного дизайна от «резинового» в GIF-картинках](http://ain.ua/2014/11/14/550351) 531 | - [ ] [Сравнение методов создания мобильных версий сайтов (habrahabr)](https://habrahabr.ru/company/netcat/blog/170807/) 532 | 533 | --- 534 | 535 | ### JavaScript библиотеки [↑](#Содержание) 536 | **Цель** - познакомиться с наиболее популярными библиотеками JavaScript. Знать где и когда их применять. 537 | 538 | Список библиотек: 539 | - [ ] [jQuery](https://jquery.com/) 540 | - [ ] [ReactJS](https://reactjs.org/) 541 | - [ ] [Underscore - набор полезных функций](http://underscorejs.org/) 542 | - [ ] [Modernizr - обнаруживает HTML5 и CSS3 функции в браузере пользователя](https://modernizr.com/) 543 | - [ ] [Babel - компилятор для написания JavaScript следующего поколения](https://babeljs.io/) 544 | - [ ] [Three - 3D](http://threejs.org/) 545 | - [ ] [WOW - анимация при прокрутки страницы](http://mynameismatthieu.com/WOW/) 546 | - [ ] [Moment - Работа с датой и временем](http://momentjs.com/) 547 | - [ ] [Mocha - написание тестов](https://mochajs.org/) 548 | 549 | Список наиболее популярных библиотек есть на [Javascripting](https://www.javascripting.com/) 550 | 551 | --- 552 | 553 | ### Препроцессоры CSS [↑](#Содержание) 554 | - [ ] Усвоить понятия: 555 | - [ ] Переменные 556 | - [ ] Миксины 557 | - [ ] Функции 558 | - [ ] Импорт 559 | - [ ] Минификация 560 | 561 | - [ ] Список препроцессоров CSS: 562 | - [ ] [Sass/Scss](http://sass-lang.com/) 563 | - [ ] [Less](http://lesscss.org/) 564 | - [ ] [Stylus](http://stylus-lang.com/) 565 | 566 | - [ ] Статьи: 567 | - [ ] [Руководство по написанию разумного, поддерживаемого и масштабируемого Sass](https://sass-guidelin.es/ru/) 568 | 569 | --- 570 | 571 | ### Сборщик проектов [↑](#Содержание) 572 | Сборщик проектов — небольшое приложение, которое используется для автоматизации скучных и рутинных задач, которые приходится постоянно выполнять в процессе разработки проекта. Такие задачи включают в себя, к примеру, запуск модульных тестов, конкатенацию файлов, минификацию, препроцессинг CSS. 573 | 574 | - [ ] Сборщики проектов: 575 | - [ ] [Gulp](http://gulpjs.com/) 576 | - [ ] [Grunt](http://gruntjs.com/) 577 | - [ ] [Webpack](https://webpack.js.org/) 578 | - [ ] [Vite](https://vitejs.dev/) 579 | 580 | - [ ] Статьи: 581 | - [ ] [Приятная сборка frontend проекта (habrahabr)](https://habrahabr.ru/post/250569/) 582 | - [ ] [Gulp — как глоток свежего воздуха после Grunt](http://frontender.info/no-need-to-grunt-take-a-gulp-of-fresh-air/) 583 | - [ ] [The Gulp file generator](http://quenchjs.com/) 584 | 585 | --- 586 | 587 | ### Пакетный менеджер [↑](#Содержание) 588 | - [ ] Список пакетных менеджеров: 589 | - [ ] [Bower](https://bower.io/) 590 | - [ ] [npm](https://www.npmjs.com/) 591 | - [ ] [Yarn](https://yarnpkg.com/) 592 | 593 | - [ ] Статьи: 594 | - [ ] [Пакетный менеджер (Backend)](backend-dependency-manager.md) 595 | - [ ] [npm для простых смертных (habrahabr)](https://habrahabr.ru/post/243335/) 596 | 597 | --- 598 | 599 | ### CSS фреймворки [↑](#Содержание) 600 | - [ ] Список фреймворков: 601 | - [ ] [Bootstrap](http://getbootstrap.com/) 602 | - [ ] [Skeleton](http://getskeleton.com/) 603 | - [ ] [Foundation](http://foundation.zurb.com/) 604 | 605 | - [ ] Статьи: 606 | - [ ] [Длинная телега про Бутстрап](https://gist.github.com/iAdramelk/d328b73c72cab92ef95f) 607 | 608 | --- 609 | 610 | ### JavaScript фреймворки [↑](#Содержание) 611 | Существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу. 612 | 613 | Список фреймворков: 614 | - [ ] [Angular](https://angular.io/) 615 | - [ ] [Vue](http://vuejs.org/) 616 | - [ ] [Svelte](https://ru.svelte.dev/) 617 | - [ ] [Ember](http://emberjs.com/) 618 | 619 | --- 620 | 621 | ### Одностраничное приложение [↑](#Содержание) 622 | Одностраничное приложение или SPA (single page application) - сайт или веб-приложение, использующий единственный HTML-документ как оболочку для всех веб-страниц и организующий взаимодействие с пользователем через динамически подгружаемые HTML, CSS, JavaScript, обычно посредством AJAX. 623 | 624 | - [ ] Изучить: 625 | - [ ] [JavaScript фреймворки](#javascript-фреймворки-) 626 | - [ ] Роутинг 627 | - [ ] Шаблонизатор 628 | - [ ] API, например REST 629 | - [ ] AJAX 630 | 631 | - [ ] Статьи: 632 | - [ ] [Одностраничное приложение (wikipedia)](https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5) 633 | - [ ] [Пишем single-page web application framework в 60 строках кода (habrahabr)](https://habrahabr.ru/post/200720/) 634 | --------------------------------------------------------------------------------