# My approach to learning a new api
This approach should work for languages
1. Read the introductory documentation
- What does X do?
- Why did they build X?
- How is X different from other things that can do similar things?
- What are people using X to do?
- What are the essential concepts and architecture?
- core concepts and terminology
- patterns used (builders, factories, etc.)
2. Follow a tutorial to do a middle-of-the-road, common use case thing
- make a GET request with a http client
- do CRUD operations in a database
- etc.
3. Read the summary section of the documentation on endpoints you used for the tutorial
4. Try to do something not in a tutorial
5. Read the docs on endpoints you use often
- look for recommendations and best practices in the docs
6. Try to extend the functionality of the api
- learn what is easy and what is hard to do with the api. Use it for things that are easy, look for something else for things that are hard.
# Example: Rust sqlx library
1. Read the github README and learn what sqlx is trying to do
2. Query a sqlite database with sqlx following the examples
3. Read the endpoints used (Connection, sqlx_query!)
4. Try to roll back a transaction or make queries in concurrent threads with a connection pool
5. Read docs on transaction/connection pool/concurrency
6. See if you can implement sqlx for an unsupported database