I'm currently studying Petroleum Engineering, and although my degree isn't directly focused on programming, I'd like to build those skills for a solo project after graduation. I'm especially interested in using AI and programming for reservoir analysis and simulation. There are so many tutorials and programming languages available that I'm not sure where to begin. What learning roadmap would you recommend, and what should I focus on first? I'm considering using video tutorials and AI tools as learning aids, but I'm unsure which programming language, courses, or AI models would be most useful for this goal.
4 Answers
You don’t need to find the perfect tutorial before starting. Pick one structured beginner course and complete it instead of jumping between dozens of videos. Use AI as a tutor to explain errors, quiz you, and suggest exercises, but don’t rely on it to write everything for you. You’ll learn much more by implementing small programs yourself and checking the results against known engineering calculations.
The most important thing is to define a concrete outcome. “Learning programming” is too broad because it can mean web development, embedded systems, data science, simulation, or many other areas. For your goal, a practical path would be Python fundamentals, numerical methods and scientific libraries, data handling and visualization, basic statistics and machine learning, and then reservoir-specific simulation or AI projects. Start with small projects such as analyzing production data, fitting a simple model, or visualizing pressure and saturation changes.
Start with Python. It’s beginner-friendly and widely used for engineering calculations, data analysis, automation, scientific computing, machine learning, and simulation. Learn the fundamentals first, then move into tools such as NumPy, pandas, Matplotlib, SciPy, and eventually scikit-learn or PyTorch. Try applying each topic to petroleum-related problems so you’re learning programming and domain knowledge together.
For reservoir simulation, programming is only one part of the preparation. Alongside Python, strengthen your understanding of numerical methods, differential equations, linear algebra, probability, and fluid-flow concepts. Later, you can explore machine learning for tasks such as surrogate modeling, history matching, forecasting, or uncertainty analysis. C++ can be useful for high-performance simulation software, but it’s usually better to begin with Python and learn C++ only if your project eventually requires that level of performance.

That makes sense. I’ll focus on Python and try to connect the exercises to reservoir and engineering problems instead of following completely unrelated tutorials.