professional-programming
A collection of learning resources for curious software engineers
Professional Programming: an opinionated reading list
A Lincoln quote about sharpening an axe before chopping opens the page, followed by the author's promise to collect only resources they found truly inspiring or that became timeless classics.
The principles
The page is not meant to be comprehensive, and the author says they are trying to keep it light and not too overwhelming. The selection is opinionated, and the author does not necessarily agree with every line in every resource, nor endorse everything each author has said. Symbols mark resource types, including a toolbox for lists, a book, video or talk, slides, a must-read star, and a paper.
The must-read books
The must-read books section leads with The Pragmatic Programmer, described as the most inspiring and useful book the author has read about programming. Code Complete is a companion that gives a framework for talking about code. Release It! covers best practices for building production-ready software and is said to deliver about three years of real-world experience. Also listed are Scalability Rules, The Linux Programming Interface, and SICP.
Articles worth the time
A must-read articles section collects lessons and essays, including Lessons Learned in Software Development, Spec first, then code, Tests make better APIs, and Documentation is a love letter to your future self. A separate axioms section records short maxims like data is better than code and correctness is more important than performance.
Books and courses
A books section lists The Imposter's Handbook at 30 dollars, written by an author who did not have a CS degree, The Computer Science Book, and The Software Engineer's Guidebook by Gergely Orosz. Courses point to MIT's Missing Semester, jwasham's coding-interview-university, Teach Yourself Computer Science, and ossu's self-taught computer science education.
Algorithms if you want them
For algorithms and data structures, the README suggests reading CLRS or The Algorithm Design Manual by Skiena, and trying out problems on Project Euler. It is a light section compared to the rest, which fits the overall principle of keeping the page from becoming overwhelming.
Community notes