Что должен знать бекенд-разработчик?
АЛГОРИТМЫ
* Познакомиться с алгоритмами:
. Сортировки
. Поиска в строке
. Обхода и поиска в структурах данных
. На графах
* Статьи:
. Пузырьковая сортировка и все-все-все (habrahabr) https://habrahabr.ru/post/204600/
. Алгоритмы поиска в строке (habrahabr) https://habrahabr.ru/post/111449/
. Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса (habrahabr) https://goo.gl/JjvC5n
. Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе (habrahabr) https://habrahabr.ru/post/111361/
* Книга:
. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих (Адитья Бхаргава) https://goo.gl/jgeuz3
. Алгоритмы. Вводный курс (Томас Х. Кормен) https://goo.gl/ZMzsZs
СЕРВЕРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Цель - освоить несколько серверных языков программирования.
Нельзя останавливаться на одном языке, так как у вас может появиться 'JAVA головного мозга' - неспособность думать за пределами своего языка программирования.
Лозунг: нужно программировать не на языке программирования, а используя его.
* Примеры серверных языков:
. PHP
. Python
. Ruby
* Статьи:
. Типы данных
. Функциональное программирование
. Объектно-ориентированное программирование
. Тестирование
ПАТТЕРНЫ ПРОГРАММИРОВАНИЯ
* Познакомиться cо слелующими типами паттернов:
. Порождающие шаблоны проектирования
. Структурные шаблоны проектирования
. Поведенческие шаблоны проектирования
* Статьи:
. DesignPatternsPHP https://goo.gl/xTW5dw
. Шаблон проектирования (wikipedia) https://goo.gl/7WreCS
. Шпаргалка по шаблонам проектирования (habrahabr) https://goo.gl/mjgNSU
. Справочник «Паттерны проектирования» http://design-pattern.ru/
. Design Patterns for Humans (Github) https://goo.gl/18ENLQ
. Каталог паттернов проектирования https://goo.gl/q9KyZE
* Видео:
. Webinar: Patterns (Hexlet) https://goo.gl/ioB2Ey
* Книга:
. Приемы объектно-ориентированного проектирования. Паттерны проектирования (Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссилес.) https://goo.gl/DRpXeT
ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ
* Познакомиться с принципами:
. DRY
. KISS
. YAGNI
. SOLID
* Статья:
. Принципы программирования (wikipedia) https://goo.gl/hbi7qZ
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
* Усвоить понятия:
. Квантификация
. Жадность
. Группировка
* Статьи:
. Регулярные выражения (wikipedia) https://goo.gl/xKZTz7
. Жадные и ленивые квантификаторы (learn.javascript) https://goo.gl/WCbVWg
SQL
* Усвоить понятия:
. DDL, DML, DQL
. Создание и удаление базы данных, таблицы
. Добавление, обновление и удаление записи
. Схема (SCHEMA)
. Представления (VIEWS)
. WHERE
. LIMIT, OFFSET
. ORDER BY
. GROUP BY
. JOIN
. Подзапросы
* Статьи:
. Что такое SQL (wikipedia) https://goo.gl/2kufz2
. Схема базы данных (wikipedia) https://goo.gl/WhQrY1
. Представления в MySQL (habrahabr) https://goo.gl/JA95Tb
. Квалифицированный выбор при использовании предложений https://goo.gl/383gXA
. Полнотекстовый поиск и его возможности (habrahabr) https://goo.gl/nKwwFr
* Курсы:
. Базы данных: SQL (DDL/DML) (Hexlet) https://goo.gl/TMTJNa
. Базы данных: SQL (DQL) (Hexlet) https://goo.gl/ngtzSe
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
* Усвоить понятия:
. Нормализация
. Денормализация
. Связи
* Статьи:
. Проектирование баз данных (wikipedia) https://goo.gl/NtJbmf
. Нормальная форма (wikipedia) https://goo.gl/68A4D9
. Нормализация отношений. Шесть нормальных форм (habrahabr) https://goo.gl/NqMT9z
. Денормализация БД. Зачем? Когда? Как? (habrahabr) https://goo.gl/E4A4zU
ФРЕЙМВОРКИ
Для разных языков программирования существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
* PHP фреймворки:
. Slim microframework http://www.slimframework.com/
. Laravel https://laravel.com/
. Symfony https://symfony.com/
. Yii http://www.yiiframework.com/
* Python фреймворки:
. Django https://www.djangoproject.com/
. Flask http://flask.pocoo.org/
* Ruby фреймворки:
. Ruby on Rails http://rubyonrails.org/
* Статьи:
. Фреймворк (wikipedia) https://goo.gl/z3sKAa
. Не учите фреймворки, учите архитектуру (habrahabr) https://habrahabr.ru/post/253297/
ПАКЕТНЫЙ МЕНЕДЖЕР
АЛГОРИТМЫ
* Познакомиться с алгоритмами:
. Сортировки
. Поиска в строке
. Обхода и поиска в структурах данных
. На графах
* Статьи:
. Пузырьковая сортировка и все-все-все (habrahabr) https://habrahabr.ru/post/204600/
. Алгоритмы поиска в строке (habrahabr) https://habrahabr.ru/post/111449/
. Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса (habrahabr) https://goo.gl/JjvC5n
. Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе (habrahabr) https://habrahabr.ru/post/111361/
* Книга:
. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих (Адитья Бхаргава) https://goo.gl/jgeuz3
. Алгоритмы. Вводный курс (Томас Х. Кормен) https://goo.gl/ZMzsZs
СЕРВЕРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Цель - освоить несколько серверных языков программирования.
Нельзя останавливаться на одном языке, так как у вас может появиться 'JAVA головного мозга' - неспособность думать за пределами своего языка программирования.
Лозунг: нужно программировать не на языке программирования, а используя его.
* Примеры серверных языков:
. PHP
. Python
. Ruby
* Статьи:
. Типы данных
. Функциональное программирование
. Объектно-ориентированное программирование
. Тестирование
ПАТТЕРНЫ ПРОГРАММИРОВАНИЯ
* Познакомиться cо слелующими типами паттернов:
. Порождающие шаблоны проектирования
. Структурные шаблоны проектирования
. Поведенческие шаблоны проектирования
* Статьи:
. DesignPatternsPHP https://goo.gl/xTW5dw
. Шаблон проектирования (wikipedia) https://goo.gl/7WreCS
. Шпаргалка по шаблонам проектирования (habrahabr) https://goo.gl/mjgNSU
. Справочник «Паттерны проектирования» http://design-pattern.ru/
. Design Patterns for Humans (Github) https://goo.gl/18ENLQ
. Каталог паттернов проектирования https://goo.gl/q9KyZE
* Видео:
. Webinar: Patterns (Hexlet) https://goo.gl/ioB2Ey
* Книга:
. Приемы объектно-ориентированного проектирования. Паттерны проектирования (Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссилес.) https://goo.gl/DRpXeT
ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ
* Познакомиться с принципами:
. DRY
. KISS
. YAGNI
. SOLID
* Статья:
. Принципы программирования (wikipedia) https://goo.gl/hbi7qZ
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
* Усвоить понятия:
. Квантификация
. Жадность
. Группировка
* Статьи:
. Регулярные выражения (wikipedia) https://goo.gl/xKZTz7
. Жадные и ленивые квантификаторы (learn.javascript) https://goo.gl/WCbVWg
SQL
* Усвоить понятия:
. DDL, DML, DQL
. Создание и удаление базы данных, таблицы
. Добавление, обновление и удаление записи
. Схема (SCHEMA)
. Представления (VIEWS)
. WHERE
. LIMIT, OFFSET
. ORDER BY
. GROUP BY
. JOIN
. Подзапросы
* Статьи:
. Что такое SQL (wikipedia) https://goo.gl/2kufz2
. Схема базы данных (wikipedia) https://goo.gl/WhQrY1
. Представления в MySQL (habrahabr) https://goo.gl/JA95Tb
. Квалифицированный выбор при использовании предложений https://goo.gl/383gXA
. Полнотекстовый поиск и его возможности (habrahabr) https://goo.gl/nKwwFr
* Курсы:
. Базы данных: SQL (DDL/DML) (Hexlet) https://goo.gl/TMTJNa
. Базы данных: SQL (DQL) (Hexlet) https://goo.gl/ngtzSe
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
* Усвоить понятия:
. Нормализация
. Денормализация
. Связи
* Статьи:
. Проектирование баз данных (wikipedia) https://goo.gl/NtJbmf
. Нормальная форма (wikipedia) https://goo.gl/68A4D9
. Нормализация отношений. Шесть нормальных форм (habrahabr) https://goo.gl/NqMT9z
. Денормализация БД. Зачем? Когда? Как? (habrahabr) https://goo.gl/E4A4zU
ФРЕЙМВОРКИ
Для разных языков программирования существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
* PHP фреймворки:
. Slim microframework http://www.slimframework.com/
. Laravel https://laravel.com/
. Symfony https://symfony.com/
. Yii http://www.yiiframework.com/
* Python фреймворки:
. Django https://www.djangoproject.com/
. Flask http://flask.pocoo.org/
* Ruby фреймворки:
. Ruby on Rails http://rubyonrails.org/
* Статьи:
. Фреймворк (wikipedia) https://goo.gl/z3sKAa
. Не учите фреймворки, учите архитектуру (habrahabr) https://habrahabr.ru/post/253297/
ПАКЕТНЫЙ МЕНЕДЖЕР