- #1
Silicon-Based
- 51
- 1
I've joined a group which studies cold atoms a little over two months ago. I was asked to write a Markov Chain Monte Carlo script, which I did, and which turned out really promising. I've been programming in Python for almost a year now so this wasn't too difficult to do. Shortly thereafter, the PI introduced me to a PhD student in the group who has been developing a large program in C on his own. Of course, C is much faster than Python for such types of computations, so I'm meant to use his program from now on (after implementing my script into it). His program also uses a range of data structures such as binary trees, which speed up the computations a lot, but which I don't know anything about having only taken one basic class on intro to programming for physicists in Python.
The issue is, it's been almost two months now but I'm still unable to comprehend how the program actually works. I really don't understand what struct or pointers do. I don't understand or can hardly keep track of how each of the (many tens of) files talk to each other anyway. It took me several days just to get used to using Linux, Git, and the program each. I'm being asked questions relating to the program I cannot answers, or asked to modify the program in ways I cannot to. I've been almost entirely useless to the group for a while now. The only useful thing that I can do is to actually use the program to generate data and plot it. If I was writing my own program in Python I could probably add new features without much trouble, but that's of course not an option.
How would you recommend trying to understand such a program? It feels frustrating to be expected to do things I'm pretty much unqualified to do and failing. The PhD student isn't particularly useful too.
The issue is, it's been almost two months now but I'm still unable to comprehend how the program actually works. I really don't understand what struct or pointers do. I don't understand or can hardly keep track of how each of the (many tens of) files talk to each other anyway. It took me several days just to get used to using Linux, Git, and the program each. I'm being asked questions relating to the program I cannot answers, or asked to modify the program in ways I cannot to. I've been almost entirely useless to the group for a while now. The only useful thing that I can do is to actually use the program to generate data and plot it. If I was writing my own program in Python I could probably add new features without much trouble, but that's of course not an option.
How would you recommend trying to understand such a program? It feels frustrating to be expected to do things I'm pretty much unqualified to do and failing. The PhD student isn't particularly useful too.
Last edited: