https://buildtogether.tech/ Building Software Together logo If you are an undergraduate student embarking on a semester-long software project as part of a team, this book will give you tools that will help you succeed. Some of these are purely technical, like a version control system or an IDE; others are guidelines to help you form teams, manage people who aren't pulling their weight, cut features when time runs short, and understand who owns the things you produce. Our aim is to teach you how to be a compassionate programmer: one who cares as much about the well-being of their colleagues and users as they do about their own. This focus is not entirely altruistic--everything you do to help others also helps your future self--but now that we all know how much harm software can do, we hope you'll be interested in some practical idealism. 1. Introduction 2. The Important Stuff 3. Starting 4. Teams 5. How to Talk People Into Things 6. Managing Conflict 7. Using Git On Your Own 8. Using Git Together 9. Intellectual Property 10. Communicating 11. Testing 12. Software Design 13. Security 14. Error Handling 15. Debugging 16. Automation 17. Tooling 18. How to Make Yourself Comfortable 19. Process 20. How to Join an Existing Project 21. How to Welcome Newcomers 22. Research 23. How to be a Good Research Partner 24. Fair Play 25. How to Handle Being Fired 26. Wrapping Up 27. How to Hand Over and Move On 28. Conclusion A. License B. Bibliography C. Code of Conduct D. Contributing E. Glossary F. Thinking G. Research Methods H. Onboarding Checklist I. Project Evaluation J. Personal Evaluation K. Further Reading L. How to Get Started Freelancing M. How to Change the World N. Authors O. Index All proceeds from this project will go to support the Red Door Family Shelter. --------------------------------------------------------------------- License Code of Conduct Bibliography Glossary Links GitHub