base-cs
Базовый CS с нуля
Начни без теории CS. Закончи, понимая, как компьютер исполняет твой код и что на самом деле значит каждая программная конструкция.
Начать трек →Что такое компьютер
Компьютер хранит всё битами и собран из двухпозиционных переключателей.Память
Память — длинный ряд пронумерованных ячеек; адрес — номер, значение — то, что в ячейке.Процессор
CPU вечно повторяет один цикл: достать инструкцию, расшифровать, исполнить.От машинного кода к языку
Высокоуровневый код переводится — компиляцией или интерпретацией — в инструкции, которые исполняет CPU.Значения и типы
Биты сами по себе ничего не значат; тип — правило, как их читать.Переменные и состояние
Переменная — именованная ячейка памяти; присваивание меняет её содержимое.Поток управления
Ветвления и циклы — это выбор CPU, какую инструкцию исполнить следующей.Функции и стек вызовов
Каждый вызов кладёт кадр на стек; возврат снимает его обратно.Данные в памяти
Массивы — соседние ячейки; объекты — помеченные ячейки — и то и другое раскладка в памяти.Абстракция
Связка данных с операциями над ними позволяет перестать думать о машине.Когда программа падает
Ошибка — это сообщение машины, что она не может продолжать; stack trace говорит где.Время и конкурентность
Async существует, потому что CPU не должен простаивать, пока медленное устройство отвечает.Проекты по этому треку
Guided-проекты, которые закрепляют изученное здесь.
Движок поиска маршрутов
Четыре алгоритма поиска — одна общая задача: добраться из A в B по взвешенной сетке. Ты построишь BFS, DFS, Dijkstra и A* на одной модели графа, а затем запустишь их бок о бок и увидишь, как они расходятся: DFS бросается в тупик, BFS равномерно растекается, Dijkstra ползёт наружу по стоимости, A* тянется к цели. Именно здесь раздел про алгоритмы перестаёт быть набором фактов и становится инструментами, между которыми ты выбираешь осознанно.
Крошечная стековая виртуальная машина
Собери машину, которая исполняет программы. Ты определишь небольшой набор инструкций в виде байт-кода, напишешь ассемблер, превращающий читаемые мнемоники в байты, и напишешь цикл интерпретатора, который по одной достаёт, декодирует и исполняет их. К концу ты разберёшь по косточкам весь путь от строки исходника до работающей программы — потому что каждый его слой написал сам.
Алгоритмы с нуля
Знаешь один язык программирования, не знаешь алгоритмов. Закончишь, уверенно решая сложные задачи.