Карта развития Back-end разработчика:

  • Алгоритмы
  • Серверные языки программирования
  • Паттерны программирования
  • Принципы программирования
  • Регулярные выражения
  • SQL
  • Проектирование баз данных
  • Фреймворки
  • Пакетный менеджер
  • Устройство веб-серверов и способы взаимодействия
  • Развертывание проектов

Карта развития Front-end разработчика:

  • JavaScript
  • Адаптивный/отзывчивый веб-дизайн
  • JavaScript библиотеки
  • Препроцессоры CSS
  • Сборщик проектов
  • Пакетный менеджер
  • CSS фреймворки
  • JavaScript фреймворки
  • Одностраничное приложение

Каждый уважающий себя разработчик должен знать

Книги

Это — книги «на все времена». Лучшие в своем роде и важные для программистов любых направлений.

Жизнь:
Архитектура компьютера:
Программирование:
  • Рефакторинг. Улучшение существующего кода (Мартин Фаулер)
  • Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)
  • Алгоритмы. Вводный курс (Томас Х. Кормен)
  • Совершенный код (Стив Макконнелл)
  • Чистый код: создание, анализ и рефакторинг (Роберт Мартин)
Операционные системы:
  • Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
  • Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)
Люди:
  • Человеческий фактор. Успешные проекты и команды (Том ДеМарко, Тимоти Листер)
  • Мифический человеко-месяц, или Как создаются программные системы (Хилл Чапел, Фредерик Брукс)
  • Как сдвинуть гору Фудзи? Подходы ведущих мировых компаний к поиску талантов (Уильям Паундстоун)

Английский язык

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

  • Полезные ресурсы:
    • Duolingo
    • Lingualeo
    • Babadum
    • Anki и карточки 4000 Essential English Words (all books) [en-en] M4R4M
    • Techrocks очень много статей переведенных с английского
    • English e-Reader адаптированные книги на английском
    • British council очень много полезной и структурированной информации для изучения
    • azz chants тренировка темпа и скорости речи, чтобы звучать более естественно
    • ngoo Daily news статьи на английском с разбивкой по уровням
    • ouGlish поиск произношения слова или короткой фразы в Youtube


Архитектура компьютера

Цель - познакомиться с концептуальной структурой вычислительных машин.

  • Книга:
    • Код. Тайный язык информатики (Чарльз Петцольд)

Linux, командная строка Bash

Цель - понять как работают операционные системы. Научиться базовому администрированию.

  • Ресурсы:
    • Курс: Bash: Основы командной строки (Hexlet)
    • Статья: Искусство командной строки (статья)
    • Книга: Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
    • Книга: Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)
    • Книга: Advanced Programming in the UNIX Environment (Richard Stevens)

Структуры данных

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

Рекомендуется ознакомиться с алгоритмами хотя бы на базововм уровне. Так как структуры данных реализованы с помощью алгоритмов, алгоритмы - с помощью структур данных.

  • Понимание:
    • Списки
    • Хеш-таблица
    • Стек
    • Очередь
    • Граф
    • Связный список
    • Деревья
    • Двоичное дерево поиска
  • Статьи:
    • Структуры данных для самых маленьких
  • Книги:
    • Совершенный код (Стив Макконнелл) глава 12 Основные типы данных
    • Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)
    • Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих(Адитья Бхаргава)

HTML & CSS

  • Усвоить понятия:
    • Верстка
    • HTML 5
    • Разметка
    • Семантика
    • Cтили
    • Cелекторы
    • Анимация
  • Документации, курсы:
    • htmlbook
    • MDN
    • HTML academy
    • Введение в schema.org (yandex)

Объектно-ориентированное программирование


Функциональное программирование


Системы управления версиями


Протокол HTTP ↑

Цель - понять, как браузер взаимодействует с веб-сервером.


Тестирование ↑


Безопасность сайтов ↑

Top 5 уязвимостей PHP безопасности

Тайм-менеджмент ↑

Тайм-менеджмент - технология организации времени и повышения эффективности его использования.

  • Методы:
    • Метод «Помидора»
    • Метод Парето
    • Метод «Альп»
    • Матрица Эйзенхауэра

Можно использовать один или несколько методов или разработать свой метод. Главное, чтобы он был удобен и реально приносил пользу.


Карта развития Back-end разработчика ↑

Алгоритмы ↑


Серверные языки программирования ↑

Цель - освоить несколько серверных языков программирования.

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

Лозунг: нужно программировать не на языке программирования, а используя его.


Паттерны программирования ↑


Принципы программирования ↑


Регулярные выражения ↑


SQL ↑


Проектирование баз данных


Фреймворки

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


Пакетный менеджер


Устройство веб-серверов и способы взаимодействия


Развертывание проектов ↑


Карта развития Front-end разработчика

JavaScript ↑