1) Add a contextual filter to a view
You can configure a view so that it is filtered dynamically, depending on the context. For example, you could use a contextual filter to add a block that contains related content or that presents a list of articles by the same author.
-> Contextual filters were called arguments in views.
-> Contextual filters work similarly to regular filters.
one important difference,
Instead of setting a filter value manually, the value is fetched from variables sent Programmatically to the view.
Regular filter: Gives you all nodes written by a specified user.
Contextual filter: Display all nodes, written by the currently viewed user.
2) Add a relationship to a view
When you first create a view you select the base table from options such as Comments, Content, and Taxonomy terms. This cannot be changed later. After that selection you will only be able to select fields from that base table. For example, with a Content view, you can get the User ID of the author, but not the author's username. To get that information you will need to create a Relationship to join those two tables. With the connection of User ID, you can get the author's username from the User table.