There are a few critical differences between writing software in small academic projects and professional settings:
- The code base is typically larger.
- The code is written and maintained by a team not just one person, some of the code is written by people no longer with the project.
- The software is part of a business operation, either serving an internal customer or an external one.
The following are topics we will aim to cover in your internship, read through these and use this library for reference as you go through your internship
What is open source
Git, Github and Version control
Testing in software projects
Documentation
Packages and Dependencies
Object oriented inheritance
Cross-team collaboration and knowledge management
Debugging your code
Scaling and distributed systems
Monitoring, logging, observability
Code maintainability and technical debt
Continuous integration and continuous deployment