Best practices for UI that introduces new users

I'm working on an onboarding UI to help new users get familiar with our platform and I was thinking about some good ways to implement it.

From what I have come across so far, it seems that many interfaces accomplish this in two ways:

  • Having an interactive guided tour that overlays over the platform and helps users understand basic functionality. Users can leave the tour at any point but they are also able to access the tour again in the future.

An example of this is the tour that the new Google maps gives to new users. googlemaps

  • Have an organized documentation system that has walkthroughs with step by step instructions (and even perhaps video tutorials). This documentation system is introduced to new users immediately on the landing page through a widget/notice which can be hidden forever.

An example of this is the Github bootcamp shown to new users. github

Are there any other good ways to introduce new users?