This document provides an overview of graph neural networks and their applications to programming language tasks. It introduces graph neural networks as a way to learn representations of nodes in graphs through neural network layers. Various graph neural network architectures are discussed, including graph convolutional networks, graph attention networks, and message passing neural networks. Downstream tasks for graphs like node classification, link prediction, and graph classification are also covered. The document concludes by discussing potential applications of graph neural networks to programming language tasks like code analysis, code similarity, and variable type prediction using program dependency graphs.