Dmitry Sharkov
dmitry.sharkov@gmail.comМы начинаем курс практических лекций, на которых расскажем все азы программирования. Мы начнём с базовых принципов создания кодов и расскажем каждый шаг на нелёгком пути молодого программиста.
Курс предназначен для людей, которые:
а) Хотят стать профессиональными программистами, но не знают с чего начать
б) Хотят и могут учится самостоятельно.
Никаких “зачетов” и “проверок конспектов” не будет :) Моя роль сводится к 3-м вещам
1) Выстроить весь базовый материал в более-менее логически стройную последовательность
2) Объяснить наиболее сложные моменты
3) Ответить на вопросы
Программа будет охватывать следующие вопросы:
I. КАК РАБОТАЕТ КОМПЬЮТЕР
1) Железо: процессор, память, устройства ввода-вывода
2) Операционная системы семейства *nix: пользователи, процессы, потоки ввода-вывода, ядро и приложения, API.
3) Работа в терминале. BASH скрипты.
II. ОСНОВЫ ПРОГРАММИРОВАНИЯ
1) Язык программирования C: компилятор, процессор, переменные, указатели, массивы, функции, ветвелния, циклы, работа с памятью
2) С-продолжение: указатели на функции, замыкания
3) Работа с исходным кодом. Git
4) Unit-тестирование (С-Unit)
III. ОСНОВЫ АЛГОРИТМОВ
1) Линейные списки
2) Деревья
3) Графы
3) Сортировки
4) Поиск
5) Сложность алгоритмов. Основы анализа алгоритмов
IV. ОСНОВЫ МНОГОПОТОЧНОСТИ
1) Процессы и потоки
2) Объекты синхронизации
3) POSIX API для многопоточного программирования
V. ИНТЕРНЕТ
1) Как работает интернет. Стек протоколов. Протокол IP
2) Протоколы TCP/UDP
3) Прикладные протоколы: HTTP, SMTP, POP3, FTP
4) POSIX API для сокетов