How can I learn the Views 3 API?
Not sure what exactly you mean with "creating" views.

First, if you have custom tables/data, you can use hook_views_data() and custom plugins and handlers to tell views how to access these tables. Some Tutorials/examples: http://treehouseagency.com/blog/neil-hastings/2010/01/19/views-handler-easy-way (Drupal 6) and http://larsolesen.dk/node/273 (Drupal 7). But again, you only need this if you want to expose your own tables to views.

Then, there are a number of pre-render and alter hooks, which allow you to alter some things that you can't do in the user interface. List of views hooks in Drupal 6.

That said, there is no "API" to create actual views (that I know of). I think everybody uses the views UI for that (After all, it's a great UI now in Drupal 7). What you can do is export the views you created in the UI to distribute them with your module or as a new module. This is also useful for contributed/standard modules to not only expose their tables to views but also provide example views, which can be customized/extended for a specific site.

Instead of exporting them manually, you can also use the Features module, which allows you to export all kinds of configuration (views, content types, fields, permissions, ...) into so called features (which is basically an automatically generated module). That is especially useful when moving configuration like views from a development to a production installation, or re-using the same views/configuration on multiple sites.