Reading Resources
This page lists a wide variety of reading materials that you might find useful as an generalist in Computer Science or Software Engeering, or a specialist in computer game development.
For OSU students, many of these will cover concepts that you have or will encounter within courses you take here,
so if you come across familiar concepts as you read you might start skimming or skip ahead unless you want to see a second take on them.
For example, Code Complete (2nd edition) clocks in at 914 pages, but only 1/2 to 2/3 of it should be new to you after completing the Software course sequence.
As with anything, be mindful about what you spend your time on.
Some changes to this page as of summer 2022:
-
Over 2012-2022 the OSU ebook system changed 3-4 times so I've given up on providing direct links, only the text names will be listed.
Many of the books below are accessible as ebooks through the OSU library system.
For those that aren't, try OhioLink for the more technical works and the Columbus library system for the more applied works.
-
I've shortened many of the lists as Steve McConnell already provides very good (albeit dated to 2004 in the second edition) reading recommendations in Code Complete.
Many chapters in the book have relevant recommendations. I've made a cribsheet of topic areas within chapters of the second edition.
-
Links to other reading recommendations have become prone to dying so I've dropped those too - you can and should search around for other's recommendations
Lifelong learning and overcoming the 21st century attention capturing economy
- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones
- Deep Work: Rules for Focused Success in a Distracted World
- How to Read a Book - The Classic Guide to Intelligent Reading
- Make It Stick: The Science of Successful Learning [Educators may also want to check out: Powerful Teaching - Unleash the Science of Learning]
Problem Solving
- Conceptual Blockbusting: A Guide to Better Ideas
- How to Solve It: A New Aspect of Mathematical Method
- Programming Pearls
Software Construction
- Clean Architecture
- Clean Code: A Handbook of Agile Software Craftsmanship
- Code Complete: A practical handbook of software construction
- Design Patterns: Elements of Reusable Object-Oriented Software
- Head First Design Patterns
- Joel on Software
- More Joel on Software
- Mythical Man-Month
- Patterns of Enterprise Application Architecture
- Peopleware: Productive Projects and Teams
- Refactoring: Improving the Design of Existing Code
- Test Driven Development: By Example
- The Pragmatic Programmer: From Journeyman to Master
- Working Effectively with Legacy Code
Agile
- Agile Estimating and Planning
- Agile Game Development with Scrum
- Agile Principles, Patterns, and Practices in C#
- Agile!: The Good, the Hype and the Ugly
- Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition
- Essential Scrum: A Practical Guide to the Most Popular Agile Process
- Succeeding with Agile: Software Development Using Scrum
Group Dynamics
- 151 Quick Ideas to Improve Your People Skills
- Beautiful Teams
- Brilliant Teams
- Team Geek
- The Clean Coder: A Code of Conduct for Professional Programmers
Technical Writing
- THE BEST SOFTWARE WRITING I
C# and .NET
- CLR via C#
- C# 7.0 in a Nutshell
- Effective C#
MonoGame and XNA frameworks ; Unity and Unreal game engines
Note: the target audience for some of these may be non-programmers, so investigate before buying.
As of summer 2022: Unity's current version number was 2022.x [5.x was the last numbered version in 2016] and Unreal's current version number was 5.x [i.e. in 2023 or later look for version 5 texts rather than version 4].
- Friendly F# (Fun with game programming)
- Game development with MonoGame : build a 2D game using your own reusable and performant game engine
- Learning XNA 4.0
- Microsoft XNA 4.0 Game Development Cookbook
- Microsoft XNA Game Studio 4.0: Learn Programming Now!
- MonoGame mastery: build a multi-platform 2D game and reusable game engine
- Unity 5.x Cookbook
- Unity in Action: Multiplatform Game Development in C# with Unity 5
- Unity Game Development in 24 Hours
- Unreal Engine 4 Game Development in 24 Hours, Sams Teach Yourself
- Unreal Engine 4 Game Development Quick Start Guide: Programming professional 3D games with Unreal Engine 4
- Unreal Engine Game Development Cookbook
- Wikibook on Game Creation with XNA
- XNA 4.0 Game Development by Example
- XNA Game Studio 4.0 Programming: Developing for Windows Phone 7 and Xbox 360
Game Programming
- Artificial Intelligence for Games
- Game Coding Complete
- Game Design Workshop, Second Edition: A Playcentric Approach to Creating Innovative Games
- Game Engine Architecture
- Game Mechanics: Advanced Game Design
- Mathematics for 3D Game Programming and Computer Graphics
Game Design
- Chris Crawfod on Interactive Storytelling
- Challenges for Game Designers
- Interactive Entertainment: A Videogame Industry Guide
- Level Up!: The Guide to Great Video Game Design
- Making Fun: How to Score a Career in the Video Game Industry
- The Art of Game Design
Integrated Systems Engineering / Human Factors / Design
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
- Microinteractions
- The Design of Everyday Things
Job Search / Interviews
- Cracking the Coding Interview: 150 Programming Questions and Solutions
- Programming Interviews Exposed: Secrets to Landing Your Next Job
- The Google Resume: How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, or any Top Tech Company