Существует много полезных инструментов, которые помогают автоматизировать рутинную работу и тем самым облегчить жизнь разработчика.
Выпускнику и преподавателю Computer Science Center, Равилю Галееву, пришла идея собрать такие инструменты и технологии в один курс и познакомить студентов с ними. За пример такого курса были взяты The Missing Semester of Your CS Education от MIT, Software Carpentry и cs50.
В этом посте мы собрали видеолекции курса «Практический минимум» и материалы к занятиям. Благодарим Равиля за подборку!
Содержание
Набор в Computer Science Center 2021
Введение в Linux
Буквально пара слов о том, что такое ядро
Набор исторических фактов (от Unix к Linux)
Файловая система
Пользователи
Файлы
Процессы
Unix way
Статьи
Wikipedia History of Unix
Книги
Brian Kernighan and Rob Pike - The Unix Programming Environment
Peter Seibel - Coders at Work: Reflections on the Craft of Programming
Steve Parker - Shell Scripting: Expert Recipes for Linux, Bash, and More
David Griffiths and Dawn Griffiths - Head First C
Видео
Александр Смаль История Unix систем
Александр Смаль Пользователи, файлы и процессы
Курсы
UNИX ПО GNU/Linux
Stepik Введение в Linux
Командная строка Linux
bash как REPL
Unix way
Шебанг
make
Статьи
The first web page, viewed by the first web browser, on a teletype, retrocomputing completeness
Software carpentry make
Книги
Ian Miell Learn Bash the Hard Way
Видео
Александр Смаль Bash скрипты
Виктор Ашик 008. Командная строка Unix
Виктор Ашик 004. Командная строка Unix
Brian Will Unix terminals and shells part1 part2 part3 part4 part5
Евгений Линский Основы C++. Лекция 2
Слайды/Презентации
Adrien Mahieux Bash for production systems
Bash-скрипты из реального мира
Система контроля версий git
git
commit
branch
merge
git flow
github
Статьи
Евгений Артюхов Ежедневная работа с Git
Vincent Driessen A successful Git branching model
Chris Beams How to Write a Git Commit Message
Книги
Scott Chacon and Ben Straub Pro Git
Видео
Марат Мавлютов 002. Системы контроля версий
Марат Мавлютов 003. Системы контроля версий
missing semester mit Lecture 6: Version Control (git)
Потренироваться
Языки разметки и XML
groff
LaTex
XML, JSON, YAML
Markdown, AsciiDoc
GraphViz, PlantUML
Статьи
Дмитрий Переверза Зачем нам UML
Поташников Николай PlantUML — все, что нужно бизнес-аналитику для создания диаграмм в программной документации
Иван Пономарев Презентация как код
Иван Кочуркин Современный формат презентаций
Амет Умеров Как я диплом в LaTeX писал с GitHub, Docker и TravisCI
John Gruber Markdown
Matt Welsh Writing man Pages Using groff
Eddie Smith From boiling lead and black art: An essay on the history of mathematical typography
Книги
К. В. Воронцов LATEX в примерах
Видео
Александр Смаль LaTeX
Владислав Танков Terraforming Clouds Видео
Tony Ibbs A brief history of text markup languages Видео Слайды
Самарев Роман Языки веб-программирования. SGML, HTML, CSS | Технострим
Слайды и другие материалы
Tony Ibbs A brief history of text markup languages
Борис Демешев latex_examples
Markdown cheatsheets
Разное
Регулярные выражения
Регулярки
grep
sed
awk
Статьи
Quantifiers (The Java™ Tutorials > Essential Classes > Regular Expressions)
Bash-скрипты, часть 7: sed и обработка текстов / Блог компании RUVDS.com / Хабр
Видео
Corey Schafer Regex Tutorial
Александр Смаль Регулярные выражения
Oliver Wegner sed basics
Михайло Иванкив Как я однажды верстал форму регистрации
Слайды и другие материалы
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
regex - Greedy vs. Reluctant vs. Possessive Quantifiers - Stack Overflow
Взаимодействие с сетью
Разбираемся как работает посылка пакетов
Рассматриваем простейшие утилиты работы с сетью
Знакомимся с DNS, CDN, VPN и другими словами на три буквы
Пишем сервер на сокетах
Материалы
Julia Evans Networking!
Протокол HTTP
HTTP
REST
Статьи
Видео
Разное
Контейнеризация
chroot
Docker
Docker compose
Статьи
hexlet docker
How to Run Multiple Linux Distros Without Virtualization - Make Tech Easier
docker - What is the difference between CMD and ENTRYPOINT in a Dockerfile? - Stack Overflow
Видео
Solomon Hykes Introduction to Docker
Jake Wright Docker Compose in 12 Minutes Learn Docker in 12 Minutes
Mumshad Mannambeth Kubernetes for the Absolute Beginners
Курсы
Разное
Архитектура приложений
ООП
Паттерны
Многослойная архитектура
Статьи
Книги
Курсы
Видео
Greg Wilson What We Actually Know About Software Development, and Why We Believe It’s True
John Ousterhout A Philosophy of Software Design
Jonathan Blow Preventing the Collapse of Civilization
Тестирование приложений
Тестирование
Логгирование
Статьи
Brian Kernighan Code Testing and its Role in Teaching
Tracing microservices with Zipkin and Kibana - merapar - Medium
Видео
UNИX 08. Тестирование
Анатолий Островский Логирование и трассировка запросов. Best Practices
Антон Бевзюк Демонстрация TDD на Java
Jakub Nabrdalik Improving your Test Driven Development in 45 minutes
Опасность в приложениях
Хеширование, контрольные суммы
Авторизация vs Аутентификация; JWT
Обмен ключами Диффи-Хеллман
RSA
TLS
Двухфакторная аутентификация
Статьи
Encode/Decode text & files to Base64 in Browser with Base64 Converter
Введение в KDF на примере решения криптографического ребуса / Хабр
Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик / Хабр
Diagrams And Movies Of All The OAuth 2.0 Flows - Takahiko Kawasaki - Medium
OAuth 2.0 простым и понятным языком / Блог компании Mail.ru Group / Хабр
Видео
Hubert Sablonnière 100% Stateless with JWT
Laurens Van Houtven Crypto 101
Diffie Hellman Key Exchange by khan academy (смотреть с середины)
Поздняков С.Н. НОД. Расширенный алгоритм Евклида.
Книги
С. Рыбин, С. Поздняков Дискретная математика
М. Бабенко М. Левин Введение в теорию алгоритмов и структур данных
Билд-системы
от
make
кTravisCI
dockerhub
Статьи
Database version control — Liquibase versus Flyway - robloxro - Medium
5 Blue-Green Deployment Best Practices for a Smooth Release | BlazeMeter
Видео
Денис Чернилевский Инструменты непрерывной интеграции
Разное
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Кодировки, даты, локали
Разбираемся, почему /dev/random
печатает краказябры
Статьи
Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом
Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом, часть 2
An Implementation of Unicode Normalization - Concerning Pharo - Medium
Видео
Андрей Акиньшин Поговорим про арифметику
Computerphile Floating Point Numbers
Tomasz Nurkiewicz Charbuster: 10 mitów o Unicode Слайды
Tomasz Nurkiewicz Krótka historia czasu Слайды
Александр Смаль Кодировки
Adrian Furtuna Practical Exploitation of rounding vulnerabilities in banking applications
Дебаг
Исключения
Дебаг
Статьи
A Crash Course on the Depths of Win32™ Structured Exception Handling
Trapflag-Tracing I: Observing the Execution of a Program from Within Itself
Книги
Brian Kernighan and Rob Pike - The Practice of Programming
Видео
Harvard CS50 Introduction to GDB a tutorial
Harvard CS50 GDB
Paweł Moll How do debuggers (really) work
Кирилл Кринкин Отладка в Linux. Краткие сведения о gdb
Курсы
Кирилл Кринкин Основы программирования для Linux
Разное
Делитесь в комментариях своими рекомендациями материалов, которые пригодились вам.
Набор в Computer Science Center 2021
Помимо лекций и материалов студентам CS центра на курсе доступны домашние задания. Если вы хотите проходить ещё больше курсов по разным направлениям, приходите поступать.
CS центр — это вечерние курсы по математике и программированию. Занятия проходят в Санкт-Петербурге и в Новосибирске. Жители других городов могут поступить на обучение в удалённом формате.
Чтобы поступить:
заполните анкету на сайте до 10 апреля,
решите задания онлайн-теста до 11 апреля,
участвуйте в онлайн-экзамене в конце апреля-начале мая,
пройдите собеседование в мае-июне.
Для тех, кто успешно справится со вступительными испытаниями, занятия начнутся в сентябре. Будьте готовы тратить на учёбу хотя бы 15 часов в неделю в течение двух или трёх лет. Если вы увлечены компьютерными науками или программированием, хотите развиваться в этих областях, любите учиться, то осваивать курсы и работать над проектами будет интересно и полезно.
Задать вопросы про набор можно в телеграм канале или по почте info@compscicenter.ru.