Additional Resources

This page lists some additional resources I have used in writing this website that I found helpful enough to recommend.



In planning this course, I found the following books particularly useful, in no particular order. There are no referral links of any kind here, I simply include these books because I found them overall helpful, even if I disagree with specific suggestions/guidelines in some books:

Refactoring: Improving the Design of Existing Code 2nd Edition by Martin Fowler

The Pragmatic Programmer, 20th Anniversary Edition by David Thomas and Andrew Hunt

Code Complete, 2nd Edition by Steve McConnell

Clean Code by Bob Martin

Clean Architecture by Bob Martin, James Grenning, and Simon Brown

Code that Fits in your Head: Heuristics for Software Engineering by Mark Seeman

Design Patterns Explained, 2nd Edition by Alan Shalloway and James R. Trott


I found the following websites particularly helpful, whether that be with respect to design, or even just Java syntax or library usage:

Baeldung has a ton of excellent practical tutorials for Java code that I have found valuable in my own coding practice.

Refactoring Guru a great catalog for refactoring techniques and design patterns, with examples across multiple programming languages.

Youtube Channels

Code Aesthetic

Recommend me your resources

Is there some book, website, whatever you have found helpful in your programming journey? Let me know! Contact me via email at mcburney at virginia dot edu! I look forward to your suggestions!

Previous submodule: