Since there is a debate between whether to study books first or get our hands dirty.
Here's my personal experience : (may not work for others)
1. Studied in university.
2. Was taught nothing more than the basics of CFD.
3. I wanted to write a solver, but got no help from any of my professors (they gave motivation and support and they're amazing ) because they themselves use commercial codes and don't write CFD solvers.
4. Asked on CFD forums. Was told to study Patankar's and Versteeg's book.
5. Spent one year studying. Bad in maths. Couldn't write my solver.
I was able to progress only when:
6. Saw Professor Lorena Barbara's course. Started writing small solvers.
7. Saw Professor Nishikawa's free CFD codes and started to experiment with the solver. Wrote a 2D solver.
8. Saw Professor Gretar Tryggvason's course and CFD codes.
Most of my progress came after studying Professor Lorena's course since it gave a very good explanation of how to actually code a CFD solver. Any and all books that only showed equations with no working code, were not helpful
before I was able to understand how to actually write a solver.
This is a cyclic dependency and I wasted around 1 year trying to only understand how to write a solver by studying the books. Everyone told that CFD is difficult, I need to understand the equations first, I need to analyze stability first.
Each and every one of them were unfortunately wrong.
I should've not listened to them, and simply started by taking an easy solver and trying to see what made it work. That's how I learn now, and I'm making around 10X more progress than I did ever before. Now that I know how the code will be written, every equation in the book seems easier.
Still bad in maths. Still can't understand complex topics. Don't care. I like shockwaves too much.
