Często ktoś mnie pyta, jakie książki o programowaniu bym polecił na poziom wyższy niż klepanie kodu. Dlatego właśnie stworzyłem niniejszą listę. Jest to kompilacja podobnych enumeracji z Internetu, ale głównie opiera się na własnym doświadczeniu.
Poniższe książki to klasyka gatunku - przedstawiają one tak zwany Core*, czyli to, co jest stabilną częścią wiedzy w Inżynierii Oprogramowania. Uważam, że najlepsza jakościowo wiedza zgromadzona jest właśnie w tych książkach i powinni je poznać wszyscy, którzy interesują się swoim rzemiosłem. Nie chodzi o to, żeby ślepo stosować opisane praktyki - nie taka jest
idea. Moim zdaniem są one podstawą do rozwijania własnego doświadczenia w
dobrym kierunku.
(* - artykuł "Software Engineering Principles", From the Editor, IEEE Software, Vol. 16, No. 2, March/April 1999)
Classic Books on Software Development - TOP 10 of must read
(czyli najlepsze książki dla programistów o programowaniu ogólnie pojętym - w proponowanej kolejność czytania)
1) The Pragmatic Programmer: From Journeyman to Master - Hunt Andrew, Thomas David
(pl: Pragmatyczny programista)
2) Code Complete: A Practical Handbook of Software Construction - McConnell Steve
(pl: Kod doskonały)
3) Applying UML and Patterns - Craig Larman
(to nie jest książka o UML ani wzorcach! to książka o tym jak wykorzystać programowanie obiektowe, o design w OOD. Słowa UML i Patterns zostały wykorzystane jako haczyki marketingowe. Poza tym ta książka to podstawa.)
4) Agile Software Development, Principles, Patterns, and Practices - Robert C. Martin
(albo) Agile Principles, Patterns, and Practices in C# - Robert C. Martin
(pl: Zwinne wytwarzanie oprogramowania. Najlepsze zasady, wzorce i praktyki)
5) Head First Design Patterns, Eric Freeman
6) The Art of Unit Testing, Roy Osherove
7) Rapid Development: Taming Wild Software Schedules - Steve McConnell
8) Peopleware: Productive Projects and Teams - Tom DeMarco, Timothy Lister
9) Refactoring: Improving the Design of Existing Code - Kent Beck
10) The Mythical Man-Month: Essays on Software Engineering - Frederick P. Brooks
(pl: Mityczny osobomiesiąc)
Kiedyś twierdziłem, że przeczytanie jednej książki jest jak zdobycie
doświadczenia z udziału w jednym projekcie. Teraz bym powiedział, że może nawet jak dwa do pięciu "przebytych" projektów.
Za podium, ale warto wspomnieć:
11) Clean Architecture, Robert C. Martin (Czysta architektura)
12) Clean Code, Robert C. Martin (Czysty kod)
Disclaimer: niektóre z tych książek (głównie PoEAA) dotyczą mainstreamowych systemów. Programiści systemów embedded dużo z nich nie wyniosą.