Что нужно знать:
Как работает вэб
- [ ] Что входит в понимание того, как работает веб. Надо понимать, как в целом работает интернет, что такое IP адреса и как это все связывается в глобальную мировую сеть.
- [ ] Надо знать, что такое DNS и как он работает, то есть что происходит, когда в браузере вы переходите на youtube.com. Надо понимать про hosts файл, которым вы можете изменить DNS настройки. Как физически запустить что-то на своём домене 2 или 3 уровня, то есть как привязать к домену свой сервер. Причем это надо уметь настроить физически на линукс сервере, например, в nginx.
- [ ] Надо знать о разнице HTTP и HTTPS протоколов и опять же уметь ручками настроить на вашем домене работу по защищенному HTTPS протоколу.
- [ ] Надо знать о том, как работает HTTP. Какие есть виды HTTP запросов, чем они отличаются и когда целесообразно какие виды запросов применять. Какие есть основные HTTP статусы и что они означают, какие поля есть в HTTP запросах и за что они отвечают, хотя бы базовые.
- [ ] Как работают и для чего нужны Cookies, какие они бывают, как с ними работать из JavaScript c клиентской части и как с ними работать с серверной части.
- [ ] Как работают авторизация и аутентификация на веб-сайтах и в мобильных приложениях, которые хранят данные на сервере. Разницу между авторизацией и аутентификацией тоже надо понимать.
- [ ] Уметь настроить механизм сессий без веб-фреймворков, просто чтобы понимать, как это всё работает под капотом вашего любимого фреймворка. Чтобы было настоящее понимание о том, что там никакой магии не происходит.
Основы фронта
- [ ] HTML, язык гипертекстовой разметки.
- [ ] CSS, язык каскадных стилей, который позволяет оформлять веб-страницы.
- [ ] Используя HTML и CSS уметь минимально верстать страницы и какие-то базовые блоки. Знать о семантической разметке, о настройке шрифтов, местоположений блоков на странице, margins и paddings, уметь использовать flex-боксы, флоаты, таблицы и т.д.
- [ ] Media queries (адаптивная верстка)
- [ ] JavaScript, нативный нормальный JavaScript и JavaScript API браузера.
- [ ] Document.querySelector, работа с CSS стилями из JavaScript, переменные, циклы, функции Javascript, работа с AJAX запросами (и на стороне фронтенда, то есть JS, и на стороне бэкенда),
- [ ] Модель асинхронности JavaScript.
Back-end
- [ ] Ruby. Что входит в серьезное знание любого языка программирования. Это а) знание его синтаксиса, б) знание его стандартной библиотеки, в) знание его основных third-party, то есть внешних библиотек. Всё это вы должны знать максимально глубоко, если это ваша основная рабочая сфера деятельности. Знание языка это не знание синтаксиса, этого пипец как мало. Понятно, надо знать синтаксис — определение переменных, функций, модулей и пакетов, ветвления и циклы.
Типы данных — числа, строки, последовательности.
Как с ними работать, преобразовывать друг в друга, какие особенности. Слайсы и тд.
Форматирования строк, приведение типов и тд. Классы и объекты. Аргументы в функциях — позиционные и keyword, args. Функции map, reduce, zip. Лямбда функции. Генераторы, декораторы. Исключения.
- [ ] Знание Core библиотеки языка. Работа с файлами (обычными текстовыми и CSV) и аргументами командной строки. Регулярные выражения. JSON. Работа с датами очень частая задача и вам нужно уметь свободно работать с датами и временем, в том числе с временными зонами.