A Reading List For the Self-Taught Computer Scientist

(1) Introduction to Algorithms (2) Structure and Interpretation of Computer Programs (3) The Pragmatic Programmer (4) Design Patterns (5) The C Programming Language (6) Clean Code (7) Code (8) Compilers (9) The Mythical Man-Month (10) Refactoring

1. Introduction to Algorithms Thomas H. Cormen

2. Structure and Interpretation of Computer Programs Harold Abelson

3. The Pragmatic Programmer: From Journeyman to Master Andy Hunt

4. Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma

5. The C Programming Language Brian W. Kernighan

6. Clean Code: A Handbook of Agile Software Craftsmanship Robert C. Martin

7. Code Charles Petzold

8. Compilers: Principles, Techniques, and Tools Alfred V. Aho

9. The Mythical Man-Month: Essays on Software Engineering Frederick P. Brooks Jr.

10. Refactoring: Improving the Design of Existing Code Martin Fowler

11. Introduction to the Theory of Computation Michael Sipser

12. The Algorithm Design Manual Steven S. Skiena

13. Algorithms to Live By: The Computer Science of Human Decisions Brian Christian

14. Programming Pearls Jon L. Bentley

15. Gödel, Escher, Bach: An Eternal Golden Braid Douglas R. Hofstadter

16. The Art of Computer Programming, Volume 1: Fundamental Algorithms Donald Ervin Knuth

17. Head First Design Patterns Eric Freeman

18. Code Complete Steve McConnell

19. Concrete Mathematics: A Foundation for Computer Science Ronald L. Graham

20. Operating System Concepts Abraham Silberschatz

21. Computer Networks Andrew S. Tanenbaum

22. Algorithms Robert Sedgewick

23. Working Effectively with Legacy Code Michael C. Feathers

24. JavaScript: The Good Parts Douglas Crockford

25. The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography Simon Singh

26. Computer Systems: A Programmer’s Perspective Randal E. Bryant

27. Types and Programming Languages Benjamin C. Pierce

28. The Elements of Computing Systems: Building a Modern Computer from First Principles Noam Nisan

29. The Clean Coder: A Code of Conduct for Professional Programmers Robert C. Martin

30. Coders at Work: Reflections on the Craft of Programming Peter Seibel

31. Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability Steve Krug

32. Purely Functional Data Structures Chris Okasaki

33. The Art of Computer Programming, Volumes 1–3 Boxed Set Donald Ervin Knuth

34. Effective C++: 55 Specific Ways to Improve Your Programs and Designs Scott Meyers

35. Applied Cryptography: Protocols, Algorithms, and Source Code in C Bruce Schneier

36. Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans

37. Computer Networking: A Top-Down Approach James F. Kurose

38. Patterns of Enterprise Application Architecture Martin Fowler

39. Computer Organization & Design: The Hardware/Software Interface David A. Patterson

40. Pro Git Scott Chacon

41. Test Driven Development: By Example Kent Beck

42. The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing MachineCharles Petzold

43. Superintelligence: Paths, Dangers, Strategies Nick Bostrom

44. Machine Learning Tom M. Mitchell

45. The Little Schemer Daniel P. Friedman

46. Learn You a Haskell for Great Good! Miran Lipovača

47. The Art of Computer Programming, Volume 2: Seminumerical Algorithms Donald Ervin Knuth

48. The Art of Computer Programming: Volume 3: Sorting and Searching Donald Ervin Knuth

49. Computer Architecture: A Quantitative Approach John L. Hennessy

50. Hackers: Heroes of the Computer Revolution Steven Levy

All images is from Pixabay. Data is collected from Goodreads.com.

Categories: Literature & Fiction

%d bloggers like this: