Каждый уважающий себя разработчик должен знать:
- Архитектуру компьютера (вентили, регистры, ассемблер)
- Linux, командная строка Bash (Пользователи, Файловая система, Процессы)
- Типы данных (число, строки, массивы)
- Функциональное программирование (Абстракция, Функции Высшего Порядка)
- Системы контроля версий (Git)
- Протокол HTTP (Заголовки, chunked, формы)
- ООП (Классы, инкапсуляция)
- Тестирование (TDD, BDD)
- Безопасность сайтов (XSS, SQL-Injection)
- Чтение книг
Карта развития Back-end разработчика:
- Алгоритмы (Сортировка, графы)
- HTML, CSS, Javascript (Верстка)
- Серверный язык программирования (PHP, Python, Ruby)
- Регулярные выражения (Квантификация, жадность, группировка)
- ANSI SQL99 (DDL, DML, DQL)
- Проектирование Баз Данных (Нормализация, Связи)
- Фреймворки (Laravel, Django, Ruby on Rails)
- Пакетный менеджер (Composer, pip, gem)
- Устройство веб-серверов и способы взаимодействия (CGI, FastCGI, event Loop)
- Разворачивание проектов (Ansible, миграции, релизы)
Карта развития Front-end разработчика:
- HTML (верстка, HTML5, разметка, семантика)
- CSS (верстка, стили, селекторы, анимации)
- Адаптивность (Mobile first, RESS)
- Javascript (основы)
- Javascript: библиотеки (jQuery, Underscore)
- ECMAscript 6 (основы)
- Препроцессоры CSS/Javascript (sass, less, coffeescript, typescript)
- Сборщик проектов (Gulp, Grunt)
- Пакетный менеджер (Bower, Webpack)
- CSS/JS Фреймворки (Bootstrap, AngularJS, Backbone)
Карта развития DevOps разработчика:
- Администрирование UNIX систем
- Управление конфигурацией (Chef, Ansible, Puppet)
- Виртуализация
- Понимание устройства облачного стека технологий и контейнеров (OpenStack, Docker)
- Знание серверного языка программирования на приличном уровне (Python)
- Шардинг и репликация
- Построением отказоустойчивых систем
- Балансировка нагрузки/проксирование
*Основа карты взята с сайта Hexlet: Путь программиста