Об этом проекте

Professional Programming — это курируемый, субъективный список ресурсов, созданный для того, чтобы помочь программистам стать более профессиональными разработчиками. Вместо того чтобы стремиться к исчерпывающей полноте, автор сознательно отбирает лишь те материалы, которые оказались по-настоящему вдохновляющими или стали timeless классикой. Автор отмечает, что включение ресурса не означает полного согласия с каждым утверждением, содержащимся в нём или высказанным его авторами. Список начинается с принципов и рекомендаций по вкладу, затем представляет обязательные для прочтения книги: The Pragmatic Programmer, Code Complete, Release It!, Scalability Rules, The Linux Programming Interface и SICP, а также бесплатные книги и другие коллекции бесплатных книг. Раздел must-read статей содержит ссылки на материалы о практических советах для начинающих инженеров, о том, как стать senior-инженером, уроках, извлечённых в разработке ПО, признаках хорошего программиста, истинах, забвенных в период junior-разработчика, создании качественного ПО, мифе об «-10x инженерe» и экспертах-универсалах. Общие материалы включают другие курируемые списки, книги типа The Imposter's Handbook и The Software Engineer's Guidebook, статьи, такие как every-programmer-should-know, Amazon Builders' Library, awesome-falsehood, developer roadmaps, и Teach Yourself Programming in Ten Years. Разделы аксиом и максим содержат правила большого пальца, а курсовые разделы ведут на Google Tech Dev Guide, MIT's Missing Semester, coding-interview-university, Teach Yourself Computer Science и OSSU. Основная часть репозитория — это длинный тематический индекс. Темы охватывают бухгалтерию и fintech-инжиниринг, агентный кодинг, алгоритмы и структуры данных, проектирование API, отношение и привычки (включая прокрастинацию), аутентификацию и авторизацию, автоматизацию, лучшие практики, когнитивные искажения, бизнес, выбор между buy vs build, кэширование, карьерный рост (выбор возможностей, путь к staff engineer), кодировки, шахматы, облака, code reviews, качество кода и самописание, коммуникацию, компиляторы, конфигурацию, CI, анализ данных и data science, семантику данных, базы данных (внутреннее устройство, NoSQL, Postgres), форматы данных, data engineering, отладку, визуальный и UX-дизайн, ОО-моделирование и архитектурные паттерны, проектирование схем баз данных, простоту, среду разработки и инструменты, Docker, документацию, dotfiles, редакторы и IDE (включая Vim), email, инженерное управление, упражнения, эксперименты, шрифты, функциональное программирование, разработку игр, генеративный ИИ, графику, железо, HTTP, юмор, реагирование на инциденты и постмортемы, интернет, собеседования, Kubernetes, large language models, обучение и запоминание, лицензии, управление Linux, low-code/no-code, низкоуровневое программирование и assembly, машинное обучение и ИИ, математику, маркетинг, сети, наблюдаемость (логирование, обработка ошибок, метрики, мониторинг), open source, операционные системы, over-engineering, производительность, персональное управление знаниями, личную продуктивность, перспективы, конфиденциальность, решение проблем, продукт-менеджмент для инженеров, управление проектами, языки программирования (Python, JavaScript, garbage collection), парадигмы программирования, публичные выступления, чтение, рефакторинг, регулярные выражения, релизы и деплой (версионирование, чеклисты, feature flags, тестирование в production), надёжность (интеграционные паттерны, устойчивость), поиск, безопасность, исследовательские статьи, shell, SQL, состояние (state), системное администрирование, системную архитектуру (архитектурные паттерны, микросервисы и разделение монолита), масштабируемость, SRE, технический долг, тестирование, инструменты, типизацию, типографику, контроль версий с Git, рабочую этику и баланс работы и жизни, веб-разработку, а также ведение блогов и письмо. Дополнительные разделы охватывают ресурсы и вдохновение для презентаций, поддержание актуальности знаний, концепции, а также другие списки автора. Элементы помечены иконками, указывающими тип ресурса (список, книга, видео/доклад, слайды, must-read, статья). README включает автоматически сгенерированное оглавление.