Информатика
CS
Что охватывает
Под повседневными инструментами лежит информатика. Речь о том, как данные разложены в памяти, как растёт стоимость с размером входа, как одна машина делится между программами, как байты идут по сети и как база данных находит строки. Это не один навык, а целая группа, и большинство разработчиков знакомится с ней через инциденты.
Почему это важно
Именно эти решения дорого отменять: неудачная структура данных незаметна на разработке и неприменима на десяти тысячах записей, а неудачная модель конкурентности прячется, пока система не окажется под нагрузкой. Можно годами не произносить «Big-O» вслух, но нельзя не выбирать между массивом и хеш-таблицей. Понимание этого слоя превращает исчерпанный пул соединений или запрос, который игнорирует индекс, из магии в то, что можно диагностировать.
Входящие навыки
- Структуры данных (01-cs-fundamentals/02-data-structures) — раскладка значений, при которой нужные операции обходятся дёшево.
- Алгоритмы и Big-O (01-cs-fundamentals/14-algorithms-big-o) — набор стандартных процедур и запись того, как растёт их стоимость.
- Операционные системы (01-cs-fundamentals/15-operating-systems) — процессы, потоки, память и файловые системы так, как их видит программа.
- Компьютерные сети (01-cs-fundamentals/03-computer-networks) — пакеты, TCP/IP, порты и DNS, а также то, как путешествует запрос.
- Внутреннее устройство баз данных (01-cs-fundamentals/04-database-internals) — движки хранения, индексы и планировщики запросов, на которых держится ваш SQL.
- Конкурентность и асинхронное программирование (01-cs-fundamentals/05-concurrency-async-programming) — как делать несколько дел сразу и не портить общее состояние.
С чего начать
Начните со Структур данных: каждая другая запись здесь предполагает, что вы умеете выбрать форму для своих данных. Затем Алгоритмы и Big-O дают словарь для оценки этого выбора, а Операционные системы и Компьютерные сети объясняют машину и провод, на которых работает код, — читать их можно в любом порядке. Оставьте Конкурентность и Внутреннее устройство баз данных на потом, когда появится что-то, затрагивающее оба слоя.