There is no generic answer, as today, a developper usually is specialised on one or other field, may it be AI, low level optimisation, rendering engine, physic engine, shaders, ... So basically, everything depends on what you know already, and what your specialty is (are?).
After that, there are lots of best practices depending on which language / game engine you're working with, and each company will also have there own standards in terms of skills and / or methods.
To improve your skills, I suggest working with multiple fields mentionned above, and work with open source game engines to see how they are made.