SteveDC said:
What's the best way to pick up programming skills?
If you are starting undergraduate degree, then there are probably extra classes/optional modules for programming. Go for these, if you want to pick up programming skills. It is definitely a good idea if you want to stay in physics further than undergraduate. And really, it is something that you pick up from just doing it. I find it does help if you have someone show you some example code first. And then you modify the code to do something similar. I think that is the easiest way to learn. If I come across a new command, then I have to look on google for examples where people have actually used the command, otherwise I often just can't work out how to use it.
I think the vast majority of physicists need to do data analysis (as kinkmode said). So even if you are not actually writing the computer program, you might analyse the data from it. For example, you have a bunch of data files with names like 'Nsites10', 'Nsites50', 'Nsites100', e.t.c. (which might be separate simulations for different system sizes). And now you want to import each of these into say matlab, and calculate important parameters for each, using the data, and then make a graph for each, and modify the axis names for each. Now, you could manually do this separately for each file. But that would take much more time than just writing a MATLAB function that automatically imports each of these files, and reads the filename to see the system size, and makes calculations accordingly.
Once you do this, it's actually pretty cool. You can get the computer to automatically do things that you used to have to do manually. Anyway, learn by doing. This goes the same for writing computer simulations too. Just make your own 'practice programs' if you like. p.s. I always have made a tonne of errors whenever I write code. So don't get discouraged if you have to go back over your work for ages looking for where you made the errors. This happens to everyone I think.