# Learning Goals

Our learning goals for you with this book can be split into the technical and the intellectual.

## Technical Takeaways

Firstly, we would like to equip you to be familiar with the NetworkX application programming interface (API). The reason for choosing NetworkX is because it is extremely beginner-friendly, and has an API that matches graph theory concepts very closely.

Secondly, we would like to show you how you can visualize graph data
in a fashion that doesn't involve showing mere hairballs.
Throughout the book, you will see examples of what we call
*rational graph visualizations*.
One of our authors, Eric Ma, has developed a companion package, `nxviz`

,
that provides a declarative and convenient API
(in other words an attempt at a "grammar")
for graph visualization.

Thirdly, in this book, you will be introduced to basic graph algorithms, such as finding special graph structures, or finding paths in a graph. Graph algorithms will show you how to "think on graphs", and knowing how to do so will broaden your ability to interact with graph data structures.

Fourthly, you will also be equipped with the connection between graph theory and other areas of math and computing, such as statistical inference and linear algebra.

## Intellectual Goals

Beyond the technical takeaways, we hope to broaden how you think about data.

The first idea we hope to give you
the ability to think about your data
in terms of "relationships".
As you will learn,
relationships are what give rise to the interestingness of graphs.
That's where *relational insights* can come to fore.

The second idea we hope to give you
is the ability to "think on graphs".
This comes with practice.
Once you master it, though,
you will find yourself becoming more and more familiar
with **algorithmic thinking**.
which is where you look at a problem
in terms of the **algorithm** that solves it.