There are a couple of other ways, but all are similar. For example you ca use a tag and use GameObject.FindWithTag(). But typically what you want to do is to cache the Find() for future use:
private var player : Transform;
function Start() {
player = GameObject.Find("Player").transform;
}
Then anytime in the rest of the code you want to set the position, you would do:
player.position = Vector3(3,0,0);
You can also use drag and drop. That is if you have a public variable:
var player : Transform;
or in C#:
public Transform player;
Then you can drag and drop the player game object on the ‘player’ variable in the Inspector to form a link.
GameObject.Find() is not very efficient, so you want to avoid calling it every frame.