Skip to content

Commit 0fcd9ed

Browse files
author
woojiahao
committed
Added books and project ideas
1 parent 416c15b commit 0fcd9ed

File tree

3 files changed

+328
-1
lines changed

3 files changed

+328
-1
lines changed

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1-
# programming-resources
1+
# Programming Resources
22
Collection of resources for programmers!
3+
4+
If you are starting out and want to follow a curriculum for CS, you can check out the follow resources:
5+
6+
- [Teach Yourself CS](teachyourselfcs.com)
7+
- [OSSU CS](https://github.com/ossu/computer-science)
8+
9+
## Table of contents
10+
1. [Books](./books.md)
11+
2. [Project ideas](./ideas.md)

books.md

Lines changed: 305 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,305 @@
1+
# Programming Reading List
2+
Credits to [/u/CSMastermind](https://www.reddit.com/user/CSMastermind) for creating the list found here:
3+
* [Part 1](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmplj3/)
4+
* [Part 2](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmpmfs/)
5+
* [Part 3](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmpn75/)
6+
7+
More reading list resources:
8+
* [The Ultimate Reading List for Developers](https://docs.google.com/spreadsheets/d/1jz2dyyDzgZS1zqe_vhY8SYQrhscNzpNfdAkGusWoMUU/edit#gid=0)
9+
10+
## Job Interview Prep
11+
* Cracking the Coding Interview: 189 Programming Questions and Solutions
12+
* Programming Interviews Exposed: Coding Your Way Through the Interview
13+
* Introduction to Algorithms
14+
* The Algorithm Design Manual
15+
* Effective Java
16+
* Concurrent Programming in Java: Design Principles and Pattern
17+
* Modern Operating Systems
18+
* Programming Pearls
19+
* Discrete Mathematics for Computer Scientists
20+
21+
## Junior Software Engineer Reading List
22+
### Read This First
23+
* Pragmatic Thinking and Learning: Refactor Your Wetware
24+
25+
### Fundamentals
26+
* Code Complete: A Practical Handbook of Software Construction
27+
* Software Estimation: Demystifying the Black Art
28+
* Software Engineering: A Practitioner's Approach
29+
* Refactoring: Improving the Design of Existing Code
30+
* Coder to Developer: Tools and Strategies for Delivering Your Software
31+
* Perfect Software: And Other Illusions about Testing
32+
* Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application
33+
34+
### Understanding Professional Software Environments
35+
* Agile Software Development: The Cooperative Game
36+
* Software Project Survival Guide
37+
* The Best Software Writing I: Selected and Introduced by Joel Spolsky
38+
* Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
39+
* Rapid Development: Taming Wild Software Schedules
40+
* Peopleware: Productive Projects and Teams
41+
42+
### Mentality
43+
* Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
44+
* Against Method
45+
* The Passionate Programmer: Creating a Remarkable Career in Software Development
46+
47+
### History
48+
* The Mythical Man-Month: Essays on Software Engineering
49+
* Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
50+
* The Deadline: A Novel About Project Management
51+
52+
## Mid Level Software Engineer Reading List
53+
### Read This First
54+
* Personal Development for Smart People: The Conscious Pursuit of Personal Growth
55+
56+
### Fundamentals
57+
* The Clean Coder: A Code of Conduct for Professional Programmers
58+
* Clean Code: A Handbook of Agile Software Craftsmanship
59+
* Solid Code
60+
* Code Craft: The Practice of Writing Excellent Code
61+
* Software Craftsmanship: The New Imperative
62+
* Writing Solid Code
63+
64+
### Software Design
65+
* Head First Design Patterns: A Brain-Friendly Guide
66+
* Design Patterns: Elements of Reusable Object-Oriented Software
67+
* Domain-Driven Design: Tackling Complexity in the Heart of Software
68+
* Domain-Driven Design Distilled
69+
* Design Patterns Explained: A New Perspective on Object-Oriented Design
70+
* Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
71+
* Refactoring to Patterns
72+
73+
### Software Engineering Skill Sets
74+
* Building Microservices: Designing Fine-Grained Systems
75+
* Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
76+
* NoEstimates: How To Measure Project Progress Without Estimating
77+
* Object-Oriented Software Construction
78+
* The Art of Software Testing
79+
* Release It!: Design and Deploy Production-Ready Software
80+
* Working Effectively with Legacy Code
81+
* Test Driven Development: By Example
82+
83+
### Databases
84+
* Database System Concepts
85+
* Database Management Systems
86+
* Foundation for Object / Relational Databases: The Third Manifesto
87+
* Refactoring Databases: Evolutionary Database Design
88+
* Data Access Patterns: Database Interactions in Object-Oriented Applications
89+
90+
### User Experience
91+
* Don't Make Me Think: A Common Sense Approach to Web Usability
92+
* The Design of Everyday Things
93+
* Programming Collective Intelligence: Building Smart Web 2.0 Applications
94+
* User Interface Design for Programmers
95+
* GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos
96+
97+
### Mentality
98+
* The Productive Programmer
99+
* Extreme Programming Explained: Embrace Change
100+
* Coders at Work: Reflections on the Craft of Programming
101+
* Facts and Fallacies of Software Engineering
102+
103+
### History
104+
* Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
105+
* New Turning Omnibus: 66 Excursions in Computer Science
106+
* Hacker's Delight
107+
* The Alchemist
108+
* Masterminds of Programming: Conversations with the Creators of Major Programming Languages
109+
* The Information: A History, A Theory, A Flood
110+
111+
### Specialist Skills
112+
In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.
113+
114+
* Peter Norton's Assembly Language Book for the IBM PC
115+
* Expert C Programming: Deep C Secrets
116+
* Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
117+
* The C++ Programming Language
118+
* Effective C++: 55 Specific Ways to Improve Your Programs and Designs
119+
* More Effective C++: 35 New Ways to Improve Your Programs and Designs
120+
* More Effective C#: 50 Specific Ways to Improve Your C#
121+
* CLR via C#
122+
* Mr. Bunny's Big Cup o' Java
123+
* Thinking in Java
124+
* JUnit in Action
125+
* Functional Programming in Scala
126+
* The Art of Prolog: Advanced Programming Techniques
127+
* The Craft of Prolog
128+
* Programming Perl: Unmatched Power for Text Processing and Scripting
129+
* Dive into Python 3
130+
* why's (poignant) guide to Ruby
131+
132+
## Senior Level Software Engineer Reading List
133+
### Read This First
134+
* Mastery: The Keys to Success and Long-Term Fulfillment
135+
136+
### Fundamentals
137+
* Patterns of Enterprise Application Architecture
138+
* Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
139+
* Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
140+
* Systemantics: How Systems Work and Especially How They Fail
141+
* Rework
142+
* Writing Secure Code
143+
* Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
144+
145+
### Development Theory
146+
* Growing Object-Oriented Software, Guided by Tests
147+
* Object-Oriented Analysis and Design with Applications
148+
* Introduction to Functional Programming
149+
* Design Concepts in Programming Languages
150+
* Code Reading: The Open Source Perspective
151+
* Modern Operating Systems
152+
* Extreme Programming Explained: Embrace Change
153+
* The Elements of Computing Systems: Building a Modern Computer from First Principles
154+
* Code: The Hidden Language of Computer Hardware and Software
155+
156+
### Philosophy of Programming
157+
* Making Software: What Really Works, and Why We Believe It
158+
* Beautiful Code: Leading Programmers Explain How They Think
159+
* The Elements of Programming Style
160+
* A Discipline of Programming
161+
* The Practice of Programming
162+
* Computer Systems: A Programmer's Perspective
163+
* Object Thinking
164+
* How to Solve It by Computer
165+
* 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
166+
167+
### Mentality
168+
* Hackers and Painters: Big Ideas from the Computer Age
169+
* The Intentional Stance
170+
* Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine
171+
* The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
172+
* The Timeless Way of Building
173+
* The Soul Of A New Machine
174+
* WIZARDRY COMPILED
175+
* YOUTH
176+
* Understanding Comics: The Invisible Art
177+
178+
### Software Engineering Skill Sets
179+
* Software Tools
180+
* UML Distilled: A Brief Guide to the Standard Object Modeling Language
181+
* Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
182+
* Practical Parallel Programming
183+
* Past, Present, Parallel: A Survey of Available Parallel Computer Systems
184+
* Mastering Regular Expressions
185+
* Compilers: Principles, Techniques, and Tools
186+
* Computer Graphics: Principles and Practice in C
187+
* Michael Abrash's Graphics Programming Black Book
188+
* The Art of Deception: Controlling the Human Element of Security
189+
* SOA in Practice: The Art of Distributed System Design
190+
* Data Mining: Practical Machine Learning Tools and Techniques
191+
* Data Crunching: Solve Everyday Problems Using Java, Python, and more.
192+
193+
### Design
194+
* The Psychology Of Everyday Things
195+
* About Face 3: The Essentials of Interaction Design
196+
* Design for Hackers: Reverse Engineering Beauty
197+
* The Non-Designer's Design Book
198+
199+
### History
200+
* Micro-ISV: From Vision to Reality
201+
* Death March
202+
* Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft
203+
* The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth
204+
The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times * and Bad
205+
* In the Beginning...was the Command Line
206+
207+
### Specialist Skills
208+
* The Art of UNIX Programming
209+
* Advanced Programming in the UNIX Environment
210+
* Programming Windows
211+
* Cocoa Programming for Mac OS X
212+
* Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals
213+
* lex & yacc
214+
* The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
215+
* C Programming Language
216+
* No Bugs!: Delivering Error Free Code in C and C++
217+
* Modern C++ Design: Generic Programming and Design Patterns Applied
218+
* Agile Principles, Patterns, and Practices in C#
219+
* Pragmatic Unit Testing in C# with NUnit
220+
221+
## DevOps Reading List
222+
* Time Management for System Administrators: Stop Working Late and Start Working Smart
223+
* The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services
224+
* The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT
225+
* Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale
226+
* DevOps: A Software Architect's Perspective
227+
* The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
228+
* Site Reliability Engineering: How Google Runs Production Systems
229+
* Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry
230+
* Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
231+
* Migrating Large-Scale Services to the Cloud
232+
233+
## Entrepreneur Reading List
234+
* Disrupted: My Misadventure in the Start-Up Bubble
235+
* The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
236+
* The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It
237+
* The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything
238+
* The Four Steps to the Epiphany: Successful Strategies for Products that Win
239+
* Permission Marketing: Turning Strangers into Friends and Friends into Customers
240+
* Ikigai
241+
* Reality Check: The Irreverent Guide to Outsmarting, Outmanaging, and Outmarketing Your Competition
242+
* Bootstrap: Lessons Learned Building a Successful Company from Scratch
243+
* The Marketing Gurus: Lessons from the Best Marketing Books of All Time
244+
* Content Rich: Writing Your Way to Wealth on the Web
245+
* The Web Startup Success Guide
246+
* The Best of Guerrilla Marketing: Guerrilla Marketing Remix
247+
* From Program to Product: Turning Your Code into a Saleable Product
248+
This Little Program Went to Market: Create, Deploy, Distribute, Market, and Sell Software and More on the Internet at * Little or No Cost to You
249+
* The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully
250+
* The Innovator's Solution: Creating and Sustaining Successful Growth
251+
* Startups Open Sourced: Stories to Inspire and Educate
252+
* In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters
253+
* Do More Faster: TechStars Lessons to Accelerate Your Startup
254+
Content Rules: How to Create Killer Blogs, Podcasts, Videos, Ebooks, Webinars (and More) That Engage Customers and Ignite * Your Business
255+
* Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed
256+
* Founders at Work: Stories of Startups' Early Days
257+
* Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant
258+
* Eric Sink on the Business of Software
259+
* Words that Sell: More than 6000 Entries to Help You Promote Your Products, Services, and Ideas
260+
* Anything You Want
261+
* Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers
262+
* The Innovator's Dilemma: The Revolutionary Book that Will Change the Way You Do Business
263+
* Tao Te Ching
264+
* Philip & Alex's Guide to Web Publishing
265+
* The Tao of Programming
266+
* Zen and the Art of Motorcycle Maintenance: An Inquiry into Values
267+
* The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
268+
269+
## Computer Science Grad School Reading List
270+
* All the Mathematics You Missed: But Need to Know for Graduate School
271+
* Introductory Linear Algebra: An Applied First Course
272+
* Introduction to Probability
273+
* The Structure of Scientific Revolutions
274+
* Science in Action: How to Follow Scientists and Engineers Through Society
275+
* Proofs and Refutations: The Logic of Mathematical Discovery
276+
* What Is This Thing Called Science?
277+
* The Art of Computer Programming
278+
* The Little Schemer
279+
* The Seasoned Schemer
280+
* Data Structures Using C and C++
281+
* Algorithms + Data Structures = Programs
282+
* Structure and Interpretation of Computer Programs
283+
* Concepts, Techniques, and Models of Computer Programming
284+
* How to Design Programs: An Introduction to Programming and Computing
285+
* A Science of Operations: Machines, Logic and the Invention of Programming
286+
* Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology
287+
* The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation
288+
* The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
289+
* Computability: An Introduction to Recursive Function Theory
290+
* How To Solve It: A New Aspect of Mathematical Method
291+
* Types and Programming Languages
292+
* Computer Algebra and Symbolic Computation: Elementary Algorithms
293+
* Computer Algebra and Symbolic Computation: Mathematical Methods
294+
* Commonsense Reasoning
295+
* Using Language
296+
* Computer Vision
297+
* Alice's Adventures in Wonderland
298+
* Gödel, Escher, Bach: An Eternal Golden Braid
299+
300+
## Video Game Development Reading List
301+
* Game Programming Gems - 1 2 3 4 5 6 7
302+
* AI Game Programming Wisdom - 1 2 3 4
303+
* Making Games with Python and Pygame
304+
* Invent Your Own Computer Games With Python
305+
* Bit by Bit

ideas.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Project Ideas
2+
An extended list of project ideas:
3+
* [40 Side Project Ideas for Software Engineers](https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef)
4+
* [App Ideas Collection](http://www.ideaswatch.com/startup-ideas/app)
5+
* [Make your own...](https://github.com/danistefanovic/build-your-own-x)
6+
* [Practical Projects](https://github.com/karan/Projects)
7+
* [1000+ Beginner Programming Projects](https://www.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/)
8+
* [Awesome for Beginners](https://github.com/MunGell/awesome-for-beginners)
9+
* [Project Based Learning](https://github.com/tuvtran/project-based-learning)
10+
* [Rosetta Code](http://rosettacode.org/wiki/Category:Programming_Tasks)
11+
* [Epic List Of Side Project Ideas For Programmers](https://livingliferichly.com/epic-list-of-side-project-ideas-for-programmers)
12+
* [5 project ideas](https://medium.com/@JohanneA/5-project-ideas-for-programmers-who-dont-know-what-to-work-on-next-51fdb191cbde)
13+
* [6 project ideas to help you write creative code](https://blog.kadenze.com/creative-technology/6-projects-to-help-you-learn-creative-code/)

0 commit comments

Comments
 (0)