About this project
Professional Programming is a curated, opinionated reading list aimed at helping programmers become more proficient developers. Rather than trying to be exhaustive, it deliberately stays light and selects resources the author found truly inspiring or that have become timeless classics. The author notes that inclusion does not imply endorsement of every claim made in every linked resource or by its authors.
The list opens with principles and contribution guidance, then presents must-read books such as The Pragmatic Programmer, Code Complete, Release It!, Scalability Rules, The Linux Programming Interface, and SICP, plus free books and other free-programming-book collections. A must-read articles section links pieces on practical advice for new engineers, being a senior engineer, lessons learned in software development, signs of a good programmer, truths unlearned as a junior developer, building good software, the -10x engineer, and expert generalists.
General material includes other curated lists, books like The Imposter's Handbook and The Software Engineer's Guidebook, articles such as every-programmer-should-know, the Amazon Builders' Library, awesome-falsehood, developer roadmaps, and Teach Yourself Programming in Ten Years. Axioms and precepts sections collect rules of thumb, and courses point to Google Tech Dev Guide, MIT's Missing Semester, coding-interview-university, Teach Yourself Computer Science, and OSSU.
The bulk of the repository is a long topic index. Topics span accounting and fintech engineering, agentic coding, algorithms and data structures, API design, attitude and habits (including procrastination), authentication and authorization, automation, best practices, biases, business, buy vs. build, cache, career growth (choosing opportunities, reaching staff engineer), character sets, chess, clouds, code reviews, coding and code quality, communication, compilers, configuration, CI, data analysis and data science, data semantics, databases (internals, NoSQL, Postgres), data formats, data engineering, debugging, visual and UX design, OO modeling and architecture patterns, database schema design, simplicity, dev environment and tools, Docker, documentation, dotfiles, editors and IDEs (including Vim), email, engineering management, exercises, experimentation, fonts, functional programming, games development, generative AI, graphics, hardware, HTTP, humor, incident response and postmortems, internet, interviewing, Kubernetes, large language models, learning and memorizing, licenses, Linux system management, low-code/no-code, low-level and assembly, machine learning/AI, math, marketing, network, observability (logging, error handling, metrics, monitoring), open source, operating systems, over-engineering, performance, personal knowledge management, personal productivity, perspective, privacy, problem solving, product management for engineers, project management, programming languages (Python, JavaScript, garbage collection), programming paradigms, public speaking, reading, refactoring, regex, releasing and deploying (versioning, checklists, feature flags, testing in production), reliability (integration patterns, resiliency), search, security, research papers, shell, SQL, state, system administration, system architecture (architecture patterns, microservices and monolith splitting), scalability, SRE, technical debt, testing, tools, type systems, typography, version control with Git, work ethics and work/life balance, web development, and writing and blogging.
Additional sections cover resources and inspiration for presentations, keeping up-to-date, concepts, and the author's other lists. Items are tagged with icons indicating resource type (list, book, video/talk, slides, must-read, paper), and the README includes a generated table of contents.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.