This document serves as a comprehensive tutorial on using OpenFOAM for computational fluid dynamics simulations, particularly focusing on porous media. It includes insights gained from teaching over a hundred students and highlights the software's capabilities, various solvers, and programming techniques. The document is aimed at helping users gain a foundational understanding of OpenFOAM and effectively set up and run simulations across different scenarios.