Light reading:
- Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security (start here)
- Hackers & Painters: Big Ideas from the Computer Age
- The Real Internet of Things
- The Zen Programmer
- The Internet of Elsewhere: The Emergent Effects of a Wired World
- Just for Fun: The Story of an Accidental Revolutionary
- In The Beginning… Was the Command Line
- Coders at Work: Reflections on the Craft of Programming
- The Idea Factory: Bell Labs and the Great Age of American Innovation
- Hackers: Heroes of the Computer Revolution
- The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
- The Snowden Files: The Inside Story of the World’s Most Wanted Man
- So You’ve Been Publicly Shamed (a book about social media issues)
- Software Developer Life
- Programming for beginners:
- Computer Science Illuminated (recommended for starting out)
- Python Programming for Beginners: An Introduction to the Python Computer Language and Computer Programming (recommended for starting out)
- Introducing GitHub: A Non-Technical Guide
- The Little Markdown Syntax Book
- The Self-Taught Programmer
- Python Crash Course
- The Imposter’s Handbook
- Textbooks and more advanced programming:
- Introduction to Java Programming: Comprehensive Version (recommended for starting in this section after you’ve read some books from the beginner section)
- Django for Beginners: Build websites with Python and Django (also recommended for starting)
- Version Control with Git: Powerful tools and techniques for collaborative software development
- SQL in 10 Minutes or SQL in Easy Steps
- Cracking the Coding Interview: 189 Programming Questions and Solutions
- Introduction to JavaScript Object Notation: A To-the-Point Guide to JSON
- Mastering Regular Expressions
- Design Patterns: Elements of Reusable Object-Oriented Software
- Clean Code: A Handbook of Agile Software Craftsmanship
- Introduction to Algorithms
- Computer Organization and Design
- JavaScript: The Good Parts
- Learn NodeJS in 1 Day
- Object-Oriented Data Structures Using Java
- Discrete Mathematics and Its Applications
- Information Technology:
- A+ Guide to Managing and Maintaining Your PC (start with this one for this section)
- Network+ Guide to Networks
- CompTIA A+ Certification All-in-One Exam Guide
- Cisco Network Fundamentals
- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
- The Linux Command Line
- Wicked Cool Shell Scripts
- Information Security:
- Tribe of Hackers (start here)
- The Hacker Playbook: Practical Guide to Penetrating Testing (start here)
- Spam Nation: The Inside Story of Organized Cybercrime – from Global Epidemic to Your Front Door
- Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World
- Future Crimes: Everything Is Connected, Everyone Is Vulnerable, and What We Can Do About it
- The Web Application Hacker’s Handbook
- Practical Malware Analysis
- Social Engineering: The Art of Human Hacking
- Building Virtual Machine Labs: A Hands-On Guide
- Security+ Get Certified Get Ahead
- Reversing: Secrets of Reverse Engineering
- Hacking: The Art of Exploitation
These books aren’t in any particular order (aside from the groups), so you don’t need to read them in the order they’re listed here. And if you these books are too expensive on Amazon, you might be able to find them cheaper elsewhere. Also, some books might cover similar topics, so if you read on SQL or git book, you might not want to spend your money on another similar one because of the overlap of content. Just keep in mind that the cost of these books is nothing compared to the cost of college. If you buy some of the books in these lists and pay for freelance tutoring, you can give yourself your own self-directed learning that is actually quite good, especially for the money. As long as you’re interested and self-driven, it’s definitely doable to learn computer science. And even if you are a computer science major, these books can help you get ahead and also add more breadth to your knowledge.