https://loktionov129.github.io/Web/
- (function(){function read(url){var r=new XMLHttpRequest();r.open('HEAD',url,false);r.send(null);return r.getAllResponseHeaders();}console.log(read(window.location))})();
http://training.1c-bitrix.ru/upload/online_kurs_free/d7p2/materials/kd7p2_all.zip
Карта развития веб-разработчика by zualex
Каждый уважающий себя разработчик должен знать ↑
Протокол HTTP ↑
Цель - понять, как браузер взаимодействует с веб-сервером.
-
Усвоить понятия:
- User-agent
- DNS
- Отличия HTTP 2.0 от версий 1.x
- Тело HTTP-запроса
- Передача данных
- Отправка форм
- Transfer-Encoding
- Перенаправления
- Базовая аутентификация
- Cookies
-
Статьи:
-
Курс:
Тестирование ↑
-
Виды тестов:
- Блочное тестирование (модульное, unit testing)
- Интеграционное тестирование
- Системное тестирование
-
Изучить методологии:
- Разработка через тестирование (TDD)
- разработка, основанная на функционировании (BDD)
-
Статьи:
Безопасность сайтов ↑
-
Уязвимости:
- SQL-инъекция
- Межсайтовый скриптинг или XSS
- Демонстрация ошибок пользователю
- Доступность данных о характеристиках системы пользователю
- Инъекция через загрузку файлов
- E-mail-инъекция
- Кража сессии
-
Книга:
-
Статья:
Тайм-менеджмент ↑
Тайм-менеджмент - технология организации времени и повышения эффективности его использования.
Методы:
- Метод «Помидора»
- Метод Парето
- Метод «Альп»
- Матрица Эйзенхауэра
Можно использовать один или несколько методов или разработать свой метод. Главное, чтобы он был удобен и реально приносил пользу.
- Статьи:
Карта развития Back-end разработчика ↑
Алгоритмы ↑
-
Познакомиться с алгоритмами:
- Сортировки
- Поиска в строке
- Обхода и поиска в структурах данных
- На графах
-
Статьи:
-
Книга:
Серверные языки программирования ↑
Цель - освоить несколько серверных языков программирования.
Нельзя останавливаться на одном языке, так как у вас может появиться 'JAVA головного мозга' - неспособность думать за пределами своего языка программирования.
Лозунг: нужно программировать не на языке программирования, а используя его.
-
Примеры серверных языков:
- PHP
- Python
- Ruby
-
Статьи:
Паттерны программирования ↑
-
Познакомиться cо слелующими типами паттернов:
- Порождающие шаблоны проектирования
- Структурные шаблоны проектирования
- Поведенческие шаблоны проектирования
-
Статьи:
-
Видео:
-
Книга:
Принципы программирования ↑
-
Познакомиться с принципами:
- DRY
- KISS
- YAGNI
- SOLID
-
Статья:
Регулярные выражения ↑
-
Усвоить понятия:
- Квантификация
- Жадность
- Группировка
-
Статьи:
SQL ↑
-
Усвоить понятия:
- DDL, DML, DQL
- Создание и удаление базы данных, таблицы
- Добавление, обновление и удаление записи
- Схема (SCHEMA)
- Представления (VIEWS)
- WHERE
- LIMIT, OFFSET
- ORDER BY
- GROUP BY
- JOIN
- Подзапросы
-
Статьи:
-
Курсы:
Проектирование баз данных ↑
-
Усвоить понятия:
- Нормализация
- Денормализация
- Связи
-
Статьи:
Фреймворки ↑
Для разных языков программирования существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
-
PHP фреймворки:
-
Python фреймворки:
-
Ruby фреймворки:
-
Статьи:
Пакетный менеджер ↑
-
Список пакетных менеджеров:
-
Статьи:
Устройство веб-серверов и способы взаимодействия ↑
-
Усвоить понятия:
- HTTP
- NGINX
- APACHE
- Треды
- Worker
- CGI
- FastCGI
- event Loop
-
Статьи:
Развертывание проектов ↑
-
Усвоить понятия:
- Деплой
- Миграции
- Релизы
- Еnvironment
- Непрерывная интеграция (CI)
-
Статьи:
- Версионная миграция структуры базы данных: основные подходы (habrahabr)
- Нумерация версий ПО для новичков и не только (habrahabr)
- Automated git deployments from Bitbucket
- How to use Vagrant for local web development
- Vagrant для малышей, или как на Windows легко получить настроенный сервер для разработки веб-приложений
Карта развития Front-end разработчика ↑
JavaScript ↑
-
Познакомиться с такими понятиями как:
- Переменные
- Типы данных
- Функции
- Рекурсия
- Замыкания
- Область видимости
- Объекты
- События
- DOM
-
Документации, книги:
Адаптивный/отзывчивый веб-дизайн ↑
-
Усвоить понятия:
- Адаптивный веб-дизайн
- Отзывчивый веб-дизайн
- Media queries
- Mobile first
- Graceful degradation
- RESS
-
Статьи:
JavaScript библиотеки ↑
Цель - познакомиться с наиболее популярными библиотеками JavaScript. Знать где и когда их применять.
Список библиотек:
- jQuery
- Underscore - набор полезных функций
- Modernizr - обнаруживает HTML5 и CSS3 функции в браузере пользователя
- Babel - компилятор для написания JavaScript следующего поколения
- Vue - создание интерактивных интерфейсов
- Three - 3D
- WOW - анимация при прокрутки страницы
- Moment - Работа с датой и временем
- Mocha - написание тестов
Список наиболее популярных библиотек есть на Javascripting
Препроцессоры CSS ↑
-
Усвоить понятия:
- Переменные
- Миксины
- Функции
- Импорт
- Минификация
-
Список препроцессоров CSS:
-
Сытатьи:
Сборщик проектов ↑
Сборщик проектов — небольшое приложение, которое используется для автоматизации скучных и рутинных задач, которые приходится постоянно выполнять в процессе разработки проекта. Такие задачи включают в себя, к примеру, запуск модульных тестов, конкатенацию файлов, минификацию, препроцессинг CSS.
-
Сборщики проектов:
-
Статьи:
Пакетный менеджер ↑
-
Список пакетных менеджеры:
-
Статьи:
CSS фреймворки ↑
-
Список фреймворков:
-
Статьи:
JavaScript фреймворки ↑
Существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
Список фреймворков:
Одностраничное приложение ↑
Одностраничное приложение или SPA (single page application) - сайт или веб-приложение, использующий единственный HTML-документ как оболочку для всех веб-страниц и организующий взаимодействие с пользователем через динамически подгружаемые HTML, CSS, JavaScript, обычно посредством AJAX.
-
Изучить:
- JavaScript фреймворки
- Роутинг
- Шаблонизатор
- API, например REST
- AJAX
-
Статьи: