My personal experience with geophysics is that it's very heavy-sided towards programming.
For me this is great. I have been quite the nerd in my childhood and learned some very basic C programming on my first computer. However, I can understand if you didn't have that kind of head start. A lot of my mates in university didn't and struggled quite a bit to get some assignments done because that knowledge in programming wasn't already present. Unfortunately, our university doesn't really have a lot of courses about programming basics or alternatively they're in Fortran1
Learn how to program
At one point in your student career, programming will come in handy. A lot of monotonous tasks can be automated by programming, so why not give it a try. Matt Hall over at Agile*
has written a piece about why you should learn programming.
Seriously, teach yourself how to get those pieces of code to work. It's fun to play around, break and again fix your code. And there are various resources you can get started.
If you don't know which language to pick, I would recommend Python
to start with. It's easy and focuses on readability, so you will have a big advantage when searching for errors in the code. In the end it will be best if you know different styles of programming languages, but as far as I'm concerned, I'm a geophysicist: I put the idea of the physical model into code and a software engineer will be much better translating into a language that is fast than Python. But if you're ambitious don't bother to learn something like C
Once you get over the "just playing around phase" and actually have an assignment to do, you need to get some structure into your ideas. One of my assignments in university was coding a cooling model of a magma chamber using partial differential equations including source points. If you don't have a structure for this kind of programming laid out, you will probably go mad. Yeah, or get a Nobel prize once you free up the resources you previously needed for structuring it in your head.
You can do this with a mind map or just some pseudo code on paper, just get creative. This will be your guide through the coding jungle. It's easy to lose sight of the final problem so this road-map is your friend in structuring your creative process.
Continue reading "Improve your programming; be a better geophysicist"