You are on page 1of 4

Become a Better (Person) Programmer:

Resources for Every Programmer


UMBC Training Centers Instructors
July 17, 2018

Abstract
Read these books to improve your skills with people, programs, and
problem solving. Explore the topics addressed to advance yourself and
your career.

“Any fool can write code that a computer can understand. Good
programmers write code that humans can understand.” – Martin Fowler

Reduce, Reuse, Recycle

A novice asked the great master: What is the Way?


The master replied, Writing code is the Way.
The novice then asked, What is not the Way?
The master replied, Writing code is not the Way.
The novice said, Then the writing of code is all things.
The master replied, And the not-writing of code also.
The novice asked, At the present moment, are we writing code, or not
writing code?
The master replied, We are the code.
(From the Codeless Code, Case 8)

1 Books
1. Cracking the Coding Interview - Gayle Laakmann McDowell

2. Working Effectively with Legacy Code - Michael C Feathers


3. Code: The Hidden Language of Computer Hardware and Software - Charles
Petzold
4. Programming Pearls (2nd Edition) - Jon Bentley

5. Introduction to Algorithms (3rd Edition) - Thomas H Cormen, Charles


Leiserson, Ronald Rivest & Clifford Stein

1
6. Refactoring: Improving the Design of Existing Code - Martin Fowler, Kent
Beck, John Brant, William Opdyke, Don Roberts & Erich Gamma
7. Design Patterns: Elements of Reusable Object-Oriented Software - Erich
Gamma, Richard Helm, Ralph Johnson, John Vlissides & Grady Booch

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


9. Your Code as a Crime Scene - Adam Tornhill
10. Exercises in Programming Style - Cristina Videira Lopes
11. The TEXbook - Donald E. Knuth

12. ANSI Common Lisp - Paul Graham


13. Don’t Make Me Think(Revisited) - Steven Krug
14. Programming: Principles and Practice Using C++ - Bjarne Stroustrup
15. Effective Modern C++ - Scott Meyers

16. Essential Scrum - Kenneth S. Rubin


17. Extreme Programming Explained: Embrace Change, 2nd Edition - Kent
Beck
18. Agile Software Development, Principles, Patterns, and Practices - Robert
C Martin
19. Test Driven Development: By Example - Kent Beck
20. Working Effectively with Legacy Code - Michael Feathers

21. Agile Estimating and Planning - Mike Cohn


22. Peopleware: Productive Projects and Teams - Tom DeMarco & Timothy
Lister
23. Continuous Delivery - Jez Humble & David Farley

24. Soft Skills: The Software Developer’s Life Manual - John Z Sonmez
25. The Pragmatic Programmer - Andrew Hunt & David Thomas
26. Coders at Work - Peter Seibel
27. The Mythical Man-Month - Frederick P Brooks, Jr.

28. Code Complete 2 - Steve McConnell


29. Clean Code - Robert C Martin
30. The Linux Programming Interface - Michael Kerrisk

2
31. Advanced Programming in the Unix Environment - W Richard Stevens &
Stephen A Rago
32. Unix Network Programming: The Sockets Networking API - W Richard
Stevens, Bill Fenner & Andrew M Rudoff

33. The Art of Thinking: The Classic Guide to Increasing Brain Power - Allen
F Harrison & Robert M Bramson
34. Make It Stick: The Science of Successful Learning - Peter C Brown, Henry
L Roediger III & Mark A McDaniel
35. The Talent Code: Greatness Isn’t Born. It’s Grown. Here’s How - Daniel
Coyle
36. Talent is Overrated: What Really Separates World-Class Performers from
Everybody Else - Geoff Colvin
37. Peak: Secrets from the New Science of Expertise - Anders Ericsson &
Robert Pool

38. Mindset: The New Psychology of Success - Carol S Dweck


39. Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive
Software and Hardware Problems - David J Agans
40. How Computers Work - Roger Young

41. Programming from the Ground Up - Jonathan Bartlett

2 Web Resources
1. Scrum Guide http://www.scrum.org/resources/what-is-scrum
2. Best Web Sites for Programmers https://github.com/sdmg15/Best-websites-
a-programmer-should-visit
3. Autofocus System http://markforster.squarespace.com/autofocus-system/

4. Getting Things Done https://gettingthingsdone.com/


5. Any Awesome guide on gitlab or github for your particular technology
6. Learn X in Y Minutes https://learnxinyminutes.com/
7. Discrete Mathematics: An Open Introduction http://discrete.openmathbooks.org/dmoi/

8. Joel on Software https://www.joelonsoftware.com/

3
3 Cool Technologies to Research
1. Containerization (Docker, Linux containers)
2. Virtualization (VMware, VirtualBox)
3. Cloud Technologies and Platforms (AWS, Azure, Google Cloud Platform)
4. Trends in Security and Technology Threats

5. Data Science
6. Artificial Intelligence and Machine Learning
7. Design and User Interface

You might also like