My friend and I want to work on a Unity project together but we do not know-how. How would my friend and I both be able to have access to the files and the project at the same time?
There are various approaches, depending on the team's preferences.
Using a version control system, such as GitHub, Bitbucket, or Gitlab.
(Outdated) A couple of years ago GitHub was working on GitHub for Unity (it was introduced in 2017, but version 1.0 only came out in 2018). However as this doesn't seem to be updated for quite a while I cannot recommend this option (repo / Unity's Asset Store).
For smaller teams, which is your specific case, I have found Unity's Collaborate quite helpful. And, depending on one's level of expertise, it should be a faster approach to get things up and running.
If you are a student, you may want to consider Unity Student's pack.
This type of questions are related with the Development Operations (DevOps). [Here][16] one can read more about Unity's suite of products related to version control (Plastic SCM), automated builds (Cloud Build), and automatic testing (Automated QA).
Additional relevant readings: