That is because he did it in the wrong order.
well I tried sponji code but it still does not rotate around a its central axis after I move it up or down.
What, in wrong order? I don't understand, when would he even want to use the order you suggested? First translate, then rotate.
But still, I bet the problem is somewhere else. I think he isn't moving the object correctly, and that should be done outside the render function.