I am a mathematician considering to change from academics to programming. What skills should I learn for making this change as efficiently as possible? Any other recommendations?
Very vague question (as there are a lot of sub-disciplines of programming). But one thing I would advise (which I feel a lot of people skip) is learn some of the tools of the field in addition to the field. In particular know that at some point you need to know "development" and the main tools of that or source control systems, bug trackers, build systems and deployment systems.
I left mathematics 20 years ago (PhD, logic) by way of Prolog (logic programming) and then drifted towards relational databases (with some side trips into scheduling using graph theory).
You are in a good position - mathematics is a powerful tool for programmers.
I would suggest finding a real problem to solve, and then choose the appropriate language to work on it. Microsoft's .NET languages are a good way to get into programing (VB and SQL Server are my preferred tools).