As the field of hydrologic sciences continues to advance, there is an increasing need to develop a workforce with tools to curate, manage, and analyze large datasets. As such, undergraduate and graduate curricula are beginning to regularly incorporate scientific programing in the classroom. However, there are several key challenges to successfully incorporating scientific programming into a hydrology course or curriculum, such as meeting disciplinary outcomes alongside teaching students to code, equity issues with access to computing power, and effective classroom management. While these challenges were exacerbated by the global pandemic, shifting to online and hybrid learning formats provided an opportunity to explore and re-evaluate the way we facilitated our hydrology courses and integrated coding exercises and learning. In this article, we reflect on these experiences in three very different hydrology courses (e.g., courses housed in geoscience/engineering, environmental science, and biology programs) with an eye toward identifying successes and opportunities for improvement. We explore this by presenting ten best management practices (BMPs), representing a series of recommendations we have for teaching a virtual, hybrid, or in-person hydrology course that incorporates coding. While all recommendations provided can be applied to many programming languages, the focus of the paper (given the expertise of the authors) is on R. Our BMPs focus on technological facilitation, managing the virtual classroom, and instructional resources, with lessons learned that are applicable to in-person instruction. We also summarize the ways that the authors of this article integrate coding into our coursework to serve as a framework for prepping new courses or those revising existing hydrologic coursework. Above all, we hope these series of recommendations will evolve as hydrology courses continue to emphasize computational skills alongside disciplinary learning.