Hi,
Sharepoint is not versioning tool for code. It is a document repository with workflow engine. In fact it is much more than that. You can create sites and site collections in the Sharepoint. you can use it as intranet, extranet and internet with tight security. The advantage for c# programmer is that sharepoint is built upon .NET framework, so we can create the same forms, use same membership provider classes as we do with .NET websites. It is having in-built workflow engine, so we can route the documents.
Apart from that there is a facility called BDC (Business data catalogue) which allow us to connect with external data sources, like SAP, peoplesoft, sieble etc.
Sharepoint is basically a portal which will offer you the facilities, which ordinary person and a business can use. It's direct integration with Active directory is useful in business context.
Actually there are many roles involved using sharepoint in a company
End User - a user in a business role, no interest in another technology, only uploads or updates documents.
Site Owner - to manage and administer the team / project documentation, information and communication on; and access to, a team site and subsites.
Site Collection Administrator - to manage and administer a site collection for a division.
Helpdesk Administrator - to support all users on the platform.
Farm Administrator - to maintain, manage and report on the farm web, application, index, query and database servers in accordance with best practices.
Evangelist - the public face of SharePoint in the organisation; to demo and evangelise SharePoint to effect good user adoption; to provide specialized application consulting services with regards to infrastructure and web content management services provided by SharePoint.
Architect - technical team lead architecting topology and scalability of farm; (can also be the operational, day to day decision maker on the running of the platform if there is no fulltime person for this in the organisation).